X H__PAGEZERO__TEXT__text__TEXT<<;<<__stubs__TEXTwLw __cstring__TEXTzz__const__TEXT0__unwind_info__TEXT@@__DATA_CONST@@__got__DATA_CONST1__DATA@9@9__data__DATA89__bss__DATA9H__LINKEDIT::4:3:::` P||5:f /usr/lib/dyldtdO8ÑL*.2  *(] 8xA/usr/lib/libSystem.B.dylib&:()::t_og_WO{C(@@(1@@))!(*@94_q`T*@85@6"()K7}@!@/@5jw8qTR D(Z))@)@?aT{EODWC_BgAoƨ_!!`;99{(5b;:Z[;6ւ(@@9q74T @9?qT8cT (TRRdc5;@y !@qAT!Rb598{(99[;4(5b;@9qT @9?qT8cT TRR+c@5;@y !@qT!R)@5 D( Z))@)@?Tg_WO{ @8?q3v993@6@4@94?q`T @85@WK}@W@w`@5jx8qTUTHC@952h@885G@H" yx b9?qT }}" `4R b9?qT)R "9 }} } 7N8@94?q`T @85K( 8@)@(yh@9 94?qT@8 85 ҪR 9  kji8K9)5{DOCWB_AgŨ_O{CR `{AO¨ oO{C(@@`@94 T,]))@)@?!Tx(C{BOAoè ##R` # T @9?qT8hT##R IT9#x( ]))@)@?TC{BOAoè_8 g_WO{72@@Bs(i@94?q`T @85@K}@Ԏ@ @5ju8qTC(! @ !@s(K}@Ԏ@p @5ju8qTC(! @ !@8;( @94?q`T @85@s(K}@Ԏ@K @5ju8qTC(! @ !@6( @94?q`T @85@s)K}@Ԏ@& @5ju8qTC(! @ !@1) @94?q`T @85@s")K}@Ԏ@ @5ju8qTC(! @ !@X-!) @94?q`T @85@sb)K}@Ԏ@ @5ju8qTC(! @ !@(a) @94?q`T @85@s"(K}@Ԏ@ @5ju8qTC(! @ !@$!( @94?q`T @85@s)K}@Ԏ@ @5ju8qTC(! @ !@x) @94?q`T @85@s)K}@Ԏ@m @5ju8qTC(! @ !@) @94?q`T @85@s)K}@Ԏ@4H @5ju8qTC(! @ !@8) @94?q`T @85@F(K}@6@" @5ju8qT(C(! @ !@xE( @94?q`T @85@ * @94?q`T @85 *K}@Rkv" 5hju8qTh)f@ M* @94?q`T @85@3N*K}@Rkv" 5hju8qTh*D@* @94?q`T @85@*K}@#@ @5ju8qT (+ @94?q`T @85+K}@#ӆ@ @5hju8qTh) )!D+{DOCWB_AgŨWO{(1@@ ))*@94_q`T*@85@s))K5}@!ӆ@sb @5hju8qTh@9q RIz{BOAWè_R{BOAWè_{CC(@@CV R {  @@{__WO{C(1@@ )M+*@94_q`T*@85@N+)K6}@!@ @5jv8qT   a;!( L+{EODWC_Bsog_WO{C R)r0@?C@(@@993@(@ )!(*@94_q`T*@85@"()K6}@!@ @5jv8qT@8h4Z))@)@?AYTC@{EODWC_BgAoƨ x t `@8@8, @94?q`T @85@,K}@#W@ @5jv8qT@8h4 @1, @9?q$@zT @8?q$@zT2,K}@#@t @5jv8qT@8h4f @m,a (R- @94е,C @8H5(@ )**@94_q`T*@85@U֖*)K7}@!@U: @5jw8qT@84! `5k@y @q`T)@qTAR 4(@H )+*@9_qD@zT*@8_qD@zT@־+)K7}@!@ @5jw8qT@84 `4(@ )+*@9_qD@zT*@8_qD@zT@+)K7}@!@ @5jw8qT@84 4(@ )+*@9_qD@zT*@8_qD@zT@+)K7}@!@ @5jw8qT@84 4(@h ) ,*@9_qD@zT*@8_qD@zT@,)K7}@!@ @5jw8qT@84 5k@y )@q`T@qATAR 5!k@y )@q`T@q!TAR 5k@y )@q`T@qaTAR 5 k@y )@q`T@qTAR 5^ +O 5k@y @q`T)@qT+AR4еz(> ARB B ?  }@ U,SZ[;k!,! 8R 1T@EqT @5k@y @qTC@kATk@y!qT(@H ).*@94_q`T*@85@.)K8}@!@@h@W!-ҨZ )@)@? TC@{EODWC_BgAoƨ_v@@5jx8qT`@@v@qT7! /4(@ ))*@94_q`T*@85@))K8}@!3@@5hjx8qTh@9q@za TR 4BRq =@J=@)E T"99@@s@@!,+8B@kTRMTR"r[1T ' |CӪ7 @*@? TBT 6T*R.R?aTB `R)hr J_@y R) J *(4)!D+j,[k!/58R1AT7Rs/@EqaT"8R1T-q T~`i `jh8qTs@STh! /qvFRRTc9i,#k!`/ (vZ )@)@?Th;;4/_WO{1@@( ))*@94_q`T*@85@е))K6}@!@@5jv8qT@9H4qTh@94R!T,R4{COBWA_Ĩ_{COBWA_Ĩg _ W O{@@@9h4ps еz(;.5@e`Tu 4q4tq(  }@=cZcZ1T;@y @qaTG[ )@)@?T{OONWM_LgK_O{@@!|@RR"R@@ )@)@?T{BOA_ֿ @94*@8 84_qT*@8_qT_Cog_WO{mh,8R1T@EqTv@1@@h ).*@94_q`T*@85@! 1RcR"R[@WR_rkTHٟRH׷rka TA1#!,1w@958R1TQ@EqT2cZcҾ2 5R qR!,5E5 )Y5 J5'+[+? 41Ts@@#55s@ @0-R{o 5s@@@8.)K9}@!W@Y@5jy8qT\s@@#3*@8 84_qT*@8_qTs@@X1(!@A4ДcJ4AA@ts@@h:(6 RsR)@R j!Tc1Ts@@@7s@/@@9i@`6xs@s@8_ W O {@@ `[!,5`@c5?@@ !T@R\ )@)@? THv@Xt|@#!;=R!@R1T @@b!@_AT@B31`T=R+a@v1aT R\ )@)@? TR\ )@)@?!T{NOMWL_K_{R>==>RHzrx{__WO{H|@ B+   I%(uH x4 R)K?k7h~@hz@ hzqATKqTv@AQqT`~@wz{COBWA_Ĩ_o{CC @@C XJp hkx xj ZHhH* Z(Hh+hkx+x)X)pi (D XJp hkx xj ZHhH( Z*HJh+hkx+x)X)pi ) E XJp hkx xj ZHhH( Z*HJh+hkx+x)X)pi ) F XJp hkx xj ZHhH( Z*HJh+hkx+x)X)pi ) R#*K^L\ LYk LXk l_Ӌ *K! aT ,@ $A@{ӭmLN /+@-3RMPrb L}@ ~@cbcKd|@ F, jSmB |@hS"AABA!lO!! "|@S~B0hS//q/mB ~@S|BjS$"BBmQ C|@$S$|BNhS1111nC. !~@S~B0jSE#cCmA ~@ESE|BjS"!!A!lC/ "|@/S/~B1hS#cDmB #~@S~B.jS0"PPnC ~@.S.|BjS%#cEmB #|@%S%~B/hS"QQ1nC/ "~@S~B0jS$#cFmB ~@$S$|BjS!"AA!lC. "|@.S.~B1hS#cGmB }@S~BiS%"BBlQP ~@$S$|BjSq11HmB }@S}BiS"BbBlQO }@S~B110I10nBS}BS}B ~@b"O/mFS~B0 }@JBBBlMB -tR-ۭrS}BoB D|@0nDQSQ|B" B~@KmDS~B }@!!lD!S}BN! $|@LpnD#S#|Ba !~@.mDS~B0 }@MmDS}B. }@PnDS}BO ~@NnmDS~Bp }@/mDS}B. }@O0nDS}B/ ~@NmDS~BP }@PomDS}Bn }@0nDS}B/ ~@Q.mDS~BJ! J$|@OmD"S"|BAJ /J|[+A  p   [3Ac q /   S|B!jScSmQ .|@SpP#hSʄʢBNlN M|@.S QQhS#cTmMRmr /~@#S#|B!jSdDfnO ~@OSO|BjS$UmA .|@"S"~B1hSDEcnlN #~@S~B0jS$VmC ~@#S#|BjSd$eBOlO "|@/S/~B1hSWmB .~@S~B0jSD$EcnlN ~@.S.|BjS$XmC /|@#S#~B1hSdeBOlO "~@S~B0jS$YmB ~@"S"|BjSD$EcnlN #|@.S.~B1hSZmC /~@S~B0jSd$eBOlO ~@/S/|BjS$[mB }@"S"~BiSDEcalA11 !~@S~B0jSde\mA }@S}BiS$$%BPlP }@"S"~BQD1]q1nP0S}BS}B c~@&&.mDS~B0 }@^BBlMB :RMLrS}BnB D|@0nDQSQ|B" B~@_mDS~B }@!!lD!S}BN! $|@ApnD#S#|Ba !~@ A.mDS~B0 }@AmDS}B. }@APnDS}BO ~@AnmDS~Bp }@A/mDS}B. }@A0nDS}B/ ~@#ANmDS~BP }@'AomDS}Bn }@+A0nDS}B/ ~@/A.mDS~BJ! J$|@3AOmD"S"|BA !}[kB  p   ;Aq11nP1S}BB3J1 cJ$~@%jS&?AmD }[B%~Bӌ       , Jy  $( ^ )@)@?TC {Ao¨_p_WO{5B"C7 R 8qCTRgo=R!K]Xh9Ph9Hh9v9Xh9Ph9Hh9u9h@Xӈ9h@Pӈ9h@Hӈ 9h@9h@Xӈ9h@Pӈ9h@Hӈ9h@9h @Xӈ"9h @Pӈ&9h @Hӈ*9h @.9h@Xӈ29h@Pӈ69h@Hӈ:9h@>9h@XӈB9h@PӈF9h@HӈJ9h@N9{COBWA_Ĩ4@ @@@@"@&@*@.@6@:@>@B@F@J@N@R@V@Z@^@b@f@j@n@r@v@z@~@@@@@@@@@@@@@@@@@@@@@@PAR_TEMPPAR_PROGNAME.%s%s%sPERL5LIBPERLLIBPERL5OPTPERLIOPAR_INITIALIZEDPAR_SPAWNEDPAR_CLEANPAR_DEBUGPAR_CACHEPAR_GLOBAL_DEBUGPAR_GLOBAL_TMPDIRPAR_TMPDIRPAR_GLOBAL_TEMPPAR_GLOBAL_CLEAN1DYLD_LIBRARY_PATH/var/tmp/TMPDIRTEMPDIRTEMPTMPUSERUSERNAMEpar-SYSTEM%02x%s%s%s%s%s: creation of private subdirectory %s failed (errno=%i) %s: private subdirectory %s is unsafe (please remove it and retry your operation) PATHparl.parshort read%s%scache-%s%s%s%stemp-%u%s%s%stemp-%u-%u%s%s: creation of private cache subdirectory %s failed (errno= %i) rb%s%s/thin%s: creation of cache subdirectory for extracted macOS thin binary %s failed (errno= %i) hw.machine/usr/bin/xcode-select -p 1>/dev/null 2>/dev/null%s: Command Line Tools are not installed - run 'xcode-select --install' to install (errno=%i) %s/%slipo-extract_family-output%s: fork failed (errno=%i) /usr/bin/lipo%s: extracting %s binary with lipo failed (wstatus=%i) %s: cannot find thin binary %s to run (errno=%i) %s: cannot execute thin binary %s (errno=%i) %s: extraction of %s (custom Perl interpreter) failed (errno=%i) %s: extraction of %s failed (errno=%i) %s: exec of %s (custom Perl interpreter) failed (errno=%i) /:lseek failedread failed..%s.%luparlibperl.dylibCACHE#EgܺvT244<<XXwX \Ldd(|,   %''(9      !"#$%&'()*+,-./01234@(#) Packed by PAR::Packer 1.064~ T 7p PAR.pm G T@S T U V W X Y Z [ \ ] ^ _ ` 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 { | } ~                  ! ! " " # # $ $ % % & & ' ' ( ( ) ) * * + + , , - - . . / / 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 [œ9  H__PAGEZERO__TEXT__text__TEXTA:A__stubs__TEXT@|p@| __const__TEXT~@~__cstring__TEXT~Q@~__unwind_info__TEXTDD__DATA_CONST@@__got__DATA_CONST4__DATA@@__data__DATA__bss__DATA H__LINKEDIT@@@4@3DEYM8 P>PKr /usr/lib/dyldm+8I,Lcd2  *(d x**/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0/darwin-2level/CORE/libperl.dylib 8xA/usr/lib/libSystem.B.dylib&E()EPQ0;A!\@B:_og_WO{CHM@@Hi@@))1*@94_q`T*@85@61)K7}@!@@5jw8qTR 2ZI)M@)@?aT{EODWC_BgAoƨ_!! <99K25"<:Z<6R2@@9q74T @9?qT8cT (TRRAc5;@y !@qAT!R?598K299<4R25"<@9qT @9?qT8cT| TRRcb@5;@y !@qT!R@5 2 \ZI)M@)@?T g_WO{ @8?q3JY9k@6@4@94?q`T @85@WK}@W@w4@5jx8qT)THC@952h@885G@H" yxh a@9?qT }}  `4Rh a@9?qT)R a9 }} } 7N8@94?q`T @85K( 8@)@(yh@9 94?qT@8 85 ҪR 9  kji8K9)5{DOCWB_AgŨ_O{CR `{AO¨ oO{CHM@@`@94 T,]I)M@)@?!T H2C{BOAoè ##R= # T @9?qT8hT##R IT9# H2 ]I)M@)@?TC{BOAoè_ g_WO{Wj@@B3sn2i@94?q`T @85@K}@Ԏ@_ @5ju8qTC(! @ !@3s2K}@Ԏ@D @5ju8qTC(! @ !@8;(2 @94?q`T @85@3s2K}@Ԏ@ @5ju8qTC(! @ !@6(2 @94?q`T @85@3s2K}@Ԏ@ @5ju8qTC(! @ !@1(2 @94?q`T @85@3s2K}@Ԏ@ @5ju8qTC(! @ !@X-(2 @94?q`T @85@3s23K}@Ԏ@ @5ju8qTC(! @ !@((13 @94?q`T @85@3s1K}@Ԏ@ @5ju8qTC(! @ !@$(1 @94?q`T @85@3sb3K}@Ԏ@f @5ju8qTC(! @ !@x(a3 @94?q`T @85@3s3K}@Ԏ@A @5ju8qTC(! @ !@(3 @94?q`T @85@3s3K}@Ԏ@4 @5ju8qTC(! @ !@8(3 @94?q`T @85@42K}@6@ @5ju8qT(C(! @ !@x(2 @94?q`T @85@(3 @94?q`T @8543K}@Rkv" 5hju8qTh 3f@ (4 @94?q`T @85@344K}@Rkv" 5hju8qTh d4D@(4 @94?q`T @85@4Д4K}@#@ @5ju8qT 1(4 @94?q`T @854Д4K}@#ӆ@g @5hju8qTh `3 2!!5{DOCWB_AgŨWO{(i@@))a3*@94_q`T*@85@s4Дb3)K5}@!ӆ@s6 @5hju8qTh@9q RIz{BOAWè_R{BOAWè_{CC(Q@@C$ R { @@{__WO{C(i@@))5*@94_q`T*@85@5е5)K6}@!@ @5jv8qT   (!<!!P2  5{EODWC_Bsog_WO{C R)r0>@?C@(M@@99k@(@))1*@94_q`T*@85@5е1)K6}@!@ @5jv8qT@8h4Z))M@)@?AYTC@{EODWC_BgAoƨ : 6 `@8@8(5 @94?q`T @85@5е5K}@#W@h @5jv8qT@8h4Z @(6 @9?q$@zT @8?q$@zT5е6K}@#@H @5jv8qT@8h4: @(=65 (R @945еZ6 @8H5(@))e4*@94_q`T*@85@U6f4)K7}@!@U @5jw8qT@84 `5k@y @q`T)@qTAR 4(@H))5*@9_qD@zT*@8_qD@zT@6֎5)K7}@!@ @5jw8qT@84 `4(@))5*@9_qD@zT*@8_qD@zT@6֪5)K7}@!@ @5jw8qT@84k 4(@))5*@9_qD@zT*@8_qD@zT@65)K7}@!@ @5jw8qT@84F 4(@h ))5*@9_qD@zT*@8_qD@zT@65)K7}@!@p @5jw8qT@84! 5k@y )@q`T@qATAR5!k@y )@q`T@q!TAR5k@y )@q`T@qaTAR5 k@y )@q`T@qTAR 52  d55k@y @q`T)@qT d5AR45еJ2AR    }@(%6S:Z?"AT T6 RC{;!!\@B: <!"B86R{ {RD==>RHzrx{__WO{H|@ B+   I%(uH x4 R)K?k7h~@ hz@ hzqATKqTv@AQqT`~@wz{COBWA_Ĩ_o{CC (M@@C XJp hkx xj ZHhH* Z(Hh+hkx+x)X)pi (D XJp hkx xj ZHhH( Z*HJh+hkx+x)X)pi ) E XJp hkx xj ZHhH( Z*HJh+hkx+x)X)pi ) F XJp hkx xj ZHhH( Z*HJh+hkx+x)X)pi ) R#*K^L\ LYk LXk l_Ӌ *K! aT ,@ $A@{ӭmLN /+@-3RMPrb L}@ ~@cbcKd|@ F, jSmB |@hS"AABA!lO!! "|@S~B0hS//q/mB ~@S|BjS$"BBmQ C|@$S$|BNhS1111nC. !~@S~B0jSE#cCmA ~@ESE|BjS"!!A!lC/ "|@/S/~B1hS#cDmB #~@S~B.jS0"PPnC ~@.S.|BjS%#cEmB #|@%S%~B/hS"QQ1nC/ "~@S~B0jS$#cFmB ~@$S$|BjS!"AA!lC. "|@.S.~B1hS#cGmB }@S~BiS%"BBlQP ~@$S$|BjSq11HmB }@S}BiS"BbBlQO }@S~B110I10nBS}BS}B ~@b"O/mFS~B0 }@JBBBlMB -tR-ۭrS}BoB D|@0nDQSQ|B" B~@KmDS~B }@!!lD!S}BN! $|@LpnD#S#|Ba !~@.mDS~B0 }@MmDS}B. }@PnDS}BO ~@NnmDS~Bp }@/mDS}B. }@O0nDS}B/ ~@NmDS~BP }@PomDS}Bn }@0nDS}B/ ~@Q.mDS~BJ! J$|@OmD"S"|BAJ /J|[+A  p   [3Ac q /   S|B!jScSmQ .|@SpP#hSʄʢBNlN M|@.S QQhS#cTmMRmr /~@#S#|B!jSdDfnO ~@OSO|BjS$UmA .|@"S"~B1hSDEcnlN #~@S~B0jS$VmC ~@#S#|BjSd$eBOlO "|@/S/~B1hSWmB .~@S~B0jSD$EcnlN ~@.S.|BjS$XmC /|@#S#~B1hSdeBOlO "~@S~B0jS$YmB ~@"S"|BjSD$EcnlN #|@.S.~B1hSZmC /~@S~B0jSd$eBOlO ~@/S/|BjS$[mB }@"S"~BiSDEcalA11 !~@S~B0jSde\mA }@S}BiS$$%BPlP }@"S"~BQD1]q1nP0S}BS}B c~@&&.mDS~B0 }@^BBlMB :RMLrS}BnB D|@0nDQSQ|B" B~@_mDS~B }@!!lD!S}BN! $|@ApnD#S#|Ba !~@ A.mDS~B0 }@AmDS}B. }@APnDS}BO ~@AnmDS~Bp }@A/mDS}B. }@A0nDS}B/ ~@#ANmDS~BP }@'AomDS}Bn }@+A0nDS}B/ ~@/A.mDS~BJ! J$|@3AOmD"S"|BA !}[kB  p   ;Aq11nP1S}BB3J1 cJ$~@%jS&?AmD }[B%~Bӌ       , Jy  $( ^))M@)@?TC {Ao¨_֎_WO{5B"C7 R 8qCTRo=R!K{Xh9Ph9Hh9v9Xh9Ph9Hh9u9h@Xӈ9h@Pӈ9h@Hӈ 9h@9h@Xӈ9h@Pӈ9h@Hӈ9h@9h @Xӈ"9h @Pӈ&9h @Hӈ*9h @.9h@Xӈ29h@Pӈ69h@Hӈ:9h@>9h@XӈB9h@PӈF9h@HӈJ9h@N9{COBWA_Ĩ:0@0@0@0"@0&@0*@0.@02@06@0:@0B@0F@0J@0V@0Z@0b@0f@0n@0r@0v@0z@0~@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@./perlxsi.cCACHE#EgܺvT2DynaLoader::boot_DynaLoadereval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if 0; # not running under some shell package __par_pl; my ($PAR_MAGIC, $FILE_offset_size, $cache_name_size); BEGIN { $PAR_MAGIC = "\nPAR.pm\n"; $FILE_offset_size = 4; # pack("N") $cache_name_size = 40; $PKZIP_MAGIC = "PK\003\004"; } sub find_par_magic { my ($fh) = @_; my $chunk_size = 64 * 1024; my $buf; my $size = -s $fh; my $pos = ($size-1) - ($size-1) % $chunk_size; # NOTE: $pos is a multiple of $chunk_size while ($pos >= 0) { seek $fh, $pos, 0; read $fh, $buf, $chunk_size + length($PAR_MAGIC); if ((my $i = rindex($buf, $PAR_MAGIC)) >= 0) { return $pos + $i; } $pos -= $chunk_size; } return -1; } my ($par_temp, $progname, @tmpfile, %ModuleCache); END { if ($ENV{PAR_CLEAN}) { require File::Temp; require File::Basename; require File::Spec; my $topdir = File::Basename::dirname($par_temp); outs(qq[Removing files in "$par_temp"]); File::Find::finddepth(sub { ( -d ) ? rmdir : unlink }, $par_temp); rmdir $par_temp; if (-d $par_temp && $^O ne 'MSWin32') { my $tmp = new File::Temp( TEMPLATE => 'tmpXXXXX', DIR => File::Basename::dirname($topdir), SUFFIX => '.cmd', UNLINK => 0, ); my $filename = $tmp->filename; print $tmp <<"..."; x=1; while [ \$x -lt 10 ]; do rm -rf '$par_temp' if [ \! -d '$par_temp' ]; then break fi sleep 1 x=`expr \$x + 1` done rm '$filename' ... close $tmp; chmod 0700, $filename; my $cmd = "$filename >/dev/null 2>&1 &"; system($cmd); outs(qq[Spawned background process to perform cleanup: $filename]); } } } BEGIN { Internals::PAR::BOOT() if defined &Internals::PAR::BOOT; eval { _par_init_env(); my $quiet = !$ENV{PAR_DEBUG}; my %sys = ( path_sep => ($^O =~ /^MSWin/ ? ';' : ':'), _exe => ($^O =~ /^(?:MSWin|OS2|cygwin)/ ? '.exe' : ''), _delim => ($^O =~ /^MSWin|OS2/ ? '\\' : '/'), ); _set_progname(); outs(qq[\$progname = "$progname"]); _set_par_temp(); outs(qq[\$ENV{PAR_TEMP} = "$ENV{PAR_TEMP}"]); my ($start_pos, $start_of_FILE_section); MAGIC: { local $SIG{__WARN__} = sub {}; unless (open _FH, '<:raw', $progname) { outs(qq[Can't read from file "$progname"]); # don't use $! here as it requires Errno.pm last MAGIC; } my $magic_pos = find_par_magic(*_FH); if ($magic_pos < 0) { outs(qq[Can't find magic string "$PAR_MAGIC" in file "$progname"]); last MAGIC; } outs("Found PAR magic at position $magic_pos"); seek _FH, $magic_pos - $FILE_offset_size - length("\0CACHE"), 0; read _FH, $buf, length("\0CACHE"); if ($buf ne "\0CACHE" && $buf ne "\0CLEAN") { outs("No cache marker found"); last MAGIC; } outs(qq[Cache marker "$buf" found]); seek _FH, $magic_pos - $FILE_offset_size, 0; read _FH, $buf, $FILE_offset_size; my $offset = unpack("N", $buf); outs("Offset from start of FILEs is $offset"); seek _FH, $magic_pos - $FILE_offset_size - $offset, 0; $start_of_FILE_section = tell _FH; my %require_list; read _FH, $buf, 4; # read the first "FILE" while ($buf eq "FILE") { read _FH, $buf, 4; read _FH, $buf, unpack("N", $buf); my $fullname = $buf; outs(qq[Unpacking FILE "$fullname"...]); my $crc = ( $fullname =~ s|^([a-f\d]{8})/|| ) ? $1 : undef; my ($basename, $ext) = ($buf =~ m|(?:.*/)?(.*)(\..*)|); read _FH, $buf, 4; read _FH, $buf, unpack("N", $buf); if (defined($ext) and $ext !~ /\.(?:pm|pl|ix|al)$/i) { my $filename = _save_as("$crc$ext", $buf, 0755); $PAR::Heavy::FullCache{$fullname} = $filename; $PAR::Heavy::FullCache{$filename} = $fullname; } else { $ModuleCache{$fullname} = { buf => $buf, crc => $crc, name => $fullname, }; $require_list{$fullname}++; } read _FH, $buf, 4; } local @INC = (sub { my ($self, $module) = @_; return if ref $module or !$module; my $info = $ModuleCache{$module}; return unless $info; delete $require_list{$module}; $INC{$module} = "/loader/$info/$module"; if ($ENV{PAR_CLEAN} and defined(&IO::File::new)) { my $fh = IO::File->new_tmpfile or die "Can't create temp file: $!"; $fh->binmode(); $fh->print($info->{buf}); $fh->seek(0, 0); return $fh; } else { my $filename = _save_as("$info->{crc}.pm", $info->{buf}); $info->{file} = $filename; open my $fh, '<:raw', $filename or die qq[Can't read "$filename": $!]; return $fh; } die "Bootstrapping failed: can't find module $module!"; }, @INC); require XSLoader; require PAR::Heavy; require Carp::Heavy; require Exporter::Heavy; PAR::Heavy::_init_dynaloader(); require IO::File; while (my $filename = (sort keys %require_list)[0]) { unless ($INC{$filename} or $filename =~ /BSDPAN/) { if ($filename =~ /\.pmc?$/i) { require $filename; } else { do $filename unless $filename =~ /sitecustomize\.pl$/; } } delete $require_list{$filename}; } if ($buf ne $PKZIP_MAGIC) { outs(qq[No zip found after FILE section in file "$progname"]); last MAGIC ; } $start_pos = (tell _FH) - 4; # start of zip } my @par_args; my ($out, $bundle, $logfh, $cache_name); delete $ENV{PAR_APP_REUSE}; # sanitize (REUSE may be a security problem) if (!$start_pos or ($ARGV[0] eq '--par-options' && shift)) { my %dist_cmd = qw( p blib_to_par i install_par u uninstall_par s sign_par v verify_par ); if (@ARGV and $ARGV[0] eq '--reuse') { shift @ARGV; $ENV{PAR_APP_REUSE} = shift @ARGV; } else { # normal parl behaviour my @add_to_inc; while (@ARGV) { $ARGV[0] =~ /^-([AIMOBLbqpiusTv])(.*)/ or last; if ($1 eq 'I') { push @add_to_inc, $2; } elsif ($1 eq 'M') { eval "use $2"; } elsif ($1 eq 'A') { unshift @par_args, $2; } elsif ($1 eq 'O') { $out = $2; } elsif ($1 eq 'b') { $bundle = 'site'; } elsif ($1 eq 'B') { $bundle = 'all'; } elsif ($1 eq 'q') { $quiet = 1; } elsif ($1 eq 'L') { open $logfh, ">>", $2 or die qq[Can't open log file "$2": $!]; } elsif ($1 eq 'T') { $cache_name = $2; } shift(@ARGV); if (my $cmd = $dist_cmd{$1}) { delete $ENV{'PAR_TEMP'}; init_inc(); require PAR::Dist; &{"PAR::Dist::$cmd"}() unless @ARGV; &{"PAR::Dist::$cmd"}($_) for @ARGV; exit; } } unshift @INC, @add_to_inc; } } if ($out) { { require IO::File; require Archive::Zip; require Digest::SHA; } my $par = shift(@ARGV); my $zip; if (defined $par) { open my $fh, '<:raw', $par or die qq[Can't find par file "$par": $!]; bless($fh, 'IO::File'); $zip = Archive::Zip->new; ( $zip->readFromFileHandle($fh, $par) == Archive::Zip::AZ_OK() ) or die qq[Error reading zip archive "$par"]; } my %meta_par = do { if ($zip and my $meta = $zip->contents('META.yml')) { $meta =~ s/.*^par:$//ms; $meta =~ s/^\S.*//ms; $meta =~ /^ ([^:]+): (.+)$/mg; } }; if (defined $par) { open my $ph, '<:raw', $par or die qq[Can't read par file "$par": $!]; my $buf; read $ph, $buf, 4; die qq["$par" is not a par file] unless $buf eq $PKZIP_MAGIC; close $ph; } CreatePath($out) ; my $fh = IO::File->new( $out, IO::File::O_CREAT() | IO::File::O_RDWR() | IO::File::O_TRUNC(), 0777, ) or die qq[Can't create file "$out": $!]; $fh->binmode(); seek _FH, 0, 0; my $loader; if (defined $start_of_FILE_section) { read _FH, $loader, $start_of_FILE_section; } else { local $/ = undef; $loader = <_FH>; } if (!$ENV{PAR_VERBATIM} and $loader =~ /^(?:#!|\@rem)/) { require PAR::Filter::PodStrip; PAR::Filter::PodStrip->apply(\$loader, $0); } $fh->print($loader) or die qq[Error writing loader to "$out": $!]; if ($bundle) { require PAR::Heavy; PAR::Heavy::_init_dynaloader(); init_inc(); require_modules(); my @inc = grep { !/BSDPAN/ } grep { ($bundle ne 'site') or ($_ ne $Config::Config{archlibexp} and $_ ne $Config::Config{privlibexp}); } @INC; s|/+|/|g, s|/$|| foreach @inc; my %files; $files{$_}++ for @DynaLoader::dl_shared_objects, values %INC; my $lib_ext = $Config::Config{lib_ext}; # XXX lib_ext vs dlext ? my %written; foreach my $key (sort keys %files) { my ($file, $name); if (defined(my $fc = $PAR::Heavy::FullCache{$key})) { ($file, $name) = ($key, $fc); } else { foreach my $dir (@inc) { if ($key =~ m|^\Q$dir\E/(.*)$|i) { ($file, $name) = ($key, $1); last; } if ($key =~ m|^/loader/[^/]+/(.*)$|) { if (my $ref = $ModuleCache{$1}) { ($file, $name) = ($ref, $1); last; } if (-f "$dir/$1") { ($file, $name) = ("$dir/$1", $1); last; } } } } next unless defined $name; next if $written{$name}++; next if !ref($file) and $file =~ /\.\Q$lib_ext\E$/i; outs(sprintf(qq[Packing FILE "%s"...], ref $file ? $file->{name} : $file)); my $content; if (ref($file)) { $content = $file->{buf}; } else { local $/ = undef; open my $th, '<:raw', $file or die qq[Can't read "$file": $!]; $content = <$th>; close $th; PAR::Filter::PodStrip->apply(\$content, "/$name") if !$ENV{PAR_VERBATIM} and $name =~ /\.(?:pm|ix|al)$/i; PAR::Filter::PatchContent->new->apply(\$content, $file, $name); } $fh->print("FILE", pack('N', length($name) + 9), sprintf("%08x/%s", Archive::Zip::computeCRC32($content), $name), pack('N', length($content)), $content) or die qq[Error writing embedded FILE to "$out": $!]; outs(qq[Written as "$name"]); } } if ($zip) { $zip->writeToFileHandle($fh) == Archive::Zip::AZ_OK or die qq[Error writing zip part of "$out"]; } if ($meta_par{clean}) { $fh->print("\0CLEAN"); } else { if (!defined $cache_name) { my $ctx = Digest::SHA->new(1); seek $fh, 0, 0; $ctx->addfile($fh); seek $fh, 0, 2; $cache_name = $ctx->hexdigest; } $cache_name = substr $cache_name, 0, $cache_name_size; $cache_name .= "\0" x ($cache_name_size - length $cache_name); $fh->print($cache_name, "\0CACHE"); } my $offset = $fh->tell - length($loader); $fh->print(pack('N', $offset), $PAR_MAGIC); $fh->close or die qq[Error writing trailer of "$out": $!]; chmod 0755, $out; exit; } { last unless defined $start_pos; _fix_progname(); require PAR; PAR::Heavy::_init_dynaloader(); { require File::Find; require Archive::Zip; } my $fh = IO::File->new; # Archive::Zip operates on an IO::Handle $fh->fdopen(fileno(_FH), 'r') or die qq[fdopen() failed: $!]; Archive::Zip::setChunkSize(-s _FH); my $zip = Archive::Zip->new; ($zip->readFromFileHandle($fh, $progname) == Archive::Zip::AZ_OK()) or die qq[Error reading zip archive "$progname"]; Archive::Zip::setChunkSize(64 * 1024); push @PAR::LibCache, $zip; $PAR::LibCache{$progname} = $zip; outs("Extracting zip..."); if (defined $ENV{PAR_TEMP}) { # should be set at this point! foreach my $member ( $zip->members ) { next if $member->isDirectory; my $member_name = $member->fileName; next unless $member_name =~ m{ ^ /?shlib/ (?:$Config::Config{archname}/)? ([^/]+) $ }x; my $extract_name = $1; my $dest_name = File::Spec->catfile($ENV{PAR_TEMP}, $extract_name); if (-f $dest_name && -s _ == $member->uncompressedSize()) { outs(qq[Skipping "$member_name" since it already exists at "$dest_name"]); } else { outs(qq[Extracting "$member_name" to "$dest_name"...]); ($member->extractToFileNamed($dest_name) == Archive::Zip::AZ_OK()) or die qq[Error extracting zip member to "$dest_name"]; chmod(0555, $dest_name) if $^O eq "hpux"; } } } } unless ($PAR::LibCache{$progname}) { die << "." unless @ARGV; Usage: $0 [ -Alib.par ] [ -Idir ] [ -Mmodule ] [ src.par ] [ program.pl ] $0 [ -B|-b ] [-Ooutfile] src.par . $ENV{PAR_PROGNAME} = $progname = $0 = shift(@ARGV); } sub CreatePath { my ($name) = @_; require File::Basename; my ($basename, $path, $ext) = File::Basename::fileparse($name, ('\..*')); require File::Path; File::Path::mkpath($path) unless(-e $path); # mkpath dies with error } sub require_modules { require lib; require DynaLoader; require integer; require strict; require warnings; require vars; require Carp; require Carp::Heavy; require Errno; require Exporter::Heavy; require Exporter; require Fcntl; require File::Temp; require File::Spec; require XSLoader; require Config; require IO::Handle; require IO::File; require Compress::Zlib; require Archive::Zip; require Digest::SHA; require PAR; require PAR::Heavy; require PAR::Dist; require PAR::Filter::PodStrip; require PAR::Filter::PatchContent; require attributes; eval { require Cwd }; eval { require Win32 }; eval { require Scalar::Util }; eval { require Archive::Unzip::Burst }; eval { require Tie::Hash::NamedCapture }; eval { require PerlIO; require PerlIO::scalar }; eval { require utf8 }; } sub _set_par_temp { if (defined $ENV{PAR_TEMP} and $ENV{PAR_TEMP} =~ /(.+)/) { $par_temp = $1; return; } foreach my $path ( (map $ENV{$_}, qw( PAR_TMPDIR TMPDIR TEMPDIR TEMP TMP )), qw( C:\\TEMP /tmp . ) ) { next unless defined $path and -d $path and -w $path; my $username; my $pwuid; eval {($pwuid) = getpwuid($>) if defined $>;}; if ( defined(&Win32::LoginName) ) { $username = &Win32::LoginName; } elsif (defined $pwuid) { $username = $pwuid; } else { $username = $ENV{USERNAME} || $ENV{USER} || 'SYSTEM'; } my $stmpdir = "$path$sys{_delim}par-".unpack("H*", $username); mkdir $stmpdir, 0755; my $cache_dir; if ($ENV{PAR_CLEAN}) { $cache_dir = "temp-$$"; } else { open my $fh, "<:raw", $progname or die qq[Can't read "$progname": $!]; if ((my $magic_pos = find_par_magic($fh)) >= 0) { seek $fh, $magic_pos - $FILE_offset_size - length("\0CACHE"), 0; my $buf; read $fh, $buf, length("\0CACHE"); if ($buf eq "\0CACHE") { seek $fh, $magic_pos - $FILE_offset_size - length("\0CACHE") - $cache_name_size, 0; read $fh, $buf, $cache_name_size; $buf =~ s/\0//g; $cache_dir = "cache-$buf"; } } close $fh; } if (!$cache_dir) { $cache_dir = "temp-$$"; $ENV{PAR_CLEAN} = 1; } $stmpdir .= "$sys{_delim}$cache_dir"; mkdir $stmpdir, 0755; $ENV{PAR_TEMP} = $stmpdir; last; } $par_temp = $1 if $ENV{PAR_TEMP} and $ENV{PAR_TEMP} =~ /(.+)/; } sub _save_as { my ($name, $contents, $mode) = @_; my $fullname = "$par_temp/$name"; unless (-e $fullname) { my $tempname = "$fullname.$$"; my $fh; (open $fh, '>:raw', $tempname) && (print $fh $contents) && (close $fh) or die qq[Error writing "$tempname": $!]; chmod $mode, $tempname if defined $mode; rename($tempname, $fullname) or unlink($tempname); } return $fullname; } sub _set_progname { if (defined $ENV{PAR_PROGNAME} and $ENV{PAR_PROGNAME} =~ /(.+)/) { $progname = $1; } $progname ||= $0; if ($ENV{PAR_TEMP} and index($progname, $ENV{PAR_TEMP}) >= 0) { $progname = substr($progname, rindex($progname, $sys{_delim}) + 1); } if (!$ENV{PAR_PROGNAME} or index($progname, $sys{_delim}) >= 0) { if (open my $fh, '<', $progname) { return if -s $fh; } if (-s "$progname$sys{_exe}") { $progname .= $sys{_exe}; return; } } foreach my $dir (split /\Q$sys{path_sep}\E/, $ENV{PATH}) { next if exists $ENV{PAR_TEMP} and $dir eq $ENV{PAR_TEMP}; $dir =~ s/\Q$sys{_delim}\E$//; (($progname = "$dir$sys{_delim}$progname$sys{_exe}"), last) if -s "$dir$sys{_delim}$progname$sys{_exe}"; (($progname = "$dir$sys{_delim}$progname"), last) if -s "$dir$sys{_delim}$progname"; } } sub _fix_progname { $0 = $progname ||= $ENV{PAR_PROGNAME}; if (index($progname, $sys{_delim}) < 0) { $progname = ".$sys{_delim}$progname"; } my $pwd = (defined &Cwd::getcwd) ? Cwd::getcwd() : ((defined &Win32::GetCwd) ? Win32::GetCwd() : `pwd`); chomp($pwd); $progname =~ s/^(?=\.\.?\Q$sys{_delim}\E)/$pwd$sys{_delim}/; $ENV{PAR_PROGNAME} = $progname; } sub _par_init_env { if ( $ENV{PAR_INITIALIZED}++ == 1 ) { return; } else { $ENV{PAR_INITIALIZED} = 2; } for (qw( SPAWNED TEMP CLEAN DEBUG CACHE PROGNAME ) ) { delete $ENV{"PAR_$_"}; } for (qw/ TMPDIR TEMP CLEAN DEBUG /) { $ENV{"PAR_$_"} = $ENV{"PAR_GLOBAL_$_"} if exists $ENV{"PAR_GLOBAL_$_"}; } if ($ENV{PAR_TEMP}) { delete $ENV{PAR_CLEAN}; } } sub outs { return if $quiet; if ($logfh) { print $logfh "@_\n"; } else { print "@_\n"; } } sub init_inc { require Config; push @INC, grep defined, map $Config::Config{$_}, qw( archlibexp privlibexp sitearchexp sitelibexp vendorarchexp vendorlibexp ); } package main; require PAR; unshift @INC, \&PAR::find_par; PAR->import(@par_args); die qq[par.pl: Can't open perl script "$progname": No such file or directory\n] unless -e $progname; do $progname; CORE::exit($1) if ($@ =~/^_TK_EXIT_\((\d+)\)/); die $@ if $@; }; $::__ERROR = $@ if $@; } CORE::exit($1) if ($::__ERROR =~/^_TK_EXIT_\((\d+)\)/); die $::__ERROR if $::__ERROR; 1; __END__ PAR_TEMPPAR_PROGNAME.%s%s%sPERL5LIBPERLLIBPERL5OPTPERLIOPAR_INITIALIZEDPAR_SPAWNEDPAR_CLEANPAR_DEBUGPAR_CACHEPAR_GLOBAL_DEBUGPAR_GLOBAL_TMPDIRPAR_TMPDIRPAR_GLOBAL_TEMPPAR_GLOBAL_CLEAN1DYLD_LIBRARY_PATH/var/tmp/TMPDIRTEMPDIRTEMPTMPUSERUSERNAMEpar-SYSTEM%02x%s%s%s%s%s: creation of private subdirectory %s failed (errno=%i) %s: private subdirectory %s is unsafe (please remove it and retry your operation) PATHparl.parshort read%s%scache-%s%s%s%stemp-%u%s%s%stemp-%u-%u%sperl0PAR::Packer::VERSION1.064Unable to create cache directory%s: creation of private cache subdirectory %s failed (errno=%i) -e--/:lseek failedread failed..%s/%sInternals::PAR::BOOT,,APP@|P L$hD\&&'8      !"#$%&'()*+,-./0123456789:;<=  PAR.pm h`>0@@<l $HpBh~ *:N^lz.D\p| 0@P_PL_do_undump_PL_exit_flags_PL_perl_destruct_level_PL_tainted_PL_tainting_Perl_croak_Perl_get_sv_Perl_gv_fetchpv_Perl_mg_set_Perl_newXS_Perl_newXS_flags_Perl_safesysmalloc_Perl_sv_setpv_Perl_sys_init3_Perl_sys_term___chkstk_darwin___error___sprintf_chk___stack_chk_fail___stack_chk_guard___stderrp___strcpy_chk_access_boot_DynaLoader_bzero_closedir_environ_exit_fprintf_free_getpid_getpwuid_getuid_lseek_lstat_malloc_memcpy_memmove_mkdir_open_opendir_perl_alloc_perl_construct_perl_destruct_perl_free_perl_parse_perl_run_read_readdir_realloc_rmdir_sprintf_stat_strchr_strcmp_strdup_strlen_strncmp_strrchr_strtok_unlink_vfprintf_ainy_par_plăleanup?@ABCDEFGHIJKLMNOPQRSTUVWX !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX _XS_Internals_PAR_BOOT__mh_execute_header_get_username_from_getpwuid_main_my_par_pl_par_basename_par_cleanup_par_current_exec_par_die_par_dirname_par_env_clean_par_findprog_par_init_env_par_mktmpdir_par_setup_libpath_sha_final_sha_init_sha_update_xs_init_PL_do_undump_PL_exit_flags_PL_perl_destruct_level_PL_tainted_PL_tainting_Perl_croak_Perl_get_sv_Perl_gv_fetchpv_Perl_mg_set_Perl_newXS_Perl_newXS_flags_Perl_safesysmalloc_Perl_sv_setpv_Perl_sys_init3_Perl_sys_term___chkstk_darwin___error___sprintf_chk___stack_chk_fail___stack_chk_guard___stderrp___strcpy_chk_access_boot_DynaLoader_bzero_closedir_environ_exit_fprintf_free_getpid_getpwuid_getuid_lseek_lstat_malloc_memcpy_memmove_mkdir_open_opendir_perl_alloc_perl_construct_perl_destruct_perl_free_perl_parse_perl_run_read_readdir_realloc_rmdir_sprintf_stat_strchr_strcmp_strdup_strlen_strncmp_strrchr_strtok_unlink_vfprintf_par_setenv_par_rmtmpdir_par_xs_init_sha_transform_xs_init.file_PAR_MAGIC_par_setenv.alloced__MergedGlobals 0 \XQP  :parIbB"&X7I} {KU|>θ{XofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,U=qϕ!~ŗQêgM85h#(Pڛkx1悭Ge}[D:Loau5Fڦ~HaD{.:2ꌶrRz"%E=ܘ ?j!5r(DΠ"eIٱ!+ZB6$XP4+A#&CD[4h5=<>ڞgO( ZU2k_(B%7ӎ-^{ÐqlȤݕYMۥc Bo}XofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,Zv |D3 j2-qֈ.XofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,Lw}!2HAUkC@[fZR 6yHdr([jPU __TEXT22__text__TEXT1Ԋ1__stubs__TEXT  __const__TEXT__cstring__TEXTX0X0__unwind_info__TEXT22__DATA_CONST2@2@__got__DATA_CONST2p2__const__DATA_CONSTp2hp28__DATA44@__data__DATA44__common__DATA4Xp__bss__DATA4H__LINKEDIT4@4 x**/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0/darwin-2level/CORE/libperl.dylib4@4 3M4s4P6h P 55ò?ɞI9\2  * 8xA/usr/lib/libSystem.B.dylib&4)4`l7`o@?q$BzT@( A@y)!?!qT?=qT?%qT__WO{@@ @  R{COBWA_Ĩ"@uA96h@h>h @6C7IC" RER" 2 @@ ]@)2 ]HR >@6C7ICQiB@y_ kJTQ?!*kTJ=@ yjkJ?!*kTh@tJ@y!6k"TqTVyRyJy@yYIR *y6F@y qR}#"FyJyh@tJ@y*)ˊ IUyVQyKJySH@y2Hy{COBWA_Ĩ_I=@)}iij@ i)_"hB@y2hBy{COBWA_Ĩ__WO{(_xQ@uB@y?!6kTQ>@}#B@y }<" By QBy=@R7" >@}өjhi @3i({COBWA_Ĩ_@1RO{C@@yP7`7{AO¨")_x) 3]I5R *(@yh@aT` @"t@"{AO¨_h{AO¨_O{C@"t@~"{AO¨_O{CД:@h@R"6` @g"t@d"{AO¨` @]"t@Z"{AO¨_WO{@tJ@yF@y kbTUM)V @ybTR@y !?q@zT"h@AT` @3"t@0"{BOAWè_h@ cTh{BOAWè_og_WO{@@y !?q!T{FOEWD_CgBoA_j@9* 06*Q_q+Rj!ʚk J D@Ti@)iTеB8! }Q? qcT}qT A96*@ @ q$@z TAR@ @ICKC !lMyk aT)q)}} ii Y,T@@ATȊ@9H7TB@y"p7@aTȢ@B@y! }Q? qCT?q@TR"/!:aZ9Мc6X5RR@{7@9H7 T@B@yr!q`T҈B@yr!q`T@h?ֵ4:)qTE2@y:)q!TB@y!-qT2@q T@ @ @aR-@@&@RV@@@ T@ @?AT@@?q T(Q"@)%. T)!. T _) aTL!"&@1kH@T@B@yP7`7?!@T!_4B@yW6_x 5]*ByN@T @(!@%!@T@aTq_-"@)%. aTO{@@`!h@9yh9{BOA_O{A!1"4A!@"@4A!2"4A!2z"4A! 2u"`4A!42p"4A!T2k" 4@8"M{BOAQ{BOA__WO{_xrATւ=@Ay7H @9yi R)r?(j TmT9 @(7H yjAS `TrR#RiRR RjqTmH qaT T @9hqA TR RkK3j@K kjyj@ASjqaTX ! T@9}q(Rjq TR *qT@AyI)$JJe$}qIJJ$R kH@9? *@zT87*_yT?=qT*RJ! RJ J4K%8,-Qi1)Rl Q(@@$B~@%;@ Ay?!qJmSKR?}qb@R#RR TR RjqaT@#@)8$@4@yR kT8@"R@Ay}q!T@@ ]@i86)2 ]{FOEWD_C_*@t#qog_WO{C@@y yq,T}qHTI )+ih8J @i@9R? jATQqhTh@9(07`@`@JTqTq@TqTqTT`@}q TqTi@9) 6QQmqTIqaTa`@*T`@@?qT(Q`@@?qT(Q`@T`&@hB@H6tt@@@vU`T[t@U V ֺ@"`B@yGh 07@?5 TRRRRRji8J @(R9R"`B@y;R@ :R@8R"`B@yDjji8J @֔"H4@@?qT(Q@+"h@9 6i@907H7`&@@@?qC T(QhB@6h@!?`@T=`&@hB@7`.@hB@.6`*@ @ q$@z TAR@ @ICKC !lMyk aT)q)}} ii Y,T@A8 @?AT&`@@?qT(Q`@kTk{EODWC_BgAoƨ_>+`@jT8+6+64+hB@6O{C  Q? qcTqq!Tt@ @4 `@@?qT(Q @(qiT ?qT{AO¨Kt@ @?qT(Q {AO¨_++ @(qT{AO¨*O{C@@y!r`ThB@y !@hBy@h&{AO¨____WO{B@yp7; h@5"@b4UHqTB@yp6@qTB@y p7)yByi@@yp6@B@yw7)y)9 *ByTB@yJyI9 *By@)yByci@9)2i9)yi9(hB@y!@qTR#H5h@I )(yh  Q ?qT*RI!R? j@Th A@y)y Ay{COBWA_Ĩ_@%og_WO{H-@@@I@ RRR$N@RRRNRr RR @ @ qT@ @ @@ @ R r) Q qaT@@ 5T B 5CBR @Rr?k78v AR3 5v)@2@RRRM@ @ qT@ @ @8?k78ICBR @8 2 @u@RRRM@CcRR 4@jThQ=q(TI )+ih8J @֔@hQ=qTI ) +ih8J @H  @ @@@H>F@I)-@)@?AT{GOFWE_DgCoB_փ@,,@@yp6@@@yw7@_WO{R@@y"3@y>YiR9hB@yp6s@{BOAWè_yhBy`{BOAWè_?qT? qT?qT ={C(|@@8&]og_WO{6R7 99#Z=?RU J΁O!+P*H@h C95i@9?r!TjC@yJ!_QqT+k2k9K=QqTjk8J @h~h@ A@yp6!Y_q@T_qa T`@ P*O!+΁h@906i@+@iA@y p6j@JA@yp7?!r`T P*O!+΁@HA@y !@HAyh@H%h@9yh9hC9h5R pP*O!+ R΁R4h@ A@y p7 _`@}@@yp7?RZ=P*$6h@3 R  O!+Z=?Ro ?RZ=P*@hB@yw6LhB@y?RZ=P*(w6@3iB@y?jTi@)?)T !qT*EC @A@yhp7@ A@y)!?%q$Kza?aq`T?%qaT@ A@y)!?qT@@ @%R+T΁O!+P*@AhC@y!mqRyP*O!+΁`TiC@yh@ w7 A@y)!*Q_q"ʚJD@T?qT{FOEWD_CgBoA_og_WO{6R9#9=; \ М: ZO u@9rT)@i)C95B@y)!@?QqT@9j 6{i 7 29+QqHTJkk8) ֈ@ A@y p6 !_?q`T?qAT* 06 07@ @ A@y)!?q T@ 5@9 6@@ T@@@"RDU@B@y p7M6@@B@y!qT 0*5BB@y! qaT<B@y !@By@&@B@y!rT.B@y !@By@&@@965@Uҵ@TB@y@hw7B@y! Q?q"ɚ)$@TqT"@B@yw6B@yw6@u !qT@B@yw7TR{FOEWD_CgBoA_og_WO{99Z=[{C,\ МW>T/8  ! A@y(!@ )Q_ qbT55@J_)@T@9 7K@kkC95Qq@TqTuqTKk29UqHT* {kx ։[hi 6@9 7*qTARzhRU <TB@y@?rIw6(@9_qTIp7@*A@yJ!_qT)@?aT@*@9qTp6@A@y!iqTV,6)@*A@yw7)@)A@y*!_qT)@*A@yw7)@)@? TqTZh@ @@yJ!_q!T @96)qR R Rj *Byij @ A@yw6!Hq!T{h677q!T@NB@y!I@97@R  4@7@ @rT @R r qT@@@A96V֮+y@9 y? q!T@*A@yJ!_9qaT@*KA@ykQqTJ@jKA@y!rTK @TKBlA@y! qT T KA@yk!Eq!T29(@92(9H@92H9P@H@@ A@y+!kQ)q @zT @+A@ykw6)@) @9+06+A@yp7 (R *By@ 2(2By@ *()R *By@ !(IR *By@ 76@976@)A@y)!)}Q?qTRI%)6V6+@9?qT@9I'7:@@@y !? qATp6@ A@y*!_1q+Rj! @RJ D@z`T @9_rTp6@ A@y)!?1q*RI! @R) $@zT@9rT@H@9'7I)-JJ5.rV6@`w@@yw6@@)@*A@yw7)@(H ҨB@y!rTLB@y !@By@&@ A!.R@AR ` Tn aT@ @hP7r T@@T-@-ҟ2@ @@ @Rf@R@- @?qC T(Q)@J@V@B@yjw6@ @KA@yj!_%qDKzAT+w7@k97+A@yw7k!_%qAT%qT*@KA@yk!q!T@k@lA@y!qaTk@J@ T V֚--qT* @@k @_ !T @9J2 9@@9(9@A@y!%qT@@@@# %{GOFWE_DgCoB_( @T A@y@Iw7 @96 @j  J@j*A@yw6*@* @97!T@@_@@y!%qKzR RAaq`T%qT@ A@y)!?qT@%RP_@ @%RP_WO{h RiR_q6 RR7@@y!qT@@HP7h @Eu5H&h @=H&I)'JJ'qA_[  @@ @Rf@Rh @#H)I)(q!_[ [R7{GOFWE_D_Cog_WO{(-@@"@{w@8@9I=@hC9$5h@ @ @)T A@y@Iw7 @96 @j J@j*A@yp6,@  ( @) @97Tt@iB@y!+?!rT@? )0R) *iBy@?hB@yhBy?q$BzT @  A@y)!?!qT?=qT?%qTb6A9@!@A6@ RĻ)99@ @ A"=(+@;=(.b@C"RqTROC9֊8@yy8@9r@T qT[57 @)  J7J@? B9`T)A6)@J6J@) )C +@?h@29 qT @ @@U@y)R jT @?qT(Q  -0t@8B9@k9ByyC@a9! y@!@ kMT;5hB@y)R(!3hBy))%Bi i@9)y)2i9yhByB6@@t@RR^ c@ !@ @) @ @`T( @) (R*@K @k2K  I_+ @k*+  @_ Th@(Z))-@)@?T{\O[WZ_YgXoWC_ @ @)T A@y@Iw7 @96 @j J@j*A@yp6,@  ( @) @97Tҙ@Rr  R) * r`T`z4"U@\7C@)a(!@  @7og_WO{ C(-@@ @ A@y)!?%qT?=qAT@ A@y)!?%qT) @ @J@!!/RRRmF@ 1@9?%q!T @@eR3 RRR7b!hB@y!q!Th@9(j!Th@h@9yh9x@@  ?kT @) @)  ?qD@z @z @z`T4@ @@RRR7FhB@yp6s@3+ R r qT@ @ @BR"@ R T @?rZR0 @?qT(Q y5/"yZ5R3@))-@)@?AT{IOHWG_FgEoD_h@@i@9j@k @l=@9l7 l@@=@L4k@ )R' 0) /& og_WO{΁=@C9H4{GOFWE_DgCoB_R/40J4RQ1>!!45R#Rr$H8  gRr^ ރ@9 6B@y!@{h 7܊@9qaT?q$LzB@y:!_#qhTR - xzxJ @<=07"7QQqT"jaTSqTB@y!@q@Th5Ɋ9I7 zhKqTe@"RqCTqRRQ1>5R#Rr$H8  gRr^ ރCTȎ@9 R j!CT2@qTB@y !I%Q?Iq(R !iRrk d@zD OzT@B@yJ!K%QIq! @zD OzTSqT6  |06 Sq5TM62Ȋ9Rp2Ȏ97R<R@9AR@ A@yiEp7(R#Q qC@TKq@T@4`q` T=^ ރgRr $H8#Rr!!45RQ1>R0J4/4R6J@RR^ ރgRr  #Rr!!45RRR @;RR"R^ ރgRr  #Rr!!45RRR@8@28 @)qTqaT2Ȏ9|u6@ A@y up6R Q?QqT*RI!*Rr? jaTSq!@RR0J4RQ1>!!4#Rr$H8  gRr^ ރSqTq`Tq(T(07()R *ByE@ @@HC@y!r mT ^ ރgRr  $H8#Rr5RQ1>RRHC@y !@HCy@H'DqT qT҈2Ȏ9187\6@a[TR@26- @) ()58@28qa TȎ@92Ȏ9G'7G4qTXqT @) :'6 7<0776{ w@@ q!YT@ A@y)!?qR0J4R11>!!4#Rr$ЄH8  gRr^ ރT@ @(m@7hȊ@9 2 @) @"RR/40J4R11>!!4#Rr$ЄH8  gRr^ ރ;RqTB@y!aq`T%qTȊ@9 qTȎ@92Ȏ9  6΁=R/40J4R11>!!4#Rr$ЄH8  gRr^ ރȎ@92RR11>5R#Rr$ЄH8  gRr^ ރȎ9 @) (R\4(x#)RR5R#Rr$ЄH8  gRr^ ރ^2Ȏ9  QQqT)R(!)Rr jaTSqA?T҈f2Ȏ9@@ C9t9@ 9@JR_)jbTAA9hb(6!!X6RR@RR!!4@(R? q΁=R/40J4R11>!!4#Rr$ЄH8  gRr^ ރTqAT2Ԏ9R87@@@ yi(@9JJ@ 2+986(!@84I@*)@J8I@)%@)@)@)@)yh+@9h2(9 7Q 1H6T@@@ yi(@97RR@)C@y(!@EqT) ):+ih8J @)9)7(6 %Q_qhT+ kI:mij8 (@92(9T()2R *)(Cy(EF( (@9\(@)@9 7X@@)@yi  -*@9 7(@92(98(@9( 7(@92(9@@)@yi  -*)@*A@y_!rT)@)@)@ R*9*A@yJ!_-q T_qT,*@JA@yJ!_qT,@92*9+9L7i2)@97)@9)2)9)@)A@y)!?qT(@92(9(C@y 2R *(CyAF( (@9i (9Kqa T2(9hqTh5)97 zh%AR 3 C)5RD(@ A@yw6!C)C@y+@9- 4(zx# 4˃0J4!!4@(( @(?  @c@5R11>?(@9y7(I2R *(CyIF( h(9H2(9@?@T)C@y(#iw6@ h2@C9kAT9@ 9@JR_)j3TIA936!!7 R9B@y!QqT@@(C@y!r@T2(C@y !@J(CyH@('B@y!4!B@y !@By@&RR!!4#Rr$ЄH8  gRr^ ރ@B@yp6@@@y!QqTR=^ ރgRr  #Rr!!45RRRR1R@ A@y*!@4_ qT( @?$T@ A@yp6@ A@yw7?!rT @?EaT@ A@y?!rT @_=aT@ A@y)!?qT5q TSq!TB@y(! QQ_mqCT)?IqTɊ@9)2Ɋ9q@T(2Ȋ9Ɋ@9)2Ɋ9 Q_qhTB@y!q *Ȋ9 R Q_QqT"_j Tw_ZTB@y@hw6B@yp7@B@y)!rT)Q?qhTq`T! %Q?Iq") $@z Oz T@T851Tq!TRȎ@92Ȏ9(Ȋ98@28B@y!qTB@y!@qATARR zhRRRR!!4#Rr8 R r qT@@ARh@  kR0J4R11>!!4#Rr$ЄH8  gRr^ ރTK ] q@ @*_%qT @ @")X6 @0@95qT@qA9H77Rhx# p3(@R/4R!!45RR/4R!!45R@@@yi @9@(R 4 6 5 @ ' l1 @# T2 WO{h@96u@URB@yhp6@5{BOAWè_R)Q?qT* J;Lii8k ` R_A@y!9qATR_og_WO{C=@hC957 8 ' RRZ/R< >; {>qaThB@y !?q!Th@ A@y)w6@hB@y !?=qHTjki8 h@96h@)%Q?qTki8J @h@ A@y)w6@*%Q_qT kj8) h6i@9)2i9q@T(%Qq Tjh8) uR6h@92h94RbqT&q T>q TbqERuRh@9H6s@hbq T&q` T>qTXhq Ti@9)2i9Sh"qT>qTqA T RER^Rh@9h 6iuRj@907*(yHG@h h@@B@y!rT/RR RB@y !@ByH@&j@9H2h9=uR;Ri@9(*h9h@92h9h&qTbqTbq i"qmT&qT^qTbq@T! Rj@9I *i9 Rj@9I *i9i@96i3@@y!I&qTR>qTq`T bqi@9(*h9h@92h9ThB@ys@w6hB@yHw7h@A@y!qT+{EODWC_BgAoƨ_g_WO{C 8 RV@9{h?(jaT@8{h*( _q$ A!T?`T?(j@T@8 {i)) ?qA!T˺'RRhB@y!qaTh@9(7a@Rh@92h9 RR 8AR'U'RRr9RRkshB@y!qTa@Ri@9i@9*urH2h9%uShB@y!qTa@RT@9i@9*urH2h9 RR RRRp{EODWC_BgA_O{ChB@y!kTqaTh@9(7a@Rh@92h9{AO¨_{AO¨_ RR{AO¨NWO{R3@@y"3@y>)(Yh9~S9( t7U7~@0@6AR`~@0@hit8H5A5yt{COBWA J(>yt T<{C(-@@C&@))-@)@?T{A_֠ O{CShB@y!kaTqTa@R@97h@9yh9{AO¨_R{AO¨Rh@92h9{AO¨_O{(-@@(@@y2(@yAR?@+8@hB@y!%qaT R@929H@@y!qTT@B@y! q!T"RH@ R=@y@))-@)@?T{BOA_ og_WO{9=Z9[R7Z6(@ Ay?}q C9)5B@yI!r@T ?ATQ4RB@yI!rT@ T?q T?qT?aqT?%qT?qT?=q TKQqaTH@ 9@)jATAA9(6R|@(@@KA@yk!qaT @@y@@?aq T?%q T?=q T@@a @U*J>IYiAy*J=+k=}qj+k=iqh#  5Q~G@ @@yhp6@@@?RJ _%qT? q`T?1q!T? q`Ty)(@@@yi @)8)@ Bi@929@9qI *@@RD@@@aR<@@>@929{FOEWD_CgBoA_h 5mWO{ 4 hB@y !B@y!?kTk!Th@ A@y)2 Ay@i@(@h A@y)y Ayh@@9i@9(*h9B@y(P7h `7 HkTqT@R4h@97@9y9(qaTh@97a@R%h@92h9,_x 5]I5R *By@T @ @ R@929{BOAWè_ RR{BOAWè:{BOAWè_ր@929_og_WO{qRR RR R*B@y!yB@y5#@.Q qTbq`T&qTRO4?R( q)RIzR.q))>9yh(RHzbq`T&qAT@ A@y)!?q!T@%RvCq(9))9(R!!9@@%RaCR!!89qTqTh@9 R?(jATh@ `!h@9yh9Rh@9)R(7769RߢqThB@ d:(7ߢqTqATR ;/};Ri9( 6qhT*)R(!Ț I TRi9( 7j@9 7 R77  RJyj9H77i9(I6)Rh77j@_) *7B@y)!?q`T?%qT9I7@h5[@9I7(>Yu!!; Rrh@92h9~qTqTqaTh@9H74hA97!RRhB@y!QqTRR:hB@y!kTqTa@R@97h@9yh9R+4 RR{GOFWE_DgCoBRh@92h9{5{GOFWE_DgCoB_C_WO{Bߖq`TiB@y(!@ QQ_qTh7i@97qaTAR-rRR R>@@y"3@y[u29~S 29hB@y2hBytB@yp7yhBy`@ A@yip7 @ A@y)y Ay@~@0@his8 5A5ys?@HhB@y!kT4 Дzuv66h@AR`iB@y(!@zhj(6J!J@96*K!I!3iBy [ki qTh@ @9)y 9{DOCWB_AC 29hB@yhw6q`T))> yh!!5RhB@y2hBy{DOCWB_AC_֤(>ys T<)C_WO{(21,Rb5 еt6!RR=@@y"3@y>Zh29~S29hB@yp7yhBy`~@0@his85A5ys?@({DOCWB_AC_ RR 5 еth7hB@y!@ztw66h@AR`iB@y(!@zhj(6J!J@96*K!I!3iByZki qTh@ @9)y 9{DOCWB_ACH ,(>ys T<#mog_WO{C-@@@@y!Qs"q#HTRr@W@@ q a T@ @ @@ q TCBR<@WH@@y!qTqAT@R9R)!:8B@y*!_qDCzTj597RIp6@'p6@(R)w7!RRHRLB@yp7(Rw7@(R w7#BR@ qT@ @ @ @9@W<i:@)2i:'(7 wS(!+TX7!@8?CT$@ -$"@(* @;R79@(* @KC,@9*@k _ T @, M yj TK  @?911ҰˡCR ? T9ҟˡCR  H@ R r qT@ @@R9R@RR@BRpX< @?qCT(Q +Rv'@*vSgH @z觟q(/ )+# R 7<@9 7@ @?T R@ @@9) ( @ A W@ @9)})z RjORnR `;G /?@7@ q_T4@ @@9( W.R.]}R@ST?/@7w8@9O@6(  i{8 _q`TR)%) 4[@8;z_TT @9?qT @8) ),ij8  qTRk%k l4 @8jz  T:R闟@* *?@I ?w+@7@Tv@9K@6(  iv8h _q`TR)%) *4jV@86z_T+@ BT @9?qT @8) ),ij8  q TRk%k 4 @8jz  T6h*R闟@) * Wk)/@ /_S3W  V?TW@ @ h2 1 Tg@q;@*H4@_TS@m 1"[Ii `@*Rj`k4@_T@K 5 TT*RT+R_ kT\jdӪjkRj KJRJ} J} SCT d lR KkRk} k} S_ kT'@k *R7CTjdjkRj KJRJ} J} S"T+R( T< +@ Tv H 3 H  mRTR_ kCTR#T d+6 lR KkRk} k} S@cac `#@j@9J2j9 hh RW@Y *@  T @4}K@ _ T T W@ k_k ˟ T+RL T?TiW@ @? TRK5  R) *i7 TS@>@9*}H 7@ @A!?TW@k k_T+R T,R k`TUS@@4j})7@ @A!?T RL T?T@4}K@) -@ T a T T+4 } !C}BV hbT)RW@ @bT,R? ka Tldl#klR KkRk} k} STldӌ"lmR KR} } S kT RL (T} T< }ɬ!#}"V;,idiilR K)R)} )} SW@ @TdӍmR KR} } S? kT(R 4(6< } !#}"VS@@ @9 )} K@h(K@S@G@TZ˨ VcTZA! @)} @@9K@ NLz;@$.>SR>@}@?T%>"{qO<  N NA`N1e NC#bNdbNbNa ?dbN!T?Ta/$x T iC".@`RRR@.@@ @ @@ R u3 S@( @5R*( I} @* @A`h/ @* 8'@87BT;@ @)R * +@'@H87t3 sR ?iT!@9jja8( _q@T&) j4*A@8!z_TBT @9?qT@8ijb8 ?qT&B )4 @8Iz T T RR9R9#@@   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !T@@y!-qT%qTqT@Z#+|RB@y!rT%qKz T@9*9P9 6@   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !T@C@y!9qT@ A@y p7/h4TC@y !@Cy@'H@?ֈ@#@4B@yp6@?q$BzT@H A@y)!?!qT?=qT?%qT@C@y!rT@9iR *9h:@2h:4C@)#6#@(A@2(A2U 4/@#@'A@ P7i:@)YS)'*R?#@`hA9*7u.@v6@@y!qTB@y !@By@&R5R4#@$-(A@2(A#@A@7  )8)@9*3J4?rRR#@A@(7G#@A@67@kT#@A@x#@AGF7/@( R?2#@(A  )8)@9*3 5@ @) @ ]@)2 ]R@RR @RR!RR@@y 2@yy@#@R9 A@yp6@)y Ayh:@}S*@9(*9h@9h(6A@y @?qq#@!T   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97 T@ @  !T@(   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97 T@ @  !T@hB@y!hB@y!kaTq!Ta@R\@97h@9yh92h9@( cR@( [RDh@92h9@ P@WxH;@)g@_q( (yS@@?q@&T(Q'@%86W%a%T! 9,RRO#@@ RR-,@ @) R@2@9?)qAT @@mhB@y! @ @B@y !rT#@?=qHT*RJ! @R_ jT_rT?q@T?aq`T?%q! T@A@y!qaTj@*H@ @J1@9_)qAT @ QAyJ @J? T)B97hB@ 2hBhB@y!dhB@y!kTqTa@R@@97h@9yh9@9#@6@ A@y)!?=qaT @9)6@ A@y?R) ?@qaT@( A@y?r A@y)!?=qT6R@@yIR *@y@R9 A@yp6@(R9@`&@( 3)y Ay(R9@h   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !T@`&@   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !T@h*%D_RPR@h@92h9  W i'@h?7T!9RE @ljY )-@)@?aT#@{UOTWS_RgQoP#Om_WO{ R@@y"3@y>)(Yh9~S9( t7":@(77h":@(6iB@)2iB(6 R!vo`6R@9(6 R!no7 RARjo79@9@X76R`o 4@9@7 RiB@)q(*hB@96&@!4RRRbH @rT5M qT@@ARhB@*hB&@!TRRRKH  @rT5M qT@@ARhB@q*hB~@0@hit8H5A5yt{COBWA >ytT yh!5RhRR R=@@y"3@y>)(Yh@RDyB@y2ByhB@yyhBy`{COBWA_WO{(21,RR@@y"3@y>Yi9~S9 t7~@U70@x~@6AR`0@hit8H5A5yt{COBWA 1>ytT<_WO{RRKR@@y"3@y>ZhhB@y!r`TR@@y@y@R9hBFy *A@yJ2*Ay3iB@y)2iByh A@y)y AyB@y2ByB@y2Byh@t{COBWA_Ĩ_og_WO{-@@@@y!@40@hiu85A5yu?@B@y!kAT svzuv66@ARYB@y(!@jzh(6J!J@9*6*K!I!3By))Yk qT@ @9)y 9@ )-@)@?!T{GOFWE_DgCoBu@B@yhp7@hB@yyBy@R90ZC5{t@B@yp7B@yp6@@B@yw7hB@y)yByB@y)yByh2RRRR9W"@B@y2ByB@yyByFy(@hiw8 5H{w?@(B@y!kT ywu6gu6@B@y(!@ JJyh (6J!J@96*K!I!3By))Yk AR´B@y(!@ JJyhJ/7qT@ @9)y 9C#2RR@ )-@)@?aT{GOFWE_DgCoB_>YwT<|a>yuTCh t@B@y)q!TB@y !@ By@&p6@@@y)qAT(RI@@y)R *@y&CR9B@y2ByhB@yyhBy@0@h%C95A5%C?hB@yR *hBy:Ch {COBWA_R@@yR *@y=CR9hB@yyhBy@0@h=C95A5=C{COBWA E>%C@>=CT<C_WO{qT`RRR@@yh"3@yh>)(Yh2(9)j)7B@y2ByB@y2By@929T@0@s~@B@yyBy@0@s~@his8H5A5ys{DOCWB_AC >ysT*_1 B:@y:"@Rg)%."@ @)!.IT _) ">@@8@987@ @w|@V{BOAWè_ T@ @yv@@ @96@?%.@!.HT__og_WO{-@@":@0 =@( I96R`@@y!r`TLB@y !@By@&B@y!%qT@R@929%#R@@y)R *@y%CR9B@y2ByB@yyBy@0@h%C95A5%C? @@8@987@ @Fw|@7@kT7@7@`џMT@ @yt@@ @96 @C?A7G6:@2: @9I6hB:RR0B51RRF@ hB@y!%qTa@R+h@92h9AT&T"RQ@@y*@y'C9hB@y2hBytB@yyBy@@h%C9H 5&C?T҉C@yw6@ @s4B@y!%qaTR@929 @> @@8@987@ @S4v|@0hT@ @ys@@ @96 @C?R@@y)R *@y'CR9hB@y2hBytB@yyBy@@h%C95&C? @ @@)-@)@?!T{GOFWE_DgCoB_>%CT< WO{ @@y(!)"?9qTq`T%qT`@9qT@@yp6@`@@yhp79h@9 yi9@9i62h9{BOAWè_ RRz?RB@y(w6@B@yjT@)Tog_WO{o{=h@ I9)y 9 Ry!@9Z9986H@%@H4(@)a )@ TciRCIRB@yJI *By@ 9#;@^)H@J%. !@? $@J!.$JT(_(H@"%@B&H@Q@RHB;@2;aRNh@ eB?1T @?1 T&  H@ @* @J* *@B@y)!?-qT@ @@@&@Rc@)!:)a T @ R) * @@86B@y!r TdB@y !@By@&hB@y!%qTRh@92h9{FOEWD_CgBoA_R@@y)R *@y'CR9B@y2ByhB@yyhBy@0@h%C9h5A5%C{FOEWD_CgBoA H@%@&H@ @i>%CT<{#{_WO{8@9H4 @ {COBWA_Ĩ_hB@y !?qT)?)?P7g7{COBWA_ĨiS ,R'A9@ @! R%*@9 q`TqaTh@92h9 )9"5 @ )@*@ ?`T*A@y)@Jw7+@9 6+@ K   k@KA@ykp6K@+I*@J*@97)?T @@@@9J k qth@92h9(Rh3!+@@?@H=@C95@K!@96<RRq7 @ 7@TB66@@(C@6@@TR{COBWA_ĨRr?q$BzaT@ A@y)!?!qT?=qT?%qTi_xi 4]I5R *hByQ@AT @+@('h2@I*@?T*A@y)@Jw7+@9 6+@ k   k@KA@yw6K@+*@97)?!T)@@@7@hB@y2hByAR@@9) J qTh@92h9(Rh!+@@?P@@@ ]@) 2 ]{COBWA_Ĩ_?q$BzT@ A@y)!?!qT?=qT?%qT{COBWA_Ĩ_֚R"Rk@^WO{h@ 8@9) J qU@929(R:!+@@?@(3B@y!q!T@R{BOAWè?q$BzT@( A@y)!?!qT?=qT?%qT{BOAWè_h@]@S{BOAWèɱO{C6@B6@T{AO¨_"R @{AO¨_og_WO{@9ւ= 7@"LI T_8q TR$ 4@9Z 49(RUqT !ښ)@8:5VA=bRqHRHz5H 6Hq`TqT4Ay)=J=k=}qjiq(3R {<R+R = @9Ij{i*j`T:6/@85'@84H@h{h(j`TZ?7UqTh!ښ@8:5A bR =+RHRqHz(R@)54!=R4үRR@y{FOEWD_CgBoA_RO{C@@y!q!T9@ 9@*uS_qT)_=q$ @z`TEA987=g{AO¨_=!R"RcR @RR@@y !?5qT)R *By%@  RR hB@y!qaTa@R@9i@9*urH2h9RR{AO¨- RRRR{AO¨!O{C@@y !?5qT)R *hBy%@h {AO¨USRR{AO¨H@HC_WO{(2qTZRqT)9)@*9@KuSkQ qTKR*jT)EA906qd @ThB@y !?qTh@9h9h@9h9$hp7 RRҮv7hB@y!qTh@=@9 7u@yhBy RRҚa@RP Ztu@B@y7!r@TB@y !@By@&p6@ C@y)!?qT!r`TB@y !@By@&@929~qATh@9*h9V70@hB@y"3hBy>)(Yhh h@9*h96hB@y2hBy0@hit8H5A5yt?@@y!@k!Tzhu66h@AR`iB@y(!@zh(6J!J@9*6*K!I!3iBy))Yki qTh@ @9)y 9{DOCWB_ACk{DOCWB_AC_G>ytT<#mg_WO{Cs9Z9U@99@H(@(t mC"2@RRRRr@2@@ @R @( 6@2@R RV@6@H(@(2@RRRT@2@@ @R @( 6^@2@R R!RK{EODWC_BgA#l'2@CWO{-@@@@y)qTC3=@ @@?RvRRR#@1 @9H6@B@yhp6@T@)-@)@?T{DOCWBC_g_WO{R-@@@@y!)Q=qH T )I+ih8J @9707@ 96@2R$49y69@sd= @ @9(6@2R RRRr#@ V@9 07@@9% SRRRRX# R@96@B@yp6@?q( qATRRR7#@ @5M qT@@TRRR## ARkT @ 9R@97@)-@)@?T{GOFWE_DgC_5B@y!@)(yhS8FWO{ @@y !?q`THp7  RRou@yhBy RRda@R4hB@y!r`ThB@y !@hBy@h&{BOAWè_ RR!RWO{-@@C RR RR/@ !@CB@y!qAT@97@R@9294@)-@)@?T{COBWA_ֲWO{R@@y"3)@y(t * 9!V*9hB@yp7yhBy`~@0@his8(5A5ys?@@y!@ ytu6=u6h@{COBWA_AR`{COBWA_>ysT<~g_WO{CR9~@ t6B@y !?qTp7 zh9~Sh9~@'@yBy RRҌ@RBB@y!r TB@y !@By(@&2h9v~S2h9B@yp7yBy"hB@y"3hBy>([hh 0@hix85A5yx{EODWC_BgA >yxT<WO{R2z9~S9@@y"3@y>)(Yh0@~@his8(5A5ys{COBWA ]>ysT<Cog_WO{ @( @C)@9 T!>{HOGWF_EgDoCCk @Y  K Q+j Q }@(hH T R  TR)RZ6 )R*}SJ R?!qi1T R?Qq"TR7@5  'W>#? bhz|!-@ TT(@4{|QR!>JT R}BIQ?!qi(1 ( !>7T!0?1T!D?)#@!>!hT@[hz| `TT!?!h? h R}BIQ?!qi41'@ [hz| T!?R!qTR6}S Z6{HOGWF_EgDoCC_og _ W O { C-@@=@OHC94R;RRr+wG86RK7hH@@]@iRIr j TRVRRr+X7@ @ qT@ @+@7@=@9SG 6RCBR6)[ 6W Rk!@969@%@H48@)} J H @*@J@J@J))%@!T  RcK7-8@| RRVRRr+79 @J!8@? $T)@J8J@ J$T0 ARR (RK72@9%qaTR<RZ9@#RB@y2ByARZ(C@y2(CyAR7@HC@y2HCyART5+@T _8?qT! T@5! R!pRRҿ73R4! ;4 @ @  ?qT @) @3@R4R{4uւ@ @?qcFT(Q ӕ5RBR(@ @R5@ ?%q`TZsj@J@J]@kRKr_ j9TX6 @1@95qT8@+@RG@?q7@ ?%qT @ @5 @ih X7 sh@@yA9( 7B@y!qTs=h@@ RFh@sh@@qA9H 7 Z@@y!qTh@@qA9 7h@ qA9i6@H RR_@z   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !T@D @ 1@9?5q=)8)@ T+@ARR@VR@R K72@9%qT@A@9H7!RR  RR@@957@a@(@]@7SF /@HP7/@P7h X6 @1@95qT|6@3@$26@969@%@)=)@)@?1@T %s`@R>`Rv6@!`R`R4/@ @@T(0@9-qT0@9-qTBRC 5h@ @) 9@% @@?q!T(Q{!h@@h3@}co Ҕ7@x|h7@963@i2@9%qT@A@97/@@!@T$ n"/@@(@I)q% @ ]@)2 ]@ ]@)2 ]@@]@@2@ ?%qTG@ @ JJ@J@JqA9G@j7X7 R*0r jTR@ ? q T?q@ T!Rtb+@Rq!@@]@ @*]@H*(]s`@@?qT(QR=@h  7@O@kMT7t@)@ @)uA9i6=@9h6{Z)-@)@?XT{MOLWK_JgIoH_ֈ@RY46#? qcT@* @ @U7h@? @ @Rr( 6@2/@ as`@@3@@X7X3@r4@2b`@@?qNT(QR/@D@9 qaT! 5@8whRHrt@I/D?\_@)1J  H+@/R )H@2@9%q!T))@)@)]@( @*]@H*(]+@cTx7|@@ ?%qAT @ @@@<@9h6 @(@)=@?qT@(X7 R*0r jTR@ ? qT?qT!Rg ? qcT@* @ @?7@? @ @Rr( 63@2 8@<@9h6 @(@)=@?q+T@? 1,T@(? 1lT@h?1T @@ qT* @) @@(?1T@@H}|6@@q#+@G@qa0@@ ]@)2 ]@  {h@ @)]@@) *@K]@k) *I] @))@@I) @)Y@@IY @)%@@I% @@*) @@*% @)@@I @@* @*]@ J *]@ ]@?@) * ]C@4@!@$9@@@@)@(!@ ]@)y ]8@C@%@a@!@96* @) s`@`&@?q%T(Qw@@2@9%qTw+@ch$TG@qaZ0@@ ]@)2 ]9@@@@)@(!@ ]@)y ]8@83@4@20 @) @@ ]@)y ]@@@!T @@"7@@8*uA987)@)@*B_@K@(*628@Rhw @ K@(*7!@9H 68@)a )@ @ TR<RBRR9@ @)@)@))JJ@%@ 9a @ @@RRR( @@R@@@ @RRR( @ @97 @ 7@ TA6@)6)@ CRKfUw=@C94ARR@9 QMqT )+yhxJ @! t5O@M!$r5!q5 !<@q5!p52@9%qT@uA9h86 @ @?q#TR(Q )Aw@@+9շ4e= _8I p_ yN _8I p_ y8@97 @@@R@@!RCR /,Q0)R 9@ @? KT))@J0J@+R 29k @ jT @ykM@94@97!@1`T%@1@TkT k"Jz"T29 !@4@)@N@%@@@@ym@929O7 k"TOK kT k2JzTT_O{C8@H@HRR@@y !?5qT)R *hByh%@h {AO¨geRR{AO¨WO{R@@y"3@y>i)(Yh9~S9 t7U7~@0@96AR`~@0@hit8H5hA5yt{COBWA >ytTrT@yh4)q#T!4kT>?q"TqBT-qT>)q T! Rd>:@?-qT 2r)+2*rih(6J487(2?r:>q#Tss8h@9rT"@i)%.w". `THT _) aTF"h@92h9 yr)+y*rih(6J487(y?r:>qT@yqTxܔ>q闟:@(3y2:h=@ jJ0 H@ ?1H{FOEWD_CgB_Id|@ RrTRh:@987h@ @ (TAR\S4h:@9h?61d|@ HT!RRԄ@ @ qT@@ARR*W(GD>qC$<t96>%CT<.{ _) T{_{__WO{Į`9""RF+RR]RR@929RR37@ !@7+@ !@RRC@y!qaT@9(7@R@929 RR RR@929(R3 {COBWA_ĨO{C!4X+RR{AO¨AR@RR RRv RRRR{AO¨kWO{!REa!R@\@R{BOAWèWO{6@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97T@Rx@@yR *@yhCR9B@yp6@RyBy@9*9~S29h~@ {BOAWè_g_WO{-@@HQ qbTRRRAC#R@)-@)@?,T{FOEWD_CgB_ 5_q Tq TB@y!iq`T9qT@9y9 RR!R!RR~S9U B@y!@H5@ T@@97C@y?R iR kT@B@y !)-Q?q(TɊ@97Ɏ@9?qThp6@(A@y?R q TMRG@)-@)@?a TRP:@)-@)@?T1RCRRhB@y!iq!Th@92h9!RRV@)-@)@?TR@9qTҨB@y!5qHT)R(! @R jT@9H6 l"W-RR/@)-@)@?aTR{FOEWD_CgBu9R@R nC@y !?5q)#) $@zT @906VC@yhp6@X hB@y!}qa Ti@9) 7B@y!-qT%qT@ A@y)!?qT @i&@9@h&Ri@9(*h9@9)(*h9(@s2 k Ts@jB@yJ!_qaT`@ @ @6 @k@7@?q T)Q }@`"@@"Ra@Rh@92h9@@"ROh@92h9h@9h9}@)I ]6@B@y!Ȋ@9 R Ȏ@93RRR@B@y0R *ByhF !RR!h6@y` @)2 t@O{C @@y !rT?UqT@@ A@y)! @9@9  * 7JR(-Q qC THR?%qT?aq@T?qT@ A@y)p7B@y(p6@q T/@97 R R @9?qTh?q Bz@Th?q@zaT(R+%QIq !, Rrk d@z$ Tz!T{AO¨_@B@y(w7ҲqTqT(R{AO¨_qq?kT:UR{AO¨_9qH{AO¨_JR?qAT@@@y ! R @9?qTR{AO¨_HR{AO¨_(-Q qH%{AO¨_og_WO{T@s@q!T R{FOEWD_CgBoA#B@y[#@hSQqBTZh7@97qTARW-qT(R) R*Y@*C@yJ!K%Qq !k d@zT*@96+@jA@yL!rT5q`T)qATw6k@ 5*@9 6*,@  `T!>y{!5RB@y2By{FOEWD_CgBoA__q!T(@97(6!T;R'q T@9 6R 4@*A@yjp7(@qT 5 A@yJ!_iqa T@9( 06(@9 q THR8(@`!a(@9y(9q Tq #TqT5@:@9/(7h!:)CjU)} ? .T@rT(%P7H(@7X6 @ 9@9( 6@@=@9(( 6R@6<H!=q"TAqTMq`TqTw9@8%@jJ=J@J@*%)>)YheQJ=kq= qh1#!<R@%B@yH#qaT@9h7Ry@   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !Ty@R!@@y"3@yh>YiR9 A@yp6@)y Ay@9*9~S29@   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !T@Rh0@~@hit8(5hA5yt? yt}Sp`H87RQqhThB@y!qTnQqHTqRhhB@y!q!Tb R^(@5@9 4hB@y!qaTh@( A@y?R) jR? kaT@H A@y)!?1qHT*RI! @R? jT@9q@T(C@y!qT(@92(9ǿ5@u:@9 (7h!:)CjU)} ? T@rTP7@7X6 @ 9@9'6@@=@9'6R7&H4eq T @ @T( @@9qT@ @T( @@9qAT ( @eT@@@@hB@y!qTh@92h9xhB@y !?qT*RJ!ɚ K_ Ti@9)2i92hByM?9qATRR@@y]T]!TeO>ytT<;_WO{C-@@jB@yH!@ QQ?qT h7i@9I 7qTAR+?C#RC#RR@)-@)@?Tq`T(R) R X@ C@yJ!K%Qq !k d@zT @9 6 @jA@yL!rT5q`T)qATw6k@5 @96  @  `T>)> yh!5R޾hB@y2hBy@)-@)@?T{EODWC_B__qT@:@9"(7h!:)CjU)} ? !T@rTP7(@7X6 @ 9@9  6@@=@9 6R@6@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97T@R<@@yiR *@yhBRȊ9 A@yp6@)y AyȊ@9*Ȋ9~S2Ȏ9@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97T@h0@hB95hA5B?w@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97Tw@vRRRRe@)-@)@?Ti@( @T @@9qT@@h@9 R?(jAT@`!v}^@9y9׽սB@y !?qhT*RJ!ɚ K_ TɊ@9)2Ɋ9 ?9qTRR%@@y2By@)-@)@?@Tt[T>BT<2WO{@@y!qTqTh@ A@y)!?qT{BOAWèh@ A@y)!?qT@ A@y)!?qAT97R4t9@%@i)=)@)@?1@T %!=R@%{BOAWè_WO{C(@@y !?%qT RRB@@y)3R *hByxgFh RRR@@yI3R *@ykFR9 A@yp6@)y Ay@B@y2By@B@yyBy@(2RR{EODWC_B_g_WO{CW@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97Tw@R@@yR *@yhBRȊ9 A@y p6@RȊ9@)y AyRȊ9@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97T@~S2Ȏ9R%RRRRR@( x9!RRҊvւ6@y`R!RR}@y`R@@yi @)2 B@y!qeS9hB@y!qeS9@94@9i6@`!\@9y9@94h@9H6h@`!\h@9yh9@9h4@9h5@{EODWC_BgA_ @ @ T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97T @ @ T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97T_WO{C-@@ 96B@y!rT7RB@y!=q,T eQ? qTH5@?eTAqTMq`TqTh8@H@HRR9@@y !?5qT)R *Byh%@ RR RR`RR RR, RR'RR#TB@y!%qaT@R @929#R4@@y)R *@yh%CR9B@y2ByB@yyBy@h0@h%C9#5hA5%C?C#RR@ ?qaT I@ @I_*H 6 TRRG@9I6@i*A@y p7 qTH5*HA@y!q`TiqaTH@9(76(@9 qT  A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !TI@@ @I_*7H@@HH@9*H9@929@)-@)@?T{EODWC_B_֨B@y!q T@8@9h(7h!: )CjU)} ? T @rTP7@7X7R@7i*@qATi(A@y!=qmTAqTMq@TqT @  @T @@9qTO4eq T@@G( @eAT`RR@ 9@9 6@@=@9'7B@y!qT@ A@y)!?qT@8@9H(7h!: )CjU)} ? T @rTP7H@7X7RvR`6@ @hT(@@9qT @@HR@ 9@9 6@@=@9'7a@)-@)@?T{EODWC_B_XsT XTD>%CT<g_WO{-@@ B@y!=q,T eQ? qTH5@?eTAqTMq`TqTh8@H@HRR@@y !?5qT)R *(Cyh%@( 0-RR]RRT`RRS uV4 V:RRRr@RWz   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !TR@ @W RR@?z6I B@y!%qAT@R"Ȋ@92Ȋ9;@9i6@i*A@y p7 qTh5JHA@y!q`TiqTH@9H76(@9 qT R6@@y)R *@yH%CR9B@y2ByC@yyCy@h0@h%C9H5HA5%C? R{@@7   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !T@@\C#RR @A TB@y!qT@:@9H(7h!:)CjU)} ? T@r@TP7(@7X6 @ 9@9  6@@=@9 6R6'@( @HT @@9qT@)-@)@?aTi*@qAT(A@y!=q TAq TMq` Tq T@@@) `T@h '   A@y@Ip7 @96 @J  J@j*A@yjp6*@*( @I @97T@ @ !T@@I@( R\@@yIR *@yHIC9`RRS?@9*9@9!S*9@)-@)@?!T{FOEWD_CgB_ֈ4eqT( @eAT`RR1VUTj>%CT<Cog_WO{/)@@y(!@9q T4%q!?TɊ@9Ȏ@9) 7RJh8@H@HR+RRqT=q!<TȎ@9( 2ByH9@ @ A@y)!?qaT+Ri)8@)@2 T@?U8TR+@8 A@y*!@_ q8T7p6@7 A@y*!@_%q8T @p7 a2Ȏ98R@h@@ys  -q+]+Z @+R)e 0KA@yl!@%q/TL @m A0Tp6J@j  jJJ@K@lys - @9L06 @h}!? L@ih-,A@yp6)@! R8Rq+h@@ys @9? q!T@ @9?qT@92}q4TB@y!qT@(@ A@y)!rT@ A@y)!?-q`T?qT@ @AR(C@y!rT%qKzT!R"R5!RRRR(C@y!qT(@9H7!@R(@92(9% RR+(@96(@ A@y)!?q!T@@@hC@y p7n!RRRRvR(9@97 RU@ A@y)y Ay@_x)qT R@@==@ A@y)y Ay@B@yP7/@`78/@+@4Ȋ@92Ȋ9 R R{HOGWF_EgDoCC_x 9^I5R *By4(@!T @4@ (|@@9y9b RR@ @(@h@ͶHC@y!r`THC@y !@HCyH@H'RA 9si)6)@ @( @(@ qA96@ )  TR5R(@ A@yip7@HC@yp6@@@yw75B@yyBy_T?(C@y)R(!3(CyI))By(Cy?@9y9}R5RHC@y!%qKzT(@ A@y)y Ay(@lHC@yyHCy_R5R> yl#,  )>(yh ۼee>yjμ>yjxǼC_WO{-@@(@@y!dqTqT@907RRRR@@y!q`T:qaT@97҈B@y!q!TRr@ @ q!T@ @@ T"BRB@aT@ @ qT@ RB@y!q`T BR*ʸܵR;h! 9@)2 9@)-@)@?T{DOCWB_AC_5O{CR#R{AO¨C_WO{Rc@@y"3@yH>YiR9 A@yp6@)y Ay9RR @ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97T@H0@*@929@929H0@*hiv85HA5yv?h@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97Th@u{DOCWB_AC_>yvT<{@@y! %Q?IqT*RI! Rr? jT@9y29aRR_`RR{*R? jT-Q q"TRRPRR{G{_֠RR{pWO{4`7H8@H@HRRE@@y !?5qT)R *ByH%@ RR߹ RRiBRcR{BOAWèO{C *h@96s@hB@y!qT R jh8) `@@@yp7@7@7R{AO¨_h@9S{AO¨_h@I)!: )I{AO¨_WO{M ) r!$@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97T@RRR@@yi3R *@yHmFR9 A@yp6@R)y Ay@9*29h~S9@{BOAWè_WO{R RRRRUе@hB@y!%qTRyh@92h9#!R@@y)R *@y&CR9B@y2ByhB@yyhBy@H0@h%C9h5HA5%C?hB@yR *hBy:Ch {COBWA_>%CT#@@ %@)@a(yh @6ztdz4 @?qcT(Q zt@a)*I 7@9 6 T}Ө@%@@yv @it @) i4@?qT(QTRaTN!( BRY@@9RHa @ @@RRRh( @@R]@@@ @RRRU( @ @yH7 @ H7@ THA6@I)6)@ CRLRğ3@H=@h  H7@kmTW߮Z)-@)@?aT{LOKWJ_IgHoGC_63n0*(B*!(og_W O { -@@/4@t%B@y!qTq!$T@ @-U qT@ @+@)T@hC@yH p6x@ N:Rr RC@y!q!T@ @ qT@ @+@) T CBR+@)T @) @yJ) C@yp6x@(-@ @@@?qT(QtR_4H@  ?qTI@) @'@ @#BR@ @'@uSR!>m6@"RҶN:hC@yw7lhp7!T@ ?%qTһ#RE5CBRV+@)+T @ Nꍮ*) @y RJ ) (-ш@ @@@?qT(Q@ ?%qTP6 @*@9_q!T @) @! 2|R4@"Rx@ `R` 4Rr@ @ qT@ @'@@ @ qTBR@@A@y(w6#BR@ @ qT@ @#@V4T @@ @ARx`H @AR! BRCR BRh@@ @uS'D@J @JuS!?`Rx@t/@)-@)@?!T{KOJWI_HgGoF_@ ?%qTzI). !@?`T J Lia8k ` ]@9* RJik@J Y@9* RJik@J U@9* RJik@J Q@9* RJik@J M@9* RJik@J I@9* RJik@J E@9* RJik@J A@9* RJik@J =@9* J%|@J 9@9* J%x@J 5@9* J%t@J 1@9* J%p@J -@9* J%l@J )@9* J%h@J %@9* J%d@J !@9* J%`@J @9* J%\@J @9* J%X@J @9* J%T@J @9* J%P@J @9* J%L@J @9* J%H@J @9* J%D@J@9( %@J_*D)+VRKr+, ) J+@  @@HK JAJ K(5J)=J E  @ K J! TT@JK1 ` ,@ I il8 )R@9k  @9) @y  ( IK)i(J  J* )!( 9  JJ1H  J* JmH )J K)KI=J J_- LЌ.(Hӊ-@1A T@ J KJʓ 0 ), ʌ ГATQqT Y im8  @9 @9 @9 @9a @9A @9! @9  j Kʉ - )Jʓ* HIʪʫ͓k@ ȓk L iʊ Kʉ̓jk˓)L (ʉj+ Hʊ̓iJ+ Hȓ ` J_#mg_WO{CB6RW9 uCX9Y9ZZ#: %Q? qTs@ hB@y!!q TqCzTq T qT%qTq Tt@Mh@9H 5@@@ (@@i@yi@96Tc6RVRלU9 uCVւ9 %Q? qTs@hB@y!!q TqCzTqTTqTqTh@95@T@@t@ &R{EODWC_BgA#l_6Ҩ@ ]@)2 ]g_WO{h@qA97`R 4W9@%@@H=@hY94@@]@ 4w@^@7@v7?@@9R,H=@@1`T@(%Vւ@RWD@ @) @%R{DOCWB_AgŨER67Rh7Rx4R:!R(@ @) @]@w@^@(RHr 2q *^{DOCWB_AgŨ_WO{SsB6`@I)7*@K+T@@H6@ TH6 @}) 5@ !h{BOAWè_H6@ h{BOAWè_"RWO{<@9h7@@=@H4@8ARRRxRRq++uB@y!qT@RlȊ@9@9*urH29%tUB@y!qT@RW@9@9*urH29 RR RRRs{COBWA_g_WO{C-@@W9@@H@@)Ԕ@Y9#T H=@@#Ŕ@Y9#@T #@RS@I)%.!@ @I)!.IT _) (# rH=@@(%(;@y(;6W8 @ @r%7R'2@9 )-q6-2z@ @) i@(h@ ]@)2 ]@)-@)@?!T{EODWC_BgA_֙og_WO{ARR @9) Q?MqH#T Jy Lyixk `֡! @5HA7@XC6@@uA9h864H7@kmTh.P!RE @rT}R@5M q T@@w f!$ 5H @!R@ p@uA9( 86F!v5@ p@uA9869!<i`5@@h =@9)6 @(@)=@i4@H @?QqT! T`4H @!0Rp@@ o@uA987!?`4R@ Hp@uA9h86DRh @ AR}R}RV"2@T4@V9@ZZ#T@@9҇H'@$@@y2@yAR*WB9@ @ RARM@ @ yC@ @)y @@ @[{6i@) Y9#9)C*@J@I @i @J @* \6 @J @) (@@#V oh @ @)6@ @ @ @k@J JC+@k@j * @j+@k @K +@k @J )aH0@9q{FOEWD_CgBoA_\ԯrWO{R{BOAWè#R{BOAWèog_WO{CH8)} @J H RJRI!2RT @ @@4 @?qTR(Q H9@%@ @@)A@9)78~R xqA97`R 4( 2CRN;RH9@xRH9@ @ H9 @)  qCZZ#@7@R RR@H70o T @ @@@<@9H6 @(@)=@?qT@(? 1T@ ?1@T @@ qCTH* @) @6 ]@)2 ] pHa/@@!@ ]@)2 ]@@I)A6 %4R6[4`{EODWC_BgAoƨ_@ ]@)2 ]5WO{SsB6i@H7 @K UT6@  @V@:@9 87(C (Ha6@@9rT qT'HA9 @()@H7)@ R% @9 qaT@I)6 @)@))C$HT })@}) ! @}ӂ@ @@)( H6@MT@ @H3@} @ !h{BOAWè_"Rb^@ @ })5( WO{6R{BOAWè_WO{{COBWA_ĨO{C R{AO¨rg_WO{C9@7_@7ҿ`R85(B6@9_r@5@@T8R`R)4R`R$4x7 @@ uA987@@@@@(@ uA987@@@=@97@@=@9H6@ uA9 87@@@@@(@@@@(@ uA9i87@@@@ =@@ ]@4x7@x7@ @@@@@(t@@@@ @ uA9i87@x@@@ =@@ ]@4x7@x7@i@@@@@@qTN^@@@@@qT@ ]@x7)x7x7@ M@ ]@)6H@ ]@6C@@@ =@@]@hx6:@ uA9i87@3@@@ =@@ ]@4x7@Ix7@ $@@@@@@@@!!(.`47@yA9)I.J.rAW6`R484@!2@9?-q T 1@9?-qTBR&4!`Ra{EODWC_BgA_WO{H9@4@ H9 @) ` qCV"6@R RRl@60o h @ h @57h@@<@96 @(@()=@?qT@(? 1T@?1Th @@ qTH* @) @nh>@9(6ARR& @y DH9@@@@)@(!@ ]@)y ]H8@h@ @) {BOAWè_g_WO{CX=@HC94@h@!RR@R"RR@ @) @@999`R4(@%@ @)@?1@T %@!\!`R(@% @?q T(Q H@ @ @(@@@@)@(!@ ]@)y ]:RR@@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97T"@? |@h  (7@kmTH!={EODWC_BgA_h`RRRRRR{RR@929{_O{RV@]@h} SR@RR7{BOA_RARR`2RR{BOA+O{R4@]@h} SR@R07{BOA_RAR0`2RR{BOA O{C@@y !?9qLT?%q$LzaTiR *))hBy(-@h !R"R{AO¨<?=q`T?aq!T)R *hBy(%Bh !R"R,{AO¨_֡!R{AO¨_O{C@@y !?9q,T?%q$KzT2))hBy(1@h R"R{AO¨?=q`T?%qT R *))hBy(aBh h@9h9R"R{AO¨_֡!DRQ{AO¨_O{C @@y(!5qT-qT%qT[ RR{AO¨(iR *hBy(-@h {AO¨_֠xO{CQqT)R(!R jTRR{AO¨g(9@ 9@*uS_qT)_=q$ @z`TAA97 s @qATB@y!qT@9(6@ @ RRG"R{AO¨O{C @@y(!5qT1qTaqTRR{AO¨.(2hBy(1@h {AO¨_֠HO{C(@@y !?5q!Ti1R *hBy(-Fh ٨ R{AO¨O{C@hB@y!0}`{AO¨_WO{e@9(6i@*A@yp64@R@a@ @ RR RRֻ RR5RRͻ@5h@9h7(8@H@HRRַ@@y !?5qT)R *By(%@ |RRD{BOAWè_mRRRR{BOAWè_og_WO { -@@' @@y4!@ yt~ S@906B@qTJq _!@qaTz7i86 (8@H@HRR~@@y !?5qAbT)R *hBy(%@h ${@jC@yH! qT5h@ AT*p7/qTAR J!_qaT>yt%7)h@ A@yJ!_qTc4R R) J*~S>q HTb6i@9(*h9W4RRBq'  q K*?R) ?H@~SS qkJ*q'Bq CTT6_*87J6X6QqT k jyhx) V6R 6:VQq T k9 jyhx) j6 7(8@H@HRR@@y !?5q T)R *HCy(%@H HZQQq*T k ) jih8) O6O6RQq)T k jih8) ֈ 7(8@H@HRR@@y !?5qAT)R *HCy(%@H ^.HC@y$p6S MRR}RG6RQq!T k jyhx) 5RReRD6RQqT kq jih8) 85>qTHC@y!qaT qITZqTEHC@yw7:A6RHC@yw7z@6Rq`TqaTHC@y(p7>ytR!HC@y!@ Q?%q(T y ii8J @H@ 5@96 @1@9-q`ThB@y!@)>(yh*@)9+#%q TaqTiB@y)!@J>IyiKyh9/(R'R<HC@yhw7>ytPR<HC@yw7Z66RHC@y!@1q TaqTiB@y)!@J>XyiqTARy @yhcR^<^:26R"RRRR٤ZHC@yw7Mz/6RHC@y! Q?UqT Ќ! ii8J @pHC@yw7:I@9I(7iB@y)!*Q_q;(T+Rk!ʚ, L Tx5ZhB@y!@)>(yh*i@)+#5R<KHC@yw7z(6R?@qT5>qTHC@y!q@.T9RnHC@yhw7Z@@!RRT@RRr(9@ 9@*uS_qCT)_=q$ @z`TAA97H@ @"Rfߠ C@y(w7+Rj!ʚ_ T q"T #1q,T%qT=qTH@ A@y)!?qAT@ @)@*!)#@@  %@9 S'RRWy(6@y`i?qTRR5q`TeqTI@*A@yJ!_aq`T_%qAT)@*A@yJ!_q!T)@)@)@)!(@@I@yi@@9#8R(R#0J-Q_qhT*JJ@J@) @Iyi)@i)5qR RKhRj RH,D@ R r  ?q T @) @# @VR#HR#WR'RRx(6@y`#@4@@9qTT!"RX#@@CR'@4@2RR@V"RҦRRVH@9*H9;@@HC@yw7 BRN@'(R#'@'@ RRj@9J*j9 hB@y!@qTAR?RRK'@)-@)@?a TR{JOIWH_GgFoE9h@9*h9h@9(6t@/B@yhp6@t4~S7yr ThB@y!@qTAR)> yhx)> yhlR:'@)-@)@?T{JOIWH_GgFoE_ֈ>ytl_O{(!@9S9@9(07hB@y!@ uQ?!qTk@lA@yp7 Ҍ!Q5qTj@!Q5qhTk@9 6KA@ykk!Q5qTJ@97'RI% 7)JqH)(  @! R({BOA_WO{@@yAq TRO 4u@B@y"qT=q!T@96@ A@y)!?q!T@@@!!q @zT@A@y!q T'p6@ A@y)!?=qT @96@ A@y)!?qT@@@!!5"@qTAR)> yh!R,xh@ A@yp7)!*R?qI B@y!QqT  @)!+R?qiT B@y!QqhT@9( 7KA@yk!qTJ@jK @k]k%qTJ@K@j_ T{COBWA_lB@y!!Q%qT Э il8 ? k T? kT? kT? k@T*Rk R@9)y9k@9ki *9 R R_qi(*9"R {COBWA_{C@ A@y p7 J!_qT{A_ @J!_qAT @9 7*A@yK!qT?RJ R_ kT)@* @ R r*j!T) @ J}%? J%$J T@ @97A@y!q@T@@y!@qTARL)> yh!; R{A_O{C{AO¨_@ A@y)!? qT @9I 7@@9(7@929@929_WO{@96uB@yh@96t@T"RtB@yhp6@4`@@B@yHp6@ A@yIp7jB@yJ!_QqT)!?EqT@9H7*-Q_ qCT?%qT?aqT@9 qT"RlhB@y *!(!3hBy(Yjh {BOAWè{BOAWè_O{C9 @9)6t@B@y! 5Q_9qTR k mij8 (2h9R9I6(2h9Rh9R9I6h9B@y!r`TƟB@y !@By(@&{AO¨_(2h9Rh9R9)64O{C@96h@A@y!qThB@y!( @H@HRRRݵvH@ A@y)!?9qT @9)2 9{AO¨_WO{4Д":@ 2:6-@y4 RIr *:h@97t@9N^S(8@H@HRR@@y !?5qT)R *By(%@ e2u@hB@y!qTү(Rݛ@@yI,R *@y6ȊEB@y!%qA TR@929p8RRh,R{COBWA_)Y:@ih@9h6)hi@9 6 7)))@) @ @ @y!RRR+RRTa@RYh@92h97))9)@*9@KuSk QqTKR*jT)MA9i62h9{COBWA_Rp@@y)R *@y&CR9B@y2ByB@yyBy@(0@h%C95(A5%C?hB@yi,R *hByȎEh {COBWA_֌>%CT<C_WO{@B@y !? q$@zThp7hB@yp7 hB@yp6t@@hB@yw7b`R@@y2R *@y7^FhB@y!%qaTRΟh@92h9"R@@y)R *@y&CR9B@y2ByhB@yyhBy@(0@h%C95(A5%C?B@y!%qAT@RȊ@92Ȋ9 Rʚ@@y)R *@y&CR9B@y2ByB@yyBy@(0@h%C9 5(A5%C?B@y 3R *BybF @ A@y p7 @ @ +@ @I )@*@ ?`T*A@y)@Jw7+@9 6+@ K   k@KA@ykp6K@+I*@J*@97)?T @@ )@*@ ?`T*A@y)@Jw7+@9 6+@ K   k@KA@ykp6K@+I*@J*@97)?T@v{DOCWB_AC_֋>%CT<O{C@907(6t@ݡB@yhp6@t{AO¨_D@@B@y!9qTB@y !@By(@&{AO¨_O{C+@9(6t@B@y)!?5qT?eqT?qAThB@y!"RB@y!EqT(=@C94h@92h9B@y!r`TOB@y !@By(@&{AO¨_2h9B@y!rTtWO{@96@tB@y!eqT@ A@yip7@!B@y !@*JByH@&{BOAWè_րWO{@@@y! @9aqaT)i9*J!J9@JJ *j9B@yk!qT@@+X7l!@q!Tl-Q-Rm 1)@z@T{COBWA_,R jTk-qT*6ʎ@9(6=q Taq T%q TJREqJaT(7Ȏ@9)R(h A*R Ɏ@9+Rii A *iRjR+RRaq%qJ=q"RR0@9%q`Th@9((7 @1@95qTARRB@y 2By(@ @@?q#T(Q @ ߎ9@y{COBWA_#8WO{@9 7B@y3!H7OqT(A @H@H%RR{COBWA@B@y!*qTq TqT@9i(6Hh7(9@ 9@*uS_qCT)_=q$ @z`TAA97@ @F@!RRv@R{COBWA_(8@H@HRR@@y !?5qaT)R *By(%@ (.q`T&q!TR4&qKzR R!&q!T@ A@y)!?qaT@ RR>R{COBWA5(@@ER e!8 e!R(!@9(06B@yQQqT@929hRQiqTRqCTߺqT@929@9 29߲qTR qT@929{COBWA_WO{`@9 6h@A@y p7(8@H@HRR@@y !?5qT)R *By%@  RRʱhB@y!eqATa@Rh@92h9#R @@y)R *@ye@R9hB@y2hBytB@yyBy@(0@he@95A5e@?h@987Rh@92h95R RARq` @ RR RR RR޿RRvRRr {COBWA_h9(3@(9@@ (9 @) 2AR@RҪP(9@T4 uCB-RR @ RRKhB@y!eqATa@RJh@92h9"Rv@@y)R *@ye@R9hB@y2hByuB@yyBy@(0@he@95A5e@?ց @?qCT(Q h@96`@Ɲ@@yhp6@{COBWA_h@97>e@T< C_WO{@@y!@)RjRqIRqT @9 @*06+@k@kA@yk9qTJyj9*A@yp7qT @qT,(=@hC95h@ A@y)p7q TARKd@ A@y)!r T@@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97T@Rϖ@@y* )@y(YtR9 A@yp6@)y Ay99ARph@ A@yp7 A@yp7@ A@yip6@3RRShB@yhp6s@3 )> yh0,{DOCWB_AC_^_WO{@96h@ A@yp6@H A@y p6@B@y!qAT5b.@9@@ R  R r  ?qD HzIR rdIz  $ @z@@zT(9@4@ (9 @)  uC@BR@@?q#T(Q@rTRi9{COBWA_ĨSWO{@@yKh@96t@T"RӣB@yhp6@4{BOAWè_WO{@96@A@y!!qT-q T1qTaq T%q@T@@y!h@96t@T""RB@yhp6@4{BOAWè_ր@ WO{@@yh@96t@T""RѩB@yhp6@4{BOAWè_O{C@97( @H@HRR@RRi{AO¨_t@(9@ 9@*uS_qT)_=q$ @z`TAA9H7B@y!qT@9(6@ @ B@y!9qT@929{AO¨_WO{@B@y !? q`T !R@B@y !? qTp6@h@9B@y07?R* _qA T@9 (6 h7))9)@*9@KuSqcTJ=qD @z`T)AA97@ @ʗh@92h9ӛu@"R"RRRB@yhp7ip6@uB@y(8@H@HRR@@y !?5qT)R *By%@  RRѮ@"hB@y!k!TqaTh@97a@Rh@92h9hB@y !h@9?q!T(6t@4B@yhp6@th@96t@RRB@yp6@4 RRhB@y !h@9?q T(6t@B@yhp6@t{BOAWè_WO{9h7t@B@yhp7@"RҚ"RҕRRB@y !?}qAT@9 072By@ B@y !?}qAT@9 072By@ {BOAWè_WO{@B@yp6@ A@yK!@%q@TK5 @aT@ A@yK!%qT @9qcT @@!@9 R h3SRRORr@B@y0R *ByF !RRҪl6@y` @)2 {BOAWè_,!@  yl 6@9j07@9+ 7 p6@-A@y!%qATqTl@9mR  *9*@9Jj *J29,@9qT{BOAWè_k29k@9j39* @? i@*A@yp7Jy*Ay?i@9)yi9iB@y)!@?qTRZI5i@yi Q q(T)R(!R jT +@Jy*Ay?ki@9+(2h9:{BOAWè__g_WO{C@ A@y)!?q T@ @@ @RXRb9 @$RERĽ @@ @R߷>@9r(Rѩ ji8)_qaTK}R?` TY?'C T&с!"R 5('Q}RRDy@@yR *@y}C0 @A5 )}C9 4Δ>}CTRRvDy@@yR * )@y(qC0@hqC9H 5A5qC{EODWC_BgA ֈ@iR r J2@HRJGr) J *4( Q}RRHDy@@yR *@yyC0 @A5i)yC95@?v{EODWC_BgA_lR!Dy@@yR * )@y(uC0@huC95A5uCS>qC N>yCI>uC`T<Κ_O{C@B@y!qT@9 R?(jATi@*A@yp6)@*A@yjp6)@)*A@yK!qT+@l5@9L6k @ @8qkl@9qTqT @8qk@9JqD @zT)@ T )9)@*9@KuSqcTJ=qD @z`T)AA97@ @ @9y9{AO¨O{C@978@H@HRRc@@y !?5qT)R *hBy%@h  `RR{AO¨7{AO¨_RR.`RR{AO¨'C_WO{@B@yhp7@@@9B@y !R+%Q!qT R Rl  ik8 Rh9Ȏ@9)*i9@h?qhTh@R)))@)@(yh  -;)%Q?AqTj J) Lii8k `Ȏ@92h9B@y!r`TB@y !@By@&@@@ A@y p7dRh9Ȏ@9H*h9@A@y!q Tܖ7R9@ 9@JR_)jaTIA9(6a!7 R\h@9y Rq) *h9"Rh@9qT@B@y!Ȋ@9 R Ȏ@93µRRR@B@y0R *ByF !RRj6@y` @)2 '@@ Ri9 A@y)!?-qT?qT@6@96 @3@95qaT@ uA987B@y!@qTAR)> yh4'{DOCWB_AC_R @i @@@R q`6UO{C@@97{AO¨_h@92h9"R:!RR3{AO¨_g_WO{h-@@@9 6v@B@y!q! T@@)R Ɏ@9(7Rr2  ?q T rT Rb2 @ qT@ @ @4) 6Rp @@ @ CT@9?qT@9?qTjT(5RѿT@9qAT@8qT9$82 @ˉ@( !!bRCR@ @ @bT@rU,@*h@9H87,!Rh@9(78@H@HRR@@y !?5qAT)R *By%@ =@i)-@)@?AT{FOEWD_CgB_u@|$RRT @ RRa RRF RRRR=@i)-@)@?TDCBR @ qT@@r!ZR @?qT(Q 4@)  @bTK@rslxp `xޗO{C@906i@)@)@)A@y)?9qT`L!%h@9yh9h@ A@yp7@@@@qA9H64!RRܝB@yhp6@4{AO¨__WO{@96@ A@yp6@hA@yhp72@ A@yIp6@ A@y)!?9qT @9)y 9{COBWA_Ĩ_@@y)R *@yC@@y!@ ւztw6i6h@ARi`iB@y(!@zhj(6 J!J@96*K!I!3iByZki qTh@ @9)y 9{COBWA_Ĩ3WO{@97 ))@)@)uA972h9{BOAWè_{BOAWè.hB@y! @H@HRRn! RRQR{BOAWèEo_WO{h-@@@9( 06a@)@*@IA@y+9qA TT@B@yJ!JQQ_!q+Rj!k RJ D@z T)!?=qAT@IA@y)!?=qT@+A@yk!=qTJ@KA@yk!qTJ@K@j@ Ќ8@_ Tk@l!@9qTqTk%@95+RR4@֢w=x=B@y !?%qT@)@@)yj*@9_ q!T*@K@9qTK@9kQq(T(@9r+RB@yhp6@uh@ A@yp6@Th@907ΖB@yp6@thB@y!@qTARci)> yhxlRJ+[i)-@)@?T{VOUWT_SoR_֕@B@y !*9Q_ qbT@@ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97TB@y!9qaT2B@y !@By@&;h@92h9?qAT@9(6@ @-U qT@ @ @CBR9 @Rc9cRWcRj`T@@y`@ =@97`1RRi "RUΏc@@=@H4@a! BRCR3@BRֳ@@?qcT(QJk%@9 5)@,A@y!qaT)@)@,@ T)@*!@9 6_q!T)%@95h9 _qAT)%@9 5h9h@92h9B@y !?QqT!UqT(@@yp7h@92h9B@y!UqTh@92h9(@@yhw64@"Rwܽ @ӕRRӛB@yw7ٰWO{@907@hB@yhp7`>!RRRϣ B@y!@qA TARPi"RʒC@hB@y!}qaTh@906"RҼRRܰCRR Rh A986a!"R"RңҞa@RhB@yR *hBy~Bh @9i@9)(*h9@9h9U.B@yhp6@ ҨRRo@ hB@y!}qTa@Rnh@92h9Ei)> yh0#{COBWA_8@H@HRRI@@y !?5q T)R *By&@ GRu@@yR *@y~BR9hB@y2hBytB@yyBy@0@h}B9( 5A5}B?h@92h9̓B@yHp6hB@y!@qTARi)> yhlR){COBWA_RR`hB@y!}qATa@Rh@92h9nR"@@yR *@y~BR9hB@y2hByuB@yyBy@0@h}B95A5}B?NLh>}B`T<єO{C@(@@yp7҈B@y !*Q_qCT4@B@y !*Q_qcT?qThp7ү({AO¨_{AO¨WO{@ A@y p6@t B@y"}qATR4@H @ @ @  )qAT+ @kQAyk @@ ) @+!  2`"RRa!"R&B@y"qT=qT%qT9H6$@A@y!qT@9qTup6@( A@yp7@9 qaT"RUR!Rɍ{COBWA_{COBWA@@y` ))@ @977 @h_(@%@@@ @y`_*@I)@ !@*@K%@k@m@@4hyl @97 @qkT}@Tmyl@9@9k!T@@T {C?@qT@@y!EqT@9H7@97{A_ @(A@y!qT-qTqaT @ @ _%qT@ @J 4a6(@92(9{A_(@ 5@9 6A) @@@yi JJ@ @97l7 @H@%@@@ @ @0X6@ 1@9?5qT)K@j)@ !@K@l%@@@@4ym @97 @qkT}@Tym@9@9k!T@@T?r{A_ @ 1@9?5qT77{A_ @*]@J87J6x7 @{A_@ ]@?r T{A_{AI86 @{A_`p#sWO{@ A@y)p7@ A@yp7Bxhp7@Bxp7@Bxp6 !?qT@9)?qT)RR)@yw7Bxw7{BOAWè_og_W O { h-@@/H @ ?5qTKP6H@S@ @ uA9(6i3 @ +rJT-U qTH@ @+S@CBȐ+@R@+@ +(h  R sJ+ k@9 yk?,jTK8+@_9@H+@(@9H073@hB@y(p7#B@y(p7  #w@B@yp6@C@yw74T7R'@3T?6T(9QqH>Tk kq jyhx) J99B@y!Iq (Tq'TUqT@@A@y!EQ q&Tqh%i)U%4@R#oB@y!@q!TAR89B@y!9qTqT@9y9#R9B@y! -Q? qT%q`TaqT9(R7R6!94`D%bR29Ri)> yhO`hh@&(8Qq/Tk kqjyhx) hC@y!1qLT%q T=qThC@y!9q@T85@RnhC@y!@qTARx+5B Rx'*'@@*T9Qq)T 8Rk kAijyhx) hC@y!1q`Taq T5@RnhC@y!@qTARhC@y!qaTh@906x5@RnhC@y!@qATARqhC@y!-q`T%qATh@9yh9\x"44R"R@ш@9qTmqaT(S`%c@RTnhC@y!@qTARE-5qTeqT 5hR"R@R yhS`h$@&R4'qATR#@"R҅RR`R{q'@_ j95RRPB@yw7қhC@y!8R9q@Ti)> yhh%i)> yhh%S`h@%Ri)> yhhi)> yhh9`h̍@%i)> yhh)&7(@9}qaT8@H@HRR@@y !?5q!T)R *By%@ @Rm`$h@x%RRߢ#@R7@5_T(@9Qq)R(!Ț)   @T/@i)-@)@?T@{KOJWI_HgGoF_@R_m`&@RVm@#`D&ѐ`#͐WO{H @ ?5qTP7h@ A@y p7@ A@yp7BxHp7$rT{BOAWèo@Bxp7@Bxp6 !?qT@9)?qTvRRv@yw7Bxw7{BOAWè_og_WO{H@@@B@yt?r`Thp7@(C@yHp7B@yHp7 p7@B@y p7 A@y p7R6@B@yp6Z@HC@yw7H9i?*MQ R?q_q3r"RJÉ@2 ,R)r h Yt +qT4qT80q`T,qT:_T{FOEWD_CgBoA@ A@yp6*@KA@y w7 T"Rl`$h@w$hP i )+ih8J @ 5RIHR{FOEWD_CgBoAP"Rol`$th@Q$B@yp6@US&qT!:a 1R:8@ =@9i7/9@@@@)9@%@`<'0&qTR{FOEWD_CgBoA!:a w@@=@H4@RR{FOEWD_CgBoA _WO{8@9 rT R(@@L@9*!6h{COBWA_Ĩ_WO{8@9 rT R( @@t{BOAWè_!6t{BOAWè_#RWO{!6?@@T!:a RR9 R(L@9h6@ @?qcT)Q L@9yL9XT @ L@92yi(*2L9 :@9 rT R{COBWA){COBWA_@g_WO{CH-@@@ A@y)p7@ A@yp7C@yp7 @C@yp6@B@yw7!RRh@9yh9 )!)@9)(*h9 )!)@9i6 )8)@ Ja J@? `T2h9B@y)!*mQ_qbTh@92h9C@y!qTqAT@ A@yp6@C@y!q!T@9y9@ @hP6-U qaT@ @@i?Eq TɎ@9) *h9B@y!r T)B@y !@By@&UBRF@ 9@ 9@*uS_qT)_=q$ @z`TAA9(7a!14a!@4a!2@4a!24a! 24a!42`4a!T24@9(6Ȏ@92Ȏ9@ @r!ZR@@y)R jT@)R *@@?qT(Q:@9 rT R'\BL@9@ qA9)6 R"6@ qA97@h RAR7``h@92h94@ ]@ 87@x6Hh@ A@y p7@ A@y) p7Bx p76RAR``h@92h9h@ @9)07@ A@yp7Bxhp7$@Bxp7@Bxhp6 !?qT@9)?qTRR@yw7Bxw7?@I)-@)@?T{EODWC_BgA_@Bxp7@BxHw6 !?qT@9)?qTRR@yw7Bxw7~f@ @ R*r* R_ kT @K1Ak T)2 @J @) ?8 @*R) * _O{C @9 6h@ A@y_!rTK!q!T @9(6h7)2i9 @9)y 9 )9)@*9@KuSqCTJ=qD @z`T)AA97@ @p6@ A@yK!q T{AO¨O{C@96h@9qT`@@@y!rTRR#hp6@@{AO¨_{@96@ A@y?R* _@qaT@ A@y)!?9qT @9)2 9{_CWO{@96t@TuB@y"@B@y*!_-q T_1q@ T_%q`T_aqTMq TR 4@9 6@@@y9qA T@9 6n @@y!qA Ta!H'RM_q T_-qATMq`T<MqATRs4@9h6@@@y9qT@96N@@@y!qTa!8(RuB@yR$@9_qT@K5@9+6J @J1@9J-Q_qTi)>(yh`Pԉ&hB@yB@y!jJ>UYh(!qTAR3Uq(R)*iBy)(Yhh {DOCWBC@Yhh-)(RW`*R!{DOCWBC_@9h6@( A@y?!rip6@h__CWO{R@4h@96h@ A@y4!2q RIz.Q? qTbq`T&q!T&qKzR RAbq`T&qAT@ A@y)!?q!T@ ) @ @%Rh-i)9*q(a!d) bqLzTa!P*a!H+R{DOCWBC_O{@ A@y)!?qT @9(6R) 9h@ A@y)!?qaT@9(7hB@y!@qTARi)> yhA!; R^{BOA_C_WO{*@9@5@ 9 @) ~H mC"2@RRR@2@@ @R @Rr( 6Ʉ@2@R RRRz{DOCWB_AC_h@`,Cog_WO{H-@@`ΒRqVZQ!q(TI )I+ih8J @[4Rxy9>{u@4!{u4Tүt6ҫOh Yu@qTR@1`TQ1TkiR :8HO@B@ki"8k;A!-{RRR} Sk R R-RRoRv. qT!j@TJ{8q) W qdGz? j(48~S>qIT765 4qTRqT/:8H<RqTTS@+k38qT/oRR-R R R`7)hRr(q`TqTHR*9HIR)(x~S>qTa!-R{uR(Rw-ea!x-BR5Ra!-RRa!-RyR Rw-Ia!-Rm{Ru@I)-@)@?AT{HOGWF_EgDoCC_֩WO{4qaT8@H@HRR @@y(!5qT-q#T%q#TH RRx0RRNQ qbT1RRj9{COBWA_(iR *hBy-@h RRRl@ RR RR"RRBRR{COBWAqT5ȪRr~( `  K}@{RRBRRV!R"!R@RRs hB@y!%q!Ta@R5h t ,qT5&qDzR-3hB@y!%qTa@Rh@92h9{COBWA_֟qT,RR1T@929(fqaS[@@y!!q`TqTh@92h9qT@92{COBWA_RqT@929B@y! Q?q*RI!ɚ ) $@Th@92h9ܕ4h@92h9{COBWA_R@@y)R *@y%CR9hB@y2hBytB@yyBy@0@h%C95A5%C{COBWA {COBWA_q@T RR{COBWAƩ`xh>%C@T<H@H_A5 |} iiJi)_ր__WO{7{BOAWè_֕6`f h)R 7BBA9{BOAWè_`/aRNO{CR//Hx~B9=@ Gv@5{AO¨_O{C @@{AO¨WO{=@5AB@94`0/@sb@@B@y!rAT@97wS`/Nq AS R 3q@zh@92h9Rh@`H03{BOAWè_RR@ @ @ `T A@y@Iw7 @96 @J  J@j*A@yjp6*@*( @I @97Tu@RJ R<{BOAWè_WO{=@5AB@94`1[S@hB9@R) R{BOAWè_ִB9{BOAWè_O{=@5A@R@@B@9@9@RRқshB@y!%qaTRSh@92h9RDRhB@y!%qTR9h@92h9RժWR^@@y)R *@y%CR9B@y2ByhB@yyhBy@0@h%C9h5A5%C?RҭRҨSZR0@@y)R *@y%CR9B@y2ByhB@yyhBy@0@h%C9 5A5%C?RShB@y!%qaTa@R΄h@92h9#R@@y)R *@y%CR9hB@y2hBytB@yyBy@0@h%C95A5%C?@RRް@@y!r`T3hB@y !@hBy@h&{BOA_ H>%C@T<{C@@y!rT @9R) ?qaT@@@y!qTh5 9 7I)> YhAR@4=@AyI)=JJ=}qIJJ=iqH#@ 5{A$C_WO{@ @ @R@@A!5RRR@)!:)a !T@8ARE@Rd@8AR=RR>@9h7@@=@H4@@ RR  RRRRtB@y!qT@R@9@9*urH29%vTB@y!qT@RȊ@9@9*urH29 RR RR@RR4uTB@y!qT@R@9@9*urH29  RRR~Dy@@yR *)@y(qC0@hqC9(5A5qC?B@y!qT@9h7@R@929 RRR!R٬t@B@y!qT@9h7@Rh@929 RRt{DOCWB_AC_H>qC@T`"R/&V" (b"#&:>9@(A! R{ҟсi&@*) &)s`@t.@t0@ts"`@t! @t(@ @ * @ (@t @t33a7@t7@t!7@t6@tJ8_9J _9;JA_os.h@Ghth@h @hS @3@3* @ otuu@`@@hJ@9qTh@dt@ @* @ * @ @ -7 Xt@@Ut@Stҟsâs`@@Y/@Z@9(_5-@@?q#(T(QO@H^s`@d+s `@f;9BP2@li{gy{# `@mssqq @ o}k{i9C @`pa_@wYW{ `@yQOB @@zIGEs`@}=;sb`@@31s`@ )'s`@#!s1`@;9s"`@`G E sb`@SQs`@`_]s`@kis"`@`wusb!`@١סs!`@`ϡ͡s!`@šás""`@`sb"`@s&`@`s&`@s"'`@`sb'`@s'`@`}{2xs `@HrFpa3@ThRfdl_8 Llq_J )y   a@\7xyog_WO{(-@@9@h%@R90"{c87: Z# @ @"Ayy@h:@987@ @T|@`T:(@9h4 @@T! @T @T 3 Roc238h@R' qT*Jkh8) Rv9@yy@  J7J@? ` T)A6)@J6J@) )C R @@@@ R r qT2RiRv9@yy!@h a @h 1@9?%qT @@@@HA!o*@)*)@ TarRu@@@ R r qTcBRmu@Hp)aZ))-@)@?T{VOUWT_SgRoQ_@\7xR)Rj9@yy  B7!)9(@ %@ UiR A! RؓRIRi9@yyB7G\@kT*@)*)@ MTias8`@8@T@ q TQ @) h!)9(@ %Ayy@h!)9(@ % @TA!(RCRB7'aR.! @TH%A @TH=  @I)JJH(A!  ДB7[@kTAyy@h  wߒҟ@4@H4_ւWO{е0@b0|Aq|h(@ @{BOAWè_#mog_WO{C (-@@R&{Svb@4(R#4@9h 4u@p+qTx@X} @85 q+ T**Rkzj  @T퇟  *7!} (Tkm@85 K   aT7R)(9A9@  !}!"8 @9kXz@z) * 9еb.9C9 Y))-@)@?TC {FOEWD_CgBoA#l_ )!67@7@? TAT#J}?"JT'(@85@ T@ +W@ @[!   8K(zz !Rw}@#;!ɑ@}iy/@@iy<Xk9  T#@?6J{Sb+@!6 @(@'@)!*R  T쇟  *,7#} Tk @85K-yj   -@@#4@95s `@p) ?s `@@?qT(QRДB7@89b@kC! qhT*) )1+ih8J 8@WRC9@yGy{@@)2(R(k9v@J9v@iI@)IoRIRC9@yGy-RiRC9@yGya @h 1@9?%qT @@@@HA!tߐ RR)RC9@yGy  Z@kT*@)*)@ MT%_s8`@Д8@T@ qTQ @) h @a! @2IR  @ Rq h( mCs"i2@ RRRj Rr @j2@@ @R @( 6n@2@R @ Д88R@!R @P R"RRM@@@?q#T(Q@RA!!R@ @) @(@)R *@!hR"RvR*=R;)  @) @ @) @!(R"RcR)  @) @ @) 2(R"RcR8@@"(R"RcRs ` @) @ @) @ "(R"RcRߨ)  @) @ @) ))- @"q`@Rޜ`@@@؜@@Rnh@ @v@V@y)R j "T @?qcT(Q  -`@)!(@,"RVRR@@)a (@@"R@@) (@!RbRx`@@[A! (Rv| #aQ qKTRR9 9CR7 RRR @ @9?qAT @8 4g/U9qhT ){uxJ @*yZ)8(@95(RJ H9(9ZR)RJ8I9) ?9Z @8?qTZ @؅Z@7@` 3A!Z!R/@H@8 4;(R)(9@( -o4RH@8H42H@8qa"R"H@85A @9I4x Q~RA!x Q@(RA! CR !/@g@  xqLT4A!u QwRR R#Ҍ@  R) * rT @8* JIyi R_)jATj QBg@/@cO#)C8@95A7@ 4w R@h3 s R  K@8mzk ?-j@T4 qTJ@9_QqaTR)RJ8I9) ?9sb.h@958@9h9l?R9|O@ @JJ@+k?i+k_;6c@5@9GC7i 5@ |"A34R@@9H4ARXRR z T  .@ "5 "RT@yy4ARWRxR@2p T  @@@˚@@RJR 5R99 @94 (@hzh(jT(@8jzh*jT *_qT @8 izi)jT r T(H@9izhh)jATvqTR՞@i   R8H@9qT)8(@9H5 9598@T@@@aRN@@B28 "H RRV  $RP  % RJ D&HRD@9q @T@94ARXRYR w  T  8`TBR@95@ 0's4pRC@!!U5@@@aRڙ@@ '(R-1@hRkR9R y) RМ 9@ @ M{@#RW@H? @-!RbṚ`@@!!>(Rw H-"RcRͣ @) )(IR*J- %R*J- %R*J- % P-Rb 2R9RRA @ @) @@h@R 9i` $.{R@ @) h @h @ @R@ @) @@@R9w @ <.k@ @) @ @ 1\sb `@ @) @@@9 @ X.G@ @) @ @ -ҩ.#4@95O@G@ @[@"@B799h406))@946)A )@I*1@9J%Q_qT) @)@I @(@9R#c #m@6))@I*1@9J%Q_qT) @)@I)@ @!9R#c m@6i@I*1@9J%Q_qT) @)@I)@ @!9R#c l@rT  R"RcRע@@S@ 7 6! !$a2@ )wH@h)5RTR  7! !p$RK! !@$hRvh:@907@ !34t2R@t!!)R 9ts `@@?q!T(Q@9% T  !RP`@9qhRHR/dRRR(*h@ @9@@4 !4)R 9t@ )-@)@?T{GOFWE_D_֨8 @9?rT)2q`TqT@8qTt ARA@4@96@ @h AR`! @5HaR@9 )+Yh*R_+jTqAT h@8,Yh_,j`Tq TqTCR!DCRh@-U qaTa @BRg`ea @?qc T(Qh ! @5R |@T@RsYD6R@ARhiR(KR} } Sځ]CD@ @6 @)2 &N@8qTRHR/dRRRZ)\xT!:a5@ T-9!R_!RbRږ`@@@BRt@t&! @53c~.cL)c8$c{C@ @ @) @i)8 @y] R * a.@95@{A_֨8@9(4҂RR]@@{A__WO{s8a @ @) t@hRBR#R@! ARBRcRz@A RBRRmR@a ARBRcR^@@ւ 4@97D]@"8BRRz y@8@907<!RBRcRB@@֢ 4@97(]@BRR`(R y@8@9h07dVRARBRcR&@@ 4@97 ]@BRRD y@8@9H07`@@?q#T(Qt{COBWA_Ĩ_`@7t{COBWA_Ĩ_O{za@@!!|!.8|!d54|!(>0|!!d,|!! (|R_Co g _ WO{-@@Z@@@aRω@@9R"u(6@ @T @@ŅRr kT9u 487AR7U 79@6@ 9 @) T iC".@`RRRV@.@@ @ @@ R u3 ARߗ6!!RCR~ @c~7;@y @q!Ti!ARɗ@ @@( !!XRCR~ @c~7;@y @qATO!AR6@ @@( 6!!xRCRt~ @c~7;@y @qAT3!AR}@ @@(  @?qcT(Q x7r RbR@@ @ @! @ @r} @@* @ @@k @k k Tl_8qT9_ T+RŅRR@y J @9 J*n5 @@ @n  cT_8qAT@9q`T5 @9qT O 8_,T# wr @?qcT(Q 8@94/}|kT||kT8@9(4҂RR\ @?q T(Q 9u 5874 7ӈ86:@9(87@ @B9d!Y5 |@B9[!4[7RW@H@HNѿAT @?qT(Q 5 @?qT(Q Z )-@)@?T{POOWN_MgLoKC_Y49u 58@94{g_WO{ @8?q5())  R@9_q  Yj)R?,j`T_q T R6@9q j *@9_q Yz?,j!T @9_q Yz?,j`T_q TT7}_qTCRB} !'RCR<}"CR7} !'BRCR-}q!T95!!bRCR#}` {FOEWD_CgB_ֈ~@+`W~@ %`!`O{X R(x!(zZ!Hz!zR3{{R{|_WO{ |{{{4 RkTkT qTh@ @9?qaT@9yQqT R{COBWA_Ĩ_R{COBWA_Ĩ_O{CRBRcRlaR@@ h>@9(06h:@986 R @ @ R*u3 {AO¨_@_WO{-@@bRcRD@@h@ @aT aRO@@h@ @ATC} @@ !@ 6"R#R @ !@@)-@)@?T{COBWA_Uz_WO{Q6 qT@9h4 !RbR@@!RYQ"qTsQ@@9qT@8q`T5@94Rh|"RcRޒ@@ZzQ"qlTRwQ" 2R"RcRʒ @@ @) @@aRφ@@9qKT""Qq T@Փ@ @@@ @9?q)H 7(6i@)2i(?6l@h@H @@8@9H87@ @@T{COBWA_Ĩ_֯|@T!R{COBWA_Ĩ\_O{@97h629*l _@9y9q@T5R) ?) y) (R()  1Th>) (O{vy@) raT(@rATR(si@96y(1T=(si@97  }*_1ATsi@97i6)2i9}@^h@9yh9]S(si@9i7O{C @A7@6 @j}ӫk!:+i*@ )A6({AO¨_WO{B6@7 @* 66@] T Дp{RC` $RR=` ,RR7`6@ a{BOAWè_bRg@WO{@ @@ @ARPzTCRz@z R{BOAWè_p!R{BOAWè__WO{ @7HX7Rh@- @_6 @RJV@-U qT @z4:@9 7R{COBWA_Ĩ_@@I6 R{COBWA_Ĩ_0!RR{COBWA_Ĩ3BRTZz`5 R{COBWA_Ĩ_O{CzR{AO¨WO{z{BOAWèҀ(<@96)@(@)=@i4@!H@9SpR__WO{4@96@ 9@9  7R{COBWA_Ĩ_@@!bRRt B6@0@9%qaT @ @@M6@= T7 @ 7@ T6@CԂAR@_sh:@9H (7!:i)CjU)} ? Th@rTHP7@7HX7Rlh%R{COBWA_Ĩh@H @Th @@9qRh@@ h @ 9@9 6@@=@9('73R*@)*)@ MTE@{COBWA_Ĩ_BR?:EWO{B6@a@aMh@7rTX7hP7Ra @(8@9( 6"R7h@ @BR!43Rn@{BOAWè_֨7 @ 7@@T6@C6@= T9@3i@ 9 @) ,O }C`"@`RRR8Q@|@h *@7@*Ta7@y h@ 2hh@  j'xyh@ t h@ R *hAR@@h:@9 (7!:i)CjU)} ? I Th@r TP7@7X7Rg@)*)@ Th@( @hTh @@9qR@)*)@ MT E?{BOAWè_h@@@)*)@ T?{BOAWè_h @ 9@9 6@@=@9'73R@)*)@ Th@rATR?{BOAWè_MDNBR>TD@)*)@ mTO{CxRÇ{AO¨WO{xb 2{BOAWèO{Cb 2{AO¨O{@ uA9i87@@ @*=@9 6*@I@J=@4)@@OXs[Ol[@f[_WO{B67@ @+ 6)@ J J}}_AT6}@i@7":?r@TX7b P6i@) @@ @RNq hi@":?rTb@)(@!{COBWA_Ĩ_!g_WO{B67@ @K ֢6U@ ) 7C q T @9)@}@ @-U qaT@BRW!0x4!x4 )?q(@)J- k qj)@'/! R_[@ {FOEWD_CgB_XZ_WO{B67@ @+ 6)@ J J}}_A! T6}@h@ 7":r` TP6i@) @ X7 ?!@q!T%QqTh @h@(RRa 0@9%QqT@h@R`0!RR+h @ @7*b_!@qT))%Q?q(T @b@@@@ @Rob( 1@9?%qT @ @١q` h@":rTb@@!{COBWA_Ĩ_!WO{sB67j@ @+ 6)@ J J}}_AT5}@w@)!:*q) @!h{BOAWè_D ZWO{B67@ @+ 6)@ J J}}_!AT6}@h@(7@)J!:Krh(@!{BOAWè_&h@! _g_WO{C-@@B67@ @+ ֢6)@ J J}}_!AT7}@h@ -)U ?q!Ti@) @t @#:h7BRuVh@#:6@`v @~BT**qS} ! CT 97 ! @ T 97  @T 9J7 @T 97 @@T 9 7 @T 9j7 @T 97 @`T 9*7(@T(!*A_)TT *ˉ)!: 9+7JT /#:,CQ( 9T*@8*kj8 (D9?bTqT5 ˈ qAT@9qTR;`@@!@)-@)@?aT{EODWC_BgA_! tWO{sB67j@ @+ 6)@ J J}}_!T5}@f@  @ 8@907h{BOAWè_i@h{BOAWè_! g_WO{B67@ @+ ֢6)@ J J}}_!T7}@h@ R)4r qTBRdfh:@9H07!: q@)(@!{COBWA_Ĩ_$! (_WO{B67@ @+ ֢6)@ J J}}_!A T7} 4@)a6)@*@97_@J6J@) @Syit@7r TR;ba.@9qTh@R)0r  ?qT R *ha @!{COBWA_Ĩ_ֈ!:a@r!T@)!:)a S! _WO{B6@)7*@K+I֢6@K  C Q 1 T7}I3@#: q#T4 @:@9(7CiU}  iT@rTP7@7(X7Rc @H @T @@9qRBR`q@)(@!{COBWA_Ĩ_ֈ@@ @ 9@9 6@@=@9H'7!R'! ^_WO{ДB67@ @K е6H@}H)7C@ @ R r* 2  kT@@AR9Z qT^]@@!{COBWA_Ĩ_! '_WO{ДB67@ @K е6H@}H)7C@ @ R r* 2  kT@@ARZ qT]]@@!{COBWA_Ĩ_! _WO{ДB67@ @K е6K@v}ӈ @M5@9- 6 ) )CW @? q@T?qT@y*R? jT)!: @h:@9( (7#:hCiU}  iTh@rT(P7h@7HX7Rb 6$)!:)a)!:) #h@ @T(h @@9qTh@@@y h @ 9@9 6@@=@9('7@2!:@)(@!{COBWA_Ĩ_@T! w{A6 @)7+@l,ik6k@l  +@m5@9m6J J}}_!Tj @K @,Rl *L k-qaTK@k @TL @ k! Tm@ @2 L @)! {_!(!?WO{sB6i@7 @K HД6@}H))C* Q_ 1T @K5@96V @? qT @ @ R r* 2  kT@@ @QARY *\\@@!h{BOAWè_!D!WO{sB67j@ @+ Д6)@ J J}}_!T5}@ 5@9I6 @P@h{BOAWè_!!WO{sB6h@)7*@K+UД6@)  }}TҌ\_\@} @ !h{BOAWè_!-og_WO{ C-@@B6@7 @* *6@ i6C) Cq$@zDT qTA TR5RQsN(˛B6R5Rt_@ 7 ?!@qa T )%Q? qTR5RRrZ#:|U9͍RrRRRBhT@ @ q!T@ @@9qTqTqA<T@;T@J @9)J *(;5@u:@9H(7C} T@r` T P7@7hX7R5aBR|R9qAT@7T@R.r J 0@*,Rmr) J *H65@:@9(7C} T@r TP7H @7 X7Ra@a3T@魎Rr J @yR) J *H25@U:@9(7C} )T@rTHP7@7 X7R`R@H @(T @@9qR}@H @T @@9qrRp@ @(T @@9qRd@@_@@Z@@RT @ 9@9 6@@=@9'75RK @ 9@9 6@@=@9'74RB @ 9@9 6@@=@9'7 RR8`C} T.VC} hT$LC} (TRA@ ?!@qTX6 @ @ ?)q(T(7 ?!@qT%QqT6@97RR0@9%QqT@@54 AGL8@9H86|@5@е6 @ 1@9?=qT6@@ @B.L8@9?7@ @5@ @) @Z'B`7   T R,R'R"(@5@9 S RH@5@9 S#R8@5@96@]TbR6;5 qT(@I@'"eZ@\4?R6@]T;4!:a4(@ @) @oZ`5{ 5`4H@ @ @! @ @ 2_` 5!:a@4(@ @) @QZ|4!: a |4 @)@)@9?6"RR;` n@6 @?qT(Q @  B6@)-@)@?AT{IOHWG_FgEoD_{= @ @ ?!@qT 8"S!!nnWO{sB67j@ @+ 6)@ J J}}_!T5}@k@)!:*I @!h{BOAWè_! AWO{)A8)@i @ғsB6j@)7+@l,u6@+ J _}}aT@ 0@9?)qAT @@!@R?v@ Y}ӊJ!:)Ja*@(!h{BOAWè_ֈ!:a@ !h{BOAWè_!-C_WO{B6@7 @+ 76@ I )C+ Q 1) TJM)ˊJA8J@S@S#:? qAT  @8@9( (7CiU}  T @rTP7@7X7R^6: )!:)a $@ @T(@@9qT)@@#Rh@i2@9?)qAT @@!@@~@) !@?֓@`4Yc`@ {DOCWB_AC_@ 9@9 6@@=@9'7#Rh@i2@9?)qT>@T!"tg_WO{B67@ @* 66@   9C? qT)A8)@i3@3?qT @:@9(7!:)CjU)} ? )T@rTP7H@7 X7R9^6a@ @ T( @@9qTV@@h  R9h@i2@9?)qAT @@!@? @@:@987@ @@}ӊJ!: Ja @ !#h|@6@CXTXR @ @) @X`AT @?qT(Q {DOCWB_AgŨ_ֈ @ 9@9 6@@=@9'7@R9h@i2@9?)qT44zxTD#OR!,#g_WO{-@@B6@7 @* 7֢6@ )a6)@)@99rT)A9)@*)@7)@ RI% )@99)-@? q)R9ˈ6@= T}!T@}@j`CӘ(( qTh@i2@9?)qT @J@_ rT?)q@T*)@!? qT!HARX)!:) @!; @_ rTH%S}} )!(4ih)a!ih;CRlh@i2@9?)qAT @@h77h77h 7(706; R i48j @i@h@  )qAT+ @kQAyk @@ ) @+!  2};R} @A@)-@)@?aT{FOEWD_CgB_; R*i48h6;jR*i486;* R*i48h6; R*i48'6; R*i48h/6; R*i4877BR3}!T! Ylg_WO{B67@ @+ 6)@ J J}}_! T9}@ @@9@T@ 9 @)  Rx@@9@D Bш @@!!Xn@4!#Snq R @R @RbW5Mh@ uA9i87@S}@@C Rm RR L @?qT(Q @{DOCWB_AgŨ_x! mog_WO{-@@)A675@ @* 6)@ JC_qTRr8}@ @ qT@zB R_CTbBRMzB R_B T;R R":sUT RZC_ T@@ @ qT@ @ @ aTCBRbM @ T@yJ @9)J *5T@t:@9((7C} IT@r TP7H@7X7R[@6@ @HTh @@9qT @@( @ 9@9 6@@=@9'7@RC} T9@5@ 9 @) !C BѨ * @ 7@Ta7@y @ 2@@@@͚K@!)A6(@)-@)@?T{GOFWE_DgCoB_9!$ k_WO{B6@7 @K K֢6@ * JC @)@A8@w}ӫ~L k!T@ k@l5@968*` @ @ R r* 2  kAT@@h@i2@9?)q@T k TU 7)!:)a @!{COBWA_Ĩ_ARMRh@i2@9?)qAT @@!@ @R kT@JA @~S qCTB @#*?֓@56#*?֓@U7U#*?֓@6@?qcT(Q{COBWA_Ĩ_ֈ!:a`{COBWA_Ĩ_ww{COBWA_Ĩ_-)a$ q()M$ q!Og_WO{B6@7 @K K6@ * JC @)@A8@v}, R Rq-R k T@ k@l5@9 69*` @ @ R r* 2  kT@@h@i2@9?)qTq)R)? kT)!:)a @!{DOCWB_AgŨ_ARQh@i2@9?)qAT @@%@w4@)! @*?֓@ 5U *?֓@ !:a`$)-q!O{CB67 @* 6@@)@ HCS(ˈ6@=T$V` RXJ V`@RTJ{AO¨_BR71WO{ s'b@ @R@ @()T$R%RBRpRkx%!R>!%D@!@ ]@)y ]!{BOAWèHWO{!RZ @?qT(Q `@@@yp7@(@@yp64@tdv`@@@yw64@B@yp6@A@yhp7"RsKG{BOAWè_{BOAWè_g_WO{@!@3@vSRR  R{DOCWB_AgŨ_@s3@.`@ @ <@96 =@ qT 1T*!J@J 1T=@h4*@ B!G @)c|@H@9R֙ R{DOCWB_AgŨ_g_WO{B67@ @+ 6)@ J UCӿqMT8}@4@9(7R9#:4c`1@ 9@9 6@@9#:4c!RRR@ 1@94c?%qAT @@4@9 4ART 4B:RR7R\(R qTR q#T@)65 @ 4B:RR7ZSq_qT4B:RR4_S@@!{FOEWD_CgB_4c q#T:M:}M(@,@97!h^e^h>@9h7h@@=@H4@bS_S0=JMi@(@)=@I4@#L;@MO{CA6)7 @(@ +s6 h@ J JC_qT!=4}@q4h@@B:RR04$>M>Mg_WO{-@@B67@ @* 64@  8Cq T qTqTT@  @ @-U qAT@+  @h@ 7r T@ @) 4 @@@ =@9i7R Y @ Tl @I@)L=@ l4+@t!J=@5BRwI!D? @ @55J=@j4)@I) @(@)=@i4@  %@9SY @@T6RY @@T.h@r!TS!&RT@ @˖`5@ -)U ?qT@) @ @CR)I@sY @T!:i4"2}8fR@)-@)@?T{FOEWD_CgB_.gT?ELWO{B67@ @* 6)@ 6Cq-T@y@4B:RR:@4N6` @]{BOAWè+R>L!=WO{tB6h7@ @* h6)@ 6Cq-T@I@4B:RR @4N6` @q\{BOAWèQ>K!=XWO{tB6h7@ @* h6)@ )}}?!T@ 4B:RR 4` @\{BOAWèQ?K!?)WO{tB6h7@ @* h6)@ 6CqT@4B:RR4N6` @\Xh @@@{BOAWèQ>K!=WO{uB6h7@ @* h6)@ )}}?!aT@4B:RRv4` @d\eXh @@@h @@@~{BOAWè]Q>JK!?_WO{vB6h7@ @* t6)@  XCqT5}@x`4B:RR9`4s @@ @ qIT @U:@9 (7h!:)CjU)} ? I T@r@ThP7@7X7RtVP54@ @TH @@9qB5&R=@5!@@5@5 @ 9@9 6@@=@9'75R)5 R$ 4B:RR76@95!RRvWP @4\|@ޑN8{COBWA_ĨP5>J!`WO{tB6h7@ @* h6)@ 6CqT@ה4B:RR4N6s @!RPWPA\|@{BOAWè~P>kJ!=!Rg_WO{C-@@vB6@h7 @* (i)6)@( @}?CT @h@h7rT4 @@@ =@97Rh:@9 ra TUR-:@9 raTM@ -)U ?qT@) @ @h:@9 rT? @I@L=@ l4+@Kt!J=@J5BRF@h:@9 rT(J=@j4)@I) @(@)=@i4@(  %@9Sh:@9 rTRh:@9 rT R6VO?CT QTB€R[!RX?CT@T!:f4B2zC(@)-@)@?T{EODWC_BgA_h@rTId!$=BR_WO{wB6h7@ @* h6)@ i)}}?! T@ד 4B:RR 4s"р @!:RRR) @ 5@96 @@ ?-q!Tx67@ @T4|@"TR@( @)?Th@h7"R+@{COBWA_Ĩ_>?I!Cog_WO{i)A6h79@ @* zZ66H@ 3{Cq)T@jJ9T@i)9@H(@(; iC".@`RRR= Rr@.@@ @ @@ R u3 t!R}H@}#@ @ qT@@ARaH~@@!wC RrH@@ @i 2 k T@@ARG! @5M qT@@_AR GO{C<@9h07@ )A_ T h @y*h@ @K*? T i @@!ATII(i)!:)a@Tj @Jyh_ D@ TK @kK h@i @@!`T!bbh@ R u3i{AO¨_{C #GGWO{8@986 R`dNAvB:@4R~:R$R{COBWA_Aa{COBWAg_WO{C?MTH@jT`@5i@ T)9C(@ @}( @a@}Fc@ )? T@) @ % )cCT'hRˆ }  ` T}!?Ҁ@4@̌}I A(H @?kT}`T@}!?@9h!9@`Tu@i)A6*@kk6l@J  (@h i)6(5>@906(}@ !}ӡa@h{EODWC_BgA_>FPFWO{-@@8@987h@ @ 4Th @ @ 5@)-@)@? Taҕ 4v h9@"I@ h9 @) 9_ uC@@)-@)@?T{COBWA RR@44@Rh* @ h7@Tha7@y @ 2@@y @R !9@!@@)-@)@?T{COBWA_`.WO{ 5@@(7hX6 @ 9@9  6@@!RRR@ 1@9?%qAT @@8@9( (7h!: )CjU)} ? T @r THP7@7HX7R:Q`6,@K @(6@_7@ @T(@@9qT@@h:@9(87@ @i@ hETv|@i@ hT R{BOAWè_R{BOAWè_@ 9@9'6@@=@9('7Tg_WO{C-@@8@986 RuS5@)R j`T7@ @ :@987@ @ETv,|@T@}S qT@ @ lT @ @@?Tj7jJ!9J@_TjJA6L@kk6k@ ˿Th H@ @"+ _y)@ @?KT :@9h07n@ @ T@ @ @@?kT 6zu@?q T(Q:@9 06@@h @h 8Ry98@J@9 ?ehT?(@yH4J@9?%qTR2(y|@T,4@8Rh8@J@9*_ehT @y*4?%qTRI2 yx6-a @?q#T(Qh @)-@)@?AT{EODWC_BgA_ll:@977_Dg_WO{Ch9@i@ h9 @) (R*hR)BqITNJ7(R*P)BqT ))(M4 J(Liw8k `}8 y9#6kj@9@H9@({7q_ @9hu"zw@9( @59@z7`h@h@ h@ h@h@ R u3i {EODWC_BgA_hBhbT8D#mog_WO{w9@x9h@@6 iC`v".@`RRR8@.`h@h@ h@ h@h@ R u3i u}H }<h@` i@( y9*(@h7@*T{{c7h@ y :@ uC 6@€RUT@8@9(7h@ @) @@@h@ @) @(@!TH({FOEWD_CgBoA#l_f,(@h@i)!:)a y:og_WO{C8@9(87@ @h9@BTsi@ h9 @) 5_|@h9@T3i@ h9 @) A6 iC`tД".@`RRRM8@.`h@h@ h@ h@h@ R u3i  6 iC`w".@`RRR,8@.`h@h@ h@ h@h@ R u3i }}(<h@` h@ x*@h7@* Tha7@y @@R r iR r kaTۆ|#:i @ ( T@ @cT @ywARyh@%AV?LTh@ۆzZ#:i @ ( TRg@ARxVch@%A?LTh@@T({EODWC_BgAoƨ_~+@ha7@i)!:)a y9og_WO{C 8@9h87R Ry|qIR7h9@4@ h9 @) ^5 iCuе".@`RRRj7@.@@ @ @@ R u3 }h}e;@ щ@( z]x*@h7@ TzZc7H@y @Re 7{{#:5 @ ( RX@ \AR_x@%Aw?T@ @ ( KARLx@%A?lT@ @ ( R-@w@%A?T@ @ (  @@AR$x@%A?Tuc@%A?T@@T({EODWC_BgAoƨ_`R{EODWC_BgAoƨG*@~H@i)!:)a y9_WO{ @)R jAT6h@ @h8 @y?qD@TJI@9_%qaT)2 yh@ @i{COBWA_Ĩ_h@ @t@t7(v @ @u*@h7@JTh @i)a7h (@y @X}jhj(@?qT(QTliTh@ i @h@ @) Tj @I 6h* @?!T a @?qT(Qh {COBWA_Ĩ_U*@ha7@i)!:)a y5a @?qT{COBWA_Ĩ7ibA_WO{t*@8@986 RZv@6h@ @@h7@JTh @i)a7h (@y @8h @yw@?qT(QTi!Th@@:h@ h@ h@ h:@9h86,v6@!Tшa @?qT(Qh {COBWA_Ĩ_)@ha7@i)!:)a y5a @?qT{COBWA_ĨhWO{?48@9h86 R3 Hl;tДB@RxR$R{1h@ @ -T{COBWA: @u @h>@907mT !}[Tzv@?q#T(Qz6Thz6Th@ h:@907{COBWA_{COBWAWO{@{BOAWè5h9@5@ h9 @) 83 iCv".@`RRRD5@.@@ @ @@ R u3 {BOAWèWO{ @)R jTh6 RvB&@Rw&R$R{COBWA_h@ @{COBWA&@WO{ @)R j T6 RbuB*@RR{BOAWè_h@(7h@ @t":Hh @i@* @K}ikJ* i+h:@9h06Zb{BOAWè_|@t":b{BOAWè_Rw*RRAR{BOAWèu?WO{@h9@5@ h9 @) x2 iCv".@`RRR4@.@@ @ @@ R u3 !R@{BOAWè_WO{ @)R j! T(6 RvB2@R;w2@R{COBWA_ĨTh@}S qaTi @h@ @) T)C?) @J h@ @J h @ h  ˔h@ @Ÿh@ @)  }It @}Ӏ}[>Zh@ @) h@ @) h @ h {COBWA_Ĩ_)?WO{ @)R j T6 ReuB.@RR{BOAWè_h@(7h@ @t":Hh @@i>@9i06h @!h h@ @) h@ @) h:@9h06Ub{BOAWè_|@t":b{BOAWè_Rv.RR{AR{BOAWèt>{8@987@ @{_֍|@{_WO{-@@ @)R jaT6 RR`"R@R R[@)-@)@? TnY@ 4@"Rh@ @Th@}S qaTh @}iii)h@ @Th@ @) Ti @) )_h:@9h06Vt7h>@906eD@)-@)@?Th:@987h@ @T |@T @?qT(Q @)-@)@? T@)-@)@?aT{COBWA_e(>WO{-@@8@9h 86 R`R\H:@9 87@ @\ 4@%ER@h!:)CjU)} ? i T@rTP7( @7X6 @ 9@9) 6@@=@9 6@)-@)@?a TR{COBWA6I3@ @mTR @ys8@906! R R:@987@ @hET~|@heTw|@ǟ@)-@)@?!T{COBWA_֨@ @hT @@9q@@kXO{CR{AO¨_!8RR?\L@92L9{AO¨_O{CR`{AO¨_!8RR$\L@92L9`{AO¨_WO{h9@3i@ h9 @) / uC`" RR(8{BOAWè_{BOAWè2CO{C ssc*t@@%@@@hss:`@RV'@@%@@@h @i)6({AO¨_{{ WO{ssB6`@i)7*@K+Ut6@*  _}}!Th6@T}jJ!:)*@(!h{BOAWè_"R@!-=WO{ssB6`@i)7*@K+Ut6@*  _}}ATh6@T})jJ!:J*@(!h{BOAWè_"R@!- WO{ssB6`@i)7*@K+Ut6@)  ?}}Th6@MT $@TB@} @ !h{BOAWè_"R!-WO{ssB6`@i)7*@K+Ut6@)  ?}}Th6@MT %@ TB@} @ !h{BOAWè_"R!-WO{TB6I)7@*@K+V֢6U@)   )}}?!T @))*qQ_%q(T k1+mij8 qF!H R<?qaTI)a6)@*@97)C@@BRbCh:@9064sI)a6)@*@9*7C@2I)a6)@*@97 C@@ @1Q qTAR?7I)a6)@*@9*7B@@ @1Q q`TAR>@eHa.@9qaTT`JJ6J@) @Syi@ @ 7I X7H!:aBReMNJJ6J@) @Syi@ @1Q qAT@@dHa.@9qT.JJ6J@) @Syi@ @1Q qT@@@eHa.@9q`Th@R)0r  ? qT @R *hh@JJ6J@) @Syi@BRBh:@906 m7 @ @ _6 @6@@ !{COBWA_!;WO{Ub6@ @97oBI)6)@ @3yhVB6@@@(7X7H!:aBRLa@_6 @6@@@{BOAWè_WO{Ub6@ @97ABI)6)@ @3yhVB6@@@(7X7H!:aBRL 3@_6 @Rq3}V@@@{BOAWè_WO{Tb6@ @97BI)6)@ @3yhUB6@@ @1Q qT@@AR >dHa.@9qTh@R)0r  ? qT @R *hh@@@@{BOAWè_6WO{Tb6@ @97AI)6)@ @3yhUB6@@ @1Q qT@@AR=@eHa.@9qTh@R)0r  ? qT @R *hh@@@@{BOAWè_}6og_WO{-@@WB6H7@ @* ZZ69H@ }}!,THa6@ @97AI)6)@ @3yh@@7r T-U qT@ @ @>@9((61R6>@9((6)i@r!T R;`4:->@9H(7@ Ҭ J n@9Nyn P6  ) T A>@9(6H9@@9h7@h ) J,yk P6Kik8   Tl T9@6m T T@9qA Tl3@,yl,W7SMik8 + TqTq`TqA T@9iqT @9qT+R@9qT @9qTkR@9qTqT @9-cTTKRqT* @9}qTKRJA>@9((6   il8OyoP6Oя T 4A>@9h(6R#R T_8*%_T?qT?qAT_8iq` Tq! T_8q TH AT_8*%_#T?qT?q`T?q T_8 qA T(T_8*9_T?qT=(*@)ET(T?q@T?qT?}q`T?qT_8 qTqT_8qTH_8qT_8qTH_8qTH_8 qT(_8qAT_8qTH(@"@>@9(7h@yH9@@9(7h@2h7H@ !@)-@)@?T{FOEWD_CgBoA_c!gSog_WO{HA6@H7 @* 6T6@!H R`9h@hhCW7C}q+T @!sJ] [+(3@91qT{ T@ i*5@9 6y{ @J99 @IQ?qq(T ki8J @(3@9r@TcI>@y;(3@95qT[(3@9-q`TTCss%x@@%@@@hSs:`@R"@@%@@@h @X6qT @!@  yw i @ARS @y`@?qT(QH @H @y3 T.`h{GOFWE_DgCoB!E8 @x:8(7848WO{SsB6H7i@ @K Uе6T@ (}}!AT@)}qTyqTt@ h{COBWA_!} 7WO{TДB6H7@ @+ Uе6)@ J J}}_!AT6}@i@7H!:)P7i@H!:)W6 R r_)j!Ti @ J}% k%? $JTH!:@)(@!{BOAWè_!8WO{TДB6H7@ @+ Uе6)@ J J}}_!T6}@i@i7*+H!:_q`@z`T R r_)j!Ti @ J}% k%? $J`TH!:@)(@!{BOAWè_i@!g_WO{CUеB6@H7 @* 7V֢6@ ˘CHa6@@9rT qTHHA9@ )@ 7@ R(! @9 qTqaT !/R8@ B{S}@7H6@C T`uDT`@}ә|@ @AR >@ Q~<=@9CџT@  !-@ qT !* R`8{S}@6~!=@} @ !{EODWC_BgA_M`uTWO{TДB6H7@ @+ Uе6)@ J J}}_!T6}@ARl4@9H6@R E@!{COBWA_!=!D 7@?qT(Q_֗^og_WO{ =е 9ZZ6 (@T(@yRK  TH@y` 1@9?5qT@!@Sq6R(7kTSRb {FOEWD_CgBoA_WO{HGx<Gr< @ -)U ?qaT @BR3@-AR8TД6@y`@?qT)Q  @) y3{COBWA_^@ +16Cg_WO{-@@HA6@JJ7I@+KW@J4V֢6@)  CSsW#@@%@@@hSs:`@RL @@%@@@h @I)6( q T(RA5˘ Rrs{T@x@ qT@ @ @BR2R4@9qT@cD4@ @9?qaTC:4 @HT@ @9?qAT. 4@T@aT#A(! =)Q?1T=cT {@)-@)@?T{HOGWF_EgDC_\ 5 +5 5 5kPog_WO{Cҳszb {"Д Rrе 9V@sZ?WT(?Oi=1?)-71!RRia1S@ qaT @BR2A_RXH@ @()(Q qTR%ٚ7(wQT@ ]@) 2 ](wQTW@l;Rڥ !B R{EODWC_BgAoƨ+WO{H @ R r* 2  kTH@@@95 ARv7@94@!H R5-jR>@ TI)!:4 )++ih8J @TД":  $ %@{K.RR{COBWAB4WO{H @ R r* 2  kTH@@@95 AR&7@94@!H R45!RiR`@>@@Ta@(@@yp7!@(@@yp64@TB@yp6@A@yp7"R҅1h@9->q!Tz]{COBWA_RF @h@92h9{COBWA_WO{H @ R r* 2  kTH@@@95 AR6@94@!H R4"!R[iR{COBWAO{-@@4R!R"RcRg@@N@(|T5-` @N 4Ha@@=O@)-@)@?aT{BOA_` @ңP+OOh@Rr R *h@i@( N{CH8@ =@96@AA96{A_3WO{H9@4@ H9 @) & EUе"B@RRR(@B@@ @ h}Өu},@@@N@hщ@( {BOAWè_{C #3og_WO{Vb6@ @W6@J@J @J@X@9@ @9)?qT? qT5@9(07Q{9@ @H9@ i@ H9 @) B@9H07H9@i@ H9 @) {9@ @TB6@@ARgi@!ш{9@ @H6@I)7*@K+I !ZZC6H@CH9@3i@ H9 @) % mC`TД"2@RRR'@2`h@h@ h@R i@Rr( h6,h@2hh@R  @@9 06H6@H7 @* ;!UB6@7!R4@ZC)T: {9@ @4M;A\#:`@t_ARhRRR~@i#{C?HTTc% iC`TД".@`RRR'@.`h@h@ h@ h@h@ R u3i {9@ @@ h @h @y4R@@{FOEWD_CgBoA_O%t iC`Uе".@`RRRZ'@.`h@h@ h@ h@h@ R u3i }ӈ}V+h@` h@ H@HT i @ ( #H@T@ARhhh@%Au? Th@@; H{9@ @og_WO{HA6@JJ7H@ IX6@ @@@7@|22@+\9@I)9h@(@($ mC`W"2@RRR&@2`h@h@ h@R i@Rr( h6*h@2hh@R  R/Hu}T4C}YR[{#:@ !yy?Tyyffc@RRR}(9 +T>@ @ 2 @( @( @ @ @I)9(@(n$ @@y  @2 7VB6Y9C9(@ @ RAR(@ @ E@ @)y @@ @ @ Kk!9)Cj@J@I @  @J @* X6  @J @5 h "@A+TI)7(@ \7@TH6@CHA62@!R[{*h@Y9*)@ MTJ6@@8@987@@1CT1TMA9@ @ @@L6@J JCN!9@k@j * @+@k @K +@k @U qJ T@m TI)6(@(@!I)A6({GOFWE_DgCoB_"T!@@=TI)7(@ @`TH6@CHA6@!Rxh@)@ TBRGBRc?k"R@00R@!?1aT@@9R3\ARfRR@S0r%@9R3\}R`@!?1T@g_WO{CU8@ @@"R@HA9@ @! R%* @9) ?%q! T%@h6@9h 6v @@R 2I *  ka T@@@@?T6T6@!^@@BRBVb6@@@Wi @)@3@a@y9RCT@hzzh_@ z`zz @@ @@@ @@=@906@?qT(Q@9h7@@{EODWC_BgA_h6@97@()uA987@@@)QJ@/W@96@ @@Rm@h2@91qT@A3h @h @ R+@@@)@'/WO{<@9h7 i@(AA97(@)=@I4@RrA5@  ?qT @@BRk,@@8@987@ @x|@A Th>@9h6j@I@ K=@ k4(@H!J=@j4)@*) )%@94SR@R@ qaT @BR7,!B(\t@o<<@97 p4/i@(@)=@I4@*/h_WO{C-@@a(@@y!r`TqTh@ A@yp6@v@C# @ @.L 5@a(4@9(4DB@yp6@@)-@)@?T{EODWC_B_`@C# @ @! L 5@a(4@9(4#@)-@)@?T{EODWC_BG($..I$..og_WO{ C-@@I)=(@C9@ZZ(4 /@@?qET(Q?/ 7@@?qDT(Q?7 C@@?qCT(Q?C4;@@u@yu@ @(@ ѿT?;RrL 4R ֭RR 3@KRR zRt @ ? 1T@ @ q!T@ @@ @3@95qT(! @3@95q@T%qAT @ @@yA9H 7@ !T(@yJ)@9)J *h5@?qT(Q @ BR* @3@95qT@yA9H 7@ T(@yJ)@9)J *5@ ? 1T@=@9(/7 %@973@UH* @)  G@R @@@?q2T(Q G@m'?Gi>@96i@(@)=@I4@G?4 @  ?qT` @R -H7@'@_Ha@ G@R H@@%@@@H9@@ H9 @) !BR*h@* @)  (S@y(S@)-@)@?A#T{IOHWG_FgEoD_q  mCV"2@RRR}"@2@@ @R @Rr( 6&@2@R R@ T4RRҲV R =(/@@ RRyI(R RRsIHR 2@RRT;cR!RXV R<7;@@AR/  R<@ T@yt@9@@ @)C@y)!?%q!T:@?(@9y(9&HC@yHp6Y@yHCy_(C@yy(Cy? R<@qTqTR?ZR=@zOc>RR:RRVRRIHR H @H RR: RR,>@@97H74RR RR>@RRR>RRgLARt+RRI?eS5R V9 32RRRx@ @r@T R rIH  k!T@@hH@@ ]@)y  ]'@RW@ ]@) 2 ]@1@)-@)@?TGVR T@)yvI*@9 /6( @ @222RRR=x@[T?/ 7@`VTTT?C4;@OT G@%?Gi>@97r{H8@@E@!R* H0@I))@)@(Y{_O{CtRRfh@ ]@)2 ]h@ ]@) 2 ]{AO¨_og_WO{C@H@@%@@@H9@4@ (9 @)  iCU".@`RRR @.@@ @ @@ R u3 RMH@ T:@987@ @T@ 7@ @}a/HV 6|@`UR  @ ( H@ JTI@)yuI*@9 /6( @ @ق2@%Ax?T@ @ ( 2@%A?Tw@|@ThB@y!%qT RRK4RRTR({EODWC_BgAoƨ_g|@@}aG7@ @ RrAӨfAR- :@987@ @TH|@T @yv @H kT@@_WO{@>@>7R RR$`h@92h9 @ h@ :@`+:@<h*@h*{COBWA_Ĩ_og_WO{-@@(@@y!r` TqTh@ A@y p6@y !R{2!N! @C# @ @;H`47H 43H 5HR(Rm: @@?(C@yp69@91@)-@)@?AT{GOFWE_DgCoB_`@C# @ @!! H4!0!H@4!L!H@5HR(R RJ)) @@?@)-@)@?AT{GOFWE_DgCoB2$E * *WO{ @ @$h@ !Qh@9qTqTq!TARSaR))R/M RRJh@ qTqTHR(Ri@*@9H*(9{BOAWè_WO{@6@{BOAWè(9@4@ (9 @) " iCV".@`RRR.@.@@ @ @@ R u3 6{BOAWè{H@@yA9h 6{_֠-*WO{(6@4b6@) @yi@(6@6B6@T @"Rs@@{BOAWè_"RV @g_WO{@ @ @@R=F(_8qT 2U @  ) R Tl@8,yl_,j T R @9+yk_+jTHTTU`{DOCWB_AgŨ_֠<)og_WO{@00y @h@ @7(@9  ւh 4 R#R @9@jh8@94T87I@{iW6> _ T? +T @9I?qT e3I@{iW60 @jj8? T ?qT?q`T?qaT@9iqT @9qT(R@9qT @9qThR@9qTqT @9 ?-T ? TqT @9}q`THR0h>@9 (6@2KT87)@{iP6@jh8 @ ? T_ T @9*_qAT e3)@{i W7 @ji8_ +T _q T_qT_qT @9_iqT  @9_q!T @9_qT @9_qT_qT @9K-TKT_qT @9_}qT   @95h/@*R\<@96@AA97AR_@R7Rq\`'>@9('6@AA9&6H7@94 (7 @ (7@ $T6B6@))6)@ C(6@@=m"T !R @(=@9h7)@(@)=@I4@9.@ -)U ?qaT @BRU%@2G !R"R[@) AR^9`  @ w/@>@h?6@ h7@Ҁ6@8@987H(9@Si@ (9 @) R#R@9 rT?qaT(@8r TP iC`U".@`RRR'@.`h@h@ h@ h@h@ R u3i s7Ҁ6@8@986|@T@ @lT`7@6@ @yss6@8@9?7B@``C{FOEWD_CgBoA_ZS RVD`(@8H5!]RN @R&3)@9i4IT 87@{hP6(@jh89( T_ T(@9 _qT(e3@{hW72(@jh8_T)?q T?qT?qT)@9?iqT#)@9?qT) @9?qT9)@9?qT?qT) @9*_-T*_`T?q T ) @9?}qTR#R(@9(4'(BR @h''C_WO{@@9RS@@9q T@ @  @@B@@RRR9s h @h @B@(9@5@ (9 @) + mC7"2@RRR7@2@@ @R @Rr( 6? @2@R B@@z-RRR{DOCWB_ACrh!-'$"*'@@9R5S#"'og_WO{A(@(6@@RR!;{`@RO9R RGtRRv@@9Rp R-C``4RRPR#C|@9@RRP@9q@TqATR@@9RRK7,$&6RvR`RRBRB RRFg RROh@ @) GRR4RQ@ ]@) 2 ]{GOFWE_DgCoB_Cog_WO{@@9qTh @h 6@@RR:Z@@R;R R;GtRR@@9RzRB``4RRҎORB ==@9@RR҂O(8@@RRL9 RRHB RRn7`RR>B RR:B RRiF RROH@ @) @GRR 4RP@ ]@) 2 ]{HOGWF_EgDoCC_֠%R[@@9RBv@7,$%$%__R_{(9@@))a )@ T>!%@(A@7R{__{C(RAR?A{A_{CAR6A{A_{C(a+@kT(RAR'A{A_{C(a+@kTARA{A_{C(a+@k觟AR A{A_WO{5еb5@q`T qAT@1`T(RAR@{COBWA_aR@{COBWA_aR@1T!R@1T`6(R{COBWA_4@@9qVz!T@1THR'@@Yq@T9qTHR{COBWA_O{}@1T(RAR@{BOA_WO{6ւ5@qT q!TA1T(RAR@{COBWA_ց2{COBWAA2A1T!Rr@1T6(R{COBWA_?@9qVzATgA1THR?@YqT9qTHR{COBWA_C_WO{75@qT qT>A1T(RAR.@21A{DOCWB_AC_֡2'A1T!R@1T6(R{DOCWB_AC_t?@9qVzaT A1THRc?@YqT9q`THRWO{5е5@q`T qT@1T(RAR?{COBWA_ R{COBWA; R;1T!R?1T`6(R{COBWA_"?@9qVz!T@1THR?@YqT9qTHR{COBWA_WO{6֢5@qT q!T;1T(RAR?{COBWA_ց2{COBWA};2z;1T!Rr?1T6(R{COBWA_>@9qVzATb;1THR>@YqT9qTHR{COBWA_WO{T@1@T@5RAR;?@AR7?{COBWA_O{@1T(RAR$?{BOA_O{>1T(RAR?{BOA_WO{@1@T`@5RAR>`@AR>{COBWA_{C@#45B|@{A B|@{Ah}@%k#g_WO { -@@CC#7hRjTrT(8@9(49RjT(8@9H7hRC9A@9RCOC&R"D?@@97@WC#99+[)-@)@?T{JOIWH_GgF_֡!&0=og _ W O { C-@@so'(a6@ A@y)!?qaT9 S S+) Sq觟')6= 6j98?aR  еRi@8zi)jTiTR*_8zj*jT?9 ?(T84+@ @ R r j@T-U q!T@ @+@4+@ TR>_h78> tCBRB Rr9aR @9'@)@(9@9qaTh@92qT4I^Th_8q]T(8@9(45hR8h@97RqaT4h@8q!\TR@8zi)jThq(@9qTC@5!|'@R#"=R R RqTq TqTRi@8zi)jTHR8+E)H*q@TRI R_q(8h@9q`Tq!T.@8(#4zh R_)j"Tq`"T%4RR! "RQ(8@9)5@8q@'@A*T'@@) R 98v #@H*q)TR84qTh@9qNTv @9/@qT5!|'@R6#<R R &R4&5)T _8?qT4 @9/@qaT@9 *(8@9 ?qD@zaHTH4!'}HR8+@h*qTG5'@@R 9 R @8zj?*jTIR8/E)i *?qTRJ RqI8 _8?qCaT@94aRM+CRR&Rg!R@8q85Z@9 4(@9 *(8@9 ?qD@zC@=TH4!'Қ}(8@9<5'@X5( _8?qT8! (@R"R8#@*qTRI Rq(8 qTj#j$X 4@9 4R7R5(8@9(75HR8+@h*qTRI Rq(8 qcT@D#'@@R 9 @$'@@R 984R@8Zi*jTI4jRC`*4QRN{9'@@R 9 qb2T Ri@9i4?qT=7R<h9R'@)@R*94aRL+R7R+9)T R _8zj?*jT9HT R@8zh?*jT/@qTzi R)r?(j)TR !&|@98h@97RqT\!&|@8q@'@TR8#@H*qTRI R_q(8@9qT7R@8q84q$TyS R@8zh?*jTX 4@ @@7 p6"` 4@ @ Rr  2) ?kAT@@ҍzh R?*jT@8Zh?*jTqATh@84zh R_)j TqT4RR; R7R9'@@R 9 qTR7RAR"[aR]L+7RCRR&R RҀ@9*%TCҮ4+@ _ө64/@h  @< (a8T8T8T@B9qAT'@@iRaRRS@0@9%QqT@/@4R;'@@R 9/@x5RRqaT4RQRRRqT7:ҟqzV@94?qTzi R*r_)j T3R:RCF_@oA9#99'@Zi)-@)@?T{MOLWK_JgIoH_'@@Ru:HR#&)&#!D6R RR{(8@9(4{(8@94f:#@#'{'@@9(tR)oR,)jg_WO{C 2@9%QqT @h@RG@@?R9( )R ` @ h@B9q@T}*:Zc+I Th@ B9` @?qT#h @(h@@h@B99)@T` @H@1Hz-T(a @H 1@9?%qT @@@@@7 @@@@!x59 h@{EODWC_BgA_og_WO{CCh-@@o`````=bRX 4@B9q!Tp7T7 T@B9qT47T( @@(@@!7(@B9qT R5 4; H_8)qT& ! RL B77)7() @)@?))@)@'!6R9 @B9h4qT`T:?kT?"@ @*B9Jy*9(4@ B9?q!T@@9%q`TqATR9RRR0@@ @ `C`#=!=`AaBa@ Req@T9797CPx r T1@qT@iR 9Y 7w97<c @*"R@(3@95!R?c@9(@@@@"R@3@95!R1(@ @(4V7|7(a+@kTARs9 9?qT7CPx) ? @q@T@ R 8(RRC9 @3@(9Yi)-@)@?TC{EODWC_BgAoƨ_Y@B92q@T Rs968@qT8og_WO{h-@@@@6֢@@ARS R5R7 @R7 @42R"RR9Q@ B9jR_)jT)y 9@h(@(@(  @@@( @R(*h7R))1 ((! h @@:;{87B Rr ZR @:R!,h @@8@987@ @T"|@"Th @@+Rh@95h @@RD@@BR.h @@ @7 qAT@ @@h @@RD@@hih @@h @@ @ qTBR@h t6d @!T*"R%R6n) *@8K{j+jT_q`T_qT @9J[i*jT?q T @9J[i*jT?qT @8J[i*jTi4@R)7R47@@97@y !@qT@R!(+uR!\*Tp@RR[ 4h@95@T@@9q@T@y))! ( !@qT#J)')@@9h4!+9@4AR9(7@CR|9@@CRw9@AR9(@95@R!(+R!@S:ARR@@@$D7:( @h @@c 7! @?qT(Q( @07@9R!+R@@@?qT(Qҡ!*hx@@TDD@H@ B9i6)2 9@H@B96( @@ @Ja @?qT(Qh @@R"RRO:y@R"RRO1n@!R~ARRARw(! 5"aRo7|@cRh'f8cR`4 @@ @ @RC@@BR-( @ @@cc@ RR:L@92L9@ @?qCT(Q@( ( @ @@ @(1 7Q7(1 @(! @y7S@@?kTW@@?kT(1 @C)7h @@ @Zi)-@)@?T{SORWQ_PgOoN_eCvn6@aCWO{( @ @ ?!@qaT%Q qT@@bB Rô@bB Ry416R(R{BOAWè_s4!#R{BOAWè_R4@@@ !@ %@ R 9{BOAWè_O{C9@3i@ 9 @)  h iC`4".@`RRR@.`h@h@ h@ h@h@ R u3i {AO¨_WO{( @-U qAT5@R58"!8RCR7BRR!8!8Rn"R:8 @P4847!8(!8bRR{BOAWèR{BOAWè_Cog_WO{@R%@!RR @ARR@aRR@RR@RR @@@1@ @@ @ R r* 2  kT@@vTARv@T@ @7@ @v?5R`@ @5M qT@@D6 TSAR=6 T4@7@ @Rr66 5@9q@T5@q T@ @6`7h@ @67:R)h@ @R745@9qT4@qTh@ @77h@ @4@G7:4@9qT4@q@T 6h@ @v7R{HOGWF_EgDoCC_4@9q@T4@qTt7h@ @Ra7 64@9q T4@qT@ @@ @4@78@^h@ @p65@U@ @55@L@ @^65h@ @R,764@9qT4@qTh@ @7h@ @4@6@Ot9@@'h@ @ 7WO{@@@ B9?qT?qT 6R{COBWA_V4[4R(R{COBWA_ֿ 4( 1@T Rr J4q@T) * qq(*#@@T`4 @V4 @1@z14@@G4@@1@z @)) (q @4v7sh@@-!R!--!R!-RR{COBWA__WO{0@9%QqTh @@t@B9qTR b66ւ @*4 @LT3@ @R21T3 @`4 @%4 @rT @@9 RH6@TR R{COBWA_Ĩ_ R{COBWA_Ĩ_ @R23R{COBWA_Ĩ_R{COBWA_Ĩ_{0@9%QqHT@@ @{z 3(R{_{ 0@9%QqT@h@( @ *}S{_` e3R)R {_O{C 0@9%QqT@h@( @`745I3R{AO¨_< A3(R{AO¨_{AO¨4WO{ R AR4ˈ@9qTH4zh(jATs9qTqAT @9 @9qT@9qAT M@84?qTzi)jATsqT@9qAT@9qT ]@84?qTzi)jTsR{BOAWè_WO{h-@@ @ !?qAT@@c@ T _ R]-U qaT@ @ @W^@4H7C[@ABRK@569@@9(7cC#R`7a6@@@@y!@q!TAR4R@frs4@@@ @TR/i)> yh!.R%@b @<q]i)-@)@?T{FOEWD_o2WO{Ch-@@еb6@ @9I 7@9R qT+@@8@T3h2@9%QqTh @h@q+i"R y )!(.@16 @@7!=2>A6@@`6:@9h(7@ ?!@qT )%Q? qbTs+t@6 2(Rt@@@`.!=2+@i)-@)@?T{EODWC_+1(R1(R+:@ ?!@q`TX6 @h@ ?)q(T7 ?!@qT%Q qCT@X6 @2@9?=qaT҉-U qT@ @ @2@!Д.@j@ @q+i"R y@@@@y!@qT!R> T i)5yh TR3!=3+6 R/43 h_8)qT)/a ! RF'q1HR#&W!D6R+ R 5@i)-@)@?!T{EODWC_ @h@ ?!@qTW1_WO{h-@@еb6@ @9 7@9R qaTq+@yIqT+@@ )8)@ @T )+4 @)@?@@!/R1(RA6@@q+I"R y!@X7!@qAT%Q qTR`6X7 @@&q+@yIqTs+t@T60(Rt@} @@  %Q?!@qB Bz#T=q!TR@6!L0 R6 @@H@@!/R@-U qT@ @ @b2.@0@@@@y!@qT!RN T i)4yh TR2 !=1+6 R? 42h_8)qAT0a ! RVU @ @@|0HR#&S!D6R+ R 5@i)-@)@?T{FOEWD_C_k0=/`Cog_WO{h-@@C }S)Rr}PaR#(Tss-ӆ#T@@ @ qT@231BR@aRن#IT@ qT @b2q1aRi@9qT#@@9qT8@9H5-@cR|+BR@aRJ@9qT8@9H7-@cRc@9H4J0cRtBKq-@cRQ@80cRb@i)-7/@1!x<R@4c@RD2/@i)-@)@?ATR{HOGWF_EgDoCC_ֈ/HRcR4/{Ch #`Cg_WO{h-@@1@z aR0@9y 94R)[i)jaT@85v 6&R15"!0bR15!0BRCRU/.@9qAT!0RCRI/2@9RiR q7@8qT@85(_8)qT8_8 qAT8-@cR!0/cRR8 /@_15@9qT@9({h R?(jT!0R_15@9({h R?(j T(R*@8+[j+jT_qT-@cR~0u е&!`1Z/cR.@*1!x<RD4cRt1/@i)-@)@?TR{HOGWF_EgDC_W4Җ1X@94q TziTR0*q`T?q!T @9?qT @9?qaT_ #T _8?qT_8){i R_)jT @94*{h R?*jATJ([h?(jTjj8Jh5 RAR.1T @9 59~BT~}A aR| h88/aR@9+4 R+[k?+jTK@8,[k?,jT4 K@9k4J+[k?+jTK@85_8K@95@-@cR@.cR3.@!qT@V;.o g_WO{h-@@h`8@9q4 BcTQYqOTi )A-+yhxJ @c.@9c5hEKT Rr@ @ qaT@@A @ qTARb.@9a5hC"?HJT Rr МRF6 @9(4l0qڵ9#?GT @ @ qT@ @@BR@95@ TR,/-HR# 2&'R  /7k@y @q!T-8@9(4@nZc.H@9W5" T Rr@ @ qT@@Zc.H@9hV5hETA_!:a.TA.Tc.@9U5T Rr@ @  qT@ @@ @9?qT*@HeT?MqaT@9%qT@9qT @ @W`,6@1iҫBR @9?qT 8))?eh(T@) @9*@HeT@ @ qa'T@@:ARA @ qT@@@9K5hCbh/T4R -"h.T@ @7 ?!@qT )%Q? qbT @@ @@]@9 57-qE@ @ ?!@q`TX6@ @*_)q(T7*_!@qT))%Q?qIT @i  qT@ @@R@95@ TR..,58@94@m,HRH# 1&'R!D6@@ @*_!@qT8@9(4@mAR6H@9H;5hCBT4R F6},{#T`@ @h7 ?!@qT )%Q? qBT @@ @@H@9( 57>,q`@ @ ?!@qTX6@ @*_)q(Ti7*_!@qT))%Q?qiT @ qT@ @@RH@95@ TR->i, 58@94@rm!,HR(# m1&'Rp`@@ @*_!@q@T8@94@Rm Rr @ q T@@;@ q TARRR@ @ qTARq觟*TZ@9h$5hCB -@49#?T @ @7r`T@7Rz * @ @rT  %4 @ @hG6@@@954-58@94@m/@H4,@?ARQ;@ qT@@#KH@9h5hCb TZi)-@)@?T{ROQWP_OgNoM_ Rr4R F6.qڵ{#)Ts+{#HT`@ @7 ?!@qaT )%Q? qT @@h @ H@9 57&,`@ @ ?!@qTX6@ @*_)q(Ti7*_!@qT))%Q?qT @ qT@ @@R H@95@ TR,`&+HR(# 2&'R{#)T8@9(4@[lh`@@ @*_!@q@T8@94@Jl"ȜT@8@9 r@T48@9 )a.(9QYqITT8@94@.l8@9H4@&l8@9H4@l>8@9h4@lG8@9Ȫ4@lR8@9h4@l8@9(4@k8@94@k 8@9h4@k*2_WO{4s+4u@p+kTw@f+kTRv+qT|~ӗm+*q+T )_?kAT h @y Tj!T++ 4u@+kaTh @yjT!qTh @y) R j  RIz{COBWA_Ĩ_w@9+kaTh @y TjT R{COBWA_Ĩ_h @yTjTR{COBWA_Ĩ__WO{ Rr @ @ qT@@ZqT @HRARZqAT(Rx@ @ qAT@@*Jq`Tnq`TZqT{COBWA_Ĩ+AR*JqT@ R r* 2  k!T@@@ qT@@{COBWA_Ĩ_AR{COBWA_Ĩ,AR{COBWA_Ĩ+g_W O { H-@@ Rr@ @ qAT@@rq`T@ @ q!T@@ @ qNqATQ qT R qTLARRrqTA @ q!T@@@ @ q@T AR@@ @ q TAR8 @ qNqTrq@T^qTQ qBTR qT@ ? qT( 7 R)0r jTR @7@ @)T @:Rh)Nq!TJQ q"T R q@T@ R r q!T@ @ @2!:RM)Nq T/q&q`TqTRBR+1 T{@yH4q!TaRp@(6@ R)0r jTBRZ@TR)NqT6+q跟H q@ TW@7r Th@7R )NqT@@(NqTT@r!T(Nq`TrqT^qTw*q跟H qT%[I)-@)@?T3@"q*q跟H qT@ @@) @i)8@Rr  R) *7[I)-@)@?!T{KOJWI_HgG_>[I)-@)@? T(i)>)Ys2 WO{H-@@ Rr@ @ qT@@A @ q TAR, @ R r qTBR@AR A @ q!T@@@ R r qAT@ @ @IT\(77")R(R@I)-@)@?!T{COBWA_ր3j O(_WO{ Rr@ @ qT@@ @h6@95%AR  @h6@94@ @ qaT@@@ @ qTAR @ @ q`TAR h@ R)4r qAT%ҹ'@ @ qTAR @ @ qT@@@ @ qT@@h@ R)4r qTR'7uW7h>@9H 7h@ @&Ta @'R{COBWA_Ĩ_֡&t\)"i@( h@Rr R *hh @i@) @i)8h:@9(078@94҂RR{COBWA_Ĩ_48@9H4C_WO{H-@@@ @5M qT@@AR0  @ @ R r q!T@ @@x'BT>BR@o'ThU~țBR @iU}ɛBB7rw4Q=qT )Ӫ J ) 2JcT Kq|h Ө   K @ BAւ AT_ TR*@y y*@y y* @y y)qT(@I)-@)@?T{DOCWB_AC_"'_WO{ CH-@@ Rr @ @ qT@@A @ qTAR @ @ qTAR _Ө&#AR)1T@?T&RAR A @ qaT@@@ @ qT@@_Ө&R\I)-@)@?! T{IOHWG_F_֟RqMS(TRqTih@ yi(78@94҂RRh@ R r qTh@ @a @BR@3'T˱&(\I)-@)@? T&8@9H4_WO{H-@@)@-U qT@ @ @ BTBR1@ TR' Ra !4&Ra!4BRCRG(BR(a!4RCR=(ւ@ @ @R3@@a!4"RRRV @@ @@`4!RRG7#R!a@ @@ @R!s @3%@O(a!4Ri @I)-@)@?T{FOEWD_C_%HR#hi)3#a!D6RM @I)-@)@?T%_WO{ @  RrRRg@ @ qT@@ @FARb  @62@ ) )@q @zT@RRK@ @ qT@@& T)R $AR@ & T@!RR1@ @l@ "R(6~%@9qTz%@qT (s%R{COBWA_Ĩ_O{C@@?qT(QR{AO¨_^2R{AO¨_CO { H-@@RR@h @h@9q@T`'c' 7@@ kT@@ T^I)-@)@?T{LOKC_7%h<#``;K C#mog_ W O { H-@@/9c6(@@9 @*R  _q @zxTRr qTh@ @ BR@ 7h@ R)0r  ?@qT R)4r  ?q Ti@) @o(@ 07@i@( qTh@ @'u @)6T(@@9E"8Ry 9R #@9zhx}S R4#@"nT96)kh8J'ɚH) )D9? qTT l@8-kl8 z A)) )D9?qT 5I)#)TCDRb+@T@"R7!R"R2@@ @h@ q Th@ @'v @J TRh@y] R *h)@078@ R   jT_qaTj@T @'u @;@974@"R!R"RAR"R@ @IQ q T@@^#R+'@i@)7 T  ?8T#R'@T9Rz ZR #={`#@BYT9@i>@9i/6H6Hka8i'Ț!HD9 qT_BT K@8Lkk8+z A(HD9qT5(#CDRҼ+@ҞART @`@@ @(@@93q@ @@9v@:@987@ @ *ThKС|@ +TaR"Rt@ @ R r* 2  kT@@6_q$Ti@4 @'u @h$7'#R'@h@)@;@96hqA,T7$T #RR8B#T@9/yx=6 kT kT 8AR* 7(@@9 qCzh@ q!Th@ @'z @@H6#RY'@@7cnH(ayr/kTY}Swv h#@{BTh9@i>@9 (66j|8R)%Ț<D9 q#Tj_bT K@8jk8z A(D9qT(R5(#<{`@T T@3@?73@7 @)y` 3@h6@T@6CDR+@<{`T'/@ *h6\8h>@9((7h97H8hT\8#@k$#@Z R 3I9 R 3I9Z /(R@@6_9@Hi@( h@ /@IuI*6@BWh@ /@IuI*i72hH-6@T #RRkTn@9/yx=7 kT 8  k!T8R#R'@h@6)@)@99?qTkT#T@9 yxi799i@( h@H%6'  *~  _8_8_8E@81@y@y!@y1~S1RB@y|SR!|S!RB|SBRkT  t ? T" @8*yjxJ}SJR CT@/ qT RZ+T#wz Z #@##@y#@T9(7(R#@9h?)@zT/Ikh8RJ%ɚYH D9 qT_T K@8Lkk8+z A(HD9qT(5(#h?)@z`TCDRҿ+@h?)@zT?(3@)yx(=@7{6?TR kTR kTH6X?qT Rk T#;R| R #@>##@ T9(7#@9H{xH7=@Ҡ#@TBkh8&ɚH )D9? qTT l@8kl8 z A) )D9?qT5I)#(TCDRI+@T/@ q!T@79@i@( h@2h6?q!T@"9@i@( h@ 2i۷7/@I)-@)@?T{LOKWJ_IgHoG#FmC_uS!og_WO { H-@@'Rr( @  ?q!T@) @ @Rh7cBR@R69@@9rRC'kT@HTR!j88t",!aRhRr@i} ßh2@9 qTaR'"h@ @ TTy CCBR@"9?mT@` @(7X6 @*9@9 7rT)@)@)=@9'7 4 R r q!T@Ah>@9Rr 7h@ @cTV\ h@ yi)8)@9?q @zaT TA@BRN#@A@' T9RR @9@r"Z#{T@"@@ @  ?qT @" @ @7 CBRQ @H@ @7R'KTД9RR @9@rk"Z#{mT@@ @  ?qT @" @ @7 CBR+ @H@ @7RQ"Z#{Th:@907'@I)-@)@?!T{JOIWH_GgFoE_'@I)-@)@? T3 QT_WO{CH-@@@@ @ -)U ?qaT @) @ @?98 rTCBR@ @?98 rT @9q@zTh@ yi@)=@9 (6)9)@)@9i72h @"?җQh:@9(07?@9h4@9H5@I)-@)@?T{EODWC_B_\?@95҂RRa6@HA@y!@qTqTa!<a!<`h@ yi@)=@9/7I)!yhC_WO{H-@@a6@ @9i(7@97RRr@ q TRRr@ qT@ @ @ȜqQSRr@ q@T2Mq+T*gX 80.& qBTH->@9(6!RR& ` 4@ qT@ @ @v"qTh R(  Ț@ Tjh8~) @%ɚ )!Ӛ)Bv"qiTw~SqTa!> R ךbT-~@)?))?TJ J-Lii8k `֩ @9)@9 x)@9 p)@9 h) @9jQ)!ʚ ) @9jbQ)!ʚ )@9jBQ)!ʚ jh8!֚@I)-@)@?AT{DOCWB_AC_` =`=g_WO{CH-@@ @(%A953!@h@ R)4r  ?qTi@) @t @(7 BRh@6!RR h@Rr R *h@ R r* 2  kT@@ARH@@ @ gX 80. &q"BzBT@qT @ R(  Ț #qaT C ) Ț) h T}@H C@ T_ TqT!ښ(*( jw8)!I) !(*j78:* I  6i>@9 7i@) @?T@t @˔i@( qiT#QqhTI ).+ih8J @a!> R Z Q&Ț( 9cQ&Ț( 9CQ&Ț(9&֚j78h:@907@I)-@)@?T{EODWC_BgA_@I)-@)@?@T57`?K` =H`8?ECg_WO{H-@@R84rRr?`Tҷ@ qT@ @ @h@ qT'vq`Th6@9(4h@ qTh@ @h @@ q@TR >@9(7Rh@ qTR@ qT@ @ @ >@9(7RR>@9(79@@97cCRR7R>@9(7R*qT#B 1gAh@Rr R *h R)4r qTu @h@ @?cT,9@@9(7CCRR7R*qATH>t`Rh@ @?bTh@ @˞h@ #T @@ @T @ @ TvqTzq`T~qT@*)@9 @K J@9I *8T74R% a.@94,@*)@9 @K J@9I J8T@T @ TA@iT@ T!R1i@( h @i@) @ h@ qTRB@ qT$@ EӟvqTzq T~q! TT  L@m@ ,L@m@ ,L @m @ , LJ @mk @j .*   !T>T  L@m@ ,L@m@ ,L @m @ , LJ @mk @j .*   !TBT  L@m@ ,L@m@ ,L @m @ , LJ @mk @j .*   !T   + vqT@*)@9 @K J@9I 8T975a.@9(5@I)-@)@?T{HOGWF_EgDC_ {    1K' 2JCT)7 {ө   EA ¬A¬NNNN1 TT {    1K' 2JT7 {ө   EA ¬A¬#N"N!N N1 TT {    1K' 2JT7 {ө   EA ¬A¬#n"n!n n1 TTz8@94҂RR0_WO{B6@@b6@ @94raT)A9)@*)@7)@ RI% )@94 A@y)!?Qq`T?UqT?!qT@9q q8ySV qaT)5RRRV qTqT@!@@9H7@!*U)-@? q)R4 A@y)!?QqTRXRV qAT@ @9(7 @9649@4@ 9 @) H Eе"*@@R RR@*o= * @ 7@ Ta7@y @ 2u Rb RR@!9h @h @!)@)6)@ @4yhh:@986 RיRVh@@S|@ˈ@R)0r  Ja.J@9_q AzT R * @@@{COBWA_Ĩ_և47`[@_WO{ CH-@@_C@ ?}bTq!ThR`4RRhqh\I)-@)@?T{IOHWG_F_ѩQi(1R69@y(TR4h@<R (RRHhhA!R @h R@RR @hCog_WO{(-@@HRD@ T@9q! TˡR*( Y 9 R @8*{j?*j`T R   TK_8+{k?+j TT hRs҄RRR@@s@9I7; 7(@9({h R?(j T*KJ@9*{j?*j T!@h Tx 4Rh5qHRs҄RRR@@@_ T6_@TW 4T)@9J JIii8 1YT) J J R @9Lyl,jT)!TTJ J _8Kyk`6)ATRhU Os@9 06_TRhYGX4Rh A@h T:474k TI@9J JIii8 1(_9R`4R%R?`R'(RR(R`4RR,V`R(RRHh h@))-@)@? TA!R @ R@))-@)@?!T{HOGWF_EgDoCC_A!R@RRh@))-@)@?TҲCo g _ WO{(-@@h i)- r+rR R3H @(R;;H-#T6hU*rJJ-Hi) IJJA-r#(xAV@7uH-9 2?kT )@9)?qTѿ(TTIT(Tc99`Vp7k k@7'/H7"Sc?JT  @~BT**qS} ! cT*97 ! @ T 9 7  @T 9j7 @T 97 @@T 9*7 @T 97 @T 97 @`T 9J7(@!T(!*A_)TT ) 97)T(R1CQ(S sT*@8jjj8 hD9?bTqT5 HqATH@9qTR3 @3@H`_!I*c/@?!T@H*HiWhQ c@?q _r rIR'@7Z Z/@VX6c@49( 7(R;@9W@qR H'6`7?T6Vh77@k` T'@?k T(} T"R6X7 7'@gR@RbB j |@Sc)T/@u7@C'a! pHX6_T7@CRI/@X67@(A!9SHIkh8RJ%ɚYH D9 qT_"T K@8Lkk8+z A(HD9qT 6X7;@Ts)(%QqqhT+ ka.jih8) ֈRO?TH yy6 5(;qR`4;@DRҡ?@\?qqT'@?kAT9'?q@5@AI h5;@/@ T@9%T'@RbB|  R R RHR6HR9BRU'@gR @J'@RbB |@A@i(7@ @Z))-@)@?T{POOWN_MgLoKC_ҨZ))-@)@?@Tog_WO{(-@@h ri) rp7 @ @RjTh@9A!9uGLu7q}cC @')Uj(c˥2C.4h@9A!9LGU6 @T!!&bRCR*U6@ @T5>"RCR@ @T @@))-@)@?!T{GOFWE_DgCoB_g_WO{(-@@ҙYRX9GCeR-F @T!!&bRCR)Tjt85a!BRCR` @@))-@)@?T{FOEWD_CgB_WO{2-iTjt84` @{BOAWè_a!BRCR` @{BOAWè_#mog_WO{5RR^r2#:Z.Vbn{{ B`T@ ?UqT cI J #JZT `TT T# Ta! RCRb@jT)R 4 @)4@6J*J@*ka7k@lyj@TJT R?qT 6ta! RCR@@j T)R h 4"a! "RCR39Oa!0 RCR+@ R ^r R r kT@ @)@ `TWa!H RCR@ R ^r R r kT@ @?aT @))@9?qT@ haT]a!d RCR@ R ^r R r kT'@ @?!T /@)@9?qT@ ` )T"RCR@H X6"RCRh@ @)9?- T @-*RA!T*"RCR @ qBT:@97@H4h@ rh i) !a! A!E:@9h6a! "RCR@5a! RCR6RR7rZa! R*@6qT -R$@ uA9R7r87@@@!H(@9"**))}@ h @i@) @i)8!!&bRCRmRR7r&BqR7rhT(yuSu4@h p7h7h`7a! BR$ -a! dEa! RCRERY4u 9Q"RCR;Y58@9q*(6h@G qaT` @{GOFWE_DgCoB#Am_BR{GOFWE_DgCoB#AmRcR7r @ -5-A! "RCR>@96 @_8Bq_RA!8 E @@ ARA!L E>@9(6@ @RA!\ D @?q TR(Q +@4@@A! ~A! RRR7r~@7(@A! mU KRo@@A! DKR`pf(@A! XRR7r]R#R7rX:@9 rT`4A! BRCR\GO{(-@@C +@y}))-'!! ?0 @@))-@)@?T{COB_dWO{+@y}))-'!! ?b@{COBWAg_WO{))-@)@C#%/` @-U qT@ @ @:CBR @hb@9q7RuxY9_+H7` @%h@qT Qi@"}@?!QqTARC` @Rwb9 @) T` @ @b9@))-@)@?T{FOEWD_CgB_O{C @R8@R{AO¨$O{C @R8@{AO¨ O{CR{AO¨og_WO{@ @ m@9i 87Z8U V @) ?  j T @;yy{@w @@HX6 @ 0@9?5qT @)uA9i86"2@9%qT @ @5 @? @@(#R2S @R @@@@HRxuh@  @9qT @@H@HTh@  @9qT{FOEWD_CgBoA_R_WO{C(-@@ @ ?!@q!T J%Q_qTj @W A5 jBW@4@KqA9k 7J@* ?!@qAT%QqTR8r5е-R."R)"#Rq2@ G qT@ @ @BB\ Ra@ qA9i7@R+BB R%CBR @H@}S* BB0 R7@ qA96@ @)@#BB| R*@))-@)@?T{EODWC_B_֦O{#R2 @BB R h @@@@{3R{BOABB R{BOARIO{C @`R{AO¨g_WO{*h@9Ah@dd@ A9rRRH+@j @,1@9)qATk @kQAyk @+J ) @) #d+d`EB@h5@( -R*@B@7Y7Pa!0RCR6a!HRCRZH@I3@9?)q@TJ-B9j7?)qaT @K=@k5@k! @J-B96a!`RCRH@I3@9?)qT =@K5@ J1B906?)qTJ)B9*6a!RCRH@I3@9?)q TJ-B9J 7?)q@TJ-B9j(7?)q`TJ-B907?)qT@7y77y 7 7y 7 7y 7 7y 7 7@ @h @j @J-B9 '6a!bRCRH@I3@9?)qT @J-B9/6a!BRCRH@I3@9?)qT @J-B976a! RCRH@I3@9?)qT @@6a!<RCR6A!y6A!8{6A!Pvy6A!pq6A!ly6A!g6A!by6A!]6A!(Xy6A!pS@ @(-de @?q#T(Q ~B@y !&@?}q!TdR'a!BRCR9H@I3@9?)qT @J)B9j7J"~B@y !&@?}q Td<2 &@h@@y9N8.@hA9  7D{FOEWD_CgB_Dl .@h@@y9N{FOEWD_CgBO{C R{AO¨~o g _ W O{(-@@h@@y!@ *qT!R\$Є3shzx$Є85@hzhA!Ti(!Y`[A!x_@54B@yp7@H @9 6 @?T*A@yjp6)@iD@@z TDȊ@95B@y rT -Ҝ(Ȋ@9 q@T q TqA2TA!HDRs@@zaTA!RCRPӊ@9S7 A!`RCRGӊ@96A!437 73(707387B@yP7X7h`7Hh7(p7@ @ @FA!'6A!3/6A!76A!3?6A! B@yW6A!RCRB@y_6A!"RCRB@yg6A!RCRB@yo6A!(RCRB@y(w6A!HRCR@ @h(-Dlَ@9W94B@y!@) ))-:yhxR_kT -'5 z:< #3R8  +( -==( 1==OOO9OO9 K!!H-"RCRO9OOOOZT7H?@zhxSEt7i"? jTh@9qTh@9H5 I@y? kiTR@km KqTR 4! Ni A N"NooooNGNNQNNSN4Gn5Gn'Gn&Gn1Gn0Gn3Gn2GnUNFN'PNpRN!NcNNNBNNqT`NNN@n<<< **<*kTm" * kTVy1Tkv8_qTJ@9J4 K=9 K{% y?1T kaT @y4 R5RkT8  +!!H-"RCR21@T A!"RCR'RkT8A!3?8  +OOO9OOf??rT!!H-"RCR (?@A!?cBEW@w@ @ @D3@@(?@Dqh T*) ).+yhxJ @DEW@a@qHA!RCRӊ@973@`@/Dh33@@9063@ @D,3@@9R jaT -R3@x@R%rh@DT#W@E93@`@h@DPW@/@3@(@9H66@W@/@B@y9NaB@yhp6@Z))-@)@?A3T{OONWM_LgKoJ_3@@9"07@@DW@/@tD lҵ"{X{99 ZZ Tzx@`T\7?@ !TEW@D\F6 T>TDEW@2@D'"@D&@+3@ @)TE&@W@(4D@ =@9I6 @(@)=@i4@hR7r -R @ =@96 @(@h+=@k4 @JA!E@@DW@D(E@t_DW@TW@/@Y9hzu#3@TE@h&@D'W@hB94D, 3@3@@D3@R"W@kEs)R9?3@@"@Dh EW@D EW@ҵbW EW@xBT3@@@D!@D#R+=@k4 @jB+=@k4 @JJ C#R)=@i4@  %@9S*wD;U -RGU7@HY}S R)r *SDЄ:@(4DЄ0 R@H4DЄhR@A! !!  >@DЄL _WO{C-@@ -R5R8rA!h #R6,@ G qT@ @ @@ )-@)@? TA!X{EODWC_Bc CBRu @H@}S*BBt R @@?T#RD,@ G qT@ @ @CBRKc @H@}S*ұBB RPARK MBBR@ )-@)@?T{EODWC_B_N Cog_WO{)"5 'h)UTfZZ<М#8 A!< @D)E)@v1BB@ $!JcTBB"@y(5BB"@y4BB8{J9?qT(@, !<ih8J @(Rj(F))3(YhBBe"@yh5(iQq'T, >yhxJ HR@ֈRPHRNhRLRJRHRFRDRBHR@R>R<HR:R8R6HR4R2(R0hR.R,R*(R(hR&R$R"R (RhRRRR(RhRRRR R HRRRR(R))(@BBN@9 4BBpJ@9q!TN@96BBJ@9qTN@96BBN@9(777h 7((7J@9qT,BBTN@9h6BBN@96BBN@9'6BBN@9(/6BB,J@9qTN@906BB`@J@9qT@na @h@ @h@}SiR *RҖ@BBh @BBN@96@D)E)s@v@o@(J@9q@T -#@@A!a @?qcT(Qh T TJ@9qTA!DARJ@9qT@{h'@U"4h'A(R(BB!N@95tRRhRR{HOGWF_EgDoCC_#mog_WO{?-@@@H@)+)@y)}J@+k-@T'67776776776@7H7s6 P7@ X7]Y )-@)@?ATBB4'{FOEWD_CgBoA#lA!("RCRG v6A!D(RCR@ 6A! . 66A!$) 6A!D$ 66A!X 6A!l 6G6A! O6A! s6W6A! @VX6A!d(RCR @ R r?(jTA!x(RCR 66?3qTA!(RCR V77V77V7`7Vh7p7Vx7DA! 6A! 6A! 6A! 6A!4 g6A!P o6A!h w6A! x6?3q@T@ ?!@qT ?%q`T?)q T?/qT R?(jTA!(RA!(RCR %QqT) )1?+yhxJ @@ ?!@qT )%Q?qhTH@@7476A!<  @ ?!@qT%QqTH@A@9 rTA!)RCR H@@(* |aTA!,)RH@]@87U@7(7U077UH77U7 7UP7`7U h7 p7U X7 x7U 7 7U 7 7U 7 7U777v77v7x7A!E G6A!@ /6A!; 76A!6 6A! 1 O6A!(, 6A!L' 6A!l" '6A! W6A! g6A!  o6A!0 w6A!X _6A!| 6A! 6A! 6A! 6A! 6A!, 6A!X 6A! 6A! 6A!A!4 6A!` v6A! 6A! x6A! +A!  46A!  70A! "RCRH@@ 74(70786A!  A!@)bRCR@6X7A!P)RCR?3q T@9(6A!h)RCRj @h@ @J J_8_q@T) h @i@) @i)8A! "RCRt @BB|)?CqT?yySA!)094?#q@T(QqT@ ?!@qT )%Q? qCT R r?(jTI@)@(I@9 qTAR„@ SA!) n?qAT@X7I))J@Kk%*qbH@AR&?#q`T(QqT@ ?!@qT )%Q? qT R r?(jTH@@hI@9 qTAR@? qT+@H4H@@(RBBP*@9h6H @BB*~?@s@ k TB @s@?@gU RcH@@(RBBP*@a@Rc@97? qTa @?q]T(Qh Y )-@)@?jT{FOEWD_CgBoA#l_?+q__HT@ ?!@qT )%Q? qT??q!TH@B906@ ?!qR r  JR r$Jz[ @Sh7@BB,_@u_8Uus_BB*@BB* @96aERA!4+C?qS@T!! <BB\+@#>H@ @@t6 @ER!!#@6H@ @R8A!\ H@ R r?(jTI @( }%?T* J%? TI)+JJ+HA!p+!! H@ @BB+?+q H@?q_@T @BB, @BBL,@9 6H@ @HI @(_8BB,?qTH@@Bs@?@H@@BB, Q%q?T )a?+yhxJ @@ R r?(j@aTH@ @ )I@9? qTARM H@@BB-Q!Q!qH;T )?+yhxJ @?+q3@@TH@!9BB;;H@@BB0<3H@@BBt<+H@!@BB<#H@%9BB<H@ !A9)y?Qq@T!@s@?@_@@ ?!q TR r  KR r_ k@T!@q1T(%Qq(1T-RH@@!H(@9R%r3ҸBB1@H@@BB4=H@@BBx= H@ @BB9H @BB=H @)@BB=@H @@BBH @@BB>H @@BBX>H @@BB>H @@BB>H @ @BB(?H @@BBh?H @A@_WBB?wH @A@yBBnH @%@ !BBXcH @@BB @93@V@)qAT@!-RAy }S1S@s@$7t%7%7t&7& 7t'07'(7h@ @i(MH @BBT-@8H @I@)@ `GTCA!-sH@@BB-%/@9@(6H@Q@BB(/H @BBT-H@ @}@4A!t/OCCdRRI@) @J @RL @{ql3}~Ӯjmj- kŒ   TRqh3kˆC;Tzv4 )-JJ/I7@A!/T7@A!/R5rH@uA9H(6-Rt@ -)U ?qATI@" @KA @<H @BB@H@@BBH@@BB4H@@BBtH@@BBH@!@BBH@%@BB0H@ )@ BBvH@3@_@-@s@h0@9%q!oTBB@H@ @BB@^H@@BBV?@s@ kTH@@?@?q+T @@@9@@?@}@@s@X+(}ӗjhhkh@#7@4F?@_@#(TI@) @? +T!! 6!! t6!! !6!!H!t'6!!!76!!!t/6!!"h@ @j @J J_8_qT) h @i@) @i)8RAy1Di @'BBHZ-Պ@u77u77u 707u(77u77u77u 7 7u 7 X7u 7 7u 7 7u 7 7u7h@ @!! Cu6!! >6!! !9u6!!H!4'6!!!/u76!!!*/6!!"%u6!!<" 6!!p"u6!!"6!!"u6!!# 6!!@#u6!!#6!!#u_6!!#6!!$u6!!<$6!!t$u6!!$6!!$u6!!$6!!%h@ @j @J J_8_qT) h @i@) @i)8Ȋ@i @'BB@A@4B5I)JJqI'BB2@TȎ@BB!!d 4_/6!!t ^76!! 4^?7!-Ԏ@4774774 7(7407@74H7P74X7`7h@ @)7@!Rt/U4?Cq@UT'@ARiH@ @"B.H@ @"BL.H@(7s@7h@ @h @!!.RCR\@s@H6!!.RCRSh@ @-"B.?@k TT @?@qkTH@ @?@}@@s@8.zy7@F?@_@(TI@) @? T!!!(% 6!!@%46!!h%6!!%4'6!!%/6!!&476!!4&G6!!T&4O6!!&W6!!&4_6!!&g6!!'h@ @j @J J_8_qT) h @i@) @i)8Ȏ@i @'BBC:@BB<>@BB5"@BB4."@A!R>@7/U"@)YkH#2>@kTA!bRCRBB@7@&@BB&@A!R:@7/U&@)YkH#2:@kTA!bRCRmBB@7@*@BBh *@A!R:@7/U*@)YkH#b2:@kTA!bRCR@BB@7@Ȓ@BB Ȗ@BB8 2@BB 6@BB :@BB$ RAy @BB\ b@BB |f@BB uj@BB8 nZ@ub@CRBB BB \@BB U>@BBx NB@BB GN@BB@N@A!TBRsR:@R8/Y9UbN@&*%@k(1:@kiTBB@7@s@n@BB^@BB @BBD?@k͑T@@s@?@_@BB@H@-@?@H@ 1@ BB8@H@5@h0@9%qTBB@=BB@H@5@?@H@ 9@ BB@H@=@h0@9%qTBBH@BBx@H@=@?@H@9 @)JJ Kk?}b1H@B9"B9CBRK@H@I#}S*D"B6@n@9h-6-R@P7 S ?5q#TI@A @*uA9(6) @) !J@IuA9'(7B @>@'@a)k| N(@ A5=NRqj3 kŠji|CI+kq/aoocooNNNqA@ NBn1 N1BnsIR NRBns NsBnNNƜN眧NNNƜN眳N O1aN2^ aN^ OaN^ aN^פ OaN^Ƥ aN^ OZaN[^ aN^)p*s*q*r*e(v(t(u(f(y(w(x(g(|(z({NkJA ?'@ TC*yh }j} @b)`LT+@HR qT *}SyS? q T`c~(a!`c!b)(`ARM h( ga"B/AR@"B0H @3@I@) @)}  )!)C @)  iT "BP0@H@ @"BL.H?@9HS6H@9"B0@H?@9h7H@@"B0@@9h7RH@I@*"B1@@96I@*!I)_k T)9@?1T!!D1AR@9L6R;rI@(@)=@i4@!-R@96I@(@H+=@k4 @JJ@B}@+=@k4 @JJ@J JC}@)=@i4@  %@96R(r A @I@" @.#RR%r"B1@/@9HD6D@H@!@ = 4"B1@ H@ @)2=@q'T(@((I-Ak b KuA9(6J @I ) ) #}S*"B6@H@@"B<7@ I@(]@75@3@_@s@X7"B7-o)H@@"BX8H@3@_@U@"B8s@#?@!)"B9s@"Bp7@H@@"B8@H@@4TH@@uA987"BT9:h "B1H@!@"B9H@a"B9H@]@"B9H@Y@"B<:zI@(%@)qA9)7"B:p?@kTH@%@R3"B:`H@)@h@ ]@87J J@ T@7)x7@ |;X ;T ;Q ;N-R h@ ]@7x7@ ;= h@ ]@ @T@ix7@h@ ]@ @J@Xix7@ h@ ]@" @J@JJ \ix7@ h@ ]@ @J@T!ix7@ 7@@@@9R%r3"B;@?@k-/TH@)@.qA9r`.T@s@?@_@i 1l0T(@ +-R _ӟqVZ kTJ@J@TM)U -;{2 !!(2RCRG"BT@Rf @!H(@9 R)r%!*wE.T@-U qaT @BR3@+@"BL2@6"B2@s@?@_@r-R( (@@!@yI#%@yS R)r *:(@#"B3@b(@"B3[(@"B3T(@_@"B$4K"@s@?@8(@("B4@9"@s@?@&( @("B5@'" @s@?@(@("Bl5@"@s@?@_@?@s@ kTH@ @I @)Ss@)KД9I @#@9(6@ @R!!5@97ATH@@T!!5C@!!(68@T @!!\6@H@#@J @_ )Ta @?qTY)-@)@?뀣TjY)-@)@? T{FOEWD_CgBoA#l1@T-R @97#RFI@(@*=@_1T_qT_ 1lT !k@a!#R1*=@_1`T_qT_ 1lT !k@j@ RB}@*=@_1T_qT_ 1lT !k@jJ C#R)=@?1T?qT? 1lT!@  %@96R(r7@"B2pO{CoRRRR{AO¨+WO{"B6>@96@(@)=@i4@R4r!-R >@96@(@H+=@k4 @ B+=@ 5AR{COBWA/#R+=@k4 @JJ C)=@5#R)=@i4@  %@9S*o!!{COBWA_O{"B-8@@!H(@9R%r3H!!{BOA_AR{BOAC_WO{"B]4R6r-R @@!!W>@96@(@)=@i4@(!H(@9S* !!z@@!H(@9"*!!h{DOCWB_AC_AR{DOCWB_ACWO{-@@ h@-U qATh@ @s @4@ BRQ4@9@4@ 9 @) H mC"2@RRRT@2@@ @R @Rr( 6\@2@R @RR*@ @rT R r* 2  kT@@@)-@)@?Ts5h@a`@@)-@)@?T{COBWA_AR@)-@)@?TO{C @RRX7RR{AO¨j"B4'R{AO¨lRR{AO¨\O{CRRR{AO¨LO{CRRdRR{AO¨=O{CRRdRR{AO¨.g_WO{b6@` BB/s *9*4ДZ@@?֠@h4ii@@I@ T@I@ @L@h7@7@07@)@ T@7@6@*@H76@@)@ T_-@h6/@(5a.9!!xRR{FOEWD_CgB_֨,@?O{9@@)a )@ ThB@y!@qT!R A@7R{BOA_ ) yhVhB@y!mqTQqH T )?+ih8J @ `@YRyq,TqqT q! T`@!RM9q T}q! T`@k!!?7A9 @,!@ 7 R R Qq T-@5@9 -qT%QqT -qT5,-@q`T q CzAT) @,!@`@h@9y!a@1!!! ~R{BOA_O{CA@H79@@)a )@ T0@@5RR(hB@y!@~ hh) h({AO¨_og_WO{ C-@@@@-RR @)?q(y))!"RRt{G( 07z@_7!TRRRzzx 9Rb@z@TH1T kijyhx) RT6R@N9R@@%@@@ h@ @@9 @)(R!!*Q)h @R i6829R@4@%@@@ƻ h@ @@9 @)5R!!*5)h @R i68v|T<R@5Rv|TRR@!!*)4v|T!!LBRR5Rv|TR@4!!*)5Rv|T?q))!"RRT߂`TBT#4@ @ R r qT@ @@4@T@%@@@\@h@ @@9 @)(R!!*(h @R i682!!*@!!h(&!!XbRRBRk@VR9(ReR(@T!&bRCR|@Rb!!LBRRq@)-@)@?T{IOHWG_FgEoD_M!!@)-@)@?TUWO{9@t@ 9 @)  !!*RR{COBWA8 uCR!!+@( @?qT(Q {COBWA_{COBWA g_WO{-@@@-R/V@u @A!!RCRYR9 (CCReR3( @T!&bRCR4@'AT@)-@)@?!T{FOEWD_CgB_CWO{-@@-RRr-R@ ?!@qT%QqHT#R@  ?qTCBRi @@" @R( @ qAT@ !!\+RCRBRQ!!0+'@  ?qT@" @ @I#}SGQ *ү@)-@)@?T{DOCWBC_[og_WO{A9 @,!@7 R R Qq mT-@5@9 -qT%QqT -qaT5,-@q@T q CzT) @,!@!@@%@@@!! qTEa@h!! qkT*J-4R7z+TxY(@9)@T!!*T4*J-ThT!! {GOFWE_DgCoBO{@@y!@*qTq`TT5h@)T`R{BOA_h@9rHR{BOA_֟qTR= yt  =q( T R )+ih8J @@R{BOA_R{BOA_h@9r(R{BOA_`R{BOA_րR{BOA_֠R{BOA_R{BOA_R{BOA_ Rq`Th@9rR{BOA_@R{BOA_`R{BOA_h@9rR)rHR {BOA_h@9IR _q*RJr {BOA_րR{BOA_֠R{BOA_hB@y!@qT!R ) yh  R{BOA_O{sB/`@h@@'!!{BOA_WO{0@֢3sfT@yuh4@yuzu'{COBWA_og_WO{-@@C 7!!V 4Q7R899_+"}@!Q1TJ)!!1@T(K6*:Z;{_+<R9Q?qMT8T#ؚaT! 7!!X1 T!!1T 1T(K7R899_+"}@!q!T!!  @@)-@)@?!T{GOFWE_DgCoB_jCWO{!!!lTB@y!@qT!R!!!{DOCWBCV!!<"{DOCWBCN ) yh!!!{DOCWBC_WO{0@9%Q qbT.q@T>qT2qTh @@hh @@h @!@H{COBWA_u @@<.qaTh@@ @? qT @y*iR) J)@9*R J(*5" RR{COBWA_֟2qT>q!Ta6@A@y!Qq'))m<*J<  .q)9J)&q( <g_WO{C9@i@ 9 @) (R*hR)BqHT O4 )0+iw8J @֙9#6{w@9@@}(k7 @9h>q T {EODWC_BgA_e(R*P)Bq TT"zw@9@j@z7`h@BqT2qaTh@ h@R i@Rr( h6nh@2hh@R hBhhbh * 97@9) @9 !R`h@ h@h@ h@ h@h@ R u3i  AR"RR h@ 2h=@C2 @@ @) i@(h@R !O{ChR{AO¨g _ W O { C-@@988@X7T#` R8@苇RhyTrR R#R"@2@9%qT!@R^  @!@yIR j`T @@@52@9%Q q"T`R@@ @? qT @y*iR) J)@9*R J(*5" RR @@#`T&[)-@)@?T{MOLWK_JgI_ֈ2@9%Q qTR @B RR#T9 <Cog_WO{ @ q$@zе9T' *R/5.6Ri @I/h@ @h@ 'X6z @ I3@9?=q*RJ! RJ D@zAT+@?5q R?(j yh#q)T'h@*R/H_7 R@(R+#qTqcTh@ !RPh@ @/@6` @h@ h@ߍRr 2h5  h@  ߍRr 2h|4H@ qA9 7@ A@y)?)qAT` h@7@cqHTKr}@5h@*4h@ @) 4h @ H@ uA9i 86 @? T @h@@? T" @_ k T ! )@9!(@9?kT(J7#`5{HOGWF_EgDoCC4+@6!R)&$h @ @ @ h @ @4h@ @)y 8@@@@TI@/@H7 A R'@4@2{HOGWF_EgDoCC_@  R = @ ?%qT@ @i4YX6@0@9-qMzAT_ @OWO{ R R9 @е-(@ @J@V))%@jB@*y3jB6@@ џbqHT5`&(Rh{BOAWè_). !@?`T JU0Lia8k ` ]@9* RJik@J Y@9* RJik@J U@9* RJik@J Q@9* RJik@J M@9* RJik@J I@9* RJik@J E@9* RJik@J A@9* RJik@J =@9* J%|@J 9@9* J%x@J 5@9* J%t@J 1@9* J%p@J -@9* J%l@J )@9* J%h@J %@9* J%d@J !@9* J%`@J @9* J%\@J @9* J%X@J @9* J%T@J @9* J%P@J @9* J%L@J @9* J%H@J @9* J%D@J@9( %@J_*D)+VRKr+, ) J+@  @@HK JAJ K(5J)=J E  @ K J! TT@JK1 ` ,@ 0il8 )R@9k  @9) @y  ( IK)i(J  J* )!( 9  JJ1H  J* JmH )J K)KI=J J_- ˌ.(Hӊ-@1A T@ J KJʓ 0 ), ʌ ГATQqT 0im8  @9 @9 @9 @9a @9A @9! @9  j Kʉ - )Jʓ* HIʪʫ͓k@ ȓk L iʊ Kʉ̓jk˓)L (ʉj+ Hʊ̓iJ+ Hȓ ` J_O{C @(]@(x7 @TP7 @m&@ ]@)y @?qT(Q@ ]@)y ]@ ]@)y ]@h@ ?!@qT%Qq(Th @ @?T@`T@ ]@)2 ]h @h {AO¨_{AO¨WO{@@`@! @)c|@H@9Rq@T2@9%qTh@ uA987{BOAWè_{BOAWè_ֈ9@4@ 9 @) W uC2@9%qTh@@@!H@9 Sh@ uA9i?6@%h@ ]@)y ]h@@ @ h@ ]@)2 ]{BOAWè_O{C@@Th@{AO¨h{AO¨_WO{-@@H @ -)U ?qT@# @ @BR@@*@)-@)@?T{COBWA_WO{P{BOAWè|WO{77h@@@n%*bqTrZ}@2h@{COBWA_}*  WO{-@@( @ -)U ?qaT@J-@J@_ T*{COBWABRx@*@ @)-@)@?T{COBWA_֐Cog_ W O { -@@3Rms <@97B!0"RR| R<@96@ @ =@ k4*@J!/ =@5/ =@j4)@i)@+/@IK!@`@*@Ou`7F@!@@U9@@ 9 @)  +/@ H M mCZ#@3@RRR@H3@@ @R @Rr( 6"@2@R @!@@!@@3@{ y~SR`@x2 T3@9%q T @-U qaT@ @3 @D_uRUrRr3@9%qT@ qT@ @3 @R3@O @ @@k@T3@CT>@96@(@)=@i4@(@qT/@@kATA`$Rx3@$ @ @@q[zT@kTҿ@?qT(Q @ @GS@@4z2Q@!x@RR3@RR@@3@9%qT3@3@9%qA T @ @ @ 5R 43@@9?qAT>@9733@ T>@9h6@(@)=@i4@ @?q!T!!! R`5+! TT@Rjr) J2@JR)rJ J) *5@(@)=@I4@#R!!( @*Ҋ*? @T'Ec+_'R!! j4sQ{#OI)qTsh73@ez$Rf`\A @?qT @5 @@)@) @@?qG@T(Q @ @ @ h7 @ @?qG@ATZ)-@)@?AT{LOKWJ_IgHoGC_<A @?qT@)@I @@G@+WO{{BOAWèWO{-@@( @ -)U ?qT@" @ @BRO@@* @)-@)@?T{COBWA_h_WO{{COBWA_Ĩ_T"Th@)҉) T B0RR @ @@@h6RrZR Rq#R@{COBWA_Ĩ_{COBWA_Ĩ_WO{b{BOAWèWO{_q]SN{BOAWè?WO{={BOAWè.WO{-@@( @ -)U ?qT@" @ @BR@@* @)-@)@?T{COBWA_ֶCog_WO{9z @1q3_/T(4 )?T*@9_q T?"T_qT K@8q+ s)3u˿aT@iR r J@9J R) J *H5+9@@2(R+(R+T`!!=R 4h+9R @6h @ @h@ @  ]@ R+r? j T x7@W@78H7cC2 H6{ >@96@(@)=@i4@ @?!qT@)IG( T@v @@@h2@9%Q qb TRJh @@"B(>CRRRR (>:iRo@>@9(7-Q+2<@ @ H@B!(@9#R34{{HOGWF_EgDoCC_֩@(@)=@I4@/@)}S#g T>+@7a/@ 2/@}S $? <ҴCog_WO{-@@_ T@)҉) T(@ ?-qT -)U ?qaT)@! @ @  7BRL@(@ 2z`7(@@=@H4@`6!!=RCRbHG= B0RR @8 @@ @W7)@I5@)@?T ]@I6@@T@i7@97@   W5Rr O@P7H6BR(2I ?5qT @ @*uA9(7H7 @H6@) @I :6@ uA9(7 @ %A"R(@ @i @hP7   @_5qaT*uA9j(7" @))AI " R#=h (@ 2(R!#A)y (?qT(Q( @ @) @ @ ]@)2 ]@ ]@x7@@@ !0RRR@3@9%q`T B0RR:9@  @ 9 @)  uC @ @Y@93@9%Q qb T9@  @ 9 @) g uC@ @@8@95BRN! BRCRwR Rq#o4(@2(@)-@)@?T{HOGWF_EgDoCC_K|T~SS# |h)& @96@(@)=@I4@cq*@@@=@4#RU4 @rZRR'[RaWO{{BOAWèC#mog_WO{-@@cRrH H  87UcTH@9qTS@h49@9@7Ti9(@i6 ? qaTTI @9*_qT) 3(@ )(yhh7 i@9yi R)r?(j!TR#Rlwg/T?Ҽ #R R@_q(sw@qt8Wh!:a7x9 mC0??@N`T5g@w@/@(5'ss9@4h@9@(7a Ti9(@i7 )(yh7'"K@) @8?q9;@T9?T?T(@9qT)@9?qTqaTw@ @4?T6 qaTbTC?@#@?HGRj6x@qbZs@R< @7@T2@9%qT@ @) t8 @@>@96@(@()=@4@HW@t8 @@@' @i)9(@(Z#@3@RRR+@H3@@ @R @Rr( 63@2@R @>@9'@6@(@)=@4@h@@@ !TT!! RY@4"K@(@@@=@4#RFνZ#@3@!! RR(@@@=@51h@9 )(yh R)r?(jA TGT )0+yhxJ @h@9}qT5?@H ? qT Ti@9*_q!T) 3(@ )(yh(7)R#R(h8$v@!P RRRo@2@9%qT@BP RDR!@ @) @(?@5h8@ @Ȑ4P)qZR R_q#RE@@h!:aTR@%qT@4@ @) x! Th8@T?q T?3q`T?'qTh@9q TqTq!T"B!RR$RIP6h9@V@ h9 @)  uC4R@%q@Th5S06\X736@}S!!Rhrss9@4h@9@H7aTi9(@6 ? qa-T Ti@9*_qaT) 3(@ )(yh7?/q!T~Th@y)iR Ji @9*R) J *}5 @@h9@9H}07h@9q`TMqT%q)Th@99q!)Th @9 qTEh@9qA(Th@9Iq'Th @9q'Th@9Yq T8h@9Mq&Th@9QqA&Th @9q%Th@9%q%Th@99q T(h@9Mq$Th@9QqA$Th @9q#Th@9q"T=qA#Th@9Uq"Th@9QqTh@9q"Th@9Iq!Th @9qA!Th@9Yq Th@9=q Th@9Uq! Th@9QqTh@9 )(yh R)r?(jTR$ 4h@!@i)%. `THi)!. T _)?HT @9(6@ @)x&5wh@99qaTh @9YqTh@9%qTh @9q Th@9q'TqjT;"BRRN@ @) R#Rh8@@TH9QuqHT )!1+ih8J @ֿTH@9aq!T.+T&@.TaTH@R r JI @yJR) J *(5ah9 TYqlT Q?MqT J5 Lyixk `CҞ4K@h_ӈ Q?qTR J1Lyixk ` @@Rh @@RTH@y)iR JI @9*R) J *5!TH@ɪRIjr JI3@j*Rɩr) J *5Ta @aTH@)LRlr kTaR?qTT@ @) k # T>@9 6@(@ )=@i4@ @?q T!!! R 56Q5Wh@9IqTh@9Iq Ti@!?`T(i)87@@ 49@ȿW6??qT(R! @R jT?qTTh@9Q qT@qZRR9 H@i)!:)a @GT 1@9?%qFT?qT@A@9Ⱥ'7Q @@R% @@Re @ @i @)2@9)%Q?qhT @i @4RRrR!H4@ @ R r jTt4 @?q`T(Q %?3q@;T?/q!T@A@9Ȳ/7?qT $2@ @) @@Rh @@RH@9qTh @@Rh @@ @)2 2q`T&qT9BRRh @@aRh @@9RRh@2h?q@TH@ I I3@IҊ(*)  HH@ I I3@IҊ*h H@ I I#@9j R)  `=T.?TJ!Th(HI+@(II)*I J#@y˪RJ   "TH@i( T2ATH@选I)  I @ )RjrTH@ Rir kT@ @) @@R: @@B RR^@.TATH@!Rir JI3@RrITH@!Rjr JI@9 R) J *5S!TH@Rȩr kTE&,T"TH@ Bҩ)i T2TH@i"ɨi I @*RhrTH@"R)ɩr JI@9 R*/T&2T!TH@‰R)ir JI3@jRr) J *5z2aTH@"Iʩ) I @J(Rjr&TTH@)HRȪr kT2@9%QqT @h@R @@@ B9)2 9aTH@yi*R JI @9R) J *H5ss"`@+BRh! @o_ @@R @@ RR @@R @@!C @@hA@ @ @M@ @) @@Rhh @@R?3q`T?'qTB!RR$RO8( @@RM @@h*@{ @@R@ @@!"R @@xC@!:h7@!R@h @h @@ @)2 a @?q#&T(Qh 3@A@9w77?3qR R?/q(@4}SoS!Rh@ @ @)5 @!TR@h4h0@95?/qT?qT "- )?3q(@)}Soo''5<`RBRR@@ @o5ҨY)-@)@?T{TOSWR_QgPoO#NmC_ֈ!hkjI+@(iijɨI J@ +KJ   ȱJH@ i)j I#@9 R)  (sqH@)HRȪr JI3@Rr) J *5I@j R r) JJ3@RKrJ J) * 5 @3@3~H@i J I3@J+)  BRwH@i( I@yR)  @@R[ @@ @)2 H@i(i I#@9R)  }@RR` RRh! h@!i)(@ @) @@R. @@b RRmh!:aG{#T@RR @G@BRaR @@H@9@RREh@2hBaRRR#WO{-@@ @ -)U ?qT@! @ @ ~ SIR J@@*@)-@)@?T{COBWA_WO{?<qT* ))8+ih8J @{COBWA_t @@(h2@9%Q q"Th9@ @ h9 @) =u @@h2@9%Q qTh9@T @ h9 @) dt @@hh2@9%Q qTh9@3i@ h9 @) #h2@9%QqHTs @h@HR@R`{COBWA_g uC{COBWA_\ mC`u"2@RRRh@2`h@h@ h@R i@Rr( h6ph@2hh@R  {COBWA_. iCv".@`RRR:@.@@ @ @@ R u3 h@@ @? qT @y*iR) J)@9*R J(*5" RR{COBWA1ha6@A@y!Q )< Jm<qH1<%)&<9<<WO{@@h2@9%Q q Th9@4@ h9 @)  iCv".@`RRRǸ@.@@ @ @@ R u3 h@@ @? qT @y*iR) J)@9*R J(*5" RR¾h @@h@ @) " RRh@@ =@9 6@AA96@)R *{COBWA_9<WO{(@@-_6>@96@(@)=@i4 @A!J@5_qT+@-R,ͭr k`TB}@i4@(  %@9rR R#!( BRCRV@@BR{BOAWèRI! BR( @ ?!@qAT%QqT(@@!!og_WO{<@96@ Q@)2 Q@ m@9)87R6rw8x9 9ДFh@   Ti @:yu R#R}Z@:J@I@!? qT _8q!T_8qTH @ 1@9%q!T @@@IT =@96 @)AA9I74@9}`T @k@9K7? 1T @J=@9/7 +@97({h(jT?qT(87({h6[ @h3@9%qATh@A@97h @ %@*!?A@y @(%h @%@R@h@i@ E@9j7 7   qT? qTI%@9*_qT) 3(@({hH6I7 4j@I@J=@J4)@@#RPj@I@J=@J4)@@#R}{ Q@)y Q{FOEWD_CgBoA_O{?qhA0 * '"R#R{COB{C@@H @ 4 @?qT)Q {A_6@og_WO{ ) @ ?!@q(T%Qq(T` @'@$4q!&Th2@$@{ |*{1&T`BX@@@$h9! @(q)T( X$!(@7@?qTX6( @ @?qT9@9 7:RҘ @(qiT ;@9 7@qTZ,@ ?1qT6@(@h)=@I4@i)= @h! @)c|@H@9҅Rҗ @(qT 64:@9( 7@qTZ @?qT @s@B9Qq)R(!Ț)   @TRx4) T @WT @ T@B907@R#R @(qT @ @(qT 4':@9@( 7@qTZ:@9 7@q`TZ @(qiT :@9 7@qTZXTҴO҈@i)7)@ KTP9ha7@@* 8ha7@@* 7ha7@@* 6ha7@@* 5ha7@@* 4ha7@@* ` @$@h @) @ @ @i @) @V}!HR{FOEWD_CgBoA@q T @?ATQp {FOEWD_CgBoA_O{C3@sh@97R{AO¨_Rj4" T`jt@?qT(Qog_WO{C -@@a R#Zh@!@`rxh*@ $C)(  5@ @?kAT@9Z)-@)@?!Ta R5LR7HR9B CRR' @@5:@9!(7h!:)CjU)} ? I T@rTP7H@7X6 @ 9@9) 6@@=@9 6R 6 BXCRRR@R@( @T @@9q!T:R6@9(R5@@(RzR9Rh@ Q@)yY! Q{6 Rr7R?{7.`Tu{wkw8R@ @+@j@J luA9,87K@lBj_=@97@l B=@96@@m=@ 4k@k@k@k@L@ qT L@ qaTL@y-R JJ)@9 RJ J *_qd @ Tj@_!qTj@ ͎ҩL)_ T@ H@ P6 R r  ?qTI@" @A @!k@k@kk@L@ qT @ ,{7:RvqT(R!j T:R8R.TBRH@@ @ @L7h@ Q@)2 Q44R9b RLRĺZ)-@)@?T'9b RRRZ)-@)@?!T {EODWC_BgAoƨ_'@7BH7@9(7'@6Z)-@)@? TVT.BXaRR@@i>@9i7 j@I@J=@J4)@ Jm kqh'kuWO{<@97{BOAWè_h@ @  =@j4)@i!@`wh*@ $C)(  a RX@ @?kTRi1Ta RX@ @?kT @9i64@2@9%qT~@)64yhl R`@ @{BOAWè_{BOAWè_WO{vB6@@h@H7X6h @ 9@9I 6@@=@9 6)R *h!:aEha6@ A@y)!@ JIyii 6 @9i 7 R?T@{BOAWè_i)6)@ @4yhBR:@907 RT{BOAWè_Vh@_7t 6h6@97R{BOAWè_ R@{BOAWè_/W RTCo g _ WO{-@@h9@ @9i7 S7(7@96( @ 9@9) 7R6R47h7@96h @ 9@9 6@@@66@I@)J=@j4)@o R4a RWo@` @(@9(6*!NsR_)ROR#/R%@!bRRR;" @r ThW6iq)5} R r)  qT@ @;@~@ IT4R@@@6RҨ6(6@I@J=@j4)@IoR\`4a RW @@8_ro@6 xR_)RORBRݺ;@~@ Thi8i %7q@o@Ryt@o@y<H@9q)T7(R,R 6hQqT RR,RJ R6Ro@U V4)@9? qUTsNUR_)ROR#r(@9q(T(R7t7K@9q TkFQqT,R!˚@T,R!˚zTxRV6RhQqTYXR7K@9 q#T[xR *7RR *7(@9 qTNYx/R.R)R_R#)RO R6,R ( w@ (R!˚ MT RNu@N/RO_h *qR#vb6@*A@yJ!@ kjyj 7RiQ?q+T(7H@9 qchT(@9 qgTҨZ)-@)@?fT{POOWN_MgLoKC_)@95SiQ?q+hT J:Lyixk `ֿq5RK1oTha@ AC9?lA95@*A@yJ!_qT)R A9o'=HBCR#y[RHRK93@ @@RARҜlA9@  @@ @)y @@ @zZC6I@y96*@) |#9)C@J@I @) @J @* u6 @J @8 X@aR>h!@96h8@i)a )@ TOB92O9v7@h7@o@ 6TH@)@ C@#@_ L5Tl!:a_q(K@?q3@‹ j )?O@ 4+@T86h!:a@3)6)yh  )(ih8R +@86h!: H@h+@?s(@ qTX@qlA9AT4 07_@) ?kaT Iy?q T 5(4&h!:a)@9;r!T@*)@$7)@ RI% )@9;)R A9o'=HBCR#yq@TqT(RK9;R2 h48 @ @ qTh!:aR#R (;@9107 @?q2T(Q h9@@ h9 @) 07{R  iCw".@`RRR@.@@ @ @@ R u3 H* @ H7@THa7@y @ 2vCt} T_vvH5LA9X@ @h8 @*@  JC@k@j * @*+@k @K +@k @J Jha@?@ A9_@4H!:hQYqT )<+yhxJ @3@ TBR~X2q!T6@956 @@@NL@5M qaT@@3@5M qaT@@3@5M q!T@@1@5M q!T@@`@5M qT@@`!@5M q!T@@  7ARH!: AR TARMT@ :AR@ARARhRK9{R+{qq)-@? qT)R A9o=HBCR#yRt6H@9 qTRhQ%qT )i8*yhxk `H@_[{#:Ro@Nqo@RH@(_[{#:8R-RR#(RlH+@_N/@XRH/@R_RXRH+@R_R8R)ROR#o@pH'@ R7 @@y R j T RRo@JHK@hI@U?@ R+QRI@R I)!:9!*ROR#_/Ro@D_N'@RqX*S @?qBToI@*R_R [{#:R#-RI@*R_R+R[H+@( 8RHAR @ 2 @@ @) @(%EI@R+IH!:!(RO"R#R;o@h6R_=W":"BR#R @ R r) qT@@ RRo@N/@XR_R)ROR#o@_@o@AR;"  `o@TR_*ROR# +@F )65hW":(7@97^ ( @^ 9@9) 6@@ @ J ?r7 i7@@=@H4@Qh7@96h @ 9@9I 7- )a r8> )r(O#< @@ @J- ka rj k ?rX 6i7@@=@H4@WO{4@97R{BOAWè_@ 9@9 7R{BOAWè_@@@7R{BOAWè_6@I@J=@j4)@R 4a RR@ @ @8_r7R{BOAWè_֨@Ry{BOAWè_ s R{BOAWè_)@9t6? q#TiQ?!qT J=Lii8k ` }@ R{BOAWè_T7? qTiFQ?qT*RJ!ɚ_@T*RJ!ɚ_zT @i R{BOAWè_ @ R{BOAWè_*RI!ɚ? M`TR{BOAWè_ @i R{BOAWè_ %@i R{BOAWè_ )@i R{BOAWè_ %@i R{BOAWè_ !@i R{BOAWè_ E@i @ 9@ R{BOAWè_ @ R{BOAWè_ y@ R{BOAWè_ @  R{BOAWè_ )@) R{BOAWè_ !@I R{BOAWè_ !@i R{BOAWè_ %@ R{BOAWè_ @ R{BOAWè_ )@ R{BOAWè_u@{BOAWè_g_WO{WB6@;@9((7`T:@9H(7h6@96h @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9 67RRHa6@@9 S(}S *@!6BRRh:@9 06QYaTh:@9(7U 66@96ʽ@6@97R{DOCWB_AgŨ_RBh6@94R+@h:@9(7'7R{DOCWB_AgŨ_Ha6@ A@y)!@ JIyii 6 @9 7 R۹`4ոH!:BR@h:@9/6~Ou'6I)6)@ @3yhBRh:@977 RT@{DOCWB_AgŨ_eOTh`OeWO{4@97{BOAWè_ֈ @ 9@9I 6@@ =@9 6@AA9h7H!:a#RL 4@96T@ @ T 9@9'6@@=@9'7{BOAWè_O{-@@H9@%@!bRRR  @rT(P7 R@)-@)@?Tiq)4}-U q!T@ @@~@ ITBRx@~@ IThi8i %6R@)-@)@?T{BOA_O{C8@9(7H!:i)CjU)} ? ITh@rTP7@7X7R{AO¨h@ @hTh @@9q{AO¨_R{AO¨_h@@{AO¨_h @ 9@9 6@@=@9'7 R{AO¨_N{AO¨_WO{I)2)@?q T @?qTl@R)"r *R? kTk @i@* @*7m@qTm@m@Mm@ m@m@m@T{BOAWè_ @`M!@TMa@ TMa @T r@T rT,!@I@9qTt @6 @_qaT@y+R_ jT@K@aTK]@+7J@|Rk _` DzAT(@! @)c|@H@9Rҵ @?!T@@ @ h@@}S (R)R3h&)hBht {BOAWè_(@! @)c|@H@9҅R{BOAWèWO{RRh@ @4Vւ @RRj@h@ ?%qTh @ @i4 @Hh@A@9?6{BOAWè_ R?(jT@R{BOAWè_ @Hh@A@9r{BOAWè_{BOAWè_og_WO{-@@"RF4qTZ:RQq(T )=+ih8J @Rsh@ @) z4 H9@H=@RX@RR\H@a@)-@)@?T{GOFWE_DgCoB_H9@3i@ H9 @)  uC`DRh@ @) 5H9@8 @ H9 @) ͨ qC\#7@R RR٪R @70o h @ h @@ ]@)2 ]@ )- @ )U !S%*RR4@ ]@)2 ]`4@*%R @ Q?mqT*RI!R r? j!TqTqT@ ]@)y ]~H=@ H9H@&aTq!T@̎)I, ʉ"@9jR)  ,R(r ,R(h5 9=S}@A!9R)& @?qT(Q @)-@)@?@TSEH=I)9@ <H:{C@@!,Sog_WO{?lq @}{ ih 8@986 R)Rnq!N@Y9C9(@ @RARҥ(@  @@ @)y @@ @[{C6i@ZZ6J@) \М#9)C@J@I @I @J @* Kk6j @J @6 v R!RRR@ @*_%qT @J @JX6 @1@95qTnqRx6@R R` !RRRz` @ @*_%qT @J @ X6 @1@95qTH7 @ H7@@TH@CTД6@MTӎv @R>KyLЌA9@ @ @j@K@J JC@k@j * @J+@k @K +@k @J j{GOFWE_DgCoB_"Rǖ@@p@@hWO{Sst@tU"@í@@({BOAWè__qCTZD|Sog_W O { -@@/ @@q`vTE7 XqT RvM@@@h@R3'x~@ pSRx@@hu@6o@ -)U ?qT @) @ @%z06_q@u* @9 r Th@@h )R I@9KeT@h0_AqT RR@h*BR@ R R kT@ @(R77h@h@ r T rT4 RM` @9(6$AR(i7Rz%Ri @(;@9 r`TL:4RLRw@ @( P7 6+@#C##R` 6u{#@( {@6H R*C6h4 RL  @9(7h @hRj _T@ @}!!Rެ` 4P7;@7+C#R{6hw+@?I RJRI;*|R[376b6@@()R I@9KeT@h#_Aq@DT RR@hu2+X@ R R kT@ @v4D?`HoTi @j@J@ 9M*)@+@T   J%@9 lk k%@9 kT!@+@TD~@)@ 7@@k!T@kT"N 5%@9+@(J7H@y)R jaqT+@h@6+@Z+CR6hw2{2X@ R R kT@ @v4C?`eTh @i@)@ Yiw%@9*@_TKJ J%@9_kT)@kC5@@@@kaT@kT#@5h@9J7g͹˹5@3@_qC S#LH@i@ Uе"@RRRV@h@Rc`(h@AR@ R !9@!{@6@ʫqs: H8@ _T9@H.?TI@*R) jT)@y*R? jT+@K@cL +@L @@9?r_ R@ j@#TIJI16H/7CC{,@RRiwx#AR @@9?r_h @i@)@ Yi@(@@7)R  IU5R@_ j@@T 3 7Д&x @X@ @}!!Rh` h@@7@(H6Uе"@RRR˦@@C O(@I)**@9D@zaT[JJA.K@k5 kKlE L @ 7PI4(@(3@9%qT@9h6h@ @ =@1T'@ c5T+@*K_8qA8TJ_8_q7T4TJJ8J@_A4T*@-R+ͭrJ J+ @yLGRk JJ **35RR+@h@6+@(@R )R kT( @ @"47584#RlJ@@(@96*@9I)A.(@45HE(i@(IH.TRJ ҢRR2B @ _rT(@2(@( @( H@5 @)Tc2Th@@RJ`@!4(@y)R jT@ @c2 HT@) @)I?T"$@qɵ7RHa.@953@@"KҚ @I). TZ@7! @?q1T(Q( 4 jCR#K{@6@iROJZ:@9(*(7H!:)CjU)} ? i)T@r TP7H@7X7RT 6@h  @HT @@9q` T@@(V?(@h@6h@@?T @R_)jT @? aT)@ | @( @( T@yI)8)@?.T9)!R(9_rT@(@2( @H.@T@6@?q$T(Qp@ 7 Tj@RH8@9"5ARd@#J< 54{@7Y@U @h@9(6h@ @=@1`TLr@(@ rT87H9@@i@ H9 @) @ uC`(@ rT CR*Дx @< @ 9@9 6@@=@9'7R$@ z@6@B@?q/@)-@)@?T{KOJWI_HgGoF_(2@( @( !TR!T+@*@9_qT* @U@>@9j6@K@ J=@_1T R@8RZ  !T(@y*iR J) @9*R) J *4RRI( @@V! R/I @ T @ @J @ _T*@ @?qT(Q @@ @!#T@! RJWH8@ T~@3@HFT}( !L m@Tk!aTh C T*yj*y(@ @R?y*@ @) Eb5H8@9I)a.(94UK;@9 rTqXRHa.9+@K@c'+@o@3@c<i+@h@6+@Ĩ? Wz@6@ PD#' @x( @@! RJR:Rz@6@ )%r( 5O{CSs"`@@h{AO¨_RR`@@h{AO¨_I). !@?`T JLia8k ` ]@9* RJik@J Y@9* RJik@J U@9* RJik@J Q@9* RJik@J M@9* RJik@J I@9* RJik@J E@9* RJik@J A@9* RJik@J =@9* J%|@J 9@9* J%x@J 5@9* J%t@J 1@9* J%p@J -@9* J%l@J )@9* J%h@J %@9* J%d@J !@9* J%`@J @9* J%\@J @9* J%X@J @9* J%T@J @9* J%P@J @9* J%L@J @9* J%H@J @9* J%D@J@9( %@J_*D)+VRKr+, ) J+@  @@HK JAJ K(5J)=J E  @ K J! TT@JK1 ` ,@ %il8 )R@9k  @9) @y  ( IK)i(J  J* )!( 9  JJ1H  J* JmH )J K)KI=J J_- L.(Hӊ-@1A T@ J KJʓ 0 ), ʌ ГATQqT 5im8  @9 @9 @9 @9a @9A @9! @9  j Kʉ - )Jʓ* HIʪʫ͓k@ ȓk L iʊ Kʉ̓jk˓)L (ʉj+ Hʊ̓iJ+ Hȓ ` J_og_WO{(_ hRy H8@@I@<  @Z|;@9k` T@5@ @?kaT ?T! T!59 699zO{C @h7h @h@ @}!!R` 1(* @9))A.(@45HE( )/ 0h@@{AO¨_t@@ ?$@zTyh:J@Nh@@{AO¨__WO{<@97x@@h:@987!h @x@@h:@9h86 R1C  @!?1!T@h@ @}!!R9` x@@h:@9?7@w7UH. @?T@ #I) kT;@1T!!R;K@ Oi@6 @7(@RBTK@( @ ;@I ;_kTj @ K@k J  Uyk n  ;OjW"@RRR`@@h@2h~ R!R(S6@9H5 @@?qT(Q@΢H! @h@yh{COBWA_Ĩ_@9R3`BR@ @? 1T@@?q# T(Q@) @R6@94@)  @ @{COBWA_Ĩ_`Th@6yh{COBWA_Ĩ_h@ @ ;@I ;_kTJJ.+ ;?k Tk @ K@ J  uyl @ aT@;K@h@:WO{8@986 R6B @@!1ATB@B{BOAWè_ֳ @{BOAWè_O{8@9h86 RB{BOAR@@RBT(!:!{BOA_Tԯ@ @? T @ @)}K )!)CL@) _ iT  @#!, {BOA_ @ @T @) @*}  J!@C @_  iT__WO{?!T) (}@T@@?k-TzS_k lT{BOAWè_ֿkmTi @t@}@~@Dt6h>@9(6h@ @))*+@9*JA.I@4(5 H EIh@ I{BOAWè_֠~}!RQ}@` {BOAWè_og_WO{ C(9@3i@ (9 @) ۚ mC`7"2@RRR@2`h@h@ h@R i@Rr( h6h@2hh@R  &@( @@K H%45 @47"T Ө TAӿ>HTx @}!à>@9(7h@yh 4R@@ T}@3ih@8!a@)@+ 4R!9b)2)@(9vs@@RRRr@h@h@  %@9@yjT(!:CiU} (. H`TAR` h@u7 _) v@ @h@ @@ @i@( @h 99@)@"TRi@( ,Rd :R;{#:|U8.@! @)c|@H@9҅RRL:@9(86 R@h@@!1ATB@4A@ @? 1@T@yjAT@ @? 1T@@yjTC}"XTAR,RRRR@(7?1`T @@ @}!!Rf (* @9))A.(@45HE( )/ 0@@@7U @@ @}!!RA (* @9))A.(@45HE( )/ 0@{IOHWG_FgEoD_O{C<@9(71@T @@ @}!!R (* @9))A.(@45HE( )/ 0@{AO¨_O{C<@97S @@ @}!!R (* @9))A.(@45HE( )/ 0@{AO¨_g_WO{(9@3i@ (9 @)   mC`5"2@RRR@2`h@h@ h@R i@Rr( h6h@2hh@R  t@ @>@979@@ @ƉR["bTR Ө TAӿ>HTi@( R@ RRRR@ :@9(86 R7?@@!1ATB@? @AR@@ 1T@ҷ06 R$@@  1TI@ T  T}@%@9@Rf @?qT(Q @(7?1`T @@ @}!!R (* @9))A.(@45HE( )/ 0@@7X @@ @}!!Rݞ }(* @9))A.(@45HE( )/ 0@h @h / RRL{DOCWB_AgŨ_O{C @  ? 1AT@@?qT(Q@  @97RRn(! @a @?qT(Qh {AO¨_{AO¨!O{C @@h@ @? 1T@@{AO¨_og_WO{-@@5е*@(7@*Th @h 7b7@y @h@y)R jTh@ @ @:Z.;RH Th @yx @ @ @T @yjaT@?q#T(Q R>`ҢRR|`n R= h@ @C@@?qT(QpR=@ h@6=h@yh7h@6h@ @ =@1Ty]h>@9h6h@@ATѨa @?qT(Qh @)-@)@?T{GOFWE_DgCoB_E@u@))!:)a y6a @?qT@)-@)@?aT{GOFWE_DgCoB RL ?D#!O{CR=h~@ 34ҢR{AO¨_#֣O{C@@hRh=@4{AO¨{AO¨_WO{-@@ @6u@@A6yh:J@Nh@ @h @@yiU*j@J @? 'yi@ y)h@ @) (2@qTh>@9H6h@ @=@1T @H 1@9?%qT @@ =@9I6@ @=@1T@( 1T @ @-U qaT@ @@ 7 !BRd@ T _8?qT_8AT@9qT @H@@R _@  ? 1AT@@?qT(Q@  @97RR(! @@)-@)@?!T{COBWA_IRg_WO{C-@@` 5*@@992(@qTh>@9h6i@(@)=@i4@))= @`! @)c|@H@9҅RRR64@(7@*Th @))a7h (@y @x@ @@@?qT(Qh>@96@h?@1T(@q`T\(=@h@ =@?qT@@@?1JT@! @)c|@I))@9$҅Rҫh>@9h7 i@(@)=@i4@H!t7 @I(=@h@ =@@I4B@CH!@9G@҅R҆R#@T@`@@?qCT(Q @@?qcT(Q@@?qT(Q@@?qcT(Q #h>@9(6h@AA96/@@?qCT(Q3@@?q T(Q7@@?qC T(Q;@@rC@@?q T(QG@GS@yS` @ߛh@R  h @4R;@ h:@9h86;v4@!TѨa @?qT(Qh @)-@)@?T{EODWC_BgA_6@(a7@))!:)a y7a @?qT@)-@)@?!T{EODWC_BgA @  @ u3@ ;@ Cog_WO{-@@"7<@97th @h@ @}!!Rj`  (* @9))A.(@45HE(h")/`2*bq T|x@wB7?@467q T}! @ ?x)@?@(*?*bqIT`?*bqTZ67R(?*bqTMqUZ? qcT";@{yRR? T@RR?*bqiT1RR*bqTqrZ}@h7R%#5RcC#R`4 @A?`LTYU R@RR*bqITTRA[`@)-@)@?T{HOGWF_EgDoCC_*T @9q=T{_@9q<T@9q<T @9q!<T {_9Q5qH;T )+yhxJ @@9q!:T @9q9T {_@9q9T@9q8T @9qA8T{_9qvTqA7T@9q6T @9q6T{_9qTqTqA5T@9q4T @9q4T`R{_@9q3T@9qa3T @9q3T@R{_@9qA2T@9q1T @9q1T{_9q TqTqA0T@9q/T @9q/T@{_9q oTq.T@9q!.T @9q-T {_9Q=q,T )Y+yhxJ @9q@Tq+T @9q!+T{_9q`lTq!*T@9q)T @9qa)T {_9qlTqa(T9qTq'T @9qa'T {_@9!q&T@9qA&T @9 q%T@9-q%TR{_9q`iTq$T@9q!$T @9q#T@9qa#T {_9qhTqa"T@9q"T @9q!T@9qA!T{_9QEqh T )Q+yhxJ @@9qAT @9qT@9qT6R{_@9qT@9qAT @9qT@9qTb6R{_@9qT@9qAT @9qT@9qTR{_9q`tTquTqAT@9qT @9qT@9q!T{_@9qaT@9qT @9qT@9qAT6 R{_9q ]Tq!T@9qT @9qaT@9qT`{_9q\TqT@9qT @9qAT@9qT@R{_@9q!T@9qT @9qaT@9qT@{_@9qAT@9qT @9qT@9q!TR{_9q XTq! T@9q T @9qa T@9q T{_9Q=q( T )+yhxJ @@9q T @9q T@9qA T@{_@9qT@9q!T @9qT@9qaT{_9q`dTqeTq!T@9qT @9qaT@9qT{_9qPTqT@9qT @9qAT@9qT R{_9q jTqkTqT@9qAT{_9qjTqkTqT@9qT {_@9qT@9qT {_9qNTqT@9q!T{_@9qaT@9qT R{_@9qAT@9qT {_9qKTqT@9qT{_@9qT@9qaT{_@9qT@9qAT R{_@9qT@9q!T`{_9q`Tq`aTqT@9qT{_@9qT@9Rq)q@{_@9qAT@9qT {_9q ^Tq^TqT@9qAT·6R{_9qATq!T@9qT`{_@9qT@9qTR{_@9qT@9qT{_@9qT@9qaT!{_@9qT@9qAT@9qT@9qT @9q!T$9q@TqT(@9q!T,@9qT0@9qaT {_@9qT @9qAT@9qT@9qT@9q!T@9qT{_@9qT @9qT@9qAT@9qT@9qT@9q!T @9qT6{_@9qT @9qT@9q!T@9qT@9qaT@9qT{_9qwTqT @9qT@9qAT@9qT@9qT@9q!T {_@9qaT @9qT@9qT@9qAT@{_@9qT @9q!T@9qT@9qaT`R{_@9qT @9qAT@9qT@9qT R{_@9qT @9qaT@9qT@9qT{_@9qT 9QAqhT )+yhxJ @@9qAT@9qT`{_@9q!T @9qT@9qaT@9qT{_@9qAT@9qT@9qT@9q!T @9qT$@9qaT{_9qqTqaT@9qT@9qT@9qAT @9qT$@9qT {_@9qT @9qaT@9qT@9qT@9qAT R{_@9qT @9q!T@9qT@9qaT@9qT {_@9qAT 9qTqT@9qAT@9qT@9qT6R{_9@ 9@*uSJ Q_qBHT{_`{_{_@9qT @9q!T {_9qoTqoTqT @9qT@{_9q eTqT @9q!T{_@9qaT @9qT6 R{_@9q!T @9qT@9qaT{_@9qT @9qAT@9qT6 {_@9qT @9qT@9qAT{_@9qT @9q!T@9qT{_@9qT @9qT@9qAT {_@9qT @9q!T@9qT {_@9qT@9qT@9qAT@9qT @9qT$@9q!T(@9qT {_@9qT{_@9qAT"g6{_@9qaTg6 R{_9q]TqAT@9qT@9qT@9q!T @9qT$@9qaT`{_@9qT @9qAT`{_@9qT @9q!T{_@9qaT @9qT@{_@9qAT @9qT{_@9q!T @9qT@9qaT@ {_@9qT @9qAT@9qTB6{_@9qT @9qT@9qAT{_9qSTqAT @9qT@9qTR{_@9qT @9qaT@9qT@9qT@9qAT{_@9qT @9q!T@9qT@9qaT@9qT@{_9q VTqT @9qT@9qAT@9qT@9qT@{_9q`VTqTBm6{_@9qT_6@{_@9qT {_@9qT{_@9qAT@R{_@9qT{_@9qT R{_@9qT`{_ @9%qAT@99qT@9qT@9}q!T@9}qT {_ @9%qT@91qT@9qAT@9}qT@9}qT{_ @9qT@9qaT@9qT{_@9qAT @9qTR{_@9q!T @9qTR{_9q@MTqT @9qaT {_@9qT @9qAT R{_@9qT @9q!T R{_@9qaT @9qTR{_@9qAT @9qTR{_@9q!T @9qT`{_@9qT @9qT{_9q@MTq`NTqaT @9qT@9qT{_9qCTq~T @9qA~T@9q}T"y6`{_@9q}T @9q|T@9qA|T@{_ @9Uq{T@9 q!{T@9}qzT@9}qazT"~6{_JR_)j(TEA9S } {_9qCTq!xT @9qwT@9qawT@9qwT{_@9qAvT 9q`VTquT@9qAuT@9qtT{_@9q!tT @9qsT@9qasT@9qsT{_@9qArT @9qqT@9qqT@9q!qT{_@9qapT @9qpT@9qoT@9qAoT {_@9qnT @9q!nT@9qmT@9qamT{_ @9qlT@9qAlT@9qkT@9qkT{_ @9qjT@9qajT@9qjT@9qiTR{_@9qhT@9qhT@9q!hT@9qgT`{_ @9qgT@9qfT@9qAfT@9qeT@9qeT@{_@9qdT @9qadT@9qdT{_@9qAcT @9qbT@9qbT{_@9qaT @9qaaT@9qaT@R{_@9qA`T @9q_T@9q_T{_9q.Tq^T @9q!^T@9q]Tb6R{_ @9q\T@9q\T@9q!\TR{_@9qa[T@9q[T@9qZT @9qAZT$@9qYT@ {_ @9q!YT` {_ @9qaXT{_@9qWT9qKTq`LTqVT@9qaVT@9qVT` {_@9qAUT@9qTT@9qTT@9q!TT {_9q -Tq!ST@9qRT@9qaRT @9qRT$@9qQT(@9qAQT {_R{_ @9q!PT R{_ @9qaOT{_@9qNT@9qANT@9qMT @9qMT$@9q!MT{_ @9qaLT@9Rq)Jq@{_@9qJT@9qJT @9q!JT$@9qIT(@9qaIT {_ @9qHT@9qAHT@9qGT@9qGT{_9@ 9@*}SJ JQ_qT{_9@ 9@*  R_ kAT R{_ 9QAqCTi )+yhxJ @@9qBT@9qABT@9qAT`{_`{_@9q@T@9qa@T@9q@T{_@9qA?T@9q>T@9q>T@9q!>T@{_@9qa=T@9q=T{_ @9qA<T`{_ @9q;T`{_ @9q:T@9qa:T{_@9q9T@9qA9T@9q8TR{_9@ 9@*uSJQ_%qTR{_9@ 9@JR_)jaTEA9SI } {_ 9q@Tq4T@9q4T@9q!4T{_ 9qTq!3T@9q2T{_ @9q2T@9q1T{_@9q0T@9q0T {_ @9q/T@9qa/TR{_9@ 9@*uSJQ_q"T R{_@9qA-T@9q,T{_@9q!,T@9q+T{_@9q+T@9q*T{_9@ 9@JR_)jaTEA9S } {_JR_)jTEA9 S } {_JR_)jTIA9S)R } {_@9q&T@9q%T @9qA%T$@9q$T(@9q$T@ {_9@ 9@JR_)jaTAA9SR } {_9@ 9@*uSJQ_qT R{_JR_)jaTIA9 SR } {_R{_@9qAT@9qT{_$@9q!T(@9qT,@9qaT@ {_JR_)j!TIA9S R } {_9@ 9@*uSJQ_qT {_9@ 9@JR_)jTQ@{_R{_R{_R{_@9qT@9qAT {_@9qT{_@9qT@9qaT@9qT{_@9qAT@9qT@9qT{_@9qT@9qaT@9qT{_9@ 9@JR_)j!TAA9 S } {_R{_JR_)jTIA9S R } {_R{_@9q T@9qa T {_@9q T@9qA T` {_@9q T@9q! T {_@9qa T@9q T {_9@ 9@JR_)j TAA9 S) } {_9@ 9@*  R_ kTR{_R{_JR_)j TIA9S) } {_R{_9@ 9@JR_)j TAA9 Si } {_(@9qT,@9qaT0@9qT {_(@9qAT,@9qT0@9qT {_R{_R{_R{_R{_JR_)jTIA9 {_9@ 9@*  R_ kAT@ R{_9@ 9@*uSJ Q_qT{_9@ 9@*uSJQ_%qTR{_R{_R{_9@ 9@*uSJQ_qTR{_9@ 9@JR_)jTAA9 u{_R{_JR_)jTIA9SI R } {_JR_)j!TAA9u{_JR_)jTIA9SR } {_9@ 9@*uSJ Q_q"T{_JR_)jaTIA9SR } {_R{_R{_R{_R{_JR_)j!TAA9y{_R{_R{___WO{@n*9kT5V-_*ޢܢ@*+O{C!d+R+)R s`@a ! h@ @)y +@9)+(9{AO¨_ց!d+ RāRCog_WO{h Y`h!Y`@ҊҠaRq9o*c11ɤ41'Ҥ̤L2`R`O{qTh 1 `(RRR(9{BOA_5Bl*!RBWO{@R)+)R 9@@R+@9)+({BOAWè_֡@ RȁRlO{s"h@ @@R|`@@?qT(Q{BOA__WO{CqTh 1 tR%ך7qTqaT@@R4H- Jm+!+@RѡR{EODWC_B_h yw{EODWC_BARBR)R 3h ywҨ34h yw@Ҙ aRqh!ywR?qTqT@ARBR)R{EODWC_B {EODWC_BgWO{ɣ{آaRp{BOAWè_WO{!@hM{BOAWè0B{BOAWè_WO{H-@@9@3i@ 9 @)  yH mC`"2@RRR{@2`h@h@ h@R i@Rr( h6!h@2hh@R h! @<A=h!B:C;@8A9h!F9=C=DEBC@Aѩ'#`Rɢ/~>aR6p6>T@9 qaT@94! /(Q9q6>@47>@9 qaT@94! /(Q9qCBR?C"R?CbR?\I)-@)@?T{COBWA_Ĩ_6R97R9WO{H-@@9@3i@ 9 @) ExH }C`"@`RRRQz@|@h @I)-@)@?T{COBWA_Eg_WO{qBT~@{DOCWB_AgŨ>q(T*i )A+ih8J @֖R @!RvRRh Yve~taRlo{DOCWB_AgŨ O{Cs1a@Ұ`@ @-U qT@{AO¨_BR{AO¨O{Cs1a@`@ @-U qT@{AO¨_BR{AO¨og_WO { H-@@'Rҡ}aRoC,Д1@Ce4@ @4}'@I)-@)@? T'@I)-@)@?!T{JOIWH_GgFoE_WO{@I)-@)@o= )))5/a@`==h@#`RBRk ͠R5 `TBh]I)-@)@?T{FOEWD_;cl*`RbPRdR}g_WO{{ Rb"R: `R"R5 @ @IR @ ? qTaR@y@Rr R *9/>@9 7@ @T} @C  )TcT!/4ޞRRtA!-Ҕ@y5R@ 5RA!-҅@y5RR@R{DOCWB_AgŨ_փcl*`RbPR1Rcl*bPR$1Rog_WO { H-@@'R҄|aRm_qHßC 3C@'@I)-@)@?!T{JOIWH_GgFoE_k_WO{H-@@ @ -)U ?qT@) @ @(7*#BR"@h69@@97@ R7 Cc#R_n 6R@77@ Rء4o Cco7R6 @cR@| qT@2@I)-@)@?@TR7@s|@I)-@)@?T{FOEWD_C_ԝR@I)-@)@?T_WO{RҸ{-aR%m{COBWA_ĨNog _ W O { CH-@@1@1@(B7@4,l54R@qmT5RS4@94`ǟq@-ҩ1@(@-ҠR'o))    qKq!Th =-=i C Rˠ RƠ R!R{ R!R{a R!R{a2d+!R@h,J4RW@@,4 ,pRC@RRеf+w v4* s! ?q-THRl ayixJ @8RqTA7@-ĝ74BR@W-x)@95h@9h5(R8Rq!TW-@9 4c@4#ZATd3q'T ?q("T<Rl yixJ @ֈ@9\R(4h@9<R5q$T q(!Tzhx) ֈ@9\R4R=<Rq*T qh Tk k) jyhx)  A7@-a74ߞR@W-@95h@9h5@95\RW-@9h4c@4#ZATlzɝcY:aRkRA`Yzq@ *w 7a @H 1@9?%qT @@@@@%!h-qT!q T ?qHT\Rl AyixJ @h@9<R(4RqT ?q T\Rl yyixJ @<RHR8RqT ?qh T(Rl yixJ @A7@-74<R@W-@94c@4#ZATlW-@9h5vA7@-84R@RWaRRR@95ZRVRW-RR@95NRKW-RR@95DR@R3Rq@ *h7MRR8Rq@ *6!Rz/@9)(9A7@(1F54ĝR@2! @6*R 9!ZI)-@)@?!T{MOLWK_JgIoH_RRҟq@ *7q 9.q Ta @H 1@9?%qT @@@@@!L. qCTa @H 1@9?%qT @@@@@ !.ךu/qQc:M(// R8RsOÚZ#Ѷ4S@Sh@9 qaTh@94:`49'/Qa @ 1@9?%qT @@(@@,x6RŜ a @( Qo =RRR q(T*i )+ih8J @@aR jR"RR@5y@3y@1y@/y#@-y'@+ysh@9 qaTh@9(4! /4u/q).a @9'/a @H 1@9?%qT @@@@@qO!|0=,Bl*uRuRnvs 0a @hO{C(-@@o="R#RRqIT@R x@x @Rqx@x@x@^))-@)@?T{EODxBl*!R#R+3_g_WO{b @ 1@9?%qT @@H@@!֙@!ϙ@H 1@9?%qT @@@@@ IR*RJ RI! C7@"394>R@@H 1@9?%qT @@@@@ȗIR*RJ+R#! @F394R@@H 1@9?%qT @@@@@IR*RJ+R#! e@r3r94Rê@@H 1@9?%qT @@@@@zIR*RJ+R#! >@3K94ɛR@@H 1@9?%qT @@@@@SIR*RJ+R#! @3$94Ru@@H 1@9?%qT @@@@@,IR*RJ+R#! @384{RN@@H 1@9?%qT @@@@@IR*RJ+R#! ɘ@H 1@9?%qT @@@@@IR*RJ RI!, @H 1@9?%qT @@@@@Ֆ!l {FOEWD_CgBog_W O { '(-@@/R @aR(RGV=RGV֖/yS @8@9? k+T[9R@ TG@6R֚!KVR Q?qHTk kjyix @iR鋪r J 3@*Rr) J *C$5zR(iz84'@yzvv}vX'@y:7-yssvlvk;8ƙ'@y:7[CqRqaT!4b R5RC(iz85 @ik*  CT(iz8h5(R(i:8v8v@i˩H @y*iR)  @ik) @yR)  CHZR(iz85@i髩hi* 3@jj*h)  h@i髩 3@ʩ*J*)  CR(iz85:RC(iz85RC(iz8(5G@5\ 4T.u='@v#u2vu(v uvuvu v`RG@6CA9h4RE//`p.&7WA9H546RCA9h56 RoT96`RjRCA95+R)'@`@u` @u `@u`@u`@u@RRo'@=`RL@iR+r J @yR) J *( 4VRCA94'@`@uGA94'@`@uKA94'@` @u OA94'@`@uSA94'@`@uWA94'@`@uqT qT51 @ @A   /@$ x5R/@))-@)@?T{KOJWI_HgGoF_vRCA9(5 Bl*R@o g _ W O {(-@@GWt@@RҘ qT=5tDaRAh@9u74@czd@a@@)@)} ;#p A1@Ha@R"R@(`#Tw2_(T Д+@95h [9['p_w2"@|#`T(T9h [p@@7 @@z@4@Rlq@pppҨZ))-@)@?T{LOKWJ_IgHoGC_h@*ih85hT_#T Ќ!1@8T+ ؚ T*Rj}K? T*  H}(ˈ@R- @ppph@%pZ))-@)@?@T2 @wp@1p@?T@I @9, MJ@9 8  TM9 6/  KTy 1TN@9e3qn8M@9im8J _ cT '9 #uccl*bPRR9ccl*bPR$R3g_WO{CH Y`Ó )o8aR0a 4BKRXccl*BKR{EODWC_BgA_*I)!(yh4MsbBl*!IRWO{!H Y`{BOAWè_bPR'ccl*bPRCWO{(-@@ Re˓}oڒaR`RBRv@.U qATh@ @` @vSC#BR)sv@@vSC@ @ 2so@R,@))-@)@?T{DOCWBC_5ccl*bPRRxg_WO{"@9h6&@a!1RRR.HT @ R r* 2  kT@@ARx@9h6&@a!1RRR.VT @ R r* 2  kT@@ARyx &@a!1RRRVT @ R r* 2  kT@@86WARax 87е9@ @9i6%@a!1RRR.HT @ R r* 2  kT@@7ARAx@ @96%@a!1RRR.VT @ R r* 2  kT@@/AR#x@%@a!1RRRzV T @ R r* 2  kT@@86RhΒnݑaR_ARw`?7uf+R0R}RB0Rx_nҷR6@R1ARRU`aR_{DOCWB_AgŨ_ccl*RbPR0Ryccl*bPR0RsO{C9@)!q(%@a!1RRRR).IT Rr @  2)  1T?k!T@@?kT@@ ARw{AO¨_ARwh)R(!{AO¨__WO{@ 9@@970 @~A) W*)*)qS)}) )! cT*9i7 )! @ T97 @T97 @T9J7 @@T97 @T9 7 @T9j7 @`T97*@JT6!*A_)TT9 7T R{COBWA_Ĩ_HCQ6aTؑ @~B)V*)*)qS)}) *! CT 97 *!? @ T+9+7 ? @T+97? @T+97? @@T+9K7? @T+97? @T+9 7? @`T+9k7I@)TI!KA )T?"T J +97)JT9))))C)QI J J ?T  @8Mim8) I )D9bT?qT5 i ?qAT  ? Ti@9?qTi@9) ?qTi @9)?qTlRi lTR{COBWA_Ĩ_ֿ qTH YtNm]aRU^lHRq{COBWA_Ĩ_ֿqyS{COBWA_Ĩ_WO{R`&l5!RZGm R{BOAWè_og_WO{(T!R5maR^@9}'"Trq`TqTA!  93s-;`59pݐ?T6697>x5͐"pƐ9ZT5@9}'yT7rq`TqTA! {FOEWD_CgBoA_og_WO{C(-@@sb2t@^4"@@?qc_T(Ql(-h/99/@9 qaT@94a! /d 4 9p"l5@9t@Rsu53s@b R 4j58TTh =@74R@5m 9t@Rs4( 5)aF G D E B C @ A  RݍqAT R֍qT*qTGRqk(T(@9((5x@9 qaT@9h'4a! /&4 Rr"@96&@a!1RRR.T @iH kT@@#( 1)aF G D E B C @ A ׏ku?9-ARu @9h79@h @96%@a!1RRRT.`T @iH kaT@@2&@a!1RRR@.T @iH kT@@ARt&@a!1RRR).T @iH kT@@ARt 6#ARt@( @96%@a!1RRR .T @iH kT@@ARtRAR4@Rr 4`06n@96&@a!1RRR.T @iH kT@@ARvt` @9h79@h @96%@a!1RRR.`T @iH kaT@@2&@a!1RRR.T @iH kT@@ARCt&@a!1RRR.T @iH kT@@AR,t 6AR(t@(@96R!l`7RARh4!!@RNs ֎1y4&4 Ro   R5@3 s s1R1Rd{TzTs9hzt R(( qJATs&qT*qTa!87a!D7RRI~ө)=@ R? jyjh R_9j J <RqRr )?i'(J6Q)1'?)' J64 =@a!P7RR TR qyzt R?9j J RR:R:R|5Rz'q J64 =@:R|5Rqj'(J64 =@:R|5R؋q?}'(J64 =@:R|5RNjq R?9j(J64 =@:R|5Rq9j(J64 =@:R|5Rqj'(J6 =@r)1IJ(6j1kaTj1kT*aT/@94(q*7&4:R:R:R*T:R/@954 =@@Reqq*(6[4!!>1R1Rd qT@R7a) R %9) R 9(R)/(9[5Y))-@)@?T{EODWC_BgAoƨ_5t@@Rq4!@!! "RCR3 -V!/@9)! @4 @a!`7a!90s"t@1@RR @a!@; `@!! "@9s97h@ @96R!@7h@@9h6R!7RAR`4 R!6!@ @@Rq@96 R!7@9(6 R!7 RAR7h@ @96R!7h@@9h6R!7RAR`4!@@?qcT(Q!_@96 R!`7 RAR{6WO{-@@֢@7Ό4 iڌhh@9 qaTh@94a! /@5+)R + 9+ 9@S s @ @)y @@ @)y C+(R9@@R!RY@ @@  qs+h94+@1@`R!RB@9qi9J+I4a!d+R +)R @A ! T@ @)y h@99@ )-@)@?AT{COBWA_s+h@9H5a!d+R+)R @A ! 0@ @)y h@9)+(9a!d+ccl* RāRdR-a!d+ccl* RāRdR%WO{b@@4Ohg,A1 @) h@9 qaTh@94a! /q)+(9`5A1 @) +9!1A{BOAWè_+)R 9A)!1HR(9a19e19{BOAWè_O{-@@a2@@4 h@9 qaTh@9 4a! /4RaR}R qT"@MҶ@H Ea!t;SbR@R2 q@RIz@ )-@)@?T$/@9q@ )-@)@?!T{COB_R҂aR@ qT@R R@ )-@)@? T @@Ryo@@?qT(Q @@Rmo@@?qcT(Qccl*bPRDeRCccl*bPRcR=#mog_WO { ?qT`@{JOIWH_GgFoE#DmRB(R(RW q Tou@ y-U qT @RjH Yv@RARqT@2{JOIWH_GgFoE#Dm_hQq T*RnR@R R `=݊@`` >؊m_W`;OjbBl*=R=R\aRa!>@9u9qTz @{T|R9CTa!>`:Z-{Rtu?"TH<R}qTtR_q@TqT{RtSbPRccl*bPR$LROccl*bPRDLRIROO`>ibBl*AERCERWO{ ?( TR(R!!-J JLii8k `)1)@? T7@ys(Rh{COBWA_7@-U qT @3BRiSR(Ra!AR+!%R(5R!R(hRR(Ra! R(Ra!?R(Ra!R(Ra!HR(Ra!R(Ra!XhR5R`log_WO{Cb 499-(R!( 4ZZZwq }| ki|A@҄RRk|C4hzw@  !Rra!RRR hzw@AuRRAz{EODWC_BgAoƨ_og_WO{ CRԂR.756RBނR$R  RBقR57I 4'(R!s( 4hZ Z@Yi@R @A;8rR RRAȂ_ukh7ARRq_cCyx@AȂ_hkh8qZ@RR~A'@@6`R`@6R`@R {IOHWG_FgEoD_ccl*bPRRccl*RbPRdRccl* RbPRR"RwRxe҂RRfARkARmARnBRChBR@hBRsBRtRaBR5}CRbCR`BRBR4@97BR)h@_BRxwO{CRBR th@-U qT` @{AO¨_BR{AO¨hO{CARuh@-U qT` @{AO¨_BR{AO¨gARtg_#R#Rڧ"RR9R+f{CҦG{A_RRU__R/R-RRж{RRǶ{__qmSRҺE2RҳC|@RK)}@*_q#D|SR{K)}@*_q#D|SRR{_K)}@*_q)D|S R Rqe RyK)}@*D|S_q)e2 RkO{C9@3i@ 9 @) c] iC`".@`RRRo_@.`h@h@ h@ h@h@ R u3i {AO¨_O{C9@3i@ 9 @) 0] mC`"2@RRR<_@2`h@h@ h@R i@Rr( h6Dch@2hh@R  {AO¨_ERgRT!RT@@y2@yARTaRTa6@aRzTRaRRRޑO{C9@3i@ 9 @) \( !D`">@RRR^@>@o`` AR"RRh@ 2h=@ @@ @) i@(h@R ! {AO¨_@R[R@RqSBRhBR8ARHuR”ARpBR=q* J+@8Kik8 HD9?bTqTh5 _qT@9q`T_RL@9) )*i`8A*_qTR)%) *4  @8 z T_ _ARBRDrBRrBRq_JO{ )-@)@ 973)Ri @9 @.)@* JKii8R%˚ I )D9? q#T T @8Nim8 z A)I )D9?qT @5hh L4@@ )-@)@?aT{BOA_ҳ6.C_WO{-@@@9( ix8rRiRq7(Rh@9@,) )(ix8RJ%Ț@(D9 qTbT l@8-il8 z A((D9qT5Hh ҜL`7R4@@ )-@)@?aT{DOCWB_AC_sу @q @)@_)@I*@K@+M@9k7 2 K@k 2 J @* 2  raT 2 _og_WO{RRY8@9qT8@@@Rg@@T@@RR,R(!8!8RN@N@9H73h@J@9?q** 65 ?ֈ@@ T6 @ I@9?qT M@9I7 @ )@@a R? jj6< @h4  q@kWR6@@*R) )7)@ A9@) h@<R@?ֈ@@N@9(66@@ @)q  @? jj7 R*6@W@ TJ6J@@J K @kqK 8R R  |,R? jJ6|6@!R{GOFWE_DgCoB_֨6@@ @)q 7O{C @]ahR{AO¨_O{C6 @)3@j@KqCTk@l@Ly l- @4 *j*A@9?k7l) @ k!T@Qi ^F(Kh*4i @(q!Tmh@y h{AO¨_I4h {AO¨_ J jk@k@Kl@@mM@9m7J 2j@mJ 2j @,J 2j_ rTJ 2R{AO¨q_WO{RRYXе8@9 qT8@@@(TR{COBWA_Ĩ_R,@@Th @h4 i qtV6@i@*R) )7)@ A9h@)  hh@@8  "@)L@9 6)y)L9@)* @Jq* @9? qT)H@9 k87@?IR{COBWA_Ĩ__WO{@@i2@9?-qAT@{COBWA_Ĩ_֔@@ @iRRWh @h4 i qV6@i@*R) )7)@ A9h@) h @?{COBWA_Ĩ_`fWO{RRWh @h4 i qU6@i@*R) )7)@ A9h@) hh@@5R{BOAWè_5"@ @h? @@H9k`T@_֠@@ @H9kT@!T_O{C0@9)qATh@!A9qTh@!@h2@9qTh@@H@9q`T@{AO¨_{AO¨_WO{ @(@(6@J@9_qT@{COBWA_@ !@RRR@!:aHT@ Lf4@ 5!@6:@987@ @|@i@T?! 4@"R@T @ h@!@@?qT(Qh@!h@@@?qT(QN@9yN9{COBWA_h@!h@@h@@ f eg_WO{@@R (`@N@96@@(? J@9(eT?WqT@?Cq @!TEkR{DOCWB_AgŨ__WO{8@@@Rh@@@T@@7 8R B@q@ i@(*h@J@9j87@N@9/6i@ ?h@ ?qTi@)@@) (*h4Д8)R979{COBWA_Ĩ_O{C@@!4@h@Th@h@qhR{AO¨_O{C(@@h?h@T`@^hN@97 T`@@?qT(QhN@96`@@?qT(Q{AO¨^{AO¨^ hN@97_WO{ @!@A6@(H9kATh@@(h@7@h@i@h@qh)@ {COBWA_Ĩ_)@I*@K@+M@9k7 2hK@k 2hJ @* 2h rT 2h{COBWA_Ĩ__WO{@@@(H9kAT(@Th@@(h@8@dh@u@J9kATh@@h@@Mh@h@qhi@)@)@I*@K@+M@9k7 2hK@k 2hJ @* 2h rT{COBWA_Ĩ_ 2h{COBWA_Ĩ_֨A8@@)@ @ 1@9? T)qTL @@7M@ R 1 ! ьa -T@ T_T_)qATJ @@=@4_H@7LM@ R 1 ! ьa T@ T_T5? ?q_)qATJ @J%@JHh?7 Q?q_ ?q_@9@_O{CA8@(@(A? 7@ 0@9_)qT @=@5 =@K59@?`T?!TkJT|R{AO¨__)qAT @@@?R{AO¨__)qT @J!@JAYa @ M@ R,|@-|+MimT)+@!T )@yl5 !@JAYa M@ R,|@-|+MimT)+@T )@-yl5? )B9  6Y@LM$_R{AO¨_{cO{C@9r T9~h@yh@96&@A!$RRRsBR,! !*"RCR@97{AO¨_{AO¨j|&@A!<RRRYBR{AO¨{V~@{_WO{-@@A% ~@ qTh @@94@ )-@)@? T{COBWA_֨9@Si@ 9 @) h@2hh @@9h5!!<@ )-@)@?T4U }C`е"@`RRRX@|@h * @ 7@Ta7@y h@ 2hҘ}@ )-@)@?`T}KC_WO{(@9 Q?qDT@9* JA!Lyixk `ִД@(4@964BROjA8@B@A@@ 0@9?)qAT @@@?64A!T?5 A@q@s4A!=5}@}@ a^G^}@h,4}@2h@ @,h@  h[:5a+A!952@ )4yh&j!9@@5A!-4A!55A8@5@,A8@(4@3@ 0@9?)q3T @A@45h+4A!d`25 !@pH*4A!ty05!R](+4A!o@/58@925ZA!d)4A!_ ,4A!Z,5*9GH(4A! P`+5!!@%.?`-T!*!.? -T(_iJ}|@@ @ ?%q&T5M q%T@@'@' 1@9)%Q?q&T @H&@&@@}}*X]Rҹ}qT|~Z}qT*UF@ݮATA[h@2A8@h @ @ 0@9?)q T @A@ 5@ 1@9)%Q?qhT @(@@%@a@ 1@9)%Q?qT @H@@@}@ 1@9)%Q?qhT @(@@!@Q}*\  @BRh@ @*@J@A)@)@?@@!|A!RCRY~@ 1@9)%Q?qhT @(@@B9 By@ @*@J@A1@)@?@@!p|{!|h@HP6h@ @i @* ЌR Oim8yo/j@T ?i-8h@ @R *hd z@8@9 r T(g8@9q@z T҂RR\P@92a@?!:a$H T]U>@'|(=@C9-qT8@9h4|҅['@ !@V8@9@v[ARf`Tn[8@94 @9=@5yR{DOCWB_AC_@4J%@*Aah@Rr  i6Y! !*A!PRGh @9q@9(*rں{)@*@ @@?R{_oWO{-@@( @4@ 1AT4!RBR%i7H!!.Ra@-U qAT@ @ @@6* @7r@T R)4r qTRjl!RBRh>@9h(6HE!!.R`@y @@ @CBR\@h6v@rT-Jb8@95\ )-@)@?TR{^O]W\o[_hN@9 iN9 @?T@ *R r? kTTT3DRY@qTB9qTTc }5;@yH6hN@92hN9z{(@ @ 1T @-U qT@aR{_BR\aR{_WO{-@@8@94tRҵRr BR|\aRĵŶ @ qaT@@)-@)@?TR{COBWA_ևz{tR{_g_WO{C-@@ y56 @5@ 1AT@-U qT@ @ @@7@W|aT{5(A )/ ihBR\@@W!T@yiR J @9R) J *4"yq+T@Y`ABRp@)-@)@?aTR{EODWC_BgA_*cT xA!tRfh @h @y5h@y h@)-@)@?TzR_WO{@U@?|aTL{5A )/ ih{COBWA_Ĩ_֟!Th@yiR Ji @9R) J *4{COBWA_Ĩ_րR{COBWA_Ĩ_O{CaJ9{AO¨S{g_WO{-@@( @ 5@ 1AT@-U qAT@ @ @@9}qaT @!`TT@R(r J2@*Rr) J * 5@(). /CBRQ[@9}qT"y4qMTQ)R(!q胈3# R{6B#RRH#M/@5@*YtSi @)i }i7h@y h9#(@iwh h@ ?!@qT @@7@{aTz5(A )/4ih"yqlT#@*I TSde @Rc@-^!T@yiR J @9R) J * 4"yq TIe @RvcA!@R\_@)-@)@?@Txiw={(@i7(@iw @*R) * h@ ?!@q@T#@). THғRh@ ?!@qT )-Q? 1TX7r T R)4r qTh@ @ v @CBRi @`TT@)Rr J @yJR) J *H4RR"yqLT@R(r J2@*Rr) J *H4RARyRy cP RER4,@&t5&h @h !4!R,@?ַ@*Yts"h@yv@?qT)Q }i)@i)ҪaGA @?q#T(Q @)-@)@?TR{FOEWD_CgB_3@)-@)@? TG+h@{C,qT(R! R jT@7?T{A R{A1@97! @ |~ iiJ i)/ @* ?qT{A_R@]{C,qT(R! R jT@7?T{A R{AS1@97! @ |~ iiJ i)/ @* ?qT{A_R@\{C,qT(R! R jT@7?T{A R{A1@97! @ |~ iiJ i)/ @* ?qT{A_R@\Rog_WO { -@@'C6@#@|@``D{c=z@a6@J7T@1@9'6>)7)@ k,TH ҇K@yx4@96@2@95qT#R+@(@H!@yxu @ %#@sb6@7(}#@sb6@7( @)@?@@ ))yx#A! myx RFkA9h@ @`RARҦ>kA9h@ @  %D@ @)y @@ @6@(C9#9*@J@H ( @*@J @ 6*@J @ )`)7*@@ )7)@ ,TCx`5@9(06{9y@)9(@h(@(()uA9?7@yxA!x!@R ]/N?mC Z#@3@RRRP@H3 (@(@ (@R )@Rr( (6T(@2((@R ? z@:H@h)9(@(bN @HCH_ (@y (Y H@2HA!"RRR9 A!,"RRR/A!@"RRR%A!X"RRRy@VA!t"bRRRA!"bRRR@aA!"RRR@lA!"RRR6@=T{c=9#9 RR@@ @ @ @Rڂ@@AR5RA9@ @h @@6@J JC+@k@j * @+@k @K 6+@k @J )@@@R@@:@9 (7!:)CjU)} ? T@r TP7@7X6 @ 9@9 6@@=@9 6RJf`6 @ @T @@9qT @?q#T(Q '@h7hQ)R(!qÈ3@RwdZ@@HBRnls7 @?qT(Q t @?qT(Q sb6@uz'@)-@)@?T{JOIWH_GgFoE_ C6@C]T^t @?qTXBR<=a @H 1@9?%qT @@@@@;syxA!$ uuDusZ6'@(6og_WO{-@@)/?" 7RRrs#9Z7uT@ @H4 u@" R6w@jTR4=RiD@ qaT @BRVI@ (@T?5#RX\5=@)-@)@?!T{FOEWD_CgBoA_t@Rv{ @-U qT@`R{vBRV`R{vO{C8@9 qTR֯@ܰ5Rί R{AO¨_O{CaJ9{AO¨4vO{-@@( @ @ 1AT @-U qaT@ @ @9`T= T @J**M) p@KKJ ) /3 CBR>V @9T @J**M) `@+ˌLJ ) /3i@?rTX6i @)1@9?5q!T@@?qcT(Qh @h @)-@)@?TR{COB_,y` @R^@BY't@=YO{C8@9 qTqaTs/Bs/BR*@0R" R{AO¨_O{Cs/`@@?qCT(Qs/`@@?qT(QR{AO¨_Ԁs/`@ ̀R{AO¨_{8@y6(H@9q`TR{_O{C2@qTR{AO¨_@h@ @*+ _%qd@z T@!@ I@9?%qT@ 1@9* @_-qT)@?1T @4qTh@@@`<@9(6@ @=@1`T @<@96@ @I=@1TR{AO¨_WO{@!@TZ@ @:@987 @iRi*I@9_Aq@T)@ @* @ K~@SR{BOAWè_RsO{C@!@ @)5)M ?qaT@ARWR{AO¨_og_WO{-@@9C6;@;P6H-c E;ZC9H@ @ RARҢ:H@ ;@  @@ @)y @@ @М6@hC{#9j@J@H ( @*@J @ k6j*@J @ 8i@)7*@@ )7)@ TC1 Ti@))C?kT@sH7u4C@*!)@ qAT1V@k6@C1JT}@:@@B]O654)!:"q#TQJKu} K -a N >?!T_ T)a qT(7ARF (@ !)@Ќ6H@ @H=R9ҌЌ6H@ @ @*@@J JCk@k@j * @+@k @K +@k @J *iHSP6*@)*)@ MT@P;@)-@)@?!T{FOEWD_CgBoA_ҌЌ6H@ @wWFrWO{(H@9qTN@92N9B@@XRR$RJBRhR{BOAWè_WO{8 @95B@@pRRDR%R{BOAWè_֔@)@*I@9_qT)@)a@9i6AR]@94҂RRQg_WO{C9@9@R@J@9qT@\Y_ ?TQz{EODWC_BgA_WO{(H@9qTB~@@R|~R$RҲBR_hR{BOAWè_WO{B@@R\R$RҒ @5M qT@@ARV2kTQ{BOAWè_@vVWO{B@@\R0RRR{BOAWè_WO{H4@94BB@@tRBR$RBRgR{COBWA_֖B>@@R>RRWO{B"@@Rߍ"R$RBRgR{BOAWè_WO{ @r \@@@!(!RӅ BF@(!RFRR!:a{BOAWè_h>@9H6h@@ :{BOAWè_\n?!: 6@9_q {BOAWè_O{( @ T4BAR3UR( @ 5@9 6@@th:@9H(7!:i)CjU)} ? Th@rTP7H@7X7R`6h@ @T(h @@9qTh@@h@9 h @ 9@9 6@@=@9'7@929R{BOA_)@'@jUTO{C @8@9H87@ @ 2nR{AO¨_"|@OR{AO¨_O{C3@3 @5M qT@@ A!xRVR{AO¨_ARTBR{AO¨_? R_ֈ0@9h4R_(@@@H I@9?qT@R_O{-@@@!@R.4@gPm@)-@)@?TR{BOA_oO{C@!@ @?rT)5)M ?q!T@ R{AO¨_ARaTR&R{AO¨_CWO{-@@ @4!@@ -JU _qT@J @ @*-C+6%A96(7X6 @ 9@9 6@@=@9( 7}CBRgQi@@*-C+6%A9H7 @ @y>r@r@#6@@7@%\>@9 (7@)-@)@?aTR{DOCWBC_A! `RUUm@)-@)@?TYo7X6 @ 9@9 6@@=@9 7Ri}?)?T@9 _q!T @8J_qT _8J_qT!cT @9*ij8 !T@_T @9lq!Tl@8qTi_8)?qTJcTl@9,il8k JTi@[>@9/6h@2h@)-@)@? T_WO{-@@ @-U qTh@ @u @BRPh@C@%A9@7HX7 R)4r  ?qT@) @(6]|@_6!!p`R)U@ R)4r  ?q`TcR_@(7@rrC#@6@h>@9(7 @>@9 (7@Ru@x649@@97Rf] @#R| @@Ruh@(7X6h @ 9@9 6@@=@9( 7{@2x6 @d=@2x7h@7@)-@)@?aTR{FOEWD_C_h@ @I @)-@)@?TQn#Rj| @?@@Ru@L86  SS8@9q@T(`@969@)! aTR_ֈ8@9)a.(9R_ֈa.@9) @*)@qH( R_O{C@ %A9 4NR{AO¨_!@@9@UN~NR{AO¨_{OR{_WO{a@(@Hh@H !@ 5@9)4% @@shJ@9qTs@5!@)6@ 5!@:@9H 87@ @ TJ)!:! 8@9J86 @J@KI@9AqTJ@!RRR @@!:aHT{BOAWè_ֈ@!@@?qT(Q @ @!@`@@?qT(QhN@9yhN9{BOAWè_ҝt|@T:@987 @@)@ @@R @{BOAWè_hzfzO{CuBR9dR{AO¨_O{C@ @h@!@BR&dh@!@8@907R{AO¨_R{AO¨_{! RnR{_{!@ysR{_( R_?R_{)@*@ @@?R{_!H9nO{C @KhR{AO¨_O{C( @ @KR{AO¨_O{C @KR{AO¨_WO{4@96( @yS )1%+ih8J @h @ 1@9?)qT(qh @ 1@9?1qT(jh @ 1@9?5qT(ch @ 1@9?-q T@U2@9?1qT JA%Lii8k `։)6)@@ yj @J @(y*@?qT(Q"@y62`@8@9063"@y6(@ @)5)M ?qaT @!@@ @) f @RRRj"@y6AR-Qh @ @) b @ "@y7 RnR{COBWA_ry"@y6 $Q( Qg_WO{-@@ @9Qq T )y%+yhxJ @֔Д@h6@9Q4BRXA8@ @ @@ 0@9?)qAT @@@?Nh@5M q7Th@@h@5M q7Th@@@8hR4!!in5h6@94 =Q@9(5h@5M q[Th@@Д":@h@ R r* 2  ka4Th@@Д@Jh6@9P5ҟA8@h@ @ 0@9?)qAT @A@58@94@)-@)@?!TR{GOFWE_DgC_@9J4! n5h@ R r)  qTTh@ @t @h@5M qa-Th@@kh@5M q.Th@@p!!m5ARUP*9@8G4!! m58@9rATh@H`P7s"%.`"@@!.H@T"h@@@7r@T@h2@9%qa(TN@96a @?qxT(Qh N@92N9l|@@ 1@9)%Q?q(T @@h@5M qATTh@@h@ R r* 2  k#Th@@h@ R r)  q!$Th@ @s @"@h 1@9)%Q?qT @@th@5M qOTh@@~8@9:4qT`=Ih6@9=6t @RH@9Mq`T1qqT@5M q;T@@!RBRX7@ @@]( !.RP#h@ R)4r q!"T` @h@ R r* 2  k"Th@@@ 1@9)%Q?q(T @@h@5M qAFTh@@2h@ R r* 2  kTh@@ @@?qaT(Qh6@925@H 1@9)%Q?qT @@T@)@HI6@)!RR@-@ 1@9)%Q?qT @H@h@5M qa>Th@@@ 1@9)%Q?qT @@@1@I@1!RRu@5h@5M qATh@@h@5M qTh@@ARO)(9ARO2)A(}ARQ:J R r jTrARN!`4 @seARN^Lk|@IYARQa8 @y)4)2 yLBR L@wRl` R @8 {j?*jT Rq9Cc6@'4@&R@8 [h_)jT%4~\HHCc"6 @z5"T@BR[*AR}QA8 @y4)2 yARpQQ8 @y4)2 yARqN 1T < ARfN LN @Rr  H6G@@6@9h6 @@ @ARk`@ @) AR k8@94<h@@h< I@9?q;T@h@5M qTh@@AR+N~i@Hh6@948@9758@9rTi@)5)M ?qATi@ !@ok}pk{Dkyh@ b@_q$@ T*1@9J%Q_qT) @i)@)5M qTh@@ARMm3TB@@?q/T(QARnNARMa+GBRK@Rj! 9@)2 9`5 h@Hz h@-?zҘ@ @@!!<RRRҙ@!h@'z@ @@!!$RRRvz54jgGq8 @y4)2 yjARrM@9q *9ARhM@ARbM@%@ %@)%ARXM@!ARRM@ B9@I7@D@ B9)2 9)y 9 Rr  qTh@ @` @BRkJ@!T R RpAR)M@ @ @(@ AbT R R  }ooNoN  C=d=Oo@NNN!N%n%nNN!TBNC@nBJ< K&l * N@n <  &m * ATB |o =E=f=Oo = oooooo<NNNNcN!NNBN'n'n'n'nNNNNAT$NENN@n< & *N!NN@n < & * `TH7  R.@8* J *JaT4Q#T 5s"%.`"@@".U@Tu"@929s"&.`"@@!.H@Tt"h@  qTh@ @s @cBRI"%."@@!.H`Tǁ"@@N"_(|T @9{'6th6@9(5tt=!!<Aa@97g҂RRGLA@BR~^(5))( LA@BRm^@9)-*JEqHW LO{-@@ @-U qT@A@BRNI@}E@h@)-@)@?T{BOA_fgO{-@@sh@ qT @ R*4r) ?qT @" @@BRqX@h@*)єb@@@_ Th@@@i)8@@@ h@) VgQh@@i@)QI)8Q @? q T)R@_y)) ? kT@)-@)@?T{BOA_gC_WO{-@@ @-U qAT@ @@@u%BRH@@@@96@(@)=@?qT@}~? 1T@{}x?1v}@ @T @@BRs4 @?qT(Q h@c @h9@@ h9 @)  @ @ @h9@W:8iC{{#`/@`RRR<#@h/@@ @ @@ R u3 h* @ h7@Tha7@y @ 2@ @@ g @?T @!)#*@K @kK )!?Th@h9@6@ h9 @) O:mCw"2@RRR[<@2@@ @R @Rr( 6c@@2@R @}@>@9(6@(@h*=@_q-Tw@)=@4@  _ 1T !w@_1`T @y9#:? qTΞw2kTH!5cA@RRR_T"@)c|@H@95c҅Rݒ!0"RRR˒@)R *v{EODWC_BgAoƨ_/Rnh@hn 4(GC#mog_ W O { -@@/<@96@ @ =@_qT4@ =@_1T _qT _ 1lT+!k@v! =@_1T_qT_ 1lT)!)@3@6!@8@@?q<T(Q_ 1,T4@ =@_1T R R+@@!  @@@?q9T(Qs~@@L@uеb3@"@)c|@(@9RP@&qT&qT@ʉ)ɪHi* "@9 R)  h!0"RRR$h* @) 3R @@l @2@ Q@)y QC%)4h9@@ h9 @)  R@ @RLzZ#: _1 =@_1aT =@_1aTR6  )3F8mCt"2@RRR;@2@@ @R @Rr( 6?@2@R h* @ h7@*#Tha7@y @ 2RzZ#: (Tc@CRRRRRly+@!@\@@?qT(Q R R8?@! @@@?qcT(Q7@ @@+@ 9@9i'7@mmK@wpR Hc_(#@@%@9R @@A?@96@(@h*=@_qTx@)=@) 4@@@4@#'! @)c|@(kc8R#"4Q@@RRR@h@-qTRj:ODTh@ @@!@ R R>@! _ 1T !x@_1T@@@@@4@&!tД": @)c|@kc8Rא9#4Q!@@RRRː@h@-qTR:@@@ @(#@"@)}@H@9@/@)-@)@?T{LOKWJ_IgHoG#FmC_l-l6_og_WO{Rٚ`{{c3RҚ@#@)c|@H@9Rw`@#'@)c|@hjc8Rj@@@R_H@ @`@@)c|@hjc8RR{FOEWD_CgBoA_#mog_WO{c7@@8 <@986 @*@*8)=@?17T@! @)c|@H@9R&@6@5T@ @)@4)=@w9{{*|М7zZc7 4@3}J)\)}T qT@ @?qT @-R*ͭr? kTy@@@qt"T!`"R@5@h9 @) #! BRCRa@ @(qT!! (@9rR R#a@@qtД"!T`!R6iCw".@`RRR8@.@@ @ @@ R u3 h@`@ (Tw9H@y @ 2 4cbRR" @ ( 4@@qT@-R)ͭr kT4y@@@qT"R! BRCR`@ @(q T!! (@9r#`sQ@%A? Td@@@@qT!R-ҫx@ @(qTc@zZc7{{*|7tД"w9tД" -Ro@ @(qT@@h9 @) mC2@RRRC8Rr@2@@ @R @( 6K<@2@R h@`@ TH@y @ 2@ @(h9 @) 2@RRR 8@2@@ @R @( 6<@2@R h@`@ TH@y @ 2^ҘR (x#:5mC2@52@jh @ Rh@@>@96@ @ =@?1@T!@@h @T R R4<@! @h @T@?qcT(Q{GOFWE_DgCoB#Am_֖+h++C#mog_ W O { -@@/#bH<@9(6H@ @=@1{{#:RRR{{#:#@RRRR3@ic [TRR'y+@{{#:" j h'@h@!@@h @) @ R R;h@!  @d :#RRR@@?q#T(Q @@?qÁT(Q'@ =@97RRy+@{{#:3@@=@1`TqT 1lT#@2@9-qAqT@@ @1pTRRR3@y+@{{#: 2@9-qT@@ @1T3RRr BR>@C+@4sQ@ @H qAT@ @@C+@s5C@RRRR@iIaT+8jc h|7+@@!@h@h @) d@ R R#;@!  @d :@CRRRV`@@?qnT(Q~ `@@?qCnT(QD)i^7 @(@)=@?qT@ 2@9-q^TR@@ @? 1LT@i)a3 @! @)c|@H@9R)@@ 9R(Z{{#:|c3 57 4Q@@RRR`@5RT`ZRt@!@h@ @) d@  R R:@! @HRRRی`@@?qT(Q~`@ @?qT(Qhh'@@ @i)95@jJ95@(H@H_3mCi)! 1@RRR5i)!@(1@@ @R @Rr( 69@2@R i)*(@ h7@*TTha7@y @ 2@H$7#@v":(iC@?(9"T'@) @:yyZ@@@@v":H@! @)c|@H@9҅RVZ@H @1@9%qaT͢;@ q+TiKi8?q!TQhKh8qTqATh@9qTH @ @@'@ T+@H@! @)c|@H@9R)@@ 1@9?%qT @@Hh2@9-qTh@@s @i)96@@(i)9(@(i)! -@`RRR%5i)!@(-@@ @ @@ R u3 i)*(@ h7@ Tha7@y @ 21 T @ @ ( q@T`@AR'v;@qT!`"RCR\@%A?,T! BRCR\; H@ ? 1T@ @ %@9qR R#\@%A?LT?@9h6@ @ =@1Th2@9-qTARF;@qT!`"RCR%! BRCR\; H@ ? 1!T@ @}2i)! -@f@ @ %@9qR R#\(x+@h @ @ @7#@ss9(iC @(*T+@) @9ywA @@ss99@( @1@9%qaT;@ q+TIKi8?q!TQHKh8qTqATH@9qT(@! @)c|@H@9R ( @ @@+@dH@T3@9-qT@@ @s@Sh@(i)9(@(hi)! -@`RRR4i)!@(-`h@h@ h@ h@h@ R u3i i)*(@ h7@*Tha7@y h@ 2h1` T h@i @ ( q@@T@ARu;@qT!`"RCR[h@%A?,T! BRCR[; (@ ? 1T@ @ %@9qR R#[h@%A?LTARE;@qT!`"RCR$! BRCR[; (@ ? 1T@ @x1i)! -@`t@% %@9qR R#['/@)-@)@?T{LOKWJ_IgHoG#FmC_R8R#:RRha3@@RRR6;R"z4@ @Rr( qAT@ @@h=@@BR;h=@ @RRRZQ9'@;@7'@ =@9i7 @(@)=@?qkT@? 1lT@?1@T@`@ @@%SRM f'_fff Y#m_WO{<@9H6 @(@)=@?1`T?qT@!@~@?1JT@!@~@jJa3@@)@9$@Rҵ@h@!@@h@!@@&q@T,h@!@` R RO7h@!  HRh@!@@ R R@7h@!  @&qT@ʉ)ɪHi* ʩ"@9 R)  h4!0"RRRhh* @) {DOCWB_A#l_vR(BRR&q @!@@ @8R R R6@! @ h@2hh@ Q@)y Q{DOCWB_A#l_*p=WO{h@RRR@@@ua@?`Tb@h@hPuh@h` @{COBWAG{COBWA_*<=O{qCh@s,cRRRR\+!1B+cR{COB)hRP'=WO{tB6h7@ @+ u6)@ J J}}_!!T6}@Rp@{COBWA_![+<#mog_WO { -@@@ @D =@_qT5@ _ 1T5@U_1`T >@9*B65@AqBT!@3h@ T`@B,cRRRRf h@AT@h@! R R 6@!   @`@)-@)@?<T{JOIWH_GgFoE#Dm_`"@jJ9T@i)9@H(@(8/iCzZ#@/@`RRRD1@H/@@ @ @@ R u3 {{*h@`|7@*3Tha7@y @ 2q@%A8?T@ @ ( !=bRRRއX#:@ @*_!@qT))%Q?qT @ @)(@ @1`,T; @ c(mC)rI)96@v)@(I)9(@(mC@3@RRR0@H3@@ @R @Rr( 64@2@R h@`@$THa7@y @ 2c!0"RRRzcRRR{&A))y *R) *&)v&A))y ) *&)@)-@)@? T!{JOIWH_GgFoE#Dm@/@Q4h@@9R o/@@@@V5 /;R @ ( {4{Q@RRR,@c?@T@V@%A?T@H@!@@ R R4H@! @$aAy@@ 4 @!ARXq {qT@ @ R R kT@ @H@!њp {q!TI)96@V @(I)9(@(w"2@RRR/@2@@ @R @Rr( 63@2@R I)*(@ H7@THa7@y @ 2c!0"RRRRRR@Bp@%A?T@ @ ( Q5-w"2@ #-mC@3@#g#4(: ,:U#mWO{u"@96 R!W 7@9(6 R!Q7 RRM7U9@h @96R!C7@h@9(6R!;7RR7 4H+@9I)+)@q AzT.RuBH+@4{COBWA#lW.Rau W@`.R?A`{COBWA#l_>g `ӟZ y aQ g `ӟZ y bQ <"gHbIx aQ_|g~g `ӟ y bQ |"gHbIx aQ_~g `ӟ y aQ |!gHa)x `Q_$RRF R#mog_WO {  @X@_*x7@@9yKy kTTk+mi`8  +Rk! y cTqT@9Jy _ k RuL@9 Yl+Rk! j`'TFӎC} @  Z+Rk! H+Rk! 6+Rk! $+Rk! +Rk! L@9 Yl j T-#ɚFӏC} @  ZL@9 Yl j T-#ɚFӏC} @  ZL@9 Yl j@ T-#ɚFӏC} @  ZL@9 Yl jT-#ɚFӏC} @  ZL@9 Yl jT-#ɚFӏC} @  ZL@9 Yl j`T+#ɚFӎC} @  y ZK@9 Yk%6,#ɚmFnC}k @ k  $bT{JOIWH_GgFoE#Dm_ZK  TR,R!"ic+R`!! R bk - q Y-Bq/ Rk\@9 y|j`T  qd @@z Tl@8 yl _ @Azq@zT{   ~ٛSS aT-#ɚ   ) `Z[U )' c i((`  787R9`4 @R!,:/R@ @`'C@ RC)! R/R@ @`'C@ RC)! R @47R;G:@ kY- J-;@`4#qT?%T!. qI#!-RU:;@06h@2hHO6I0 )/q( ) /q(!0 R9h@R *h i!c(aD K  TH(`H8/7I0 )/q( ) /q(!0 R9h@2h&RRR`H@2HdRRRYO{-@@ H@C#$RRF RD @h@c@r a@)-@)@?T{COB_!SO{-@@ H@2C#dRRR @h@c@r a@)-@)@?T{COB_RO{-@@ H@C#RRR @h@c@r a@)-@)@?T{COB_Rg_WO{C-@@U"@96 R! 7@9(6 R!7 RR7Uе9@ @96R!7@ @9 6R!y 7RRu 4H+@9qH+@ Bz?qT.WRDzZCH@ @-U qT@ @@0j68S4.WR@?`@@iT0BR74@f0~R5S04h@T @9?qaTR@)-@)@?aT{EODWC_BgA_@i@(h R@)-@)@?T0Rog_WO{-@@@ @9_qT_qAT RR`T @9_qT Tk@9qT Tk@9LR qTT`T R @9_qT R_qT lyMqTL,R qTT @9lyMq@TEqT%qAT Tk@9ky9q!T Tk@9kyq@ TqTR7 * xT @9ky%qT R5 * ?@ T)@9)y?9q T ?` T)@9)y?%q T ? T)@9)y?Qq T ? T)@9)y?eq! T!xTj T @9jy_9qT _ TJ@9Jy_qT _@TJ@9Jy_9qTR7 * xT @9K2kyMqTxT @9_q!T R5*T B TYR ky84_qT9?AT @_qT R7 *T @9?qATaTR@)-@)@?T{GOFWE_DgCoB__qAT @9?qTaTT˩) R @9+yk_+jTAT0R.YR_TI@9?qT@9?q DT!C#RQ@9%TCTR q!TT(˩) R@9+yk_+jTATXTRx*@9y qTaqT@9)(yh(g6(;R#҄RRR@9q!T(;R#$RRF R @h h @ qTuPg_WO{-@@ 9@9*[h R?*jT u?qTRH@9 ?%(T@I  _hTk+mij8 ?T*3KR} A,)?T-9Q%qhT TaTqkT ) ?T*@8J_)#T 2 2VC42 @bT* @9k%TJAT @UT @9)y?qTT  R @9,{i,jTJ !Tm+T@ KNJ @yRk J J T(*J)iA1.RQhS24} N)9)Q?%qhTJR}*A)I *9JQ_%qHTKR} A*) *9JQ_%q(TKR} A*) *9JQ_%qTKR} A*) *9JQ_%qTKR} A*) *9JQ_%qTKR} A*) *9JQ_%qTKR} A*) *9JQ_%qTKR} A*) ?TV2@)-@)@?! T{FOEWD_CgB__b T H@8+[h?+j@T u?qaTq TRZ _TBC@4 @bT @9)?%TR *  ?T*@8J_)#T D ?T*@9_q`T_qAT ?"T(@9%T) ?T*@8J_)#T 42#TV4R#X 7`06R* yrr44RyOqTRZ _TRWO{B@_T@9 ?%T@? "T+@9k%T+35 MR)} .T.@9%TQ TRaTq TQ_TR{BOAWè_ h R{BOAWè_)@9)4R{BOAWè_C_WO{-@@W"@9T96 R!7@9(6 R!7 RRܾ7@ @96R!Ծ7@@96R!̾7RRȾ4H+@9I)+)@q AzT.RRUB@97!H+@46R@9h7.RRU @96 R!7@9(6 R!7 RR7@ @96R!7@@96R!7RR6RPH@ @-U qT@%BRj0P@bTT+@4.@ qkTQI)+)@95qLT.!ĀR-7.ĀR?@@)-@)@?T{DOCWB_AC_.!ÀR}@YN#mWO{C-@@bPT R@9 yj?*jTCT C@4 @T 7(71#)$ @@ar a`%@`9q`TqAT T@9qT@8y/ qTaqT ,hOj58Co@` @ˈ v, @@Th C`@` @T@)-@)@?T{EODWC#Bm_MҀ`g b `w *_{-@@ @rThh7H`7-U q!T@ @ @ R_)-@)@?@T$@@`g b `w *_)-@)@?T{B_CRo/ @#hq_)-@)@?TM#mg_WO{CW:6@RS7@@*@'@$@!@@P06@ RR+Y995@5@(H9 @) 1%iCX#/@`RRR='@/@@ @ @@ R u3 RR+@@ @ iR @ 7H+ @* R(+8R RR+"~H;06@v @(H9 @) /@`RRR&@/@@ @ @@ R u3 @@ R u3H@"@"R*(RT @I)6(s7HHHHHHQ09{EODWC_BgA#l_֜$/@g_WO{CH9@i@ H9 @) (R*hR)BqHT,O4)!,+iw8J @Y9#6{w@9@&@}(k7L @9h>q T {EODWC_BgA_S$(R*P)Bq TT1Uе"zw@9@X&@z7`h@BqT2qaTh@ h@R i@Rr( h6\*h@2hh@R hBhhbh * 97@9) @9 !R*`h@ h@h@ h@ h@h@ R u3i AR"RRdh@ 2hH=@1 @@ @) i@(h@R !O{CR *`}ӈR*(R"~{AO¨_WO{H AT"@JT*}J@H !!}K@ @@ {BOAWè_Rg_WO{@"@"vA9H 6:*^@H7@Ib@"5}U:@RH6vA9h6@ _x ] @aT)X6@HcU:@RH6H=@`@ @) @*sh@  h RM7^@(x7{\^@7DH2@q@ T@@h@ T*@Z@y@@ @@`^@y^*66@@?qT(Q"i)-T.{h@o@9qTyh@nrA9n77 @ @qTy( @?qCT.Q Q42@95qT@)@T/ @4]@y]@)@Y. @. '' X@@'@@@KTX:Y96 @?qT(QT@yu@@AT?W@@H @"@ AzT(q"`T@@f)d)h @4rA96@@?qT(Q^@ R)r ^{GOFWE_DgC_*@@*rA9'7@?qT(Q"@  )@ ѩ@yh@@(@0).)@WWZWl1/O{C @q T{AO¨_@ h@j@ i@yh  I`@){AO¨)@ ]@IX6)y ] @(@ _x ]_(@ @AT( _og_WO { _jT 3R!R((K?k4897'RH@{@R04#|@Ssu@mT @@K4{mT{{@9@9?kT@97"@1T&@1T#@7CSsw6T+@+'@/H @IHt@9qTqTqTR- @?@T{T{{@9 @9? k!T @97 !@?1 T %@?1!T@@BK@5(R!9R0h@T!\:R0aRRH6@yu#{JOIWH_GgFoE_w6@#@ 6(6@ @I)8)@ T@Ss7W7H=@Ay)=J=km9!qjAqRKz(=Ss)9J@9k%_qi&@k9_1+*Rg'!8RA0{@7f*1.WO{ 6R!R'(Jj389{BOAWè__WO{R@929 @ 6@929 @ 6@929 6H8@U@H AT"/@h -T }@I !}CI@zs@R z3@9 qcT@ {COBWA_Ĩ_ WO{VK{BOAWèWO{-@@ @ R r* 2  kT@ @@BR7@p@)-@)@?T{COBWA_HC#mog_WO{Kk:u@ @X6 @ TH @9I49Y99A 4H@%@HJJ?rH@ R/,@9q Tq TqT`R>I@a@q(h @yt9@9(66@a@5izt(@96YR*K qT763@h4hzt@97(R3 R:,`4@9)!=J<qH_)R'!h< RQ,3;R(R@R;RRR(* @ (7@T(a7@y @ 2 `@@H@H#'C'@({9HW;l*QE`@a@9RvV@D=a*@@9RlV;Y*O{CG{AO¨O{-@@ @ R r* 2  kT@ @@BRT3@@)-@)@?T{BOA_ E{(8@@@{_RQ@@{_O{CSsH@@h4I)(HSs@@Ss"H@hH9{AO¨_I)! =@(04?=I)-@_@I)-@mJJJ@ @ MTl1 ?H _L@@L ˌ !T@@9P4@97!@1T9)g_WO{V֢@T@H9W@U@Kkx@?II+T9Rs3 Tzxh @9* @97@R *@@@W@60T Tzw*@9J4+@9 7,%@1T@,%K7+@ )@)@9?q@ BzcT1RRfE R7@@ ?1{FOEWD_CgB_O{46@)):*@I @?!TI@) @ ?T4ys@?qCT)Q y3H@ @?(ST@)); y3H @?mTi {BOA_P@#(4)'4 )og_WO{C(Q0@9I)!)@q @zTH@(k2K])@))@I?T*@K@K]@k7?6 @K]@ ?6k2K]*@K]@H@@5:@)@4 @JTI A?T"@-T*}j@H !!}C@zt@z4464qaT@@ @TH@@99;:R;{#:|UV. @?qCT)Q y7 T {w@yw{7@yw @y_jT JCJ}_ V`T*@j)@94I@9?qTXP@zr T@@ @jTg(9@3i@ (9 @) (iC`V".@`RRR4@.`h@h@ h@ h@h@ R u3i @h@ R u3i@@ @TI))@)@*J;+R,!:mUN.T/yh@zh*y( @zh@? j@T C| !"N @z!T7@97/2@ @{EODWC_BgAoƨ_{C(6@H)):)@) @?T@y`))!:)aIT @i6)y ( @?mT  {A_#05'5'Cog_WO{H@!@@ @kgB5 0@ TU4;R7j76H{{ @ 0h @  T){{)(@94*@9H{{7 @  @  +1D))@'/# +@)1D)'/#7Rj7֦6H @+1D))@'/#/ @ T){wI(@94*@9H{wJ6 @  +@)1D)'/#{HOGWF_EgDoCC_{@%@{,8D'3 m+ m# mo g _WO{C-@@C`2@9Zh@]@  @(]@ ]@)2 ]h@!@uA9 6xSD bC@!h@ uA987@R@*uA986 @`ryh@@ _) h@ uA9i87@@(@ ]@)2 ]h@@Si@(@)qA9 h7 @) h@@@(h@@@(h@Y@@(Yh6@9h6a @h@ @k.h>@9(6@2h@ @Rh@ ]@`7'%@`+@V)@K @3.@J@U @R_i@8a@5 7)@h@ ]@)?qT%@@@ kT@ Rri`(R8R_F 997+@R@ uA9 06_@7h @h @)996`R@%@@)%@(4Д:@@ @))6(_@6 (RC7@h@%@7@ @ @Iyi* @ C@@)%@( (RC+CTG76֢9 EmC iC qC uC4Д6@H@))9(@(_I@y8-&T Tyyx(@9()@7@(@H3@yxH @H )@96C@7*#@@yj:J;@9j6I7_@7i@)a@5)@*@9_qJ!=kB'7@(@@9q@Tq@TqAT)@9I63@)yx)@*qA907()@@:H@))9(@(@H@))9(@('@ H@))9(@(H@ H@))9(@(g)@9? qcT*@* 3@yx:H @H 4Д6|l7@_H;{#`3@4Д6RRRw7@@h3@H@H@ H@R I@Rr( H6~7@H@2HH@R "A7@_J;{#`/@4Д6`RRRL7@@h/@H@H@ H@ H@H@ R u3I@_ (@96H@2H(7@_Lq4Д6T!Q?eqh Th'4Д6Ro@ uA986@@w(@(@9)R!'@H@H@ ]@)2 ]H@ ]@)2 ]7@ 7@4Д6_K99# 7@R RR''@7@G@G7@H*7@(70o@_ \@2\4Д6G@4'@7@ *6 @@))9(@(#4Д;TThyuT T @97@@9)q$ @z T}3@ ih))6)@!ih҉7@7@6"2@RRR7@@2@@ @R @Rr( 67@@2@R (* @ (7@T(a7@y @ 2'R4Д;996'@ן6X LT 6 ThyvTT @9I7@@9)q$ @zT(6@yv@qA9773@ @@)@?@T'@RRR p`@@(@}ix(@ ix* @J* ixRRRoG@QG8R7@ן6X MTG@h5;@+@ @]@7rTThyuT T @97@@9)q$ @z T(6@yu(@qA9H773@yu@)@'@7@ @ @]@ 6 )@I*A@yK!%qaT %@k@l@ > RJ@y %@k@l@  @, @yl @ q!T_@7m@%@@@@k@k@kylk!@ykk@97hR@jR) *&) @?qT(Q h@@ct6@ ]@)2 @k@k@lA@ylp7 k@ T p6)@z ]C@)-@)@?T{QOPWO_NgMoL#Km+Jm3Im_@(@i@)@ @ ]@R r? jT@ @)  7@pKy>>#O{CR{AO¨>WO{ @ ?!@qT ?5q*RI! R) $@z`T5qT@ ]@I3x7@4(@@@ ?5qTBR5{BOAWè_}*2@95q`T7i4@@@>{BOAWè_{BOAWè_#R_{BOAWè_@ =@9i6@@=@h4!@>!| R*! BRCR?@@!(@9rR R#?{BOAWè_g_WO{@ @5@K T@6@ @8;(@ )@?@TTzu?$X`T(@((@@9qT+@9 7Y@)3@9?5q T@ 5@9I4 @(@)@@?qT(Q  qA9i 7 @?qT(Q h @h (@)j@J)@J@K%@k@l@@,!@yl-@97i@) @* Y@)3@9?5qTJ{DOCWB_AgŨ_3m+m#mog_WO{ C3|@@@kTzs,:Z9T@999@H(@(BiC8#/@`RRRN@/@@ @ @@ R u3 @@ @`}'__ @@Y@R@@ @  @ +T E mC uC qC @{{ @ @y;{Tz{T @9I4 @*@9 @97i7_q T_q T_qTW@@H(@(5е".@`RRR@.@@ @ @@ R u3 W@@H(@(3{{_qT*2@95q@ @zT@J]@ R+r*jT@) @zaTW@ @H(@(5е"6@R RR@60o W@@H(@(5е"2@RRR@2@@ @R @Rr( 6@2@R `W@7@H(@(R5е".@pI 5е"2@@A; 5е"6@W@@H(@(*6"@.@`RRR7@.@@ @ @@ R u3 @@ R u3@@ T&@ }I@)  !};<@zs@?qT(Qz3{IOHWG_FgEoD#Cm+Bm3Am_H{C#!_WO{@5|@*T"@ } @)  !}<@ @@?qCT(Q{COBWA_Ĩ_HO{(@q(T{BOA_(;(<HT` @@?qT(Q`@@?qCT(Qh@96h@h@9(6`@@qT{BOA@ @?qT)Q @ @?qT)Q {BOAh*{BOA_pH`@lHhH@@aH@{BOA@jT_@ya_O{C4R RR(h@ a_) a9h@9(6h@ @) (R9h@99{AO¨_(@())@)@(@)))@(@(Q0@99(@99_WO{5еz h@6:@Rs @@%@@@ @))6(6֢e @@%@@@5 h@5 h @5 h@5 h@5 h@5R0 h@995 h@994@={BOAWè{BOAWè_)).(!@*_]Tke,mij8  \@9* RJikHJ X@9* RJikHJ T@9* RJikHJ P@9* RJikHJ L@9* RJikHJ H@9* RJikHJ D@9* RJikHJ @@9* RJikHJ <@9* J%|HJ 8@9* J%xHJ 4@9* J%tHJ 0@9* J%pHJ ,@9* J%lHJ (@9* J%hHJ $@9* J%dHJ @9* J%`HJ @9* J%\HJ @9* J%XHJ @9* J%THJ @9* J%PHJ @9* J%LHJ @9* J%HHJ @9* J%DHJ @9) )%@ J_*D)+VRKr+, ) J+@  <(JK A K*5J)= NEI  K J #TT @J K1a +@,ik8 )R @9  @9) @yh ) J KJiI J)* JH J!I )9) (J1  * JH m  )) KJ K=J J_- ,.(Hӊ-@1A T@ J KJʓ 0 ), ʌ ГATQqT,im8  @9 @9 @9 @9a @9A @9! @9  j Kʉ - )Jʓ* HIʪʫ͓k@ ȓk L iʊ Kʉ̓jk˓)L (ʉj+ Hʊ̓iJ+ Hȓ ` J_O{Cs 9 {AO¨og_WO{7889>Z/{/<9A@y!@qT Q?qTJki8 &@  Q?qTkki8J @@*@JuA97ʊ@9J7*@K]@k @6)=@9) 7I)@Ijq T%q TȊ@97@`X ][Ɋ@9) 07@ *@K]@k@6)=@9)7I)@IOɊ@9 6@i *A@yJ!_UqT*BKA@yJ!rI)@)A@y*!@_Eq$ @ T*@K]@@6)=@9i7I)@I1@@*@K]@@6)=@97I)@I&6 A@y)!?qT@ @ T@@y!rTqATAR +6qT [h 6qTAR {hRȊ@9h6@TB@y@?rIw6(f [hR{FOEWD_CgBoA_O{C 9 {AO¨og_WO{Zo0;R<9tRrւ0@B@y !?5q-T*9Q_5qTjj8 @(@@y!qT96?qHTJki8 @i`T9!T&v*)Q_ qbTq?q T p6@C@y()q! TR# 4 p6@A@y!QQqh# @z T@%@ '@ %R!6R3@%N@ A@yIp7(@@y!qAT/@9(6>@9(6`R 4@3@9%qT @ @H @$#RZ`R!L$&@@p @(@@y!qTq T5( @T(@ A@yp796 @97@@@y!aq@T"RS"@97B@y@iw7(T A@y@w7SaT{FOEWD_CgBoA_og_WO{ Ch-@@o @@yH I78c6@aRU79 Rs21yBy@T B@y I7B@y 2By!)qT -Q? qT%q`TaqAT%qR @9?YqaT @9@#%q T%qAT@9iR qT@9q`TAqT@ A@y)!?%q@T?aq!TBR@9jR* _Iq Rz!T-qRR"@R6B@y !?qTkzixJ @ֈ@9 6@ @@yJ!_UqAT @9jLQqT @9k * 5 @R H*9@9k29?1qaT_ q`Tr@9 qAT@ R_qDBzT@ R A@yJ!KQMqT R ik8  @9)r T?qT R]@ A@y)!?=qT?%q` T?aqTR?-q!Thp7 ҈@H@*A@yJ!_%qT&@" A@yj!_ q$ @` T*A@yJ!_QqT*@LA@y!%q!TL@A@yqaT,@Tp6 @l@ @Ll@ @TlA@ylp6k@+ @9jR) ?qT @9?qT)?q$PzT@ A@y)!?%q@T?aq!T"R2R0 R bR+ @9jR_)j@T@977 R R@9 *9B@y !?1qT !?-qT@9)? qaT@  R$qdBz!T)@ R+A@yk!lQMqT R il8 *@9JrT_qT R R *@9kR*jT)@977 R@9) *9@9?qT@9)?q T !_-qaT6@ B@y)!?q! T@  @*A@yJ!_5q! T)@9?qT@ @ R r q!T@@7@TB@y97AR 7TȎ@9h6B@y!qaT@u@sq@@9@9(*9@@)B 9B@y !?qT@ @)@9aR(CB@yIRiR9 *By !?qAT@ @@y*!_=qT_aq`T_%qT @9J_qT 9J7@thC@y !?)qT[BRkj@ A@y)!?1q*RI! @R) $@zT @9?r`TЀ`(!@97@qBzaT@B@y!!q T=q T%qT)qT[u'@ A@y)!?)q!T@ A@y)!?1q*RI! @R) $@zT @9?raT@(A@y!)qTҔ@@Ҏ@yhCy@9(7@ A@y?!rT@H A@y*!_qaT@B@y*!_9qT@֨B@y)!?AqT@WB@y)!?EqT@*A@y_!r!T+ @ Tp6)@i*A@y_!rT* @_T*@_AT)@ *A@yK! qTjp7 *@_T@ @@yK! qT@Ռ@aT p6 @KA@y?Rk %q!TK@9qTRK9ʊ@9J2ʊ9 @* @9*9omȎ@92Ȏ9@929@9)!?iqT?=qT@9r!TY@ @9)@9I *9@B@y2By@ @ @*A@y_!rT)@ *A@y_!rT@EB@y)! A@yJ!? kD@za T@( @*A@yJ!_ qaT)@9)06iR *Bym@ @929@@@9 qT@_qDBzzT@(z R A@yJ!KQMqT R9>ykx  @9)r@|T?qT8@ @*A@y_!rT)@ *A@y_!rT !@*A@y_!rT)@ !*A@y_!rT %@*A@y_!rT)@ %*A@y_!rTq!TCyA+@@? (k)EZ@\R!J?q5T?qa6T_q`5T@)?)ATyBy;@hB@yyBy@9iR?(jT6@A@y)!?q@ET?qDT?%qAIT9kD6F@9 q{T@ R_qDBzyT@Ho R A@yJ!KQMqT Riykx  @9)rwT?qT Rg@9q0T@@2@B@y!q!2TȎ@917p"RҀ@R{Ȏ@92Ȏ9@92Ȋ9{+ @) @3R4 @#!R.zr]T\4xr\T@ qK\T[87rkT(6@929V[06R@96@@@y!%qT@929 @ -aҺ@9 quT@_qDBz\T@(\ R A@yJ!KQMqT Rykx  @9)r`ZT?qTH@r@@y!qqT@9'6@9q07 @ @929@9 qoT@9ho 7@I R@9(  Q)_q @znT@9m(7@*A@yUp7Ҭ@9 qlT@_qDBzST@(S R A@yJ!KQMqT RIykx  @9)r`QT?qT R9@6@@ A@yI@9H(7+R7 +@w@7@?@8 @ R r qT@ @ @+R7 +@w@7@?@@ 7  @ |Ak @*k*kqSk}k k! bT; @9G @T  @9GӈA( @ T  @9GӈA( @`T  @9GӈA( @T  @9GӈA( @T  @9GӈA( @ T  @9GӈA( @`Tk@9K @! AkGkk}K  T  bT)?!bTK?AT ,} ooN J oo@ ///ocnB.n!.J!T!NN N^f? T,*|ooN oooooop< o/2/1oo/onBn..c.nn!.AT!NcN!NNBNN N^f? Ti7 j@8J TR'@ _!TC)(uSw2_35RR R'(?!** u4 T +8T @9qAT @8qT*  T) B HC@yp7h3@_" T_@'@#@?@@@ T R _@'@#@?@3@w@r @ #g'@HD*3@?@@_@q) )!j *  T*@_+TJ  R3m9 R3m9k J_IT,87l8J_hT0TҤ7 ?@@w@hCџT@A@ *w@3@?@h@hCџTH@++_@'@#@7@#@+@z3CTTHC@y! qAT_TTB@yhp7@BT+TH@@BT"H@ZT @B!TA@yp6h@ZAT @BT "@@BAT"RP RJ 3@@`T_@#@?@w@7@h@H@ 3@_@C?@w@7@"R' R! _:_@3@62_T@hR@NhB@y!qTB@y@hp7@"R R@ #@"R R@ @`"R a@R 3@H@h @#@4@9a_@(*2_@h RR="Rҽ @h@9iR *h9_@h9hB@yR *hByAh xRAR@*qTRARh@9h7RARZI)-@)@?!T"{EODWC_BgAoƨ_q'O{C@@y!iqTh5 @i@9(713R@97-R@9H6=@hC95@ A@yip7@B@y !*%Q_q+Rj!ʚ+ ( J D@!T*IQ_9qTklmij8 ?}q(T*RJ! R_ jT{AO¨_։5@?@Thp7@G#R{AO¨a R_qI47qATR(9 HR(9R(R?h(8_) R)9qaTR(R?h(8_HnR(y`RHR?h(8_`R 9HR?h(8__O{Cs2h@H@h"@h2@hB@hR@hb@hr@h@h@h@h@h@h@h@h@hAhAh"Ah2AhBAhRAhbAhrAhAhAhAhAhAhAhAhAhBhBh"Bh2BhBBhRBhbBhrBhBhBhBhBhBhBhBhBhChCh"Ch2ChBChRChbChrChChChChChChChChC`RRh {AO¨_`````````````````` ` ` ` ` ` ` ` ` ` ```````````````````````````````````WO{@H@)@@{COBWAּ%(R{COBWA_{COBWAC_WO{H-@@!@!(@@)@?th@@"@) ?h@h @ih7)P7H6R9 @o6* R9 P7 JR9IO6 iR99h@E@986@ @)2  @?qT(Q @I)-@)@?T{DOCWB_AC_E2@I)-@)@?@TI%WO{@tRѵT@h {BOAWè_WO{`u@5@ A@ ? %(R3@Ru@@@?h@@(4h@h@h@@(5@h~h@@4s@{BOAWè_E@?|@i@?Rr*@J **@J *@@*@ JA@@?ڼO{C3R RRQ{AO¨_WO{@T{BOAWè_`@h@ TRh@iu@?q#T(Qh@BT1h@BT`@{BOAWèWO{@ T@ Mh @h {BOAWè_6!@|||h|}@ M{Ch#`~ g_WO{5R RRh@Th@BTh@]@@? T@(]w!@H|Ӡ(A|Ӆ@|:(] @ {DOCWB_AgŨ_ִ__WO{2@@R@7Rq TBt@@ i@9I6E@?t@@@?h@@4h@h@@hi{COBWA_Ĩ_WO{@H@HE@?{BOAWè_2@R@R q@T@h@(E@?֠4R{BOAWè_֢#(R{BOAWè_O{C@4@(@?ր{AO¨_h@@(4h@ @R h@{AO¨_ֈ@h{AO¨ C_WO{H-@@9@3i@ 9 @) LHiC`".@`RRRX@.`h@h@ h@ h@h@ R u3i @ ": i @ ( @@( @b@#=@@!@R?h@%A? T h@%A?Th@i @ ( h@%A?Th@i @ ( @@JOh@%A?Th@bh@%A?T@I)-@)@?T{DOCWB_AC_"g_WO{C? TZ2H@@jT)%Z2H@@KT @9CT5@@%T&$`5X 4a @2@?@ T@ + T2@9 5R<<!RRbh279#N @ 7(R9R{TH@@*T$H@@KT @CT@@$T#`5{EODWC_BgA_֠wO{CXR"R8N9@  @ 9 @)  @@y  @2 {AO¨xR7 @* 6)@ )A6(_C_WO{H-@@еB67@ @+ ֢6)@ J TCӟqmT7} @ @-U qAT@ @@#: q` T BR#: q@T@ @:@9h(7CiU}  T@r`ThP7@7X6 @ 9@9i 6@@=@9 6R\@ @ @)T"R@`c?@@@ H @@9q@R@XR"R7M9@  @ 9 @) p @@y  @2 Q @@!@I)-@)@?T{DOCWB_AC_@d!WO{е2@@ T@6R RR@ T5!@|H|ӓ|Ө|G@ }{BOAWè_Cog_WO{)@9)4R6r[{R9R!:aI@8(@j{h*jT(rTqT*jT @8k[j?+jT_qaT5 )RAT)I48qMTqqTqT)qTK@9K 4T  5L>(T8ҟTW˟)T"R ;@h@ jT`@8!`@|Ӡ |( |xh@ i] @  @?qR6rCT(Q @95R6r-R )RIR:I  k!R{HOGWF_EgDoCC_ )@?qRJRIk#! Rv Rk!O{C@ jT`@4!`@|(|ӻ|ӈ|oth@ ii)A J!:Ka -H!@H!{AO¨_ @@_{@T @)|ii{_֠P[O{C@@E@?t@@@? {AO¨_{AO¨_h@@H4h@ @R h@{AO¨_ֈ@h{AO¨_g_WO{Ci@T @@T` T@TP@_@hѩ@@? @@Q R{EODWC_BgA_O{H-@@@hF@9h7 R`@ @-U qT@ABRy@i@ @I)-@)@?T{BOA_֗_WO{2@h 8@9H5A7@S 34!R0@3R RRuе `@ ssB ` ``@`@`!`@%@@ jT@8!@|h |Ә| |L@ ":b%"@"@@h@Ti @ jT`@4!`@`|Ө|r @ T@(|h|!th@ ii)A J!:Ka -H!@H!@{COBWA_Ĩ_4!@||L|H|@ b%"@"@h@T}nO{C!sF U!{AO¨UO{C97* @?T@+dT}@ @?T @| ih{AO¨_` {AO¨_O{Cs2h@{AO¨_RR.`!h RRRRҍsv "RRRR҂BRRRR{AO¨wRRRoWO{(@!T @|T!R h@Ph@ `@h?֠t@T@@?`h@@4h@ @R h@ S@?@{COBWA_ֈ@h R' NR# IO{C @@ a@97@?րh@@4h@ @R h@{AO¨_{AO¨_҈@y{AO¨_ֈ@h{AO¨_WO{@(@E@h?@R @@(4@@4@@ @  ?@@H?@Qh@{BOAWè_{BOAWè_g_WO{*Tx|9CTt@ T@ix@#{DOCWB_AgŨ_R{DOCWB_AgŨ_֠P_WO{S @RV 7 4R RRE4h@haTt@TBTTh@iw@@Rh@hT`@`u@TRh@iw@?q#T(Qu@BT6*BT`@+{COBWA_Ĩ_֠PI{q{_a!@ҡ{_WO{@@h A@I ?{BOAWè_(R{BOAWè_E@?|@@?Rr*@J **@J *@@*@ JA@@?s{BOAWè_WO{@T@(E@?|@@ (R{BOAWè_?Rr*@J **@J *@@*@ JA@@?s{BOAWè_{@@@%@H?{_֋(R{_{_{@@(@%@h?|@{_s(R{_|@{_og_WO{C2@h5RR!h RRRRFw "RRRR;BRRRR24@ 5@96 @ @I7()qT* %Q)_!@qb Az @zTwB%6R RR@T`@R%QqTi) +ih8J @2@@k T @RMr9C T7@@]T@kT!`@|@|L2@@T @:HRZ.r;R9CT7@@=T@J@9)J *H52@@+T @)Rzr9C@T7@@#T@kT2@@KT @zRr9C`T7@@ T@kTRt@9(47Ju 4s h@h`T]`@h@ TRh@iu@?q#T(Qh@BT(h@BT`@<h|ӄxh)!:*a)(!@(!6R9@@9?qT @96!$ @9)6!<%@RRREd @rT-U qT@BR `@9H57h@h{EODWC_BgAoƨ_{9@ @9?qT @96!$ @9I6!<%@RRRd @rT-U qT@{_{_BR{og_WO{ C(-@@?qTH@)!:)a T@9?%qT?qaT @8?qT)?qT?qT R @8_q@yS t@ )'6R RRZ!:a@"@R?@@@T!@|ӈ| @jT@||Ӵ] @ a @?qT(Qh @@t'@@@_D)@@KT@A||CI? Tbi| @? qkTh@96 ?@+T@ T@@ TR@iv@?q#T(Q@BT@'@BT@E{C T@T@i|@ Ҩ@T R @8_q*AR R @8_q*R@)R 9_q _qh@9q) 7R1T@@94o@))-@)@?T{IOHWG_FgEoD_9@@9 9@_qT)6!$6!<%@RRRb @r`T-U qaT@BR@95\P@ {@9%q`TqAT@8qTqTqT R@8qyS R@8q(AR R@8q(R)R 9_q _qjJ@9_qI) 7R{__WO{(-@@I== R r8@95A7@<54R*@Rhs @9h4@3C~H @< 7 Rhs CC07@'!Rd3~, @ 7r( RIR(#9hRx#RRRh@ @) 2  @ @?qT(Q @))-@)@?@TC@))-@)@?T{FOEWD_C_ҁ @?qT%@))-@)@?T @?qT(Q %{ @@h-@#{`(R{_{og_WO{C@ @P7)2 (R@ @@(e ;RRV @H@i@?IJZ€A+T@@e@?R7RT@h@I@?4.tpˈ@@(m@!?˵wZ˵T˵R4RI{EODWC_BgAoƨ_WO{ @@1@{BOAWè`*(R{BOAWè_=@?Ra!(BB(ҡ@{BOAWèWO{`@(@H=@?(RRa!(BB(x@{BOAWèX{ @@h5@#{`(R{_R{_{@@@9@H?{_ּ(R{_ֶR{_{ @@h=@!{ ֥(R{_֟R{_WO{2@@Rrs@SR q@T`@h @)jT@E@?{BOAWè_{@@@I@H?{_k(R{_eR{_{@@=S{_V(R{_{@@ @)M@I ?{_D(R{_@!S{_@@!H_ R_{@@ @)Q@I ?{_&(R{_@- S{_@@-K_ R_{@@ @I!U@(R{_ @ )  @ *@J **@ J J@ AU@{ @ @ @ @*AU@ _{ @ @I!Y@{ (R{_ @) 2 {_@ @) 2 _@@]@_R_@@( I@906@m@_R_@@(@ e@i@_R_@@m@_R_{ @@h]@!{ ֈ(R{_ւR{_{ @@ha@!{ q(R{_kR{_{ @@he@!{ Z(R{_TR{_{ @@hi@!{ C(R{_=R{_{`@(@m@C{`*(R{_%R{_{ @@Hm@{`(R{_R{_`@(cid@9 87 @)y __ @)2 __ @))@Ih7P7H6R 89_* R 8IW6JR 8O6(iR)99_{@ @ ) jl@j) 2 *@9_%q`T_qAT*@8_qTJ_q T_q!T @R) * +@95( @J@ RJ ) * {_ @R) * +@95 R) * +@9k4*)y K@84lqTkqTqT)2)2{_֎R{_og_WO{CRV(W( v@@(K@96(@E@h?)@@I@9(7(#@))@*@J2**CI )d[xˆ*T.(@ d[xˆT)@   T s˨@ @)y 3&@@]@?)@ *)@%(R)@)@(@=@h?(R{EODWC_BgAoƨ_O{C@@i@({AO¨___`AR10__C_WO{7b4B4kmT@hnA@~ӕK}~h~~Ӊjh)j(@(ihqmT{DOCWB_AC_L # \AR{C@7a4@k-TA4 @(Y`qT*Q y*{A_# #<{C7a4@kTA4@Y`qT{A_##WO{R R@R~23ka4i@?q TJA4I@(@ q T,i@?q TK@h@ q Tl? qc TI@( @ q T* 2@h@hT`@h@ TRh@iv@?q#T(Qh@BT7!h@BT`@2@h@hT`@h@ TRh@iv@?q#T(Qh@BT!h@BT`@{COBWA_R  R (R)RHR' IR#<O{Csb4h@B4@q@T{AO¨_@!_WO{@@( @E@?ր@`@(@%@h?u:(R4/5@9%q`TqAT@8qTqTqTR@8?q)ySR@8?q)ARR@8?q)R) (R9_q_qjJ@9_qH( 7R @%)@@ 2{BOAWè_O{C@ M@97!@Th@ @)y {AO¨_]R{AO¨_Cog_WO{@(-@@Gh@ @I@9(6(A@?qK T @9?%qT?qaT?1 T@@ @-U qT@ @@ T @8?qT)?q T?qT R @8_qYyS)BR@ TRvP@7s @8?%q+ R @8_q*AR R @8_q*RY)R 9_q _qh@9q) 7R6k6R?1!T 7V @8?%qh@h@@P@@e)h@ @) 2 @9q!Th@ M@9I7!@BR Th@ @)y @))-@)@?T:R@))-@)@?@T0@T @ ?yT@))-@)@?T{HOGWF_EgDoCC_{HRh#H&I)&#A!D6R@))-@)@?@Tu R'  R' _WO{8@#@c767`'@@3!)L{COBWA_Ĩ_{COBWA_Ĩ_v{COBWA_Ĩ_g_WO{ @@h4@ @ R) ?q!T!@@T6h@ @)2 {DOCWB_AgŨ_@q!T9/86Z,(@4"h@ @) (@5`@L@97@qTH@?`@L@96@h``@`L@9H7@q@Th@ @)2 h@@i@(g_WO{ @@h4 @!@R{DOCWB_AgŨ_֟@q!T9/86Z,(@4mh@ @) (@5`@L@97+@@qTH@?`@L@96@h`@`L@9H7ok@q@Th@ @)2 h@a@i@(@!@"RC_WO{@@7N(R7"@@))E@ ?|@j@H@?Rr H @J @v@( @ JA@@? 7a4@k TA4 @(yuqm Tq(y5Th@ @)y  {DOCWB_AC_S4/66,H4@qT@4)h@ @) @5`@L@9H6 @?`@L@96@hr`@`L@9H75# #<{ @@q|@{_(R{_  @94  8I@859_WO{(-@@v@@h@@T%@h?`6@))-@)@?T{COBWA7U@94 8I@85@@?`h@@(4h@ @R h@o9 h@`@@@E@?$@hS9`R2@@URւ q@T@h@(E@?8(Rh@ @ ) n@j) 2 @9%q`TqaTJ@9q@TkqTqT @R R @Ri * K@9k4J )2 K@84lq@TkqTqT)2)yR@))-@)@?T{COBWA_WO{7t@95u`7NyZsT(meA! X`@n1TA{BOAWè_{BOAWè_{BOAWè_og_WO{ C@))-@)@{@@ @-U qT@ @@ BT@?q T@ @-U q!T@ @@ BT>BRT@{@ TR`@`7a4@kMTA4 @(Y`q T*Q(y*7@94 8I@859b@h@``BR#@ TR@9qT 7)@8i4?%qaT q Tq T 5(5@K` s3@94 8I@85  8I@859s@@h@9@@y@h@ds (1@(9@@w@))-@)@?!T{IOHWG_FgEoD_HR#HRh#H&I)&#A!D6R!# #<C_WO{(-@@@@7637@ @h7 P7)H6R9@H @Ih7 P7H6R9* R9 P7 JR9IO6 iR99h@e@))-@)@?T{DOCWB_AC_* R9P7JR9O6 iR9HWO{@@1`T@ 7a4@k- TA4 @(Ysq T*q(y*@T(5@@T(9@ @(1@ @@ JT@HE@?(R{COBWA_ |@{COBWA_{COBWA_@(E@? (R mn|@7G{COBWA_# #<g_WO{ @@(4{DOCWB_AgŨ_@@9/86Z, TA1Tv @q T!RE) 4 @qT(@(4Xh@ @) (@5`@L@97sH@?`@L@9H6@h`@`L@9H7d96RҪog_WO{C@ @*e@J)i@ 3 @@:  1T9`TWky8kT@i?T@9kTs@=@? RA!("B(ҥ@{EODWC_BgAoƨ_s@ (Rg_WO{ @@h4:@@!R  @qT/669,@4 h@ @) @5`@L@9h7 h@@!R  @q`T(@?`@L@96 {DOCWB_AgŨ_@h@`@`L@9H7{@@k |@{_@@k {@ E@97{_@: |@{_{@@, |@{_{@@' |@{_@@ @@q@@@_@@ _@@a_ _C_WO{(-@@ @@4@))-@)@?A T{DOCWB_AC_@@E@96 5 1@Th@@ e@ii@(9"RAT/56,-  1T 4$ @qAT@H4Oh@ @) @5`@L@97@?`@L@9H6@h`@`L@9H7h@hkښ WO{(-@@@(@h%@(? 6@))-@)@? T{COBWA_Q 7h@(@E@h? (RT@94h@H (R&h@H @Jh7P7jH6)R9 + R9P7)KR9O6) jR9?9@%@?0 @v@A! @/ @v O{I) @H @_ T@{BOA_u 7a4@kTA4 @(Y`qT*Q(y*{BOA_# x#<tO{ @)H I@ I )@?ATI@?T 7a4@kTA4 @(Y`qT*Q(y*t@@@? h@@H4h@ @R h@{BOA_ֈ@h{BOA# /#`<+WO{@6@h%@(? 6 (R i7* 4@ @ R) * @@@=@?T R{BOAWèog_WO{@@g@G@@T@ T '@T @@T@ T@T@9%q @_@9%q@?: R@@h@H@h%@(?@q( qT0H@_@h?րg@@@@)"@?@{GOFWE_DgCoB_@q( qTh@ @)2 2 (R`PU_WO{@h@H7( 6h@]@?-v@h@BTh@BTi@))@)5@i ?*T h@ @)Q@ ?4/@- S4+R3 Ri"Cj@+aa? Th@@9@R?֠5@@@=@?ERR7R @ @)2 @ @@(h@(hh@h@ @)u  u@(@E@?@4~@{COBWA_Ĩ_֣ Rh&C h{COBWA_Ĩ_R (R RR`_WO{@4@)E@ ?4{COBWA_Ĩ_s (R{COBWA_Ĩ_h@I@9h862@@Rr@UR q@T@h @)jT@E@?@h@h@]@?B R? (R@@(@)I@907"@-@ h m@i@?, T"@_"@-@h?T҈@h@ @)2 {COBWA_Ĩ_ R@H@HI@?֠4|@5RR@ @)Q@ ?@- S55(RkT@@He@?$6h@ @)2 h@@i@({COBWA_Ĩ_h@ @)2 {COBWA_Ĩ_ֹR(R"@붲@" @@m@?օR(R}WO{@ @ @h]@(? {BOAWè_R{BOAWèog_WO{C@@h@ @iH7{@(]@?h@ @ H7YRh@ @O6I6 @ JE@@?5h@ @)6 _TK_8)qAT4 ;Rt#@ @ @I (넲Zˆ)˪? Uh@ @)2 @ @@T@ @ #@)  Th@@E@?1AT!h@@E@?@ @ #@)  Th@ @6@HE@?(R{EODWC_BgAoƨ__WO{ h@@E@h?4~@{COBWA_Ĩ_2@R@WR q@T@h@(E@?֠4h@ @)y `@ @@9@?`4|@{COBWA_Ĩ_֚(R{COBWA_Ĩ_֑Rs@sh@(@H=@?(RRh{COBWA_Ĩ_O{C@@ RIr?(jT@E@?`@@h@=@H? @@T(RQR@@ {AO¨_O{C@BH@Th@ @)u  {AO¨_WO{u@U@E@?|@i@(Ru@BH@Th@ @)u  {BOAWè_?Rr*@J **@J *@U@ *@ JA@@?O{C@h@`@{AO¨_h@]@?`@{AO¨_R`@{AO¨_O{C@@@]@H?h@I@9h7{AO¨_Rh@I@96B {AO¨_O{C@`@{AO¨_`"@`@`{AO¨_R`"``"`Rh"`{AO¨_O{C@h@i"B {AO¨_h@(]@?i"B {AO¨_փRi"B {AO¨_WO{@@h@]@?kRh@ @)2 {BOAWè_ֵO{C@@E@H?{AO¨_֨2@s@R q@T`@h@(E@?:(R{AO¨_WO{@h@@E@?2@@TR q@T@h@(E@?(R|@{BOAWè_WO{@@E@h?֨@(2@#s@3R q@T`@h@(E@?(R@@9@H?|@{BOAWè_(R{BOAWè_R{BOAWè_O{C@@"HTAt@@H@?֠{AO¨_h@@H4h@ @R h@{AO¨_ֈ@h#{AO¨_WO{_Tu@@@H]@?h@h@E@{BOAWè pRh@ @)2 {BOAWè_֨2@s@R q@T`@h@(E@?O(R{BOAWè_O{Clh@ @Rr) @J@JJe I * {AO¨_WO{h@@i@?H€T(RRH€Th@H @I@]@h? ҟTR4T3h@@(-@? {BOAWè_(RH{BOAWè_WO{@ @)2 @(@h @, @ @Tx6(@2({BOAWè_֪p7J2 (@ @)E@986 @)2 @@@?@@h4@ @R @{BOAWè_֨@{BOAWè__WO{@*@R 9*@@(p7{COBWA_Ĩ6@E@h?@@@h]@(?@Hғ@ @( =@ ?ON(R@HR@@)I@9i7"@ Ȣ@ @)2 ɢC(ҨIRR8J T@@ iTij8)qT я8 #T@8{COBWA_Ĩ_{COBWA_Ĩ_ @H(RR!!("B(҉@l{COBWA_Ĩ_g_WO{@@@]@?u@@7{DOCWB_AgŨ_Ru@@6p6*@H @9?5qT*@h @@ {DOCWB_AgŨ_ֈ@@7RRR bTI @9_5qT)aT "@"@ щ85(@ T@ T@"@ш"h@@HI@? @9)qaTHR(9**WO{@@h*@HTR 9*h@ @)2 {BOAWè_@]@?*@5RR*@u @? T @9_5q 5HHT@5HTg_WO{@F@9H07{DOCWB_AgŨ@@]@?ֈ@ @H7{DOCWB_AgŨ_R@ @O6 Tw8RRZRBT@"@ @*@J2*+*9@?BTT@?bT@9_)qAT* _T*99@*:9@*I@9 6(@@h@hE@(?@ @7 6@E@h?֠{DOCWB_AgŨ_@ )@R*9)O{C@@p6yt@@@? h@@4h@ @R h@t@@ a@97@?֠{AO¨_h@@(4h@ @R h@{AO¨_҈@y{AO¨_ֈ@h{AO¨_ֈ@ht@t{AO¨_O{CД2@{AO¨_RRa!h RRRRMssv "RRRRBBRRRR9@{AO¨_O{CД2@{AO¨_RRa!h RRRRssv "RRRRBRRRR@{AO¨_O{CД2@{AO¨_RRa!h RRRRssv "RRRRBRRRR@{AO¨_{`O{-@@"RRR&R@ )-@)@?T{BOA_ֵWO{-@@RRR&R@ )-@)@?T{COBWA_֊{C-@@`@(@-@H"R?h(R@ )-@)@?T{A_"R@9Z@ )-@)@?@T^WO{-@@?1T9@ @ (1@"R?T2(R@ )-@)@?!T{COBWA_(=@?R!!("B(ҡ@"RaT{C-@@9`@(@H5@"R?(RR@ )-@)@?T{A_O{C>@@(5@?{AO¨_(R{AO¨_R{AO¨_O{C@@(9@R?`@`(R(R`@@U@R`@(R{AO¨_ @ )  @ *@J **@ * J@ AU@{AO¨ O{ )-@)@ Co @-U qTh@ @a @4#BRD@t@(@H5@?T(RQRa @?qT(Qh @ )-@)@?T{COB_@ @ )-@)@?TD{C-@@CC@ )-@)@?T{A_/WO{-@@Cе2@RRa!h RRRRtv "RRRRBRRRR@@j@ )-@)@?T{COBWA_RbO{C@@{AO¨_O{ )-@)@`) @*4)-)U ?qT @) @ @?! TBR@?!Th@@9@@R?R@ )-@)@?T{BOA_֕(RO{-@@ @@=@?(R|RR4@Z@ )-@)@?T{BOA_u{CC1@@C RWO{@bH @rTX7-U qT@@&-y,@@ @)R  ?q@@z`T@ @7P7 4-U q TR@ BRaRy@0@9 qhTaRR8@ @rTi@)E@9 6R@@ @ @P6@9@ @6!RBR6h@E@9(6@4@94^ @8@906|{COBWA_@8@977{COBWA_!! RJR@@?q#T(Q{COBWA_֨@9qT!R.R {@ @HW6O{C@`@@?qT(Q{AO¨_֢ WO{@q-T@@6@9r@T{BOAWè_( @@6@9rT{BOAWè_֑@ @) 2 {BOAWè_O{C@@77Sh @h AR9@  @ 9 @) 8 @h@y h @2 {AO¨___WO{7@@-e}v@@@@?qC T(Q@ @@?qT(Qs@@77U @ AR@9@  @ 9 @)  @@y  @2 @ @?q#T(Q@{COBWA_Ĩ_  @ C_WO{-@@ @@P72(R@ @@(GRr@@  ?qT@) @ @7@@)T?41@+BRv@6!RBR\4@ qaT@ @ @@)mT!! R{R RU@@)T@ )-@)@?T{DOCWB_AC_o_WO{@F@97{COBWA_Ĩ_@@7X6rTy@H_7R@r`T R)4r  ?qTRi@6!RBR6@E@9(7@8 @@iT>@9 7) @jA?T @ .@>@9i 7%AjA?#T @4!! R R{COBWA_Ĩ_T @  @h@ @h @@  >@9 7) @?T@ U@@* @ T@ R  *6 ( @j(8@ R  *6Wz{COBWA_Ĩ_WO{-@@@4_qT_qAT@@ @-U qT@ABR@ғ a!RR@ )-@)@?T{COBWA_֓@@_WO{u@U@E@h?|@i@o(Rh@ @)u  {BOAWè_?Rr*@J **@J *@u@)*@ JA@@?__O{C@hF@97{AO¨_`@ @(7-U qT@{AO¨_֏x`@ @-U qTBR{AO¨O{C@hF@97{AO¨_`@8@9(7@ @{AO¨_qx`@@ @{AO¨_O{C@hF@97{AO¨_`@ @h7-U qT@h@{AO¨_Sx`@ @-U qTBRh@{AO¨_O{-@@@hF@9h7`@ @-U qT@ABR@i@ @ )-@)@?T{BOA_WO{-@@@@ @-U qT@ABR@ˈ@ )-@)@?T{COBWA_֦ @ @)Q _og_WO { -@@'=@["BRb(! qhTI{8HR72XRuURy6*' 7y?@@Tzx1\ T^`@CiU} iUIU "T|ӎ`Ra@(zx1\ T@@17@!T,R@qT(!I`8 Q:q7T))I<)Yx_ k!TI)(yxqTAq) T4@+K\cHCy@@H(@ @) H@H'@@(4Q@(HR Q:q7T(0 yxi4-}@H:i8(( RJi+[ @) Q?QqhT,qyixJ @\@q =?qj՟R$Jz!T@@4 q[{T@ mh@@ q[{T@(@H4((>@jR* ?(kT))I<)()@y?qT=@I)(yqTh@_T@@@kMTHyhkh8{hqT@@`H @@ T@%@@@):( @)6(@@@ @@?qT(QIcщHxzhx ?(kTl=AqT\cHCy@@H@ @) H@H'@]A@B^ FQKm[^@] @@RhRJ9|`\^@ 'm[{\М H@) (|`@@@@ @yi )R 9H@) (|` K7@\]\@ @I@H[?kITH@]3H^@ @; @ B@@^[XCZD^E@F]R!R KV(RJ9@ l@@ @^A]B@ y@^A]B@ Es@@  RA[@@^@[]@^B@@@ @[A^R!RR @I@HZ?kɹTHPRy\@L@[B^4 @ @) @]B^C@n3?@^ 5 1@@@@ V+@^B]C@H&g R-(R~ A^B@ R6)R 9H^HH@h @]@[@E8@A^a@b@ @*]@J2*] @)2 [Z\[@^ C@R@@  [UBXRR  H^qTR8[^@] @@B]C@@R@^A]B@ \@^ RR"R@@ RRR@] 0@@A^ x@@ RRAZB]C@R SB@RF@@Ra@@R"R ;Rb `RR@]@ZaR"R,`RR?`RF`]@@ @] A[j@^A@ )hH@qaS+R@]R ] @]qwT#RR RRT@XA]B^DZ#R F@^A@(@@!R  yA@a@^RR: yA^a@]udF+@ZA]xB@ RRy@@  @@0 `@@A@ @^A@ !=|` @I@HW?kITH@XA]R D*i`<I9y 9B@BhR  @@]A^B@+/h@)@h @)uA9i6=@9(h6>@A^ ?ny@A^4nH]qT 4G@y@D@@ @)  AZ(@@y!@[C^qaTR D@@ @) H[!q]T@]R 8@ @^ @]N s @ @) @WAXB[C]D^ HZ \[[@@^ R @ HW}[[\]@@ zvTAW(@@y! %qT(@92(9AW[TB[C^D@RHQ @ HW\[[Z@^UR@A@  @HU(%D^E@R!RR  @]& @[@L  H@B^ RX @(@1T9@%@Q(RRRB@C]R!R B@C]R H^ @([@@] H@ @9)2 9@@ HX @(B[R @^C@Rw\@))@(H跟i`< Q@@ RRrey\@@]A^xB@ QҟB]C@Ry[]@^ RRB@ RZ@W B^ RPA[R/ RRRYvA^B@ R >BZ R[Z@] R @[ .@[ !/!R"R@^R@Z .@X l/R"R@] RRC [^@[iR{/ RRRJA9qTJ9/A^BZA^B[R $B]C@RR (@@ D R[^@@ =@^ 7aRRl`R@-!R RRs'B^ RHRR@@ !RRO R@^ - @ @) @[A]B^C@ . `RRa@^/@[R"RvRRR@= `RRI@^@[ .R"R]RRpRwH[" `RR.@]@Z&.AR"RB@RRU@R\@HZ@9@9(*9[^@[  RRRu@[X@[j@^A[ .R=@@R ! 9@)2 9_H^qaSB@+R@[B^R PH@ A@y)!)Q? qcT A9h7|`HRR j*i`<@R :@@!R 3@^A@ +RR*A]B@ R u$y@^A@ ].@@  @@3.H^8 @9(*9@] - @] #.A]R -(@q T\C@@?q#T(Q(cT K@(cT}@ R Ha ))@* @J*  @ %I))im8)JJqJ J!Jy yj _Q:qhTk=,I@9H(69@@97BR a.@9q Th@R)0r  ?qa T R *ha 7E`"*@@R RR@*o=` * @ 7@Ta7@y h@ 2hRRRh@!9 @ h@!@@@{COBWA_Ĩ_ !?3wCWO{-@@b6@ 9 7@9 R q(RRB6@@#C@@@@)-@)@?T{DOCWBC_ֈ!:aqT @i*5@9j7a( @ 1@9_5qWO{C-@@B6@@ @6AR @6P6@ @TkT@ @jRJr) J @yKGRJ J) * 4cRS)!: a @P6*_5qaT @ @HuA9((6H)A `H  @ @A @( 2@)a6(@@@)-@)@?T{EODWC_"R<84ҮF!:a@vS@ WO{6 @b6@ @3yji@)qA9(6R@@9 66@B6@-T@@{BOAWè_"Ru@O{C @ ?-qT?)qTi@*!A9_qT(@ki@3!@3h @h 9@T876! RSk h @h ! R{9@4' }S? qThh@y i @)i")9@TAR9@@ 9 @)  !:a9@T Bш * @ 7@Ta7@y @ 2{AO¨_֗O{CsB6h@@h@a6@@{AO¨_WO{sb6h@@9raTA9@ )@7@ R(! @9)6)@J7K@lLj4  qTqATA6h@@{BOAWè_ֈ* @B6@  )7)@ T"hT@>@iT-@)6)@J7K@lLj4  qT"B6@?T@*@ (T6@ T!:a@@h@@{BOAWè_@"T"Rq@WO{B6@@h@(7b6X7@)!:)$Bhh@b6_6@@9(7 6hq!Th @ 9@9) 6@@ =@96 @(@H)=@i4@ @?qT? 1T@)!: @@{BOAWè_!@9qT6@@) @yia @"Ro@:@9H76=i@@{BOAWè_C_WO{-@@B6@b6@@9 qT_h@7(X7-U qaTh@ @t @ F9@@(0@91q! T@@iT!Ѩ@@@)-@)@?!T{DOCWB_AC_RB"gh@(_6t @:@9I 6@)@)=@9 6-U qTh@ @R)h6@96h @ 9@9 6@@=@9 6@A!pR@h@2@@T8@PO@LWO{-@@B6@ @ @-U qAT@ @@":bhBR@":b 9JQ_Iq(T _))&,ij8k `@b?T @*HRJ*r) J@9* R J(*5@@3h@}S qT}|@b?aT@iRr kT@ @I5Ab@? T?)aT @(Ҋ )ʉ) @yR (@b?aT@鈉RIr kTe@b? !T@y)R k T@!Y@b? T@)Rr k! T@@'@ Z@b? T @ *Rjhr) J1@j)Rꨨr J(* 5@@h =@9)6@@=@h4@@ <@b?!T@ )Ri r kT@ @b?T @jjR*r) J @y*HR J(*5@@sR7@  @RJr) J @y*R J(*5@@@|| Rvb@ !щ)a6(@@@)-@)@?T{COBWA_6WO{-@@B6@@h@-U qTh@ @BR@a!:a) ? Ti@*MJ5_qAT R r_)jTi@)@))I@9? qTARjh`":@)a6(@@@)-@)@?T{COBWA_WO{-@@B6@b6@(@9076@mT( @J6J@@  @(A@y!qaT@ -)U ?qT@! @ @`^ BR@@ 2yt@@@)-@)@?!T{COBWA_"R@( @h8@ @ @jRY@@WO{6@b6@* @yj(A@y!ߪqB6@@ߪqTh:@9(07@@@{BOAWè_fCg_WO{-@@"4A@ @?r7TIX6 @ @ R r) Q qT@@,6TAR5Th@ ?1qT?-qaT7h@ @($RH$`3M%R;$)R j3TRr qATh@ @u @w5@ h@ I)9?q T R)4r q Th@ @u @]f|@H-!:a ,TR| @?TBR4ҕ)@H) WC@ @P6 @k @( qT@ @@i6=@ @(i@) kTXBR@ @7@(i@) k@ Th5:CRh>@9(7@"RB9@i@( h@韙Rr h9@@97@ ?k T  J@9J_qT(T) TiK c#R6@HT@9@)@9 kT6R@(T@@4'@9?)qT 6Rji8_)qT)?!Th@ R)4r qTRX@i@( h @i@) @i)8h@韙Rr  i7@aTn @~B)V*)*)qS)}) *! Tk9 7 *!? @`T+9+7 ? @T+97? @ T+97? @T+9K7? @T+97? @`T,9 7? @@T,9 6 ce I@)TI!KA )T?T J +9k7)JT-))))C)QI J ?T  @8Mim8) I )D9bT?qT5 i?qTi@9?qaT R #@i!TK9i@( h@韙Rr h@2h:@907@)-@)@?T{HOGWF_EgDC_eyog_WO{CB6@67@ @K X: 6@b6@* @yj(A@y!_"TqA@_#Tq T@ h:@9076@T@@{EODWC_BgAoƨ_q!T@ h:@976d6@T"RWO{b6@(@94H 7A6@@i)!:)a h6@ssB6`@mTh!:a`jJ6J@+ @T @)@9)?qTqaTh@ R)0r jTRoh@ ?9qT @+k1'mij8 h @ @I4R@>@9H6@ @=@1T@7? qT` @i@) @I@)@9(7(7; h@ h@Rr  i6i@I 60dghdRS(`@ h@ ]@ 87 x7@ @)@?@@F@K R R - h9` @%@ @@ y3 @h @h@ @) Rs@h@!!=44`@^# @i@)@i*=@9*6)@*@)=@?1@`@`v6i laRRu!!R!R|@ @9I 7@9 i)A6(@_qaT!(@@{COBWA_<@96@ @)=@1T"R`@"@@9qT/ _8I p_ ` yhYWO{h6@tb6@) @yiuB6@@ @ R*4r) ?qT @!@ ? T{BOAWè**i@R*0r* _qT R) *ia @@{BOAWè_M@WO{ub6@A@y!4@9h6BRQqhT:@907qTh6@95bh:@907hA6@@@{BOAWè_0cqT+cWO{h6@tb6@) @yiuB6@@ @ R*4r) ?qT @!@ ? T{BOAWè**i@R*0r* _qT R) *ia @@{BOAWè_@#m_WO{vb6@ @9wB6 07i)6)@ @) @@ !3@@@  * R r? j!T R  ?qD @zT@7qRR 7@@ R  ?qD @z@TRR@ @6@ RI K?qd @zaT*@7URR@@ @6 R r@(jaT)@)@@*j T@*Rl Tl`ӟ R RAQn%͚!Qn%͚Qn%͚ Qn%͚Qn%͚,} b T?@a? CT  Ak} m}  (T?@H*qaTah@R)0r  jJa.J@9_q AzTkaRhH7R&@`6@9(6@@9@jJRkUl AT`c@a_qa?@n@ a? #T?(A!aC ac? (Th@R)0r  jJa.J@9_q Bz T @R *hh@@ R jAT5'8RO6@@6@9(7RA`0ha.@9q Th@R)0r  ? qAT @R *hh@x4@ R  ?q @zTR@ !@@{DOCWB_A#l_?(Th@R)0r  jJa.J@9_q AzaT R *ha  c@ah@R)0r  jJa.J@9_q BzT @R *hh@bx5^@ R jTT#m_WO{vb6@ @9wB6 07i)6)@ @) @@ !3@@@  * R r_ jT R_ jT R  _qd @zT @6 R* +_qd @zTR@@I @6 R r  @)jTJ@)R@ k T@kRUP``Ӥ@TLR@@6@ R* +_qd @z!TJ@I)R_JUڭ@ k!T@+RP``Ӥ@TN}@}@ @TJ`J}L`ӌ} T? kaTha.@9qTh@R)0r  ?qT@0}? kT ? Tha.@9q TuHH7R@`6@96@@@@6@9H7R `ha.@9q Th@R)0r  ? qaT @R *hh@@ !@@{DOCWB_A#l_@RR7@@@  * R_ jaT  @7 O6@@@@A@` hCg@ c^Ba^#`Db hBg`b"^Ba^ Db@Tah@R)0r  ? qTd@J@@k@L_m_ӌ }Ta} h@R)0r  ?q!T R *ha  x+x#m_WO{vb6@ @9wB6 07i)6)@ @) @@ !3@@@  * R r? jT R  ?qD @zTR@@6@ RI K?qd @zTR@@ @6 R r@(jT+@)R+@i)RkUKM @ k!TL@*R - !MTL@JRUڟ - !MT ˚+ +HH7R@`6@96@@@@6@9H7R !` Thha.@9qTh@R)0r  ? qT @R *hh@@ !@@{DOCWB_A#l_? k`T?(Tha.@9qTh@R)0r  ?qT!ha.@9qTh@R)0r  ?qT R *ha  c@aha.@9qTRR7@@ R  ?qD @zT_ &#mg_WO{Cvb6@ @9wB6 07i)6)@ @) @@ !3@@@  * R r? jT R  ?qD @zTR@@7H7R|  R r@_(jTRR5@@@ `W@a(L`~g!`TA`9RR(@U/@ R  ?qD @zAT@6 R r@_(jTR @(R@G7RH7RC `W@a!L`7 R@:RhO6@@ `W@a!L`z7~g bT @`֌(@U5 ՚ J? ja4?Tk!<l!(b!@e4)bH@e c@ac!` T `W @`A`NJ `9` j `@aq `Nh:@907@ !@@{EODWC_BgA#l_RR 7@@ R  ?qD @zTX_ M#mog_WO{-@@xC6@y9c6(@ @907jJ6J@ @J S@)rT? q@T"S@)rATi)A9*@I)@7J@ R)) )@9)? qT @9 076RR@9h07 @@(* R r jT"Ѩ@`7(h6hH7R@` @:@9(76R"Ѩ@hg6 R r?(jT@@  15 @7R@@u @@A`=@7!`Txuv4!!RnҖ4)@(@9H07@TRh@ R)4r  ?qTi@) @RrH7Rh@Rr(6i)9)@)@9?rRr7 Tuh@ Oh6 @jJ7L@Mv  TzC k ՚_ T)@9Wwkk6k@kkCTT (7"џIT@ @)y  y  "џT@ @6AR @@)) ՚_ (T)A$7h@ @T1@a @ h@ @)} h @i@) @i)8h@  R) *i(7(@@@)-@)@?A T{GOFWE_DgCoB#Am_ֿuе6@i)7*@K+Z  !?"T_ @ RR 7_@(g6&]@i)6)@)?-Ti)!:)a A!!TR58\6R"Ѩ@Hg6  @ hT" S 6 t3"R}@ #mg_WO{Cvb6@ @9wB6 07i)6)@ @) @@ !3@@@  * R r_ jT R_ jT?r`T8R R  ?qD @zTR~@h@7(H7R0@`R50r7Aa2 Rr4@ R* +_qd @zTG6<@)@9?r R  ?qD @zT@@R50rx66@9(7R  )R@@?(jTk@ 6A Ta N@@8hha.@9qTh@  ? qaT @R *hh@R/@i@7@@?)jaT @)R@@?(jTa T(@ )R Uڨ@@?(jTk@췟kU, J6a BT5A BTa )7ha.@9qTh@R)0r  ?q@ T[)7?Tha.@9qTf c@aha.@9q Th@R)0r  ? q T*RR @7@@@  * R_ jAT  @7O6@@@@A@` hCg@ c^Ba^#`Db hBg`b"^Ba^ DbT8ah@R)0r  ? qT6@J@@k@L~m~ӌ * 7A h@R)0r  ?qaT R *ha @ !@@{EODWC_BgA#l_ x+xL~m~ӌ * 7Y_WO{vb6@ @9wB6 07i)6)@ @) @@ !3@@@  * R r? j!T@7Rc@6@@ R1R50r@ @9@6@7RR@@qWZ (Ț Țr)q@꧟J@q!1ha.@9qTh@  ?qT 7@RR 7@@HG6@ @7RR50r@ @9@i7 R r?(jT@@RqWZ Ț $ȚIq჉ha.@9qTh@  ?q!T R *ha @ !@@{COBWA_Ĩ__WO{vb6@ @9wB6 07i)6)@ @) @@ !3@@@  * R r? j!T@7R@6@@ R1R50r@ @9@6@7R@@qWZ (Ț Țr)q@꧟J@q!1ha.@9qTh@  ?qTy7RRH 7@@HG6@ @7RR50r@ @9@i7 R r?(jT@@RsqWZ Ț $Ț)q჉ha.@9qTh@  ?q!T R *ha @ !@@{COBWA_Ĩ_YO{CssB6h@ @+ @j * R r_ jaTi @6j7 @)@*@J@? 駟 RR 7h@ @+ @j *i G7H71h@ @ @)@!@ aWjJ!:K?qI !j ha6@@{AO¨_#mO{( @ R  ?qD @zTR@@7H7R@`h6@9h6h@@ hTi@ R* +_qd @zTG6@@h6@97R hT{BOA#l_T R{BOA#l_Ri@i@7@ R r_)jT@_(jTh@@ hyS{BOA#l_h@@@_)jaT@)@ @@i@)@?藟' K{BOA#l_։@)@ ן駟 K{BOA#l_O{CssB6h@ @+ @j * R r_ jATi i@6J7 @)@*@J@? `RR; 7h@ @+ @j *i G7H7iqh@ @ @)@!@ aןjJ!:K?qI !j ha6@@{AO¨_O{CssB6h@ @+ @j * R r_ jaTi @6j7 @)@*@J@? ǟ@RR7h@ @+ @j *i G7H7+q駟h@ @ @)@!@ a釟jJ!:K?qI !j ha6@@{AO¨_O{CssB6h@ @+ @j * R r_ jATi i@6J7 @)@*@J@? RR7h@ @+ @j *i G7H7(R ` h@ @ @)@!@ a鷟jJ!:K?qi !j ha6@@{AO¨_O{CssB6h@ @+ @j * R r_ jATi i@6J7 @)@*@J@? RR7h@ @+ @j *i G7H7qh@ @ @)@!@ ajJ!:K?qI !j ha6@@{AO¨_WO{tB6@ @( @ * R rub6 jTqTh!:a @RRE7@yqTh6@@) @yi|@ha.@9qTh@R)0r  ?qT R *ha @ !щ@@{BOAWè_Jg_WO{ub6@A@y!@ YQ? qHT~ )+))a6@ )+))a7@ ),(a@R6R7RxC6@@h@ * R r jTy99(@( @96R!{K7(@(@96R!sK`7R!RoK4RR7@y99(@(R|i)!:*k( @*! (@@{DOCWB_AgŨ_O{CssB6h@ @( @ * R r jaTRh!: q(i@*!j(ha6@@{AO¨_`RR7h@O{CssB6h@ @( @ * R r jaTRh!: qi@*!j(ha6@@{AO¨_րRRk7h@_WO{h6@vb6@) @yiwB6@@@ * R r jTx9@H @96R!J7@H@96R!J7R!RJ4R`RR17@x9@Rf|@ha.@9qTh@R)0r  ?qT R *ha @ !@@{COBWA_Ĩ_6og_WO{Cwb6@ @9xC6 07i)6)@ @) @@ !3@@@ * R r jAT+@ l *,5@A@y!ph:@9 06XiRR 7@@+@ l *,4R;0r,R? j`@z j@@z@J@97 Rr)jaT@6@(jTR@7R @(@6@@!R@(jT@@h@  jJa.J@9DAz Az T蟙Rr_qSaT@6@(G7Rha.@9q@Th@  ?qT R *ha 蟙Rr_qST@) 4@( @ ! @@{EODWC_BgAoƨ_蟙Rr_qSTg_WO{vB6@ ) @ @ * R rwb6 j T@ @9 07i)6)@ @* @@*!R80rS@  @9 @7 Rr?(jaT@@@?(jTRq@7R~6@96@@Re@?(jT@@h@  jJa.J@9DAz AzT\@@6@97R]ha.@9q@Th@  ?qT R *ha @ !@@{DOCWB_AgŨ_RR6WO{tB6@ ) @ @ * R rub6 jT@ @9 07i)6)@ @) @@ !3@ RSh:@907@ !щ@@{BOAWè_RR6Vog_WO{Cxc6@ @9y9C6 07i)6)@ @) *@*@I!3@A@y!U@@ * R r jT+@ l *L5h:@906VRIR~q Rt 7(@@+@ l * 4R<0r,R? j`@z j@@z @L@9+7 Rrk5J@907)j!T@7@(jT k5J@9 07I@7R@@62R@(jT@@@7@@7R#ҟ(jTRyR*0r ~qAha.@9qTh@  ?q@To蟙RrqSTҨG6@@ ~qha.@9q@Th@  ?qT R *ha 蟙RrqST@) 4@( (@ !)@@{EODWC_BgAoƨ_蟙RrqSTg_WO{vb6@ A@y8!wB6@*J @) @) * R r? jAT @9I07jJ6J@ @K @ RIRq R 7@ @9 76@K!?rR90rs@@ @9 @ri *7 Rr)4_(jT@@@_(jT4@7R6@96-҈@_(j!T@@҈6@9h7R!Rѿ@_(j TRʿ qAha.@9qTh@  ?qT¸@@6@96@@ qha.@9qTh@  ?q!T R *ha @ !@@{DOCWB_AgŨ_xWO{tb6@ A@y6!uB6@*J @) @) * R r? jAT @9I07i)6)@ @) @ RRߖq R'`7@ @9 76@ !3@ߖq Rh:@9h07@ !ѩ@@{BOAWè_OUWO{h6@ub6@) @yivB6@@@ R r jTp67@h@7RR7@@@w7@h6)@ ? TrT ?qTp6 R  ?qD @zTR,@HG7H7R޿-+@ h@R)0r  jJa.J@9_q AzT TA(H7Rƿ' h@R)0r  jJa.J@9_q AzT R *ha !T*@@@ah@R)0r  jJa.J@9_q BzTnT@@@aha.@9qTh@R)0r  ? qT @R *hh@`T@@@{BOAWè_TWO{-@@vB6@@h@rTi)6)@jJa6J@J @4yjP7 4R@)-@)@?T{COBWA_-U qTh@ @u @Rʸ@9))yh R*r_)jAT@T!"RBR:@9H07`T@ R@)-@)@?TqTqATy5R@9RjRqU@ R)4r qT@ @ @9:@976;TTR9:@976c$RR:@9(76O{CSsB6h@@ @ R r jTT":CiU}  T @rTP7@7X6@ 9@9 6@@=@9h 6R7@ @HTh@@9qT@@hT":h@Ha6@@{AO¨_`RRV7h@@TWO{H6@Tb6@) @yiUB6@@( @ R r jTrTR60r@)@9 7 R r?(j!T(@@ @7RʺR h@  ?qJJa.J@9)* ? jT(@@ Ha.@9q@Th@  ?qT R *ha RR7@@( @rTh:@9(07@@@{BOAWè_xS_CO{-@@Rhi@(-U qTh@ @` @I7CRi@ @6(cCR` 4 @i@( i@)yi( @  @Tm@9-*m9@k)JьѬ@!TR=1  T    #C }}h  kR=1J JCJJ}`b @X n!X nBX ncX n`?b J!T T @) I!_= HT?kT) @9** 9@)?T^)-@)@?T{DOCC_gHa6@A@y!@)>(yhuWO{TB6@@ @ R rUb6 jTR60rH6@@* @yj)@9 @ 7 R r?(jT@@@7RӹR h@  ?qJJa.J@9)* ? jT@@ Ha.@9qTh@  ?qT R *ha @@@{BOAWè_րRR7@@sWO{TB6@@( @ R rUb6 jaTH6@@) @yih:@907@@@{BOAWè_֠RR7@@^RWO{Ub6@ @9VB6 07I)6)@ @) @@ !3@ * @ @* * R r_ jTi@7RT@_4@9(6@@@RR7@@ @G6 @4@_4@9(7R=|h@R)0r  JJa.J@9_q AzT R *ha @ !@@{BOAWè__WO{Vb6@ @9WB6 07I)6)@ @) @@ !3@@ @  * R r? jT@7R RR7@ @G6@@56@97R@@ ՚Ha.@9qTh@R)0r  ?qT R *ha @ !@@{COBWA_Ĩ_WO{Ub6@ @9VB6 07I)6)@ @) @@ !3@ * @ @* * R r_ jT@7R@_4@96@@TT ԚHa.@9qTh@R)0r  ?qT R *ha RR/7@@ @iG6 @4@_4@97R}Th@R)0r  JJa.J@9_q Az!T R *h @ !@@{BOAWè_1WO{Ub6@ @9VB6 07I)6)@ @) @@ !3@ * @ @* * R r_ jaTI@7R:@_ @raTRR 7@@ @ G6 @4@_ @rT@)@9 07@7R@@h@R)0r  JJa.J@9_q AzT R *ha @ !@@{BOAWè_ҳWO{Ub6@ @9VB6 07I)6)@ @) @@ !3@ * @ @* * R r_ jaTI@7R޷@_ @raTRRz 7@@ @ G6 @4@_ @rT@)@9 07@7R÷@@h@R)0r  JJa.J@9_q AzT R *ha @ !@@{BOAWè_vO{CTДB6@ * @ @* * R r_ jTi@7R@_ 4@9)6 @ @ RR,7@@ @G6 @3@_ 4@9)7Rz@I)!:*) !ъ Ha6@@{AO¨_O{CTДB6@ * @ @* * R r_ jTi@7RY@_ 4@9)6 @ @`RR7@@ @G6 @3@_ 4@9)7RB@I)!:*) !ъ Ha6@@{AO¨_O{CTДB6@ * @ @* * R r_ jTi@7R!@_ 4@9)6 @ @@RR7@@ @G6 @3@_ 4@9)7R @I)!:*I !ъ Ha6@@{AO¨_O{CTДB6@ * @ @* * R r_ jTi@7R@_ 4@9)6 @ @RR7@@ @G6 @3@_ 4@9)7RҶ@I)!:*I !ъ Ha6@@{AO¨_O{CTДB6@ * @ @* * R r_ jTi@7R@_ 4@9)6 @ @RRL7@@ @G6 @3@_ 4@9)7R@I)!:*) !ъ Ha6@@{AO¨_O{CTДB6@ * @ @* * R r_ jTi@7Ry@_ 4@9)6 @ @RR7@@ @G6 @3@_ 4@9)7Rb@I)!:*I !ъ Ha6@@{AO¨_WO{H6@Uеb6@) @yiVB6@ * @ @* * R r_ jTi@7R8@_4@9(6@@@RR@7@@ @G6 @4@_4@9(7R!裟՟Ha.@9qTh@R)0r  ?qT R *ha @ !@@{BOAWè_ֱWO{H6@Uеb6@) @yiVB6@@@ R r jTp6%7@@7R@@Ha.@9qTh@R)0r  ?qT R *ha `T@@@{BOAWè_RR#7@@@w7T#mWO{H6@TДb6@) @yiUеB6@ * @ @* * R r_ jTiH7RW@`@_4@9(6@@RR:@7@@ @O6 @(@_4@9(7R@A`Ha.@9qTh@R)0r  ? q!T @R *hh@@ !ѩ@@{COBWA#l__WO{CRH6@TДb6@* @yj(A@y!8RȺQqT )m'+ih8J @R8R R8RR8R R@R;R`R;WB6@@ @ R r? jTH7R6R`7@@ @O6@@7qT `T2 `TȾQqT )'+ih8J @ֳaHa.@9qTh@R)0r  ? qT @R *hh@@@@{EODWC_B_kH+@h4@ RZ-#mWO{Ss62h@95HA2@A4I)Q2*@ H5 JEHJJ(f@V(Rh9VB6@Uеb6@@9 r`T`_ @1Q qaT@@H6@nT"RenARK@`!`n hH6@@) @yit@` `@@{COBWA#l_ @1Q qT@@_AR(CWO{-@@UеB6@H6@Vb6@* @yj(@9 r`T`@s" @-U qT@ @@C?6 @ s"HA2@a4 I)Q2*@ H5 JEHJJ(* #BRj@C$7!R1 @H52)R 9 @Ha.@9q`T@R)0r  ?qT R * H6@!Tt@@@)-@)@?T{DOCWBC_!.BR :@907H6@T"RݯLH6@T?#mWO{H6@Uеb6@) @yiVB6@@@ R r j T @7R@r T@7hH7Rp@`h6@@@@A`: 5!`T|g!`MTA`yHa.@9qTh@R)0r  ?qTiH~g!`TA`y Ha.@9q Th@R)0r  ?qa T R *ha 0dAeHa.@9q Th@R)0r  ? qaT @R *hh@RR@7@@@G6@!@r!THa.@9qTh@R)0r  ?qT R *h @@@{COBWA#l_9Ha.@9q`Th@R)0r  ? qT @R *hh@%A`WO{H6@Ub6@) @yiVB6@@@ R r j!T@7R@rT@7(H7R7T%@@`Ha.@9qTh@R)0r  ? qAT @R *hh@!@@RRE7@@@HG6@ @rTHa.@9q`Th@R)0r  ?qT R *ha @@@{BOAWè_B_WO{C-@@RrH6@Ub6@) @yi(RVB6@@@  ?qT@) @ @7#BRί@6H9@@9h7AR @2 RBR@ qT@ @ @@A@y!qT#SRRRxS@97e#BR@A@y!qT@9@q$@!TqTR  q@T=qTaq!T(hR)ѪJ RLYh,jT@8)7H4 7)qaT)@8R  qT(hR#S$RRF RxS@9(6@h@R)0r  JJa.J@9_q BzT @R *hh@(hR#SdRRRxS@9(7Ah@R)0r  JJa.J@9_q AzT R *ha @@@@)-@)@?T{EODWC_B_kݭHC_WO{-@@RrH6@Ub6@) @yiVB6@@@ 2  ?qT@ @@@9h(7Ha.@9q`Th@R)0r  ?qT R *ha 06aI@rTI)9)@)@97  ?qTP6@@9(7kh:@97h:@906xJ H!:a @ @H!: !?3@@@@)-@)@?T{DOCWB_AC_-U qTR@ ? 7)_qH)?AK((IןT+ *k6R_#5귟) *?qi?)1( R_C$7 7k6귟* *6   0j 7k귟) *I6 og_WO{ C-@@I)A68@H6\c6 @@ @3yj @9(7 @9*7R6rT ;R6rTIq@ @96rTI)A9)@*)@7)@ RI% )@96)-@? q)R6 RrRr@9  q#TT_@I Q qAT@@@(j__ARŰ(R@@I Q  ?qT@6@AR@ R r  k_@@9 7Cѻ5c_4H9@si@ H9 @)  y (@ q T(@ @; @dʣE`X#+@@R RR֥@+o=` H* @ H7@ THa7@y h@ 2hRRR׫h@!9 @ h@! RrTB6kTh@ %A9)2 %9h@@5Th@ %A9)2 %9h@@ qTR@ @ @@ 6aBR`@H7X7 R)4r qAT@ @ @(?@9h(7<BRLR@(6CrG@_6!p`Rα@ R)4r qTR(?@9h(6H9@@97@>@9(7R @ q`TRR@6>@9(7R@H6 H9@@9r@7@I)9)@)@9)7(7X6 @ 9@9 6@@=@9( 7@`T @ @T  7  R r k@hAhן T  *j6;! `R`H!:al@@@j5@5 7鷟  *6 0 RJ 7鷟 *6 鷟 *q_H1`qTH8@9h5h@yh@b RGh@2h4c9BR@Ha6@@9H 7qTB6Th:@907#TB6Ha6@@@)-@)@?T{IOHWG_FgEoD_Go  @5M qT@@_AR @7X6@ 9@9 6@@=@9 7Rq)_T(@9qT _8J_qTBcT  @8J_qT @9*ij8 BTj@_T @9lq!Tl@8qTi_8)?qTJcTl@9,il8k JTii_og_WO{-@@H6Vb6 @@ @3yjWB6@4_ @9)rT?qT @98SI)A9)@*)@7)@ RI% )@9)?q@T8R Rr@9 @?q!T7hX7 R)4r qT&i  q`TCBR@H6.)-@? qaTF@_6!p`R#@ R)4r qT@ @ @@7CRӺ@7 @@@ @ qT@@.I)9)@)@977X6 @ 9@9 6@@=@9 7  @T  &AR @@ @ R r?(jT @(* _ T @ @ T:: @X @AT`Һ.z@7 X6 @*9@9 6)@)@)=@9 7#RiT@9)?q@ TJ+@9Kik8) T *_8J_qTcT(x4H8@9H5h@yh@ֵ Rh@2h?qTHa.@9(5 @@ :@9074h:@907@ ! iT Z\H8@94҂RR xFx5@A@@@)-@)@?T{GOFWE_DgCoB_bF*@8J_qTATog_WO{CXC6 Rr@ @ @ qT@@4WZZc6H@ @9 (67R@  ?qAT!ARN4WZZc6H@ @9I/7@97R@  ?q TAR=@ R r?(jTEq@  ?q!T@ @ R r?(jT@@h ըR5һR74H9@@ H9 @) қR75H6@I@) @yiH8@9h 5ݨ:@9h06E@6E\#+@@R RRB@+o= H* @ H7@jTHa7@y @ 2RRRC@!9 @ @!@@@%97H@@{EODWC_BgAoƨ_j:@976Cog_WO{-@@Wb6@ @9Y9C607I)6)@ @) )@)!Rr3@A@y@9 (@? qaT@@J Q) ?qAT@6@<R@ qTBR@ qTcBR >@9(6H9@9@r ?@9)(7 7@AR҃@ qa T@ @ @J@6~AR;(@!(@ qT@ @ @@ qT@ @ @#>@9/7?@9h(6H9@@97Cc##R4@(H9@w@ H9 @) -RR҈@6>cBR3R 9R@63@@9(6 )JJJJ!:K?qah 7RR@h6uC AR` @ RR@(7(X6 @ 9@9 6@@=@9H 6@R R?q"I@{#@7X6 @*9@9 6)@)@)=@9 7q @zATAR R_q"2@ 4ן( qTRqAT@ɲ鳉 @q?*?鳊qAT R `˿ +T(R7RA _ I_鳉@ @C 99C6 @?qcT(Q 7b6@@9/7(a.@9qTh@R)0r  ?q!T R *hu (@ !)@@@)-@)@?T{HOGWF_EgDoCC_7b6@@9/7g_WO{56(7@ @K V9 (6@4b6@) @yi88@957B6@C"#9h:@9 rTx`5@ i:@907@@{DOCWB_AgŨ_@9))a.(9@ i:@9i76C@CWO{-@@(6@5b6@) @yi6B6@@@-U qT@ @ @CBR @ >@9i(7@9#))9)@)@9I7 9!@i6)*ia8Rk%ʚl* JD9_ qT Ta@8-ia8zA** JD9_qT 5ah@R)0r  *Ja.J@9_q Az!T R *ha @@@@)-@)@?T{DOCWBC_#R҆`4@[C_WO{(6@5b6@) @yi6B6@@@(7X6 @ 9@9 6@@=@9( 7w`5 Rr79@@9H7@ <  ?@qaT@7R3@@ @h7(7 4H7Rݭ `T@(jT@@h2@9 q T"@@ `TR 4:@9(6Re!R/Rh2@9 q)T Rh2@9 qTaRT@@9(7j>@9dӈ 7j@J @RlRKR} } S?k_ bTI iR(KR} } Sף` @h @i@( Rrh>@9 7h@ @?TAR£h@)R ` @8R9i@Rr* H*hi7@@@{DOCWB_AC_ִRh2@9 qTWA@_7\&PBRQMg_WO{C-@@Rr(6@7b6@) @yi8C6@@  ?qT@) @ @(7BR@6(9@@9(7@RRBR~@ qaT@ @ @@ qT @BR@ qTBRwh@ yi7@ ! @@@)-@)@?aT{EODWC_BgA_ BCog_WO{-@@(A6@s@(a6@A@yh@ -)U ?qTi@) @ t @CBR4h@iR @q999(@ @96R!)47(@@96R!!4 7RAR44H!@ @ "(@i>@9(7)RU 9@6R! 47(@@9H6R!47RAR3@4(/@9H85q=T(/@9@9(49i`8w 9@7@9ik8 qTI6R!36$R9(@9@X76R34(@9@(7q!9TR@9)9(ih8S6R!36$R4R@9q I RJZ)?iI1 >(@h@9h7R R!3R7RAR3k#%(@h@9h7R R!3R7RAR3k#(/@9$5RR@ I 5<RAT678Rk9@q@T;R-+RU 7ep! @JRk95R@qTh@ R)4r qTh@ @ w @6CR\6@ki@( (6@))a6)@) @yi@ ? qTaR@7@) @?T@ @Rr R *@|6Y6 @k@99o@9 9? T   Rl3 9 Rl3 9 J_ TK97 8J_ cT9 @ @( R @ @99i>@9i(64@kȯ @T85CR@21h(R @I4k@99(Ri>@9(7@k^R@ 7i>@9)(7(R@99i>@9(6I@)@97@)27 @E@( H@H @96R!27H@H@96R!27RAR24(8@9))a.(95`Th:@9 rTϭ4(a.@9(5:@9h07(a6@@@)-@)@?T{HOGWF_EgDoCC_"@҂RRT(8@94҂RR(@H @96R!W27H@H@96R!O27RARK24R@9%qTk@9qAT @ TR@xR kh {qTq@T@9%qT(RZRR(@9jh8CRI{ @? Tj{xj ?k{ R)5kT&@9q@ T(/@94@9k#cRm@ Tk@9 qTRRRk9;R@qTRy @cT(R<R[R9RRRR ;R@9 Rk9`RRk9o9HR @ R<R;R9RR8R> @|B@**qS} !*_TT @9G_ @T  @9kGhA(_ @ T  @9kGhA(_ @`T  @9kGhA(_ @T  @9kGhA(_ @T  @9kGhA(_ @ T  @9kGhA(_ @`TJ@9J ! AkGkk} K T _ T)?!bTK?AT ,} ooN J oo@ ///ocnB.n!.J!T!NN N^f? T1*|ooN oooooop< o/2/1oo/onBn..c.nn!.AT!NcN!NNBNN N^f? Ti7 j@8J T_og_WO{ C-@@(A6@z@I@L7RUrRhr( 8c6;{9k!Th@)7h 9@6R!07h@h@9(6R!07RAR0 4(/@95z 9@6h@9@X7h.6R0-4h@9@-7(6@ @) @yiH@G qaTH@ @U @@ ? qTcR@@ ? qTaR @7@) @?Tp@ @Rr R *th@ @96R!07h@@96R!0 7RAR04(!@>H?@9(7@&h@ @96R!|07h@@9h6R!t07RARp0`43s/h@9H5k#TR֢=_85h@@97@ TR9  @BT 7R@9kh8h@ @9)6R!@0`6$Rh@h@97RC(dT96)kh8RJ%ɚK( D9 qT?T*@8,kj8jzA((D9 qT5_ T:R#TQR!0R7RAR 0 4DR݈@_ T @HT@) @?"T @ @(a'@ATR9R&x:Rh@99_84qTqT|qTJ`8 sR/RR(8#Tuz49R&x8c6@@29 @ph@9@X7 6R/ 4h@9@ 7K TZ=3s/ @9qT9ѿ T@9Hkh8(9qTh@94h@h @96R!/@7h@h@9(6R!/7RAR/ 4@9~qT@ @T @75hjR(xH@ R)4r q TH@ @W @h@T?( ?A)P T@_8c6T?9 @(ˉ@( h@H @96R!=/7h@H@96R!5/7RAR1/4(8@9))a.(9h5`TH;@9 rTb4(a.@9H5:@9H07@@@)-@)@?T{IOHWG_FgEoD_cRV@h@Hw*| ` N KRa NO @9(7 @(H@h @96R!x-7H@h@9(6R!p-7RARl- 4%7%T99/{98B$T(@9@94hk`88#TH@9@X76RL-`4H@9@7k!T9@8 ii8 8TCR @H@T ?( ?AcTAT*| ` N KRa NO @9h(7 @! RfҶ9! R^`Rë @9Rh>@9/6H@@9(7 @+ T{</ kF@B T@9ykh8H@ @9)6R!,`6$RH@h@9(7Rk#@9h5@HT@) @?"T @O@R!,R7RAR,H@ @96R!w,7H@@9h6R!o,7RARk,`4@H7@9%qTk@9qaT(R7@yR kTT@29 @ˉ@( <c6(/@94h@pH@@96cT8R)9IT9 @ˉ@( H@H @96R!-,7H@H@96R!%,7RAR!,4(8@9))a.(95`Th:@9 rTR4(a.@9H5:@9(07@@@)-@)@?aT{HOGWF_EgDoCC_9'xBT@9_%@T*i8j7 8 RK3 9 RK3 9 ҂RRT(8@94҂RRog_WO{-@@(6@6b6@) @yi7B6@@@-U q!T@ @ @j@IyihH qTaRi@)7h@ @@!R!TBR@j@Iyigh@[@!RJx @09@9@>@9 $(6#7@'еZ R1'@  &9H@jh87H{hH68@ 1  kCTTlzi@    ¬? aT aT? T ? AT@9)?qT@ @9i6R!<+7@(@96R!0+7RAR*+7@9@9 e3(@H{h7 K@8 8)T5QqT*jh8) ֈ@9=qT@9qq T@9QmqTkm(Ijih8) ֈ @9} CT@9qTq Tq T @9T@9qTq!T @9 ~?T !?e#TqTv@9Q-qhTk=( jih8) ֈ @9qTh@9uq`TmqaT @9qT@9q`T[@9qTW @9q`TS @9qT@9!cTK @9ATF @9 ?M#TUmT= ?)CT Q?%T }?ET ? TyqTuq@TEqT @9 qT' @9q`T# @9qT @9-#T @9 qT @9 T @9q`T  @9qT @9%CT @9QT @9THX7(6RZ*4@9@7@  R 8@K@9 yj 6 8@9h@2h6b69h @i@( h@y] R *h(7@@@@i)-@)@?AT{FOEWD_CgBoA_@ )R R 8@l@9 yk?,jT 8@97-Cog_WO{h-@@(6@))a6)@) @yi(A6@t@<9@ @9i6R!)66R@6@h@9h7R@6M6@rT R`4 -h@ ? qTaRh@7i@) @?T|h@y @2Rr R *hs @@ @96R!)7@@96R!) 7RAR)4(!@H%>@9h%(7 @*@ @96R!)7@@9h6R!~)7RARz)`4;{/h@9H5_K'T9@9@X76Rh)@4@9@7_+%T</jnR{9@9q T@9)5}qThKh8H8T(9@ @9I6R!F)jnR7(9@@9h6R!;)jnR7RAR6)jnR5@9h@ @Th @YjnRJxZT@9%qT[! R`R! )R6@h7rT-U qaT@ @ @h@ ? qT:CR @h@ ? qiT.H8T@9h@9T4j`8h4wRRAR(@6_kTI?( (?A)PT/*| ` N: KRa NO @9/6@@97_TZ c@9"T@9[kh8c#ߍ@HTi@) @?"Th @9@h@2h_9h @Hi@( 59@H @96R!+(7@H@96R!#(7RAR(4(8@9))a.(9(5:@9 r5b66B6@TM4(a.@95h:@9H07@@@i)-@)@?T{HOGWF_EgDoCC_5(8@94҂RR'҂RR og_WO{(6@(7 @* (8C6@@(a6@ @9)(7@97Rh@ ?-qT4Rh@ ?-q T5qh@ ?-qT@ ))a6)@:97R"@BT_q跟R *44 Rr #R_@@BT@ @ q!T@@Y7^ARI67R;V`@:6w76 R6`@$@@@u !"R !"R}"@5N7R"@T 4T Rr AR @#T@ @) ?qT @ @#Th@ @T,UY6 Rr6": ARU @@bT@ @ qT@@U b@#T*R"@5T6 Rr7":b@"T@ @ qT@@AR^U @@#T6@@ sb6i@)@9)rT? qT )A9)@*)@7)@ RI% )@9)? q T? qT@!)-@? qT @ !!T6@T!:a @ @ h@@{FOEWD_CgBoA_"R-~@O{C8@987 R{AO¨_ R5@ @@@!"R!"R{AO¨_ R{AO¨_'@@@R{AO¨_og_WO{965@7 @* :B6@@b6@ @94@963`46˻Cb6T@@_ T(@ @ H@FkT(!*Jak} ikL}i+{ LT@!;!T Rr4!:a`@ @ qT@@ARҚT@@XT`@ARWR`@h@{CCT6)@) @J@9JrT_ qT7 JA9J@K)@7J@ Rj) J@9J_ q`T!_ q):":@h@{CT`@ @ qT@@RTARRTbh@{CTJ-@_ qT!)!?T@mT!:a@*@ (@@{FOEWD_CgBoA_@'}@^"R"}@`@K(ɚg_WO{B6@t_c6@@9rTA9@ )@7@ R(! @9-@ q(R>]@:@9H87@ @lT6@=T¡!H qTRT@V3|@TH qT!:a(!:ah@@{DOCWB_AgŨ_BR|g_WO{B6@t_b6@@9r`T\qT qT6@@) @yi:@9h87@ @A9@ )@ 7@ R(! @9\qT@@9 7:@9H87@ @2|@a.@9q Th@R)0r  ?q T R *ha >2|@ )6)@))C$HT@*A@yJ!_IqT_!qT)@9)? qT&`AT9#:@h@TR_S(chT-@q\qT@@{DOCWB_AgŨ_!1`4@7ř|@*A@yJ!_IqT_WO{B6@t_b6@@9rTA9@ )@7@ R(! @9-@ q(RR6@= T ? qT`BR{ qT!:ah@@{COBWA_Ĩ_og_WO { h-@@'B6Zc6@H@ 999I74?q4uS?r T֢6@ )7*@K+I u_@ (7 R _-q T_1qAFT8}} )!? T2!#!:a!@RRh(k89()TW|5A9@ )@I7@ R(! @9 )A9)@*)@* 7)@ RI% )@9<?q4uS?raTՎ_a_2@9?-q@ T?1q!>T2RRq Ty)C9 J6J@JJC_ 9T?'KT*|J! yi i*+JA?  LTis )R _-qTJ@J968}} )!? /TqT6@@  qT6@@  +Th@_56( @5M qT(@@B6y)-@? q)R<?q4uS?rTARYq`,T!:a[-@ q(Rw"?rjtjh )6y07H!(@#ш:@97(86 R1:@9h86 R1@n@@@5%!"R5`$!"R/7+@ @* (h #ш:@97(?7R<R2@9?rw-q T1q%T@!( T!:a" T@#\4RRR7RRR#6:RRRR@@#4CR#@ARɞ#@1RRR#@CRLJ#@H@96@!iT077@qB6Zc6@`T@@(@+B@(C7@)? qB6Zc6 T?qT )6)@*  Rr!:a"HT@ @ qT@@#<5;65R AR#<4lY{6"RQ@#4CR#@ARS#@0RX#RX#4@CR#@ )6)@( _)TI@*!:aHB6% Rr!#!:aARǖXHk8ZHT@@ @ qT@@R )!:)a H@@'@i)-@)@?AT{JOIWH_GgFoE_  cy@@ ?' T8` CWO{h-@@ДB6@sb6h@ @9I07_@ 0@9?1qATRRR !:1@C#R!:@)*1@9_%qT) @* @j)@4?-qT96( @5M qT(@@oAR9@X 5!:h@@@i)-@)@?!T{DOCWBC_!:_WO{еB6@b6@9@ r`TRRR>R7RR3`@qd@`Th:@9H(6-RR%@ !ѩ@@{COBWA_Ĩ_֨@AѨ@ C{COBWA_Ĩ_og_WO{6@7 @* :C6@@9c6(@ @9)(7 @97R965R9V6 R.q(@966h:@987R"@T Ri/`@#@@@!<R"R!"R"@T<R"@TR"@TRqu46 7!:au@\7RRRRR@VTh@T6е":h@Ta@RRtb@ @?":h@"Tu@RRR]RRTb @?9#:7ca6@@9}SRt@)c(h@Tu@|6:R RRR+RR @@ @W Th>@9(6i@(@)=@i4@H @ ?%q!Ta6@@9}SR(X6@1@95qT79c6 )6)@@) *@J@9JrT_ qT JA9J@K)@7J@ Rj) J@9J_ qT!_ q)J-@_ qT!)!?T6@T!:a@*@ ( (@@{FOEWD_CgBoA_"RIw@`og_WO{964@7 @* :B6@@b6@ @95@96,`4`65R˛Cb6T@@_ T(@ @ H@FkT(!*Jak} ikL}i+{ LT@!;!TqmS54М#:cu@RRW@@@X T`@AR`@c(h@{C#Tb66)@) @J@9JrT_ qT+ JA9J@K)@k7J@ Rj) J@9J_ qT!_ q).е":h@{CTa@RRb @?J-@_ qT!)!?T@mT!:a@*@ (@@{FOEWD_CgBoA_@}v@f"Rxv@`ٓIh)&) q( {6 @7 @K Ja6* @+@9 )A6krT qT kA9k@l)@7k@ R- k@9k qT qT*@k-@ qT @J!_ T J6J@J_mT J!:Ja @@{_ @L@ K*@@{_"Rv )A6a6 @og_WO{CsB6`@6@ )7*@K+K K!+I !b6#@@9 7C rT? qT )A9*@I)@7J@ R)) )@9)? qT`T)T-T6@ )!:8a,T"Ru@ @5M qT@@ )!:8aT" AR )!:8aTJTzhu@@{EODWC_BgAoƨ_ RrZ#:(6"T@ @ qT@@Hc)TARȒHc)T?JTziIc(@c"HT@ @ qT@@@c;%TAR@c;DT Tz{8@96ARz;WO{6 )7@*@K+I B6@)3C!N6@@Tb6@9h69@  @ 9 @)  @@y  @2 @@i}  J@ @ @ ˨@@{BOAWè_"Rub6@9h6_WO{b6@@9rhR@9 79@i@ 9 @) )6@@ @h@yq!T(Rht @9q T @9qaT@ @9)rT?qT@{COBWA_Ĩ_;hBht D`6@B6@ Tu )A9)@*)@*7)@ RI% )@9)?q T)-@? qT6@B6@T@@{COBWA_Ĩ_"Rt@"Rt@#mog_WO{6@7 @* 8993@3h@(9 @) ܄hmC`е"2@RRR@2`h@h@ h@R i@Rr( h6h@2hh@R  Zc6H@9(64@4@(9 @)  Bш h@y h @2{C6`@C6@m T`ԗ c T@TAI#h@?BT@907 T#Ti}+h!bT  ) k!:ka,@l JaT(_h>@906. +T4Cрz|@?qT(QџTџHT@B6%!:aih:@9 r!%T*6@ 8! )a6)@)@9)rT? qT* )A9*@I)@7J@ R)) )@9)? qTt@\ )6)@))C?kT7+T} )!:)a @l @ih,l!J!Th @ _h>@9h06̕ kTh @ `@@?qT(Q T HT@@!:a!:a!*@ )7)@ TT!:a" T@@""!T!B6݈h:@9 rT-@ q(R2C{HOGWF_EgDoCC-) i @) h@ @) aT} *k !:a N A C¬%NFNgNNnnnna ?c!aT T@q6@6*@ )7)@ TT}!:a @8{#@Th @i{  !9#{#T@ !@h@ @@) jT @Ti @) *!щ}) L@Li)J!khT` @ h h@ @@) }ө} `TB6h @ *Ah:@9 r`T@'a6@@{HOGWF_EgDoCC_U}Hh @  @ }h @i@) @ !@}ө} ˾TB6h:@9 rTwJT,wT`S{Ch#`#mog_WO{Z6H@7@*9 )6)@c6 @J @3yj @@B66 R'@!r@{@7@`TH@CB&@R&R$+rG@)R  @?qHTZ8[@y RIy#T9huC9 @ @H#@T@`8@9(7@@@@aU%@߀@R͟H@yc6h6y&[yZ6H@ @ @9)?qaT @9) 6:@987@ @&|@a.@9qTh@R)0r  ?qT R *ha @ @9)?qT@3@{FOEWD_CgBoA#l_+@ @9)?qTHvmԍ_WO{B6@b6@ 9 7t_A@y!qT )8 @ @4@A@y!qTN aR_@@@A@y!qTM6@T>@9h06u@@{COBWA_Ĩ_"Ro>@977og_WO{C6@{7i@*j9 6@c6@) @yiT@:@9B686 R&@q@k@h@`7@T@HCB2@R2R#qC{8|@y@CM Rhy@:@9? r T_T@@ARAG@_T_T  @i:@Z#)!?"T @AR&>@9H76 @iz@?qcT(Qh@yh6m%|yc6@ @ @9)?qaT @9  6:@987@ @%|@h@R)0r  Ja.J@9_q AzT R *ha @ @9)?qT@3@{EODWC_BgAoƨ_!@ @9)?qT>usog_WO{H-@@ZC6S@6 @7 @+ +U b6@K@9krT qT kA9l@)@7@ Rk1 k@9k qTJ@97"1Ti" @+@ **!  #T6@I @yi@yh%kT!: Z Tv@Rrt@j T>)! s@h:@9 r Th:@9 86 R% @e@@@ !"R,@ !"R&h:@9 87:8@@@R@@6@'TRrt@jT rT Rv% @p62@9rT`4BRѝ@7 R)4r qAT@ @ @ T<Rh:@9H87h@ @jTTh @H i@) @? T )! @+@ **!  #TCRh:@9?6$|@kT"R^E@"RYE@BR)&JT4MMX67RM @4RL"R.E@@"  qT@ @ @#BRV@ ? qT2@9?kbT R)0r jTR@77@ @@!_T#@ R)4r qT#BR@  T>@9 (6)9)@)@9i 7 @ TRy9RzZT9h6R(k{8q'Ț+(D9 qT_"TI@8,ki8izA((D9 qT 5 R 6Cn @ H7)@9Hkh8 ?iTK_8,@9L8+8K?  (T @@ZC6b6 @(IT*_8 @9+8 8*  (T@y] R *S@@@I)-@)@?T{GOFWE_DgCoB_"R=mV#@H6@f@@ @Rr R * @@) @i)8:@9 rTϐ4a.@95>@9(7@ @?!TK _2KcT?T \9@@97@2@?T @L i)8  bT@9+ij8mqT 4qTˌ ˟"T k@88kQqTiz@A@B `TBC@B TDE@B   Tk KL +zL- @ N@n! N!@n B NB@nc Nc@n? N? T? }@T,} M J  !k ii @!k!aT ? TNJ  _8I8TG8@9H4҂RR<s$og _ W O { CH-@@)A63@b6@ @9i 6@9h07{_Rr`@ @ Q qT@@v_@  ?qTBRˆ@ ARv_@  ?qAT@) @ @9@)9@?rHuH iX7i7W RW4@ 9@?rW #Z@Y4s@R @9*rSAT R)@9*rS!TJA9J@K)@7J@ Rj) J@9JJ-@_ q*RJSwB7@  2g:@J@K3@9)qATJ @J@K qaT_rT@97 7QJ8J@9ka.j9@97'6i077@h7 '@87@@{aRM@@s686h@)'@ wh@)'@yit@h @h h;@9h87# R"7 @ 7@ T6@C6@T@ng'6 @H@I3@9?)qAT @* j-B9*(7tCS@ q#D @k2H@J@I?)qT @k@k7+17 F6ETȢ)I觟k@jR  jqZ6G6RY 64@kThi) @68`zT/R@|ss/ wTY4"TCH@I3@9?)qAT @@ q!TbT{`5bT@9@95@87H@ =@qH4vR/qH4nW@ 6" T@@9{ii P7aT^ @9q T@9hjh8?붲 T97@{h P7 @*_ T? T@9*_qT e3 @{hW6=iji8? kTq Tq`TqT@9iq@T@9q!T@9qTqaT @9 ?-CT ?TqAT @9}qTR#Rh/T@@9{i R_)jT!T@cTk@4/@/Y(5H@I3@9?)qAT @@ qTbT@9`@94{`h5D@87H@ =@q(5:R/qh4{T/g@;6@ TЌ/Y(4@9hjh8BTi9(@7)@{iW6hjh8{  T_ Tj@9KqA T*e3 )@{iW7hjh8_+T)?q T?qT?qTi@9?iqTi@9?qTi @9?qTi@9?qT?qTi @9*_-CT*_T?qTi @9?}qAT{W@6T @i@9{iW6{aT"T @i@9{i R_)jAT{!TR#RhЌ/"RjЌ/Y43<TR@g@9_s`TBT  @9_)qT)aT_Tk@H5A6@Ts!T "RisT#@6?)q@AT @@ qT?T/Y9@Tz`H4{T@9`@9587( =@q5R'q5k@9qaTk @9qT{ 뢾Tk9j@7k@ ykW6*ij8M˿ T ]Tl@9q!]Tle3 k@ yk W7*ij8 \Tkq@TqTqaTk@9iqTk@9qTqATk @9lџ-TlTq@Tk @9}qT_rY k`T?)qT @*@_ rT+9@+ 4 bW@h6? THi@9 yiIW6{cTg@Y6@C+XTѨYX6YTh@9jh8{sT?)qT @6?˯TH Rj@9 yj?*jT{CTr @? rT 9@J5)6 7@@ @?H@I3@9?)qAT @5@aTh I@*H*5@ R r qA#T @6 J69@@&BT/R6 @M@@@ (T9'TsB6wH@I3@9?)qAT @@@$RR?w@ %4H@I3@9?)qT @J-B968@9)a.(9H@I3@9?)qTJM@J@ k@4/@k/_?)qTJ-B97?)qT @JM@J@ k@5Ag@J@ TH@I3@9 @?)qAT @J9@ 4k@*6?)qT @j9@_q TlM@KQ aJaT=3R*_)qT 9 T; @K9 THM@ (@J!:Va() @ g@ @MTsH@I3@9{c*_)qT"R:h 9@_q T M@KQ aJaT/@J J/)?)qT  @)?)qTJ @)?)qT @D"RhR҇I3@9H@)?)qAT @g@TR@[T9`TȀ@,k@4s_ Ag@6@TZY4cTN"RgRFBR53T/R@9@М6TIv@9_kT?AT%k@4/@/ g@j@TZY4JsT"Rg#@g@/@R#@g@6@C@ k@qS@$T@cTH5X c6'@s77@k@6c6'@7@#6@ Tc6'@7@vs7A6h@@kMTh 7@S@ qAT@=ChsB`&@`R`&Rh@S@ q TKTs":hb TRH>@Tnc6'@7@k@(6v4˸(@7 R u3)(@ @h }ө @}ӻs7T- T@@h @77(@ @i|@`TB(@ @TG=}ӈ @ @}ӈ!Ӡ)@( (;@906@S@ qT˔6@ @) @yia.@9qTh@R)0r  ?qT R *hv 6@T@@ZI)-@)@?A T{MOLWK_JgIoH_Bg@ R#Rd6@lT"R~f"Rxfl"Rof@ XgfѨY73!R{s!TR"{T@9qTH!KTT @9 ii8J_ T{B_*H @9)?qTAT!6)a6 @(@ @Iyi* @6Jy * @_O{CB6@@!,@?h2@9-Q qT@a6@@{AO¨_{Ca6@A@y!@qT)" I))yh Q_1qT@!M#,#ICog_WO{c6@@ @h@7R  R r* 2  kT@@AR |@H`dq8@ @@H @@@R~ SR 5RR~ SR4@qTRRR)RK  q`T{K K*+( 9 K}S_=q T @?kL*Tkk*T6@JA9J@K@J! RJ-,J@ A6[4<9<7k6*)7*@@ )7)@ ThCk7)6)@))C?T@qT@@{HOGWF_EgDoCC_}@LeA6@qCTRH*@?qR$HzR)(Q'( hq7JS!N){_?q TW57H  Q?qTji8J @q qaT?kT4!:a6@?w 4@ 5@9i6 @ 1@9?-q`T@H 5@9 6'@? 1 @ 1@9@9Kz_1qT77 4!:a@@4@9(6@ @*_!@qT))%Q?q)T 4@@96@*5@96) @*1@9r#@MRk_ kTi@qT@ @)8)@ T'h@)@9 j9@9@SYA6`@R!R60@ uA9 78@@@aR @@hA6ki?k qT8@@@RA6@@VT5*h"4Q!:a6@?'j'@A6@hI)>@)yjJQk&L-_ q1' <%ȁhI)>@)yj'l$iJJ@Jykk''@q&rh+ 8&s#s#-5 @ @-U qaT@ H>ym'BR~$؁O{CA9@ @! R%*h@9(68@ @@i.@ .@?qT(Q6@@ @ rT @?q @z TR|h@9yh9{AO¨_@ @@ @) `T  @I wA6@@1@9-qhR R()a6)@)@9)@ ) yhWO{b6@97K/@R!RJ/6@B6@MTh@uA96h>@9h7@)!:)a @@{BOAWè_"Rch@uA97@a@@{BOAWè_g_WO{Cc6@ @9B6I7 @9@k06K t@@U@7R @9@77J S@j6@96*K}S(ik8 k @l1@9)qTk @l1@91qTk @l1@95qTk @l1@9-qTT2@91qhT )il8 6@ @ yjj @Jj  @+y(@?qCT(Q@ @9)?q T@ @ nS 87:@9 06FJi87@5M q!T@@: 87h @h f @RRR~3_AqT 5 @@(@("Ri @kDl@ @9)?q Tl@5M q TARh @ @) b @ ;@ @9@ (7)rT)A9)@*)@7)@ RI% )@9))-@? q)R))?q)ˉ @{EODWC_BgA_5}ӈAR|j5v@]k @$O{C?@qTa5h @@(@("Rpih @{AO¨_{AO¨k{AO¨kWO{( @5M qT(@@5 AR4A 4"R9`@#R{COBWAo{COBWAn@O{b4RRRRRR@H@R{BOAo{BOAHn@_WO{B6@9@4@ 9 @) ~rD"@RRRt@o= * @ 7@Ta7@y @ 2c6@ @9 7 @9 06v_%u_ @9I77U@H!8 RK@ @9 y 9I76@Tt@@{COBWA_Ĩ_Nh52@9-qT("Ra!O77)6)@ @ Vm#mog_WO{A6@6)7@*@K+I _a6@9 7")TA6a6@@{GOFWE_DgCoB#Am_9D"*99u@7@@(@(@RRRs@o= @7@*Ta7@y @ 2v R$y)Tq@`h2@9-qT@g@h2@9-q!T"T RrAR;~"T@ @ qT@@"Th@ @mT[7wO{Csb6h@@9h07+`a6@B6@mT@ @!h@@{AO¨_"R`@O{CsB6h@@9@@ 1@9?1qH@Hyb6@@9H 6?h@@@{AO¨_og_WO{Ca6@8@ @@5@6@)@ Sls@(@9r`T:@987@; @i6 h@? qTZ#:(7h@@|@ TK T|I(@9h07R7`@b.@94|@(@9i6 h@? qAT7h@ @A6 @4_ b.@94|@+Tz{#:f!:ab.@95`TBRh:@906PTRV7`@@c€RJ8 @?q#T(Q k Tx{c.R97Wc`@R27@@:@9((7ARijRRRa9 ATHR7ARqo_TR7`@`c€R7 @?q#T(Q ;T.6#:Zc. @AR7_9TR6c @{EODWC_BgAoƨ_ֈ:@9 rTK79]WO{b68@@ @@@h:@987h@ @TN|@+ TR6":@@96b@9h6i6@94H076@B6@MT@@{BOAWè_sh:@9(7hCiU}  Th@rTP7H@7HX7Rg7h@ @T(h @@9q!Th@@@{BOAWè_h @ 9@9'6@@=@9'6"R'_@ !T_WO{a6@ @4U@6A@9)8)@) @)@)@) @3Tq`T(Tߖq`TiTiK7@{FOEWD_C_"q @U)Jy)Kk- e)JJ-k)?qI T({) {O{CR*`@ uA987@#Rո{AO¨_֪!:{AO¨_O{CsB6t@@_ !: qta6@@{AO¨_O{CB6@@h:@9(7!:i)CjU)} ? )Th@rTP7H@7X7R6!h@ @T(h @@9qTh@@h@ !щa6@@{AO¨_h @ 9@9 6@@=@9'7@!шa6@ C{AO¨_@TO{CsB6h@ h@ 6@`@MT`a6@@{AO¨_"R8^`@O{CB6@@j@j7 R r)!:(*jaTj @Kk}%_ Kk%DK_r(@(a6@@{AO¨_j@O{CB6@@i@ 7J!:K R r)jI a6@@{AO¨_i@@O{CsB6h@@h@!ha6@@{AO¨_O{CsB6h@@h@!ha6@@{AO¨_WO{B6@@h@h7)!: ab6X6s @h:@9H 6@@9(7H 6_qTh@@ =@9i6 @(@)=@i4@ @?qT? 1T :!@9qaT"R@@@{BOAWè_wh@)!: ab6_7WO{B6@@h@7": rT&r@a6@@{BOAWè_Ph@": raTWO{sb6h@9":H7A9 @I)@H@ 7 R ! R8@9b qI qI!@7 Rkq-qaT+Q?q T+} ik8l %qT-q`T)qTK?7b6@B6@-Th@@{BOAWè_"R]@A9 @N)@H@. 7)a ,@ R7 @ @o!%@4Q4 *kq-qTkITn }@} io8 &qT.q@T*qaT/?7 6H-@q TJ @H@K!@+6q-qTnQq Tn}in8 %qT-q`T)qTN?7N!@7 Rkq-qATQq T} ik8l %qT-q`T)qTK?7 R7@4Qk4 *k?6kiTn }@} im8 %qT-qT)qaTq-qT 6H-@q TJ @H@K!@6?6mQq MTm} im8 %qT-qT)qTq-qT_ R`!A @9J J%Q_qT *K4K Rq-qTkTj M}@} im8 %qT-q@T)qaT-?7? )@ )@i) @) @ 7 RH! %@_ __a.9a6@@_g_WO{C(-@@b6@@9@9C607@5R4@@2@9_)qAT) @#@)6)@J7K@lLj) @J UC3!4@TO"@@9i,@JJ?I"/@*C@F-G]* ?(A9(66@@) @yi @) @2@9_)qAT) @(m@9Zc.4(C@y!}qTV@9(@907(@ )6)@( aTh"@8@9 (7V9M @?q T(Q T @?qC T(Q 6H@95*@I@( @J1@9_)qAT) @)QAy) @*)A8)@ $ @T.@?T)a8)@i?T( A906@ @@ h"@@@))-@)@?T{EODWC_BgA_8@@ @ Rڠ@8@95@2@9?)qAT @ @)2 *@I@( @J1@9_)q TT<4,y҂RRs@2@9?)qTog_WO{A9@ @! R%*a6@@ Bx#C w@t+@V@/@h25T @?qWT(Q @ TD@2@9?)qT @@]@ ]@@ @ R+0r_ jTR'o@2@9?)qT @K-B9 6@Y@r@2@9?)qAT @ @)y @2@9j@?)qAT @ @)y  -B9K7j@?)qAT @ @)2 h @@2@9_)q! T) @(9@2@9?)q T]@ h @@2@9_)qAT) @(] h@@2@9_)qT) @(Yh@@2@9_)qT(ah@@2@9_)qAT) @(ehj@@2@9?)qATk @ Rji R * @kM@- m)A@2@9)qATk @l9@? kT @kM@-}li-@2@9)qATk @(9@2@9?)qAT @]@ @?qCT(Qh @@2@9_)qT(Yh@@2@9_)qT) @(ah@@2@9_)q`Ty@<|h @? GTsB6h@@(8@9(7Rh@!ha.@9(5h@9 7CT@2@9?)qAT @@@b#@ @ e@R?4|@2@9?)qT @K-B96JY@_T -B96 Y@_TjKh#@hh#@2@9  ?)q!T @M@@hT@2@9?)qAT @M@@hHA9rR R(ukh@HP7 R)4r qTR @P6SM@@hIT>@9(69@@97h@=@9(7R @y ARJR@2@9?)q TRm@2@9?)qT@(P7H69@@97 @KaN@9yN9T @ 8 @9@)5A8ZC6@)@IN@92N9T)@ *I@9_qT*M@9J7*@J@,@?aTuh @@2@9_)qTkh@@h@y2hyh@9'6v@h#@T>@9H(69@@97>@9h(7R, @y AR̀R@2@9?)q T@2@9?)qa T @b.-B9H 6h@y2hyHC@ 66h@!hI@9h@)07!hs8h@94s8h@95:@90797@`@kMTZ@t@@ @@?qT(Q:p8p`+@+@?qT(Q`@@?qT(QA9@ !@)Q !/@5@@{GOFWE_DgCoB_R@2@9?)qTb.-B97HC@h7@ R)0r jTR m@ ?%qT@* @ @7o@ @ @ @( @ @@( >@9((69@@97@2 9}q@y] R *HC@(7s@2@9?)q!TJ @i@yJ-B9 6)2iy6 i@yJ-B9J77*R) ?%q!T@2@9_)qAT) @*@J2*i@? Ti@y? r`T@95a.9h@y7)R  ?%qT@2@9?)qAT @ @)2 h@yb.h 7 ) 5 r9@5P7U70:,@?e`@@?qTTF;6@G4N@92N9 _8I p_ yn9@@9h7 @_N@9yN9b.@94h@9H4҂RRp,uu҂RRph@y r9<@hIC@?r@@҂RRp@ R_@ I@9?qT M@9I7 @)@R_O{C@` @h@i2@9?)qT @k9@_ Tk9@_ T?)qaT @ -B9I7h@i2@9?)qaTh@i2@9?)qAT @9@yS%}}nh@i2@9?)qT -B9 6Y@h@i2@9?)qAT @ @)y h@i2@9?)qT @9@h@i2@9?)qT]@h@i2@9?)qT @]h@i2@9?)qTY@ h@i2@9?)qT @a@h@i2@9?)qTe@i@h2@9)qAT) @R*i@  R*kM@- k@+)Ak@l2@9)qATk @l9@ kHTkM@ }kil+k@l2@9)qATk @9@h@i2@9?)qT @]@h@i2@9?)q`T]h@i2@9?)qT @Y@ h@i2@9?)q`Ta@h@i2@9?)qT @e@i@h2@9)q`T{AO¨_mh@i2@9?)qTy# mog_WO{(-@@RrA6@6@)7*@K+I @'*@R@ qT@ @ @BRqXH2@9qT R@@@(JH7X@ @_T @4@n @?qCT(Q  RiH!8 RRgX@ @ R r qAT@ @ @R))?(T*@9_)q@T_yqT_qT}~bmT(RGBR qXROm RRQ RR RJ,-R&RRpRRNRRR#RE9-RRq!T@9q *8R_H$TT8q TqTWit8 _#TqTzqT_T_!TT8qTq(Tit8 ֞q@TzqTqTRR\6qG$*D+@Tn(aT@9$RQnqTR:RO@;uSAR!-vr!: "G@G)9@9? rTWw8@9q@z T@҂RRlBRmXh@(7R,Ќ-ЭRR ij89 sk@T? "T*@9yj+jT_)q`To5:R5*R9 skTO)KCPBRmX@)7R))*J R Rҫ4T*@7(iw89?b3T7@9Xyw8jT6q@-T@r3kx-1T5k`,T7@@ R*J))sR8j*x-5(R9?TgR@ @/@ w@Qw ARs `WvSv Kj} nI kT!h)qTl4Bh)qT `T8b!@a@ aTR:Rp4*aRQ:R(b@ aT))@*@J @) @JA #!:R4@W*J RO@T:@907@(9@9(6(@@G;@h I@9?qT M@9I7 @)@+@ARv @ R r q!Tu @w R-B:R  4R9@@9rG@R" )q5R@@ @( {@h6O7Ѣ#P\X3@I q(( a6{@(6)R{3@I q((Q3@I q(HJRhy @( @/@)@) @  .΁K  T,@9il8 k1)  ) m T.* R\L(/(R{X3@3@I q(H) @ @ <@9 7))A _T) @ hX@ @@ @<K@ R, R7X+T+9)?BT*@94_q Tyj*jTx-'x-#a!-bRr@5@ @, RZ_T K_8yk+j T:ŅRHyRH 9$V9'I) KCBRk+@ @ R r qaT@BRkG@@@~)˩ Gg@@DaR@9H(69@9@7X7h6RI4@9@7 6@9rT6@ @ @ T@Tu @4ARHo|6@9r`T"RJu @5sBш:@9H/6@rTgAT2Q6@+TJc%`tRR`>c`>c_WO{B6@h:@9H(7":hCiU}  Th@rTHP7@7X7Rn:@9H(65h@ @Th @@9q:@9(6(R:@9(7CiU}  T@r`TP7@7hX7Rn/@H @(T @@9q$R"h@@:@9/6@@h @ 9@9 6@@=@9'75R:@9h/6 @ 9@9 6@@=@9'7 Rb6J@)@9q07@ !BRt@ !@@{COBWA_Ĩ_J}:@9/6og_WO{-@@B6@c6@ @96r`T@9 rT`_ @)5)M ?qT @ @:RH "Y)A9)@*)@ 7)@ RI% )@96@9 rTRRH @9R q T9@@)a )@ T&@@%@@R @ @@ @@)@ C9 @@ @@) @!Tc@ @A<)@) @(y!(?-T@@ya @i4 @?q!TRH  q@&T6@ %T"RD"ARa@@9:RH )-@? q)R6@9 rAT@ @(@@ @@ @jRR @rj *) ? kT@@=@4@6@? qT] T9#:6@ @) @yi}:@9h06Tu6@ @) @yi}tbRvD9#:6cv @@@@)'h` @@@yHp7@#RY_`8i&@k]4@9 %Qq(T@%@@@Rz>@@#R?_ @i&@P]5`0RR`(#  I)>r())#@1U[@2[@$2[WO{/@5B9@ @! R%*6@i@ b@9*_qTA6*@@ T2D#RS7@`@kMT ?h @9)8(9h&@) (`*@ h@y06*@?q T(Q`"@"@?qC T(Qhi:@@I))7)@k.) k7ii*@kA7i)A8k@+i @k9ii@i@9)qka6k@?-qh@H!@QH! @ @@T@y)R jT @?qT(Q -܏{BOAWè_Nu@Rr  R) * rTC{BOAWè_ֈ,@?i`"@_WO{/@!5A9@ @! R%*6@i@ t@9h@y! ЕR kTa6@ A@y)!@4 @9?QThqA6@ q!T*RRq!TA6)*(@)*)@ mTmC @ @9_Q`T64 *?AT @?T@ A@y)!?qaTRA6@ q T@:@9H(7!:)CjU)} ? T@r THP7@7X7ReRq T@ @T( @@9qRqTRRq!T@@Rq!T @*A@yK!@)qT5+ @)`T-AT *p6)@i @ 9@9 6@@=@9'7 RRqaT 9@*uSJQ_ qB T7RA6@ q`TRq TRRh @)9J8(X@9u@h.@@aW4 qATRA6@)!: X7 @ @@Sh@y)R j`Ta @?qT(Qh -ǎRy66th@Rr  R) *i r T+{COBWA_Ĩ_{COBWA_Ĩ_JR_)jTEA9h77<,@?=RqTYO{C?6@ @9) ?q R RI hi )A6(a.97@@kMTJ=$7@j&E))}@ )7kA7(jA8j&A 9 *i@ h@%@)A9@(@ !@)Q !{AO¨_og_WO { -@@'a6@h97 07`@]vh@9% SZB9@!@"7 R~ 8R9RZC,Ss raTM!T@ikw8* _1qT #j T( @\{ha6@@@y!@qT!RnVzh`R:Zhkw8 qAKT@_-q!T*q_-qT7 !@ kTA6@@h@ -)U ?qTi@6 @i @BRUh@@'ZC9H@!@7'@; R~ 9R3RW @C 5R@j|8 ?1qT*#_r!T_jT @ )A,8yha6@@@y!@qT!RV#? @)?@#@k!TT@_T@t5! ) yh`RYj|8 qA*TC4@B5 ?-qT q?-qTTH@Ѱ7a6@@906A6 @)! H@ !@ k T @ R(}Hih8 5qT)Q?k,TA9@@'@J-@J@_ T R"{JOIWH_GgFoE_ֈa6@@@y!@qT!RUa6@)5yh@9@h068@9(6B'@ 2&@?XJa6@@ @@yJ!@_qT *!RUA9@@ Ri~ ii8a6@@@y!@q!T!RqU) yjI)>JJ>rH#@1Wzh@?WrO{Ca6@96A9@ @! R%*h@9 QqcT7@)7k*E)J}@ (A7 j"A)A8(6@i@ )A6(9 /@5h@!@{AO¨_ֈ,@?h@!@{AO¨_O{Cc@@hB@y!5qTA9@ !* !@ R(!*s@*@)*)@ MT@7@@kMTd;7@)7*E)J}@ (A7 "A)A8(6@@ )A6(9 /@5{AO¨_ֈ,@?{AO¨_og_WO{CC -@@a6@A@y @9/I07)87@@9% SktB6@@@h474X6 @h2@95qA4TМ8@ @@h@ @I uA9i87@O5t @ @@T@B!(@9 SD@ @s.^#R@\3VRB9@)@ @7 R~ *ij8KJ _-qkTl 7 !@_kMT RL},il8 5q@gTJQ_k,Ti @)i @)!ъJ*I@J*J@? mT?@ !@ kTC@ !@@ R;!*7@i/ 97(A7i+@ h@)A8(֢6@i@ \@7@`@kMT:h@9R qT6@@T @ r@TfQh@ @Iah@9 %qThS@i'@)@(ah@u'@qA97 @?qTT(Q h@ qA97%@R@s'h@a@hSh@ a@) ah @h h@a@?q T?qT@RW4Th@a@t:@987@ @9R"!@V7 Rq-qTQq UT~,ij8 %qT-q@T)qaTP*7N9R|@:@9?r9FRs@Ro@_ m=T6@@_<T_K=TҘ@ "R!\@#_@;T6 @R}@@6 \@@ @?qT7@ @@ @) T  @I Z RC3h @)9(@i@)ayi):( @е6i@9I(6@@?qAT)Q  @  @* @@@ T  ( @ @ @@@?q>T(Q"@960l@9h86@(7RRL(@ 7@@<T@@ CAR.@!h@@@%4@_7 @ [@!@ -)U ?qT@ @ @R(R@@"bq@@:T@"5#Z#_#9C9(@!@"7/ R{~\."5Xh{ T(@@ *@9K 5q(T{kx  @ A@yp7%@@TS CX @ A@yp7(R RJ _-qAT)R/ @ A@yw6R@x.R @R@H!_J H*R/@R)R@X CC@yhp746@ A@y*!_1q!T w6@ C#D?/@j _q @/TJAh!TkA@yk!q!TAq!TK@TA@y!5q@ rR R((ihA!8RAU(@!@k-T$7/(@ @! R%*)7)@ -k7) i )@JA7I @JA8I)6)@@( )A6(#@'@b6@TA@y!5q@ r(R yih)RI 4!T A@y)!?qT?AqT @?ֈ@@bqaTs"uД"4(R9]9@5Z)-@)@?!TC {EODWC_BgAoƨ_ֈ,@?@bqT@q@@L8S@L7S@B6@_ T/8h@9R qb679C9T@ @@i/@ /@?qT(Qu@h#@):(H @)6(@@ ==A9i@9(39h @)9(h;@)@()(!@Q(!@7@ T6@Ch@@?ֽ7@4,@?֨Z)-@)@? TnO<{Z{u@h#@):(@S@S@S{@{Д"@97+0<H>I)>_r()) #@1_Sh~@#@7ZSH>I)>r()) #@1S@@4KSH 3ESh~@@:@SRh qaT@49S@866S uA987@@5/S@3(SZ#R@\3Sog_WO{ C-@@"T@@y!@ Q?q*RI!ɚ* J) $@T(@BT(@96:@\7hC@y ?)q!T̸`@@9h(7T_Tso5~=@4hC@yp6{@[2q`Ti?LT)@96)@)A@y)!? qT(RhC@y ?)q!T`/@@kAT?T TAo5LT= 4hC@yhp6{@[9@" s"h@?`T(C@y)qaT @T _?T)A@y)?)qaT # ?T@T_AU@T(RAH(C@yhp69@@)-@)@?T{IOHWG_FgEoD_(C@y!mqTHC@y!mqT@R))yh)4qTRO  qT(C@y!eqT)R)!JDR? jT%q@TqT(@ @9)? q!TA@yw6UH]RBm{a6@@9 rTR @9)2 9zA6@@ @5M q!T@@ @9)2 9hARQ @9)2 9`R 9@)! k0 h@HA9 @) R RЌa R) @)(!@7}  @=@HMT0@jo8(%QqT%@@@@`T77H-qAT( -qT-@qTqTP}@ TJ@&@@kT_ֈA9 @ R R R) @ -!@7.@9 !JMT[8 "&Q_qT77(@h?.qT -qT9 a(@(qTq!TQ}@?!T@1&@1@?kaT @q_#mog_WO{C-@@9c(@AC94(Z ҨY)-@)@?T{YOXWW_VgUoT#Sm_֘C6@@@ 7{c6r` Th@A@y!yq Tq^xW@!B@!:RR7@!R_h@@ A@y)!?qaT@9(7@cq+TRrs @!RRR@!:RRR@ @R @ @ Q qT@@@bqT!: @( P@{c6rT rT Ra Gh@ @97rT)A9)@*)@7)@ RI% )@97)-@? q)R7A@y!)-!_wq(@rT R r qT@ @C @RMC@@`Th@9(4ւ/@H 5@9 6 @1@95q TARW}4}A7 @ 7@@XT@)6)@ C6@@VT@ARK@@6@9i6 @)1@9?5qT @) !G@BR|7@ R r qT@ @C @RCMC@hh@9(4G*@)*)@ MT9Q4VARkA @?qT(Q @?qT(Q ֢/@h 5@9)6 @1@95qTARm@PA @?qCKT(Q _wqT@ @ @Rw@@@RR@ @hF7raTC@ T C@ TRrl?8@9>5h@9q`TqTh@9qTq!Th @9qTwC@_wq T(RwC@_wq T@ @ @Rw@@RR@8@9H(7@5@9h4@)!:h@ @96@ A@y)!?qAT@9(6C@ŅR#yw@i4 #Ti@9?qTi*_xRJ J)_8 R) JI *5 RlCCRl@'7w@6҉)94@?T@(9 @)  )94@?kBiC".@`RRRwD@.@@ @ @@ R u3 U+7Wj@5qw@) 7)94@@ (9 @) 7C"RI0@GuhHR#@H'R!D63O(;@987(@ @|@hh;@987h@ @|@aT(;@9(87(@ @H"RE@@7 @) rT|@(;@9(87(@ @/@@H7~|@/@@H6R @rTM 7@9H7w@(4@r@#T R r q$T@ @K @ B$T& @@R r -qT"R@:@9(6RNT3@9@96TG@3`TB€R"_@6G4 @@@!!bR R} 0@9%qTR:RД!A! RRz} 0@9%qT;R:RT  @1@95q#TRRO'@A!  @?0=)7(@ 7@`FT@)6)@ CUjHR6@@_ LDT_q3@  6aR9qjT @@@Rt@@D:@9Rr֢C(7!:CiU}  IBT@r`#T P7"@7X6 @ 9@9i" 6@@=@9! 6RFX`!7  4aRqT@!N 4A Rr CBR}IK@сo BTzw@7r@TX77 @  qT@ @K @R@rAT |@@@hX7 ;R֢ ?!@qTR֢@ @ @R?t@@ @rTi Q qaTC@@K-aRqJToCR&IK@ TRh'@H?@9H 7H@ @C@ ! TW @C@ EK@hK@ _8?qTKR8C@hK@C@ I@( H@ R *H8@9(5H @? .g@aq/Tf@5q+T+@9ARRM 73 @ @*_)q֢T+!@qTJ%Q_ qBT ;R +!@qT(%Q qT1@ ?!@qT%Qq(T @@W7 @@@ZT#A#@@ 7@C/@ @T( @@9qaT ARWK/C@@h@>X6C7@ @ @Rus@@ @rTi Q qT@@AR2Kh*@i)*)@ T4~/@@@aRTs@@7@Q@ @ @@RIs@@ i/@@@7@Q@ @ @@RR0`@ @rT R r qT@A@CCBR%Hh@?@?+@ @?qT(Q @?qcT(Q o bTz{{(RC6@9(6  T@@ X7[R ?!@qTC6@9h6 @1@95qT @  Tz{W @ RrZRr7 !((d7@7Ҩ"@ @ @NRr"L @7 @ @ @>7@ @ @8 ;R @I @[Rk3=-@@H @?`*rrh!:!TC7Rr֢@ @ @ 7C{{c69c"?@H@9qT @8?q{{c69cTH@8qT {{c69c?@{{c69c?7C'@ne@Pzf'@uqTfe@RGK@4Cg5+Ay2 @qTWe @ @@Sh@y)R j Ta @?q T(Qh -{@i)!:)a h@@Y)-@)@?TCedh@Rr  R) *i rT`!(#RR&RJ ?eO!!$RK @ @@s r @?q8Trv֢/@8Z@5@9E5 Iq@ IARIq T!$=BRRR:@9H87@ @2bq`T6qT)g?@ IZP@ZP I@ TI(e ))) (#  I q! T@ @K @Q|@  cT @!!g:@987@ @ZO@ZO oIw@( 4-RuRu>+@(;@987(@ @o|@,T"R @"RCRvf@BRgCBR?FK@1CT _8?)qT _8?qaT_8%T_q!)) J5I'!!iI IC@?KT?@v_xR J @9 R) J *h5G@ @"T?@ {<RR#R)Ty69h7 @  y?1T? KT@9*_qT e3)@i{i)7@9i{h)jTTH@9i{i)j!TATqaT; 4R#Rk)@9@kh8T9h7 @  y?1T? T@9*_qT e3)@i{iI7/;5  H|@ T!RR\@ @ qT@@R?@ T?@h _xR? kT!!RCRekARGHHR R\ q( #  Z!RVYNNYN@YN ]HA Th9@@976Ti9(@6 ? q!T? Ti@9*_qT) 3(@)(yh66?@? CT _xR) J_8 R J(*H5!!R  +H  (Hh@9)(yh R)r?(jT!!@RCRLeT-R#R(   HT:4!!@RCR5e?@  "RCR+eT@9qTBRCR eT!!Rh_WO{-@@tДb6@vb@#"R)e4 qATRiR#c9h8@yyhA @_ Ti)!*@ ? c9h8@yy`?րh+@?Ayi)8(y@\)-@)@?T{ROQWP_O_Q qTRc9h8@yy@ @IqTh @&cb\7G@ @)`3![b Rc!dO{Ch6@ssB6`@TtДb6@@Hh@hM@@{AO¨_"R)#mo g _ W O {-@@xc@AC94 QҨY)-@)@?!MT{NOMWL_KgJoI#Hm_|Мc6@ @9wB9)rT@*)@7)@ RI% )@9))-@? q)R)Oi)0*@@9vB6zZ#{{977H@97 6h@ @9i7@@@P6*@ ! @( @( @@@P7 -)U ?qaT@! @+ @ 2:s7.h@%@Rߩ RRB@@@W6R66AR(}"M@CBRC+@@ 2su6@(6 R)4r qTCmR:@9 rTL<5h8@9<5h7@@@9rR)rHR(*@!h!@9ss1(6h@%@4Nh@hi@*@J@J@J)c h@h"B:ccRV|@ )%@!!: @v @ @@J0to@@@3(RH'h@ jJ0H@@{{c O@ i@ R R @ !@7@= aρ[=@ΡѿMTρZ8 &Q? qT_@@ TO77.qT -qT@W'@ )D)? kT / R Rk @l!@7m@5 !7@w-T[8 &QqTp76?.qAT .qT5 b'i) 7@@ )D)? kkT)@!@ R )iR 99i)6)@i )C i)9)@ i)7)@jJ7J@) )B -i)A7)@ )i)A8)@jJ* I@ i)*)@I@)@ i) !)@ %i)=*@JJ]@ } @ 1jJ8J@9J@kA@yja3 y@K)@ 9K@ Cӫ؉Rr} H)h!@yJR j Th8@j@ @ TH@ @@R(@]@ @#@ @ @@k T9Rss9Cu"vւ9%RRR:@@h ARaB`h@h@ R *h4_T{@{h@h@h@S8@#@Yt>@k:8a`h8@33RR|Мc6uеB6O@C R(@]@ @#@t@'@@Zh0 @h!@47@_ kTh.H*667@_ kTh2H*6IR jh*H7V.>j:8aIR jh*H7h8@RRې@ @9 06@? +`h8@S3h @Y)-@)@? T_h8@9i)a.(9h4!!:+#mog_WO{ha6@B@y!ss9jJ8wqTI@9R(3@9}S2i@H9i)7(@ h7@eThA6@i)6)@ Cw9@zZ9@H@H7qC|#7@R RR9@70o \@2\@ykkA9h@ @! R%*-h@ @!%*@ 9@Y @ @)@R@%ha6!R.h@@x8 @ T.h@@ 1@9?1qT @) y9 @J0 @@ =@9)7Qx 1@9*(@H@H?iC(/@`RRR/9@/ (@(@ (@ (@(@ R u3)? R.x 1@ (@H@H?(/@`RRR9@/ (@(@ (@ (@(@ R u3)? R^.'y9Y15zZ _x#xB@y!w uq`T9(7@ @y@Y(@y)R jT! @?qCJT(Q( -x` 3h-qT6/@ i^(@Rr  R) *) r`T^2h-qT@9) 7@jJ8 ;yH@9H 7 @)9@jJ8 ;yH@9h 6(y ;vssh@ @ @@B@?qBT)Q  @!!Ssb.w":zU (@@h&))}@ *Q@H*(QaAb_RR@@(;@9h(7(C} T(@rTP7(G7X6( @ 9@9 '6@@=@9'6RN7(@h @HT( @@9qT(C} T?!T@hr!RRR 4@9 4y9-/H@ R r* 2  kTH@@?i)8(@92(9Y2h-q@T;yh@ @@1S#@Rt-h8@977#9h!.#5@@=@H4!@^x ^0@95iC/@h%.#ARtE yzZ #@RE-@`"@d#'@r҉`&@H@'ss`@@8@987@ @v|@wq!T@ R!b4ha6 qT3RuB6@@@T ZmTh@ @yv@@ @96@?z@5ss=h@C9I@q$ @ Tha6wqT@ @ @R\j@@RA@@<_h6@kk7i@*j) uB6hA9@ @! R%*@@@@95!!|RKI@ qTh!:aX$*"R#@Z~izih@*~"R# @_WO{tb6@@9raThA9@ )@7@ R(! @9uеb@AC9h4)I{COBWA_Ĩ_-@ q(Ruеb@AC95ss `@*h@ @@Sh@y)R j@ Ta @?qT(Qh -cvhA6@h7@ssB9h@ )D)? kjT $h@!@ R )iR 99i)6)@ )C i)9)@ i)7)@jJ7J@) )B -i)A7)@ )i)A8)@jJ* I@ i)*)@I@)@ i) !)@ %i)=)@I)]@ }@ 1i)8*@9J@kA@yja3 yj@J)@ 9(R(9@@{COBWA_Ĩ_{[h@Rr  R) *i rTphZWO{h6@tb6@) @ @.uе @@@h@@BR}R@ @@Sh@y)R j Ta @?qcT(Qh -u@@{BOAWè_4[h@Rr  R) *i rT)@@{BOAWè_qhO{CtB9@ @! R%*h7@`@kMTn$h @9i)8(9h&@i) (`*@ h@y06*@?qT(Q`"@"@?qT(Qh:@@()h7@j. jJ7Hh*@jJA7Hh@jJA8Hh @jJ9Hh@jJ*H(!@Q(!{AO¨_"h h`"@g_WO{vb6@ @9wB9@8rT )@7 @ R)) )@98i)79@ )D)? kT   -@? q)R8i)79@ )D)? kT#@!@ R )i R 99i)6)@ )C i)9)@ i)7jJ7)@J@) )BjJA7 -I@ )i)A8)@ i)**@kk* j@*u !@ %i)=)@I)]@ }i)a*@i)8 1*@9J@kA@yja3 y@K)@ 9K@ Cӫ؉Rr} H)(R(9(7h @ @@T@y)R jT @?qT(Q -tR(9s@6@{DOCWB_AgŨ_,Z@Rr  R) * r`T!ngO{Cha@AC94 W{AO¨_ssb6h@@@hA6@R8h@@{AO¨__WO{ssb6h@@9vB9r!T@ )@ 7@ R(! @9w8@@@R g@@hA6 @*! )@* @J* @J @Ii)7@8@@ )D)? kjT "@!@ R )iR 99i)6)@ )C i)9)@ i)7)@jJ7J@) )B -i)A7)@jJA8 )I@ i)**@ jJ*J@*i@)@ Qh@@{COBWA_Ĩ_-@ q(Rw8@@@4O{CssB9h@ @! Rkk6%*h@@ @9_qaThA6h7@@klT #R}7h7@@kMT"h8@ @@@ @?qT(Qh7@. i)7(*@i)A7(@i)A8( @i)9(@i)*(h@ !@)Q !ha6@@{AO¨_fRog_WO{{{C6h@x#:c78@9h(6AR_Eh@6ARYE @|c6X6i @*9@9 6)@)@)=@9  6 RCR&h@rTX6i @) @6)?!qT@X7 RX6)6@9HL5q @J @K!qkQJ X7+4 X6 @K9@9 6J@J@J=@9! 7?rITr@BTh6@`@=MT `h9@@97+w @@L!QqT Э9/Nil8 ?rh*H7 @1@9-q@\T1qT  @R_% 6ܓb #Άh@@Ah:@9ȉ(7hCiU}  Th@r@TP7(=@7@X7ReIh@!h A7k)7 )X6 @(@ !q UT-q@ZT1q'T]7@ @7?r<T@X7RRR`=?rh*7 @@ ?-q=T?1qT;4S Rʓ Xw76RyUzZ* !RMb!b.@h7@ Th@i)6)@ Ch6@`@MT`AR/h@@:@9(7C} T@r@TP7@7X6 @ 9@9 6@@=@9h 6RH@( @ T4R @@ @@9qRh@!hh*@I@ MT`&%"R`@C} hTh@( @*T: R#R}~@ h@ !iORAROX @ @@y2@yARr' -@aRm' h*@i)*)@ MT& S%7uB9@ @RAR"R@  E@ @)2 @@ @i@w6@) v"9)C@J@I @ @J @* x6  @J @) i h7 @ h7@eTh@@ C@`@ dT`ARe j@I!i@ @dJ@ @@) )C@@ i @l@ @, l@ @) (!h*?r`T7@ @r|@Ty96zUh@!hT` @R @(@`@=T `"Rh@@:@9(7C} T@rTHP7@7X6 @ 9@9 6@@=@9h 6RGh@!h6v@ @ T @@9i@)!iqTh@@i@)!i(aBR`@zC} hTh@!hTOh@rTP6846@9r!Th6@`@=MNT `{h@@h:@9M(7hCiU}  JTh@rT(P7(G6h@@i@)!ihh@ @HT(h @@9i@)!iqTh@!hh@ !i h @ 9@9 6@@=@9'7h@!hh@ !i@@{FOEWD_CgBoA_ֈ7@ @ @@ ?!qT?-qT?1qAT !7R *7@ @|@@TQY97:R TR0dd,(@ H7@ Th@I)6)@ Cv@H6@`@ T`AR2h@@:@9(7CiU}  T@rTP7@7X7RF@H @T @@9qR@@  @ 9@9 6@@=@9h'76Rh@!hH*@I)*)@ T_$#"R`@7LV7I @8@987@ @|@`TT @R @ 4H*@I)*)@ MT$$0m7@4 @=|@T` @R@5@9h4T7@ @>|@ Ts`TRe @@RRR|@(@7(@ @|@T@8@9 87@ @] R@7R"|@w @Ts TR+ @RRR` Rk*q6t   @@ |@s˨@@|@aTRORRsRRR- |@uT}41RhRH* @ H7@*THa7@y @ 2RH* @ H7@THa7@y @ 2Tc @P;@RRR܅(@I@ ATT` @R@R?@T(@5@95H@5@9(4 @@&@RRR @@RR@R@@ ?RR@R@@!@<R:h@@h@!h5@@C*KkTh@!hTBR `@{BR`@(""R`@"W"j99_WO{Tb6@9raTI)A9)@*)@7)@ RI% )@95VB6@ 7@W":h:@9(7hCiU}  Th@r@ThP7@7hX7RD@!`65h@ @T(h @@9@8!qT'@! qTb@V)-@? q)R5VB6@6h@@@8!h @ 9@9 6@@=@9'7@!H7@VB9@ )D)? kjT @!@ R ))R 99I)6)@  )C I)9)@ I)7JJ7)@J@) )BJJA7 -I@ )I)A8)@ I)**@Kk* j@*@)@ @@{COBWA_Ĩ_*s@!TO{C 8@9(7H!:i)CjU)} ? Th@r TP7@7HX7R{AO¨@DR{AO¨_h@h @hTh @@9q{AO¨_h@@{AO¨_R{AO¨_h @ 9@9 6@@=@9('7 R{AO¨_{AO¨_WO{TB9@! 7 @ Rh&*@9 qTkQq Tk~+ik8l QqT'6*U6@@ _qTHA6#R1@(@ R" j@9J_qT)! R(!*I)7)@ -) JJ7II)A7 )@* @JJA8I@ @) JJA6I @JJ9I@ D{COBWA_H/@5h@{COBWA_H,@?Ha6@9 ); J;qH,;7O{CSsB9h@ !@7 @ R |Lil8 qT Qq T;7 kTh@ @ !@ RLЌ64)+@@J KkA6jJJ7J@@_kTh@ !@JJ7J@.J Kk7j*@KkA7j@KkA8j @Kk9j@Kk*j@@@)Q !{AO¨_O{CSsB9i@(!@(7)@ R qT Qq T |+ik8l QqT'6j_qTkT@9 6R+6@9h4@ R)4r qTBRAqTh@@@?qT(Qh@-a @?q#T(Qh h@=tq@z@)-@)@?aT{HOGWF_EgDoCC_@r@T-U qT@ @ @5ITz>@9'7R1@5ARyQh_bTh<@6h@2h@@4(P7.j48aQ @@T@ @ @P@@RQ_9q@T6@94RRqTuBR8h@ @ @\\h@(@rTH @@@R\@@(;@9(7(CiU}  )T(@rTД*TP7H@7X7R)@ 6(@ @HTH( @@9qT (@@( ( @ 9@9 6@@=@9'7ARjy\+v\0?TД*!TwO94CO { -@@  @-U qT@ @@cQ7;@y @q`T@qTR#BR(1cQ`6Ҩ^)-@)@?T!R9O^)-@)@?T{LOKC_֠`!(CRR&R4^)-@)@?T)OCo_WO{-@@TB@V"@Ssbh@c#R8Q 4 qTH8@y x9H8@yy@ R^SqAyI)8(y@h[)-@)@?T{TOSWR_QoPC_Q qTR@I)89(@yy@h @@ qaTH @JON\73!PL@(!N R;Og_WO{-@@UеB@W"@TДb@# #RP 4 q!TH8@yc9H8@yyHA7@H @5AyI)8(y@[)-@)@?T{SORWQ_PgO_Q qTRI)8c9(@yy@ @qTH @NhN\73!PNL5!N RNO{CSsB9h@ @RAR"Rh@  E@ @)2 @@ @I)A6*@Kk6l@J L!9JC@@ @j @k @K M6 @k @J *`{AO¨_O{CRARON @ thB@y2hByARp#Ha6@aRi{AO¨_O{CHa6H6@TB6@mT@@h:@9 (7H!:i)CjU)} ? Th@r TP7@7X7R_>@!ш{AO¨_h@h @Th @@9qh@@@!ш{AO¨_h @ 9@9 6@@=@9'7 R@!ш{AO¨_"R@H@@sR@!ш{AO¨_@!ш{AO¨_{H*@I)*)@ MT{zWO{H6@UB6@= T {BOAWè_BR@og_WO{C-@@HA6@H7@TB9@ )D)? kT(H! @!)@ R%*9)R 9U6@ )C I)9)@ I)7)@JJ7J@) )B -I)A7)@ )\C8@ [{*i@ Vւ*@h"Xc6@aRz@Wb@ C@#R5O4 qTRiRC9H8@yyI)A+@ ATJJ!K@k? _ R9H8@yyH+@?AyI)8(y @@i@ MT@ @ ! R % @j@) JJA6I`@I)7*@_kT@ !@ JJ7J@k.J Kk7jj*@KkA7jj@j @Kk9jj@jQ(!Z)-@)@?T{UOTWS_RgQoP_hQ qTR9H8@yy @ @  qTH @LL\71 @ @)gJ3!2L RL!N_WO{Ub6@@I)6)@TB6@)? T@{BOAWè_"R@@O{CSsb6h@I)9JJa.(_9H6I)A9@)@*@)! R))+)@ I)A6JJ*(H@I)*)@ LTH/@h5h@@{AO¨_FH/@4H,@?h@@{AO¨_WO{Tb6@ 9@)7@@RX@@H6@UB6@T@@{BOAWè_O"RX@Ha6@@_{H7 @ H7@THA6@I)6)@ CHa6@@{_`WO{H6@Tb6@) @yiUB6@@BR=8h:@9(07@@@{BOAWè_2WO{Ub6@@I)6)@TB6@)? T@{BOAWè_"R@@O{CH/@5TB6@@h:@9( (7H!:i)CjU)} ? iTh@rTP7H@7hX7R;6h@ @T(h @@9qTh@@Ha6@@{AO¨_h @ 9@9 6@@=@9'7Ha6@ A@y)!?qT@)!щ C{AO¨_H,@?TB6@@h:@9(/6T_WO{Ub6H6@@* @ VB6@@@(@9qATDWb.@95h@h7TBRAh:@907@!@@{COBWA_Ĩ_ֈ:@9 rT6797i @?qaT ?!@qT )%Q?q@z@TR14!R1jC_WO{Ub6VB6@@3@I)6)@ @ yj@9 8@9)877 @) @?T @4yh@"RX@Wb.@95TBRA:@907@!@@{DOCWB_AC_h:@9 rT579%j/g_WO{WB6@3Vb6@J@9073@(Ub.@95@9H 7i"A) MS  _ k`)@z!T ?!@qT )%Q?q@zTR 14!R+1TBR4Ah:@9 07@@9raTHA9@ )@i7@ R(! @9qT@A@@{DOCWB_AgŨ_-@ qaT@ !:@9 rTO579 @2@9i@*))%Q_!@q" Bz'5Q qT7XqaTR"Rj @  ?%q@@z`T7!R"Ri@ qT6@97 @ @ @ @?qT(Q @@9rT @ @) @h@@қ @?qCT(Q l @5!R$@ R *  @ VVSHa6@@9r`T_HA9@ )@ 7@ R(! @9_-@ q(R_O{CH/@ 5TB6@@h:@9( (7I)!:h CjU}  i Th@rT(P7@7X7R:@!шHa6@7@{AO¨_h@h @hTh @ @9@!шHa6@?qT C{AO¨_ֈ@!шHa6@@{AO¨_h@ @@!шHa6@Ih @ 9@9 6@@=@9'7@!шHa6@ C{AO¨_H,@?TB6@@h:@9(/6@!шHa6@ TO{CH/@5Ha.9HA9@ @! R%*H6@i@ I)A6JJ*(H@I)*)@ MT<Tb6@ 9)7I)7)@`@?kmT@@{AO¨_H,@?WO{Tb6@ @9UB6 07I)6)@ @* @@*!S@  @) @) * R r? jT@9@ !ѩ@@{BOAWè_RRu7@@g_WO{-@@Rr?@ATRTQh@  ?qTi@) @ ` @6H9@@9 SCRx*h@7:R @RY @ qT@ @ @T@  ?qaT@) @ @6H9@9@@557Rh@2h:#RM*@7@%5h@yh6R+CBR>*Th@r`T R)4r q@TR9 w5T R.`4-Gh@rJJ9J@J9@K6 K* 74@  ?qaT@) @ @6H9@@9 SkT4R7"CR)@7v64 @RIYR6@ qT@ @ @CR) @R Jh:@907@)-@)@?T{FOEWD_CgB_|@)-@)@?@TGyo#mog_WO{ш-@@Ha6@@@ @9"zTB6@ @9#j07JJ6J@ @@ @I874h@#@H6@@bTs_@ S7R*TCt@14RrjTrA1T R=.#@`36@ @ I @)R@i)8+h !h(}C X9Kk!@5T_THa6@@9h 66@9) 7?T? T 5h 6( 7H6@@)@yiBR3:@9H07#@Kk!:A7 @6yh6T @qT@ @ @t@I)9(@(` @`RRR2!Kk!#@@h |@ш I)*(@ H7@*THa7@y @ 2*49? T-@6yh9? T(6@@)@yi2@9 qTaR6!Kk!#@@ 2@_( R)r *@@  @ )9? T@HqT(6@@)@yi@@)* R r? j`T 7`T:@9 (76@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9 6(a6@@9h(6_ T@aT@6r!T(!: RH-`4B,R2:@9(6@R#@Kk!qRRl*6#@]Kk!#@` @8BRG=:@907#@@TaKk!#@4Rrh!C7R"C(T@@  ?qAT@T@ @ @@)r9* ډ"CiTjTr@TT#R'#DrT R,)-#@ 7rTR(4r qTR67#@t@?(j)T*h@ @B^5oR(0rjTR!#@t@ qTaR$ #@t@Rr (* R *h*4(9@@9H&7@TA?!I@ $@@I 8C?TC#5(a6@ @9i07@9 6BR<h:@9$07*JA6H@@ !Ik (R +)A?T+@+T,@ @}Aӭ L* *qS}˭! T ҟBT=@9G @T @91G-B- @ T  @91G-B- @`T @91G-B- @T@91G-B- @T@91G-B- @ T@91G-B- @`T@9Pˌ! ҏ!AG~ P T T !bT KAT}ooNoo@ ///ocnB.n!.!T!NN N^ f@T,|ooN oooooo< o/2/1oo/onBn..c.nn!.AT!NcN!NNBNN N^ fTn7@8N T)A?CT h@ @BT ##@4C_TI@VW ?T4i@+@ #CCjAk_kU,@h 9S+O+(CFh-R_TCC(9C#_T(9@@97RҌ3#@h@ @B^5h@yhC"TCAT @ "R #@"#@h@ @B^5@4@8h@ @Tv @Cm4@TE?@T5@T!@E9C@Tu)@   Rl3 9 Rl3 9  "T+87 8 T9C?"T4@!@E9h @i@( 4B6@@ ˈ(a.@9(5h:@9H07@(a6@@Y)-@)@?T{FOEWD_CgBoA#l_(8@94҂RR1$D`(6@))A6 @_ T_(A6@m WO{4b6@ @ @93@97qTQ(7 @ (7@@T(A6@))6)@ C(8@@@aRP@@@@9qT(6@6B6@,T(7 @ (7@` T@))6)@ CS4(6@@Jq"T  j!+ i @K)T@96(6@hfSs@))7*+k6k@hy*H())7)@_ kT4 @* @Jy * sqaT@@{BOAWè_ M!l}ӫ} k  "P' 1O'1VT77iK %= A N!N<.f@_q]I u"@w*@H+}@$T6@`@?lT*@ )7)@ TR_k7@Tg@6hN@e@i:@(_H);@'@_`@FR_k7@kTZh@h9?@TzyjN@WjN@ )<)@?T }@k}@9(7R:?9@9@rR R"0?b6?@97@/@g@H̿7i7@?@kMTh@@_) !i )!: b6x7@?@kb6@mTQ/""R; A9 SZ?9B@' ))7-@H4+Zi2@'!0!|-g@(Ŀ7(D7@ @8)?qT9T7@ {-7@4,og_WO{B6@c6@ @9i(7 @97Ri@*9#:_1q T:Ri@*9#:_1qT@987<R4q@i@*9#:_1q`T5c6 Rګ@Y@@@!<R"RZB`!<R"RSBRRR#^r_jRRR^@4@(cHAT069@@ 9 @) 5c@h:@9(86:@9(6mt[ 87@@9r` TblhE"*@@R RR@*o= * @ 7@J Ta7@y @ 2@)R !9ARH"RR  @?qT(Q h @h @!@)R *h>@96i@(@)=@i4@ @ ?%qThX6@1@95qT@@9}SR\4@@9}SR;@)c5@ !@@{FOEWD_CgBoA_֛9`bO{C8@987 R{AO¨_ R@ @@@!"RuA!"RoA{AO¨_ R{AO¨_X@@@R{AO¨_og_WO{ Rra6@@u@"8296!:a@T1T kh8) A6@@(Rh@ @ @@R8@(@i@ @Rr@7hX6 @ @6 @J@J=@9 7)?-qT(@i@ `@@@aR8@@Dӫk2jyhx) w@06 (@i@ @@H  qT`@@ @I@@H  qT @ 9@9 6@@=@9 7R` 4R!%@dA6@@(Rh@ @ @@R8@(@i@ @R@7X6 @ @6 @J@J=@9 7)?1qT5(@i@ `@@@Rz8@@Dӫk2jih8) h" (@i@ `@@ @Rc8@@U07RRR[\F@[T+RN8@@@H  qTH qT@@06}AR 07"RB@@BGӨ@Tu@@T@_7 ?-qT)%Q!@q" BzT!,3bR @@=@H_7 ?1qT)%Q!@q" BzT!P3R @@(ARX@ 1@9)?-qTaRX@ 1@9)?1qT k9c6(@@9rT 7@9raTA9@ )@I+7@ R(! @9RRq%RR[qT<9c6(@@9rTx 7@9raTA9@ )@(7@ R(! @9quS;q$T!:a9c6@9h(77R86V@9(78 7R 86_RRR[ )!:( )!:(q33Ru8653R86Aq(@@9%878RrjRRRd[@4@!:adH T%069@Si@ 9 @) l!:a@s:@9(87q(@@9 874Rrb 4@s864!4#R@@:@9H86h:@9(6}06:@987@ @$!:a:@9(?7q86>@96@(@()=@i4@h@ ?%qTX6h @1@95qT(@@9}SRW |@ ?鲉!?TH"RZ:BhE`"*@@R RR@*o=` * @ 7@jTa7@y h@ 2hh@)R !9ARE"RR  @?qT(Q @ h@!h@)R @6A6@6@ )A6 @TA6(@@{FOEWD_CgBoA_-@ q!TRRRwZ-@ qTRRRRgZR84(@@9}SR@x%PM"RA6@`4RRR;Z`4X[mM6`"`I}{a6@ @9 @(74!R{B"I5`h-p6 @) @jJ&?H` Cog_WO{H-@@A9@ @! R%*9(706)@)A9@ )a6 @ @ k!:<+ q1T@9 (R   ҟ9#'Tq`Tq@TqTD@ R r  ?qa T@) @ @ 7*@*@4&@ T )6)@@ ( @ @7@9((7Sh@q(T7y i @)i") @3DlT4@ @qAT@ rTR)0r  ?q!T R * Dv*@ 4ӈ5:@987 @@i  !@ @7@9(/6 @ TBR] @8@9h76 ARC @3@@?qT(QBRH @69@9@7HX76R? 49@9@75h6@9r Th@ @@ ( T5@ @q! T:@9 r TBR(@ mT!:a @6 @@?qT(Q&@(d:@987@ @ן4 gT ARRC ` @`*4F?' T&@&|@ן48!:aq @!:a(@ TRX @34/T  @?qT(Q ARC  @?q#T(Q RqC @@?qT(Q T 8R@9(/68*!:a @3 444~4a6@ k!:@ @Ja8? TA6 @+ @@I)-@)@?T{HOGWF_EgDoCC_A6 @ J!:J* a6@@@)a8 AT?l& |'&G Cog_ W O { H-@@b6@+@@2@9)qAT@7@/@5+@A@S7@*@906 )A6)@4yh@s6@+@ A968,@?+@A@6A6@@@*@977( @ )6)@( @s7 8@@ @`@S76@ )A6 @wT@7+@ A9H7(Rj6TRh )R k5T366Rrh qT@ @/ @(p7cR@Hp6 ?%qT rT R^(R+@A@  7)8)@9g5)+zoRZC8+@# cRqm@@@ cRZC8Rqk@2@9?)qAT @/@ @JQAyJ @JK@ d @`T@*?)qAT @@@'R?4'@Hy>@9(69@@9hH*( 6(@ R r  ?q!T)@) @3: @h69@@9ra.@94yBRO(@7Ra.@9 5_+@73@6@_ T7@5Ȋ@#@#@(;@9 (7Ȋ@ 7 7s4>@9(6+@) A9 7@[574R(4r( qT@ @/ @ZC8RqTBRAR h@ R r qaTh@ @3z @3Ra.@94#.@ !Ta8@'@ \TU@@2@9?)qT @'?)qTdBR3Ra.@94@2_Z'?)qTNR@4+@ A96AR#@ZC8@ R)4r qT@ @/ @qxR9R@[5R3R@{5Ȋ@@@@#!:+@) A9?r)A6*@J!*sb6i@+@9JA6I@@7k07)!I(@kMTh@R}SN@[@R 6)9)@)9@?r R"@ *6'6*B9@ )D)? k'T >7@i5}S@  *N@(%@ +T@97{8&3@sT&s9hˉ@( Yh)q)T R Rq*.K5T@h@@A7#(6hY@T  8  +hM@@R>@9(69@9@rR'@6'@M@@3@#@,'7@4@2@9?)qAT @@@?R?@4;R+@'@@@?R?{ 4*T@h@H77hM@@ˈ>@9(7R@)26hY@  * hM@@ˈ>@9/69@9@rR R#&CM@@BRy'@2@9?)qT @҈N@)@ -')@)@R ?{@`4'@@ T.B97N@@TT&93@&3@9@M@@@2@9_)qAT) @@2N@@AT`T @ *Hˊ@H "%#@b6@@@9(7;R+@R>@9(69@9@rR'@]&+@ A9b6@7@( 7@) @) @h!7M@!@'@@@ R ) (R9y(7@}S R9 @ @ a6@!n:R0@@7@97{8T`%a%3@r%":b6@Rh @ h@ @@( h@ @@( h@@(* @@9/6":@97{8A6 @)! @ @9)A6(@J07!(+@ A96h@942+@ A9H7@y] R *h@95:@907a.9(@kmT@@ZI)-@)@?T{LOKWJ_IgHoGC_֠,x:@9? r`T+@A@7(R %qT@(@2( 7hH4҂RR5a.9(@k TR  @J}SJJ*}SH*7@I *4@)@9i(7 R R *a.9++@''@L'0"R@S6Th rJa.I94h@94҂RRa@<2#7 _8I p_ ˀ yb6@'@8#4,O_WO{B6@@h:@9(7":hCiU} 67 Th@rTHP7H@7X6h @ 9@9I 6@@=@9 6R@!ш@7'h@H @T@!шh@@@)!щHhh @@9@)!щqT@@Ii,L yk yi_ T y)@!ш@ @)J* H@* @ MT@@) @ hT@8@@)yih@6AR@@)y)@ @y hД8@ @ @@?qT)Q i @)i  @a6@ C{COBWA_Ĩ_p@!шaT@  i @ @ ! qTi  !"q/@ qTka6k@l@9,(7! )6)@j @3yj)a.)@9?qTi@R*0r* _qT R) *ia a6@@{COBWA_Ĩ_֫"? ki ! @#mog_WO{a.9B6*@Ќa7е*_ qT@hTC iT@<R@)7)@ T@ 9HuC  @ )R r(*$vTu@ q`TqT5"A) MS _ k`)@zT.@6+@IR  ?q@@zT @?q!Tu@7(7)R jT)!: )CjU)} ?)."I@T @) 2")(@@@K) (5q(TЌa7@@) ? T)@ Ty @6@)9(@(Ќa7(@@@K) (6@ ? qT R jTB_6 @ @) (Rr@ 2@:@9H(79RY@)7)@ *T(CЌa7@9 a.9kH7Rg9#gb @ H@Rr^g@@( B6?)TJ 2* *@ )?T @* @6!?iT@( C@kT@@yi $A))y  ?qT)Q 0.Ќa7{FOEWD_CgBoA#l_/Ќa7!:aЌa7@g_WO{C9@i@ 9 @) (R*hR)BqITc(R*P)Bqh T)q3(M4J2Liw8k `}8 9#6kj@9@@({7 ! @9h {EODWC_BgA_"zw@9( @@z7`h@h@.qT h@ h@h@ R u3i h@R i@Rr( h6h@2hh@R hBhb`TWO{ДB9@ @! R%*h@9h 7b@96@i@ _qTA67@`@k T{BOAWè_R77@`@kMTzh@9е6h(68@ @@i.@ .@?qC T(Q@@ @ rT @?q @zTRKh"@):(H @`&@hR@ @(a&@?qcT(Qh:@@()7@j. J7HA7j*@ h@JA8Hh @J9H*j@ `@(!@Q(!{BOAWè_@ @@ @) T  @I  - -@@ @ rTWO{7h @qTh@y R j@Th@ @IR 9@@ 9 @) h@ i @h@ @) Tj @I h@ R u3i{BOAWè_ַHiC".@`RRR@.@@ @ @@ R u3 T}!@ @ @ R u36@a @?qT(Qh {BOAWè_&{BOAWè,Cog_WO{H-@@МC6@@ Rr @  Д7_ qT@i@7)?5qaT@e ?%qT?)qT)-Q? qbT@X7: ?!@qT@ @4CR3M@@7HX7rT q!T@ @@ @Ra6@@9(7A @2h@_6@ 9@9 6@@=@9 7@h2@95qT0)RL@h2@95qT'@AJJ-Kk&?i'(i@*@(]@ ( ?q ,Tc6 @)@9I06еb @) @) @?@z-T@!шi@)qA9Z7B77{6i@J@KKJ6 T)y  ?T @ @ 6AR  @@H@!7@ @ @9@94er T(R q T_@ @9C9@7rT )@I7 @ R)) )@97 )D)? k*T 4 q`TE -@? q)R7 )D)? k+T0@!@ R )(R(9794h@C(9@( 7I@@(B(/@(+A8@)*((@(*@(@ @9:@?r`T(R.@9er@Tԛ2'R qTh@qA9(6@@9Z6078@ @@H@ @) #T4C!""Ѡ@8@9H6AR7 R@*)@*;*@* JCӫ؉RrJ} *)3'i@)a@)S:@)#)@9)Z*)94i @)i @)@9 (yh@%@aaqJT@ @ @)6(JA64@8@ @ @)/ @) Z@U˨C@ @ T_T5 @"`@ (@y)R qTh@qA9 6qT@R4!@97h@qA9(87Rx!+ a @ @ @T!8+@Rh@h6*@h87 @ hx6/@ @AT@B!(@9)a6)@)@9#S34@ @@Ҿ)sR6x*g@@ @ _!Tc(h@]@(69@)!0(h@]@H6)RBRR06@ @@ @ @h@ @@H *6:@987@ @J|@T@EV6@ T @yv@ TRѻ`@"0@h@@9rTA9@ )@7@ R(! @9-@ q(Rh@@?֟ qTH@ !@ @T T)!:)a)@ @@@I)-@)@?T{HOGWF_EgDoCC_9"@@@9rTWO{ 9@@ yA9i6@ /i@ 9 @) H}C`е"@`RRR@|@h * @ 7@JTa7@y h@ 2h#Rc>9@Pg@@ A@yIp7)a6)@ @T.R(.@)a6)@ T/{C@qA987R!+@R3{A_֡!8+@R{A*O{RҴ@)9(C#,og_WO{C6 Rr@@@) ?q!T@4@_b6@ @9(6<R@9@i  q T-AR@_b6@ @9/7 @9)7R@9@i  qT_q@@9@i  qT @ 9@9 7!%Rr@@=@9'6h2@99#:-q T 87(R_r 4 R r@?(jT*H  k!T@@@h:@987fH6i q!T@@A4ch:@9h 86:@9( (6'VAR_0ҟTv@ 87@@9rTB 06h:@9H87h@ @ ?񉲉!a|@ ?񉲉!?Tv'"RIL!ARxҟT`4c@4@4#R%~@@ ! @@{FOEWD_CgBoA_@?O{CB6@@i6@96i @*1@9_5qaT  `Rz00@9%qaT@ @@a6@@{AO¨_g_WO{H-@@6@7 @) )A6)@ T@@(7 R R kT@ @h @X7r T ?!@qT *%Q_qHT @@?)qT@ !A9?qAT!@G:@ @) @7 ?!@qT%QqT @H@:@9 6@@W @h6@96h @I)i' T2RR,2 -)U ?qT@! @ @2+1Rz3@CR@ @21a6@@9H7 @Rw30@9%QqT@@DG@ @) (@h6 @A0@))-@)@?aT{FOEWD_CgB_`1ޖfh0_WO{b6@@10@91qATRRREK@2@9%qT @( @(7@4*@@!@`@ kT @ @)6)@sB6`@)?mT` @ kT`Rc/0@9%qaTh @ @6@B6@MT@@{COBWA_Ĩ_"R@"R`@_WO{b6@@9@@@!@@1ɶ@RRRJ@2@9%qT @( @7@4*@@!@`@ kT @ @)6)@sB6`@)?T``R.0@9%qaTh @ @6@B6@MT@@{COBWA_Ĩ_"R%@"R`@_WO{b6@BRO2YRRRpJ@2@9%qAT @( @7@4*@@!@`I@ k!T @ @)6)@sB6`@)?T`@@`R.0@9%qaTh @ @6@B6@MT@@{COBWA_Ĩ_"R@"R`@_WO{b6@BR1@!@@3@RRRJ@2@9%qAT @( @7@4*@@!@`ڵ@ k!T @ @)6)@sB6`@)?T`@@`R!.0@9%qaTh @ @6@B6@MT@@{COBWA_Ĩ_"RP@"RJ`@{C9@H`.!RG @h@65M qT@@ARc@x{A__WO{ C(-@@7T8RRT@9Uq TqTAR7@9qT#C( @`aR@w2BT(@9qT ARR  ?T2TRUq@zW2#)C\))-@)@?T{IOHWG_F_Y;m3m+m#mog_WO{ CCc(-@@A6@6@C$@(w 4S W  )R(K !sH/{"@W 66@O@? aT_q!T 2@W@ q@T@;R P}@u! iv84 @ I ɚ 뜳s6@r܅6@CT*@)7)@ 늄TȖQMqHT@7k5jyhx) V ֟Tw@oPQxJIT7PqT %@xx_qTQx Z}SxQxTc)`9ѢCRL"_qT @98 @98 _q`TTw@oPQT7Pq`T E@_;qTQ ZQTc)`9ѢR"_;qT @938 @9#8 @98 @98_;qTPS<˟뜳5865R TP@T@97)R@9 #0PkTc)`'jh8RJ%ɚH )D9? q#T BT l@8jl8 z A) )D9?qTi5I)0 SrPP5R TTѣR4QP 3@rs@@? qTkTT {@)!@?kCTis@5{@@s@ @_r _q0T 낗T @9J_q@kT@TBTI) @9)ij8 _ T P)}ӟ @DBz<ZZ{+u6#TTPӟ@$Bzs[{%@qT TR @hkh88T|7P6BT R S3 @9yTw@oPQiT7PqT E@SQTc)`9ѢR!S @938 @9#8 @98 @98sTw@oPIT7PqT E@STb)`9ѢR S @938 @9#8 @98 @98kmTw@oP}x)T7PqT %@xxSxTb)`9ѢCR S @98 @98 SgTw@oPPxT7PqT %@xx_qTQx Z}SxxTb)`9ѢCR _qT @98 @98 _q`T+aTw@oP{T7Pq`T E@_;qTQ ZTb)`9ѢRR _;qT @938 @9#8 @98 @98_;qTs{@@mTKTP#Tѩ BT@T@_<a~)`)?(T ե6{@@ TbTJJ @9Jik8 )?T? jTw@ {@ A9(!@!@86%@@]*(%R((!(5@(5A6@rr R8{@TR{@$@y*$Ps@PT BzTA6@NH%@7*  CUH!xAyA[ |JTP@TKha@P @kTT6RRq9H7)R@92@9 /jh8RJ%ɚH )D9? qTT l@8jl8 z A) )D9?qT5I)?T ѣҗpq? XTP  Q@_ qRJz;T`b)` @*T9; @TK>Tw@oPQh kT7Pq`T @SQ)`TJѢRB@ +9Tw@oPQ?eT7Pq`T @SQ)`T!ѢR@  4Tw@oPQ`T7PqT @SQTc)`ѢRS@ {@2@ q@GT6@ ToPP(!HT7q`T)@QRX%~K+Tw@oP|O)XT7PqT @ STc)`ѢRQS@ Qs܅P˟뜳@PTTPy6KTs@ )TNoP  J@9J_qT  (T) 뉥Ti*+!Tw@oPQMT7Pq`T @SQ)`TaѢRY@  Tw@oP Q"UHT7PqT E@3Q")`hT6ѢR.s @938 @9#8 @98 @98Tw@oPQ!BT7PqT @SQTb)`ѢRS@ Tw@oPI=T7PqT E@STb)`9ѢRS @938 @9#8 @98 @98k Tw@oP57PqT @!Q,?(TѢR@ KTw@oP ''%>&> d'#> '> N''/>e N+>&> Nq'S@nk>  Nk>sk> Kf Nk> Sk>G Nk>Oz> N2'k>CK< ?''K<;P< '3'O< K<'t'K<t N'N<L< N<  < N<  <  N<< N<<@3 N'@n< @5 N<< X N< <c@ N<<< /! ! /!an)a!^A+a  /an!(g^!(g  /an!(e^!(ec c /can!(cc^!(c# c /can!(cc^!(c c /can!(cc^!(c c /can!(cc^!(cC c /can!(cc^!(c# c /can!(cc^!(c c /can!(cc^!(c c /can!(cc^!(c c /can!(cc^!(cB B /Ban!(bB^!(b B /Ban!(bB^!(b' N d c /can!(cc^!(c /an!(d^!(dH-B B /Ban!(bB^!(bB'  /an!(e^!(e' NS@ N  /an!(e^!(e?@;@ N C@ N /an!(e^O@ N!(e'  /B anB /Ban!(bB^!(b@!(d^!(d$'s@ Nc c /can!(c N@c^!(c'B  NB /Ban!(bB^d N!(bb B /Ban!(bB^!(b'b NB  B /Ban!(bB^!(b'c /can!(cc^!(c'  /an!(d^!(d' N  N /an!(d^" N!(dc c /can!(cc^!(c'C Nc @ b /Ban!(bB^!(b /an!(`^((`J? ATh aTR: }{@@@ T@} @ ii < !' <! N"/!"! /!an < #^$' < $ N" /an^ <&' <& N"Ƥ /an^ <0' <0 N" /an^)`(b(f(g(d(e(a(c! aT )! T <R#R?+ȖQMq{T@  _89 )?HTRw@@ "R"R b"RoPP(!T"R@I @9J_q!T)ATѢRJ @ EьoPTbTU6C#R R4Q8));ih8cCS@ R48@7(RPP9h7(R@9sTc)` +TT]jh8RJ%ɚW D9 qT _T K@8jk8z A(D9qTjw8R)%Ț7D9 qTS@@_T K@8jk8z A(D9qT (5(!T@H5K@ @cRҢQq@`TPSѢcRҐPq@5RNoPW7R+ h)R(! bBT T7BR h)R(! bhB  g) `A}hT()h!`Ti' ( `A`6 !Ӛ96@MTȒ@9h66@˟T 42@q@ T" T@ @ R r) Q qT@@AR R#"@c"R@`H7 @qR/N@@F7c@iP(A66@V J-@J@_ aTCC{IOHWG_FgEoD#Cm+Bm3Am;l_I`*I9F(8C8@X9=X394633[@k@, \4(\5%$7"@2|66g_WO{-@@B6@b6@@9raTA9@ )@7@ R(! @9Rr @ qT@ @ @Ch@  ?qT#BR@h@-@ q(RRr @ qTCBRCh@  ?qTi@) @b @C @  q)mSh7R9@9@ RH(  *@` BzT)!:)a @@@ )-@)@?T{FOEWD_CgB_ւ WO{-@@ ( @ R)4r  ?qTBR@69@@9h7(R' ] )-@)@?T{GOFWE_L #mog_WO{+-@@x&@R6@Sq @z`T"@UqTFR&@2&@ @t4+@CB m')($@ AaRqGC;"2@ @@ @k qKaTpRb U.@Uxui)! (ih8 q @zaT@ ) Ț?T6 ~) @?T@ _ CT*_T?((>@9h 7?Tm@ @UA"@{@@9h7$6@pbR @q!To@o@K@? Az  K@T`@&@jq(Ro4wQMqTkk1jyhx) OK@KNTw@Kr k4TK@7C4@97R KT`@84@96@@yq7T&xsT !:&4@96ARSsT 9E9&8sT K-TK@7 4@97R  T`@4@96@@y7&xsT.!:4@96h78 R 39 R 39 9h78 R 39 R 39 %T RrK@W @(jT@@ KT`@ @(jTRZC7FsTq !: @(j`Th878 R 39 R 39 978 R 39 R 3 9 97 8 R*3 9 R*3 997(8  R 3*9 R 35 *9KT RrWq @(jT@@ K@kT`@Kd @(jTR+yq7 T&xshT!:Q @(j TAR}sT9E9&8s(TT RrW3 @(jT@@ K@kT`@K& @(jTRCq7 TFshTr!: @(j TR?sT_HӠ9 9 E99E9F8sTT?K@+?Tw@K Gk@ q[T@.T ;@!@JCThi4@[W K@K4@9 7R;@r( q TUCK@BTw@K T RrK@W @(jT@@ +T`@ @(jTRwC7FsTc!: @(jTh78 R 39 R 39 978 R 39 R 3 9 97 8 R*3 9 R*3 997(8  R 3*9 R 35 *9G;@(@[r( qAT'bUTh@9))(ih8{'`TT눶T5h)4G@G;@JT} KTK@7:4@97R KT`@/4@96@@Cq7TFsT!:4@96RJsTHӠ9 9 E99E9F8s(TTK@74@97R KT`@4@96@@Z}Sy7&xsT!:4@96h878 R 39 R 39 9h78 R 39 R 39 TK@8џiT4@97R3TT`@4@9h6@@3T! RFh66 R 39 R 39 џTQ!:4@96GT@ @?rH /@Z@U H5Җ Tw K@TG@ @!:a @ R r?(jT@@97T9@  T 3@h @) ?Ti @   T  A>@9j 7T@ !AR96M hө?T9@ H@ҩ i T@h @I ?Ti @   (T  A>@9 7T/@Z@@ !AU [T  RK39 RK39 )?T*978)?cTykTK@w T`@!: @ R r)Q qT@@AReKcg a!M`Kcg ba@bCq7 TCAFsTzRsTp& Z}Sy E99E9F8sTdG ZTa+TK@w T`@!: @ R r)Q qT@@ARq7 T@s(T;RsT1f X P HӨ9999E99E9 9E99E98shT+TK@ARq97`T@sT KT`@ARq96Rrs(T!:ARq6f X P HӨ9999E99E9 9E99E98sT?rR R)*@Ҩ_jT@j @  GCGTh @K (T_ II !>@9IE!7_ET/@:@* +TK@ARq97`T@sTKT`@ARzq96Rs(T!:ARhq6f X P HӨ9999E99E9 9E99E98sTzkT RrW @(jT@@ K@kT`@K @(jTRlq7 TshT!: @(j TRsTX P HӠ9999E99E9 9E99E98sT+TK@7i4@97RB KT`@^4@96@@q7TsT!:L4@96RysTX P HӠ9999E99E9 9E99E98s(TTK@7$4@97R KT`@4@96@@q7TsT!:4@96R4sTX P HӠ9999E99E9 9E99E98s(T;@U!AS%@_*I%HH%F))I5I! qAT`T;@($@y?r R) *($C@ @5C@+@C@ @JC@9wH*TKT RrW @(jT@@ K@kT`@K @(jTRkCq7 TFshT!: @(j TRsTHӠ9 9 E99E9F8sTGTRT/@:@U9/7wTw]6@97R K@Ts@KOh6@9h6h@@ `D2Th@@7 ~!g aDT ? @q T@e'@i/Tga!@e g Bx2h8( ` @`,TkG9k9'@6~-Ө @J @J  "T9@H @H)AK (T_ II !>@9) 7_T/@:@ R r?(jTh@@R3@2h8GhT'E9'93@6~h&Ө @J @J  T9@H @H)AK HT_ II !>@9i 7_BT@ @f R r qGTh@ @Ss @!:h6@96rRS@  @ R r qaT` @l@94 Rh+R R RL8 @8L4Q)qT6 R)RqTq`TqTk6+R_9H BRl@959(Ri@( S@S@  R(R_9JJk@j )2i8rTh@ R r qTh@ @` @ @9 5BRt @9K4 R(RMR)} )+ +Qm}Siq1K@89 5S@7 _8) 86~ӈӨ @J @J  T9@H @H)AK (T_ II !=@9 7_T/@:@@ @U77@a @?q T(Qh G@@ @U6+Th  R*39 R*39 sTi978scTTh  R*39 R*39 sTi978scTyTh7@  R*39 R*39 s"Ti978scT 8wCTK@8џIOT 4@97RTT`@ 4@9h6@@Ta!X REh66 R 39 R 39 џTP!: 4@96+<TK@7 4@97RZ KT`@v 4@96@@Cq7TFsT(!:d 4@96R sTHӠ9 9 E99E9F8s(T 4TK@7D 4@97R KT`@9 4@96@@q7TsT!:' 4@96RT sTX P HӠ9999E99E9 9E99E98s(T9>64Ӛ=*T RrW  @(jT@@ K@kT`@K  @(jTRq7 TshT3!:  @(j TR sT X P HӠ9999E99E9 9E99E98sT G .T@ @?ri)H Ѩ9@9@k@/@Z@[ H5Ҹ9RC@)Tw K@TG@ @!:  @ R r?(jaT@@@k@ry7c TC@(?@9h(79h)@( ;@ @2h@w: @(@ !A[ H5T R"@k@r6T9C@i@2h_( CT 1i@( @_T 3) @   T  AC@J=@9j 7TC@ h@ !Aa! RT9C@H@i˟ #TJ@H @  ?TI @  _HT  AC@J=@9 7T/@Z@C@h@ !A[ HRv8C@hT6KTG;@ T RrW  @(jT@@ K@kT`@K  @(jTRq7 TshT&!:  @(j TR sTX P HӠ9999E99E9 9E99E98sTGe96G_T+@9 Ќik8J ) ;?TT9RNK@(kDTG@7@GK 4@9h6@@;@r( qThMTG@@Ҫ cT@ @  _ #T @*_(T?** A>@9* 7?T/@:@y T)T{h@9qTh(TG@G;@jT~K@9h@( G@;@@K@F{@"E7[+@;@H'@y?r R) *H'C@ @UC@C@ @JC@9wH*8# Ӛ(x@Ҫ TM* ȚXG;@T(@HTh*@ T()!@iw+@;@CH'@i4* @@ @UGD!:G@ R r  ?q!T@) @W @;@h63BR@;@H7y6W@kq k@_ q3 TWkqTshW K@ҩ T@ @I ? 룓T @l ˟ (T jj A>@9 7CT/@Z@9@@9h76k@ q!fTRRQ>@9(7 @2h@w @@ @U9Rk@ qcT>)R;@5;@@9a7 R@2@w/K@pTw@]ThUțATa!RR@ R r  ?qT@) @W @O(7BRX@O69@@97W@ W7RRW@ jU)}ʛ))~jJJ ۚ* 6I~ JK@ҩ cT@ @I ? xT @l ˟ (T jj A>@9v 7cvT/@Z@G;@@9 Sk@ qTTRW@9R!:G@ R r  ?qT@3 @W @H69@9@rG@ BRW@@7RRk@ qw (A6~hH@ҩ ÁTC@@ @I ? #T @i? HT ii !C@)=@9 7C T/@:@_!:G@ R r  ?qT@3 @W @H69@9@rG@ BRW@@7RRk@ qt:(C6~yH@ҩ cxTC@@ @I ? #T @i? HT ii !C@)=@9 ! 7 T/@:@ !:Ka 4@9(6C@6@ @W@Ux 貉q/#qa TTR3RmShT44Th97(Rh@8?h8 ) %?iH1><ih8RJ%ɚH )D9? qTkT l@8il8 z A) )D9?qT5I)?Tr/@@q@?kT{ TR  )?eHT% *s7Y67R8 R39 R 39 RkTR3RSh` T44Th97(Rh@8@h8 )mS Q?iH1A>ih8RJ%ɚH )D9? qTkT l@8il8 z A) )D9?qT5I)?T/@@q@?^T{ (TR  )?eTmSQmS*7Y67R8R R 39 R 39 C@6Y6J878C@覗C@>@ @W@Ux 뗲 q TKTR4R h@8* @ TyST4Ti9I7)Rh@9{ * @T@* @T9(* ij8  )D9? qTkT l@8 il8A)  )D9?qT@R%˚ 5I)?Ts77@@@q@? LT{ * @TY67R8 Ri39 R 39 RTR4R h@8h* @ TS@ T4Ti9 7)Rh@9{ h* @T>h* @!T8* ij8  )D9? qTkT l@8 il8A)  )D9?qT@R%˚ 5I)?T 77@@@q@??T{ h* @!TY67R8 R 39Rh39 R @C@T Ri"jH% q(Y678C@ k@? q&R*9R'RW@s kq  W?+T_T I@9 ii8J iW T_T_5Tkq6(I W9RW@kqHk@? q TWkqTsbWi@Ҩ?-T@I @h TH @*_(T?** A>@9 7?cT/@:@&  #Whk@? q@Ҩ?)T@I @ "TH @*_(T?** A>@9 7?T/@:@@ @W@UW@s R 39 R 39 m!:G Tz@ @U8R@H7rT6i @? qTiR  ?@qTa!lReh@)R jT R r qT` @*K@TG@3@h@6:vh@rTR R RRq6RTW R)4r qAT` @R H PXӟq7T@hT?!:h@6R H PXqY6`9j9i9h9E9h9E9h 9E9h9E9h8T7@ @W@U b4cR*`6O@Oy7W@WTKT  RK39 RK39 )?T*978)?cTR39R39 @ @W@U sha@8'W@WT9R@ @W@U2 6RW@˟qiSa.@9h58@9h4҂RR.Y)-@)@?T{FOEWD_CgBoA#l_ֈ``< ``9@( ` a @?qT(Qh ` 9@( O@Oc`9`\`\``@W@`T ` og_W O { -@@/RrB6@6@)7*@K+Y)6)@Zc6J@J @3yj @ @ qT@ @@#BRe@"/h@yh"s(#h@ R)4r  ?qTBRh@69@@9h7(R7Ch@6 qTh@ @ t @ CR+ @{ @~BT**qS} ! cT*97 ! @ T 97  @T 9J7 @T 97 @@T 9 7 @T 9j7 @T 97 @`T 9*7(@T(!*A_)T"T ) 9j7)T)CQ(T*@8kj8 D9?bTqT5  qAT@9qTRe`aTh@7@ H@@/@)-@)@?T{KOJWI_HgGoF_OuR#R: og _ W O { C-@@`@$@y$bTy{RuR:"T@9h[t(j@TqT ?T*@8_)qAT ) 61qaTt&@7@R(42h&r(u))Y(@RARvZ)-@)@?!/T{MOLWK_JgIoH_֟qT@9 @)?)c.Tmq.Tq-Tv b'T  _qT_qAT_%TJ@8h_q T_qmT_qT_mq`T_uqATH)_T*K@9)q TZJaTvh6@qJ)Th&@rT`;BR/_#T_ TI@9(@)?% TVIR@9lџ% Tk@ - kTl}ʛC `T`"/_"TZ9TU9qTq Tq!T@R RW <RW;'`*q`T/@ *q@TjTh&@r(u))Y(@RA!>7@_CT2(RhmqTqTVHR(hh(Rh2dH)R)T )T@8iuq TqMTqTmq`TuqAT)qTq@TTK @9)qTkaT2(Rh2 @9*_%T(@ H JR @9ѿ%T@,1 T}˛C  `Te`@i@; ==) @#h.B`;@h= =#@( i@9uqTTRT@9j{i*j@T?qT _T K@8)qAT*J ?V1T?q!Th&@ 2i&bT@9*@J_)# T)?mq T?q T/@*h" R(R`9h&@r(u))Y(@D<-h&@r(u))Y(#@<"h&@r(u))Y(#@=`D R`h&@r(u))Y(@:h&@r(u))Y(@8;r(u))Y(@?h&@r(u))Y(@0?_WO{C-@@@b TRTRq9@h7(R* )(iw8RJ%ȚW(D9 qTT l@8-il8z A((D9qT5HT#Ta!@R@@i@(h@)-@)@?AT{EODWC_B_C#% @q@AT`~cog_WO{ C-@@@RR Rq8|q(;TR5RZR΁@9)R )29iџqj;H9TBT96Ikh8j&ɚHI )D9? qTT l@8Mkl8 z A)I )D9?qT5I)?T?T@9ij8? )192ұ4B΁?T ΁?T RT4@6R Rq@bT"T3R@9ih83VT96@Hkh8HD9 qT _T K@8Kkk8hA(HD9qT5(d @Ԃ6@_rRIR H))u*JYI'a! R@)-@)@?!T{IOHWG_FgEoD_ֆg_WO { -@@` 4uV" W  ;(C RS`6h2@ q Tx@h" uji8@@5?qT*Q_Mq Tjj8)  (A?aq`T?qa TȚ) ?Ț8KT`==yjA@@yj=`=yj@@R8R[)-@)@?T{JOIWH_GgF_h&@))u*JYrH`& h&@))u*JYrH`?qTi&@*Ju+kY?ri'`  ?q`Ti&@*Ju+kY?ri'`og_WO{ @7@ @; @TI97Z_T_TX(6}A @ 5z*!@h6 (@T((@cT_Th[ A@8z_`T(@T)@?T9(@`Th@8T6!T6zh"@wh@6i@*@*( @ ( h@ @ h@yhh@ @h@v  h@@ h@2h{GOFWE_DgCoB_6@`\O{ @(7X6h @ 9@9 6@@=@9H 7b`5{BOA_woh@_7h6@97Rsh@@qT`0@<+h?5kT  R*3J9 R*3J9BT 97I8cT_T  R*3J9 R*3J9BiT 87I8Te& ib8 8_ T)@9)B ii8 9)@9)mS)|*@9)J ii8 9)@9)uS) ~*@9)J ii8 9)@9)@ ii8  9! B  _T _TaT R)@9*@9JB ij8 9*@9JmSJ| *JK ij8 9)uS) ~ ii8 9@9 9HR8_og_WO{C*-@@?HT?$bTC}hI}ӓ@T@@`?qן 3R3@BTHcT `?q觟J(C7 )8@_q( )A2@_q"C9@ @! R%*H@)A6(7@`@kMTt@87h@9ւ6(68@ @@i.@ .@?q#)T(Q@@ @ r)TRHh"@hH @{C6`&@hR@ @(a&@?q%T(Q7@i:@@ )@7@{C6)7)@j.) J7Ii*@JA7Ii@JA8Ii @J9Ii@) !@)Q ! @& @j@K@J JC!9@k@j * @J+@k @K 6+@k @J ja@3@ A96!BT"*_ @+ *!? #T4@Aш:@9 rTTx}jxARj8s!TTzwg;@976Sj!T++Ts`Tzs@ qTARz3sT}Ө @} @ @ R u3H@ hRo, 7_v 784 ) 7){y'w"Rݳu@@z`@ֳH@iC):@9 rT @k@rT  J!+@jKTh@ @jTZ6{C64>H@  h@'@)-@)@?뀊T?m!}j NA *!o#_낁O' 1N'1[T77} }j   ¬`@906@ R u3@ @?T@ @JT) @ @?LTR@)R @@)R @ @A@)a6(+@?[B6@@ @5M qT@@AR6@(@kmT8{EODWC_BgAoƨ_g_WO{7@B89@@))@* @@@ @J ) @(@?qT(Q@ @ @ @)  @@?qT(QA@)a6(+@?C6@@ @5M qT@@AR}6@@kmT۳{DOCWB_AgŨ_og_WO{C*-@@?ÐT?$bT}Ө}Ӻ Rr@h?`@+7|S H#H3@R?@B9Thc AR5ӟZq觟 JhBI 6?@Tv@X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRR@ @@7 q!T@@ @ qT@@@ qT AR@ qT@@@!@qq(ZAR `џZybn";;;@T TCv@X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRR~@ @@7 qT@@.@ qaT@@@ qTAR AR@ qT@@ӟZq觟 ?kTsBT@!@qq(ZAR@ `џZ[C@ TC ARxӟZq觟 JhBI 6ATv@X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRR@ @@7 q!T@@ @ qT@@@ qT AR<@ qT@@@!@qq(ZAR `џZTCyC;@ T?@3@?! T;@@5@@X6 @*9@9 6)@)@)=@9I 76@9)6 @*9@9 6)@)@)=@9I 6BRR` @(@7 qT@@ ?7@Tj@ qaT@@@ qTAR AR@ qT@@ӟZq觟 ?kT?@C(HH)#џ '  _qAT#K_,@L+K!_  #TC@?7@TX6A('@)#?#T%)C 뉃9) ?AbT )D)+l| 9 A A J aT T? TA9C?CTT?@3@?AT<@!@qq(ZAR- `џZ R@/( !#' @+Kh} +AU` @) 4 3C+@)?)) (}!@HH#)M((-@O(@ }x @  ˓ @/  ˔ _ 觟 ?@1K#T?<T+@@ /@ *! ) ?T  _#?TC l}}*)  " ¬? !aT A=T Ov@5@@;X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRR@ @@7 q!T@@@ qaT@@@ qTAR AR@ qT@@ӟZqZz|;#B T4Rv@@@X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRRd@ @@7 q!T@@0@ qaT@@@ qTAR AR@ qT@@ӟZkTs藟"Ț(T@!@qq(ZAR$ `џZ\#џI Tv@@@X6 @*9@9 6)@)@)=@9I 76@96 @*9@9 6)@)@)=@9  6BRR   @@7 qT@@-@!@qq(ZoAR `џZi@ qaT@@@ qTAR% AR!@ qT@@ӟZklT# ARӟZi"kZÓ9? THC ?~}3v@u@@X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRR @ @@7 q!T@@ @ qT@@@ qT AR@ qT@@@!@qq(ZARs `џZC@T"_H0 OF?GT?TC K}h}    ¬? !aT_ AT !)3G!_H, OFT ?CTC *}H}Ӌ  ¬? !aT? T !  +@ ?T!    i@ T " @ XA?'?bT ?T'@!@qq(Z7AR `џZ1(4+@@ /@ )# 9 T ?TC K}h}),   ¬? !aT_ T I@ _T *@ ?T'E h#@HO@JqT@A_ t@CTJA"˟ lTT*7J4@TT~ 7h}kAU@ @8 C)@) 9+@)?)) (}!HYk8@ @@TZ)-@)@?AT*{EODWC_BgAoƨ_֟2'og_WO{C*-@@?T?$bT}ȑ} Rr@h?`@2qן H#H3@R?@B9Thc ARןZq觟 JhBI 6?@Tv@X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRR+ @ @@7 q!T@@ @ qT@@@ qT ART@ qT@@@!@qZq(AR `Z՟ybn";;;@T TCv@X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRR @ @@7 qT@@.@ qaT@@@ qTAR AR@ qT@@ןZq觟 ?kTsBT@!@qZq(AR `Z՟[C@ TC ARןZq觟 JhBI 6ATv@X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRRn @ @@7 q!T@@ @ qT@@@ qT AR@ qT@@@!@qZq(AR> `Z՟TCyC;@ T?@3@?! T;@@5@@X6 @*9@9 6)@)@)=@9I 76@9)6 @*9@9 6)@)@)=@9I 6BRR ` @(@7 qT@@ ?7@Tj@ qaT@@@ qTAR< AR8@ qT@@ןZq觟 ?kT?@C(HH)#џ '  _qAT#K_,@L+K!_  #TC@?7@TX6A('@)#?#T%)C 뉃9) ?AbT )D)+l| 9 A A J aT T? TA9C?CTT?@3@?AT<@!@qZq(AR `Z՟ R@/( !#' @+Kh} +AU` @) 4 3C+@)?)) (}!v@HH#)M((-@O(@ }x @  ˓ @/  ˔ _ 觟 ?@1K#T?<T+@@ /@ *! ) ?T  _#?TC l}}*)  " ¬? !aT A=T Ov@5@@;X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRR @ @@7 q!T@@@ qaT@@@ qTAR3 AR/@ qT@@ןZqZz|;#B T4Rv@@@X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRR @ @@7 q!T@@0@ qaT@@@ qTAR AR@ qT@@ןZkTs藟"Ț(T@!@qZq(AR `Z՟\#џI Tv@@@X6 @*9@9 6)@)@)=@9I 76@96 @*9@9 6)@)@)=@9  6BRRe  @@7 qT@@-@!@qZq(oARI `Z՟i@ qaT@@@ qTAR AR|@ qT@@ןZklT# ARiןZi"kZÓ9? THC ?~}3v@u@@X6 @*9@9 6)@)@)=@9I 76@9 6 @*9@9 6)@)@)=@9) 6BRR@ @@7 q!T@@ @ qT@@@ qT AR'@ qT@@@!@qZq(AR `Z՟C@T"_H0 OF?GT?TC K}h}    ¬? !aT_ AT !)3G!_H, OFT ?CTC *}H}Ӌ  ¬? !aT? T !  +@ ?T!    i@ T " @ XA?'?bT ?T'@!@qZq(7AR^ `Z՟1(4+@@ /@ )# 9 T ?TC K}h}),   ¬? !aT_ T I@ _T *@ ?T'E h#@HO@JqT@A_ t@CTJA"˟ lTT*7J4@TT~ 7h}kAU@ @8 C)@) 9+@)?)) (}!HYk8@ @@TZ)-@)@?AT*{EODWC_BgAoƨ_-og_WO{C*-@@?fT?$bT}f}q Rr@Y@ @ qaT@@@ qTAR AR@ qT@@@C RC@"Tc AR跟JB6C@bT @ qT@@@ qATAR@ qAT@@跟JBi7b3"g?@bTt T7 @ qT@@@ q TAR跟?kTAR@ q!T@@跟?kTBџT7@HThC AR{跟JB6AџbT @ qT@@@ qATARd@ qAT@@跟JBi7 TC?@!TC@3@?T ?@@5@ @ qaT@@@ qTAR<HT&AR1@ qT@@跟?kC@9(HHs)# ' _qATj#K_,@L+K!_  #T ?;@bT6As('@)#?#T'%)C i9) ?AbT )D)+l| 9 A A J aTh S? TAs9C?CT!TC@3@?TH#Hs3@ R@/( !#' @+5} +AU` @) 3 4C+@)?)) (}!x@2H#)M((-@O(@ }w @   @+   _ 觟 ?@1K#"T ?/`@5@ @ qT@@@ q;TARx ARu@ q;T@@뚲<{#bT4R`@@ @ qT@@@ q TARRǟ @zT2ARJ@ q!T@@ǟ @zTs藟"Ț(T\#џT*\#џT`@@ @ qT@@@ q TARǟ TAR@ q!T@@ǟT h5# AR觟ǟ)  *i"qZ9?THC ?~}3`@u@ @ qT@@@ qTAR@ qT@@C@ T("_H1 ?F/@CG#T?TC K}h}),  ¬? !aT_ aT !*3G!_H, ?F/@T ?CTC *}H}Ӌ  ¬? !aT? T !  +@ ?T"    i@ T)" +@ WA?'?T ?T? T@+@ *! ) T _TC l}}*) " ¬? !aT T14@+@ )# 9 T?TC K}h}),  ¬? !aT_ T I@ _T *@ ?T+@ #@HO@JqT@A_ s@CTJhA"s lTT*7J4@S\S~ 7}kAU@ @7 C)@) 9+@)?)) (}!HYk7@> @@TżZ)-@)@?AT*{EODWC_BgAoƨ_֬*4og_WO{C*-@@?eT?$bT}Өf}# Rr@Y@ @ qaT@@@ qTAR AR@ qT@@@Cן RC@"Tc ARǟJB6C@bT @ qT@@@ qATARs@ qAT@@ǟJBi7b3"g?@bTt T7 @ qT@@@ q TARLǟ?kTARD@ q!T@@ǟ?kTBџT7@HThC AR-ǟJB6AџbT @ qT@@@ qATAR@ qAT@@ǟJBi7 TC?@!TC@3@?T ?@@5@ @ qaT@@@ qTARHT&AR@ qT@@ǟ?kC@9(HHs)# ' _qATj#K_,@L+K!_  #T ?;@bT6As('@)#?#T'%)C i9) ?AbT )D)+l| 9 A A J aTh S? TAs9C?CT!TC@3@?TH#Hs3@ R@/( !#' @+5} +AU` @) 3 4C+@)?)) (}!*@2H#)M((-@O(@ }w @   @+   _ 觟 ?@1K#"T ?/`@5@ @ qT@@@ q;TAR* AR'@ q;T@@“ßZ<Û{Ù#"T4R`@@ @ qT@@@ qTARןWzT2AR@ qAT@@ןWzTs藟"Ț(T\#џT*\#џT`@@ @ q!T@@@ q@TARןWz-TAR@ qT@@ןWzlT# AR跟ן?kןj" jZY?THC ?~}3`@u@ @ qT@@@ qTAR@ qT@@C@ T("_H1 ?F/@CG#T?TC K}h}),  ¬? !aT_ aT !*3G!_H, ?F/@T ?CTC *}H}Ӌ  ¬? !aT? T !  +@ ?T"    i@ T)" +@ WA?'?T ?#T? T@+@ *! ) T _TC l}}*) " ¬? !aT T14@+@ )# 9 T?TC K}h}),  ¬? !aT_ T I@ _T *@ ?T+@ #@HO@JqT@A_ @CTJhA"s lTTj7J4@S^S~ 7}kAU@ @7 C)@) 9+@)?)) (}!lHYk7@@ @@TyZ)-@)@?AT*{EODWC_BgAoƨ_`'og_WO{C*-@@?T?$bT}h}׸@W@@'|S;R;@4TNCYc?" TC@!@qZq q跟 ?kTB9CC?T56@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRR` @G7 @R r qT@@qT R`46 AR `Z՟C.#(cC7?bTT@!@qZq q跟 ?kTB)T6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRR` @G7 @R r qT@@q!T R`4¿6 ARx `Z՟XiTTCC@TM@!@qZq q跟 ?kT7CC@?bT6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRRB` @hG7 @R r qT@@SqT Rr`4lx6 AR" `Z՟:C_TTCG_ TF?! TC@@@6@96 @ 9@9 6@@=@9H 76@9(6 @ 9@9 6@@=@9H 6BRR @@7 @R r q!T@@ ?@ThqT R%`4?@6@!@qZq AR `Z՟q跟 ?k?@T;@hhs"џ '  _qAT#K_,@L+K!_  #TTX6As&@"#T%B 뉃4) ?AbT )D)+l|  A A J aTh S? TAsBCTTF?ATh#hs7@Y R@/( !#'@+F} AU` @) 3 4C@)?)) (}!d@CH#)M((-@g#(@ }m @  ˓ @/  ˗ _ 觟 @1K'T?7T?E@*! ) '@9T _c9TC l}}*) " ¬? !aT 7T?@@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRR` @@7 @R r qT@@qT R& 4 R @!@qZq AR `Z՟}JqwCh"b T9R@@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRR` @@7 @R r qT@@$q!T Rݾ4׽RKklT@!@qZq KkMT_Z藟9#ȚhT ARx `Z՟Kk TC"T@v@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRRZ` @@7 @R r qT@@kq!T R4҄RKkmT @!@qZq KklTs" @!@qZq (#K?k™TC ?~}y@6@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRR` @G7 @R r qT@@q!T R54/RAR `Z՟T"肈4 7GC@T?TC K}h}Ӊ  ¬? !aT_ AT !)G!肈, ;@T ?CTC *}H}Ӌ  ¬? !aT? T !  +@ ?T!    i@ T" 7@@ MA'?T TQAR| `Z՟KkTH?E'@4@ # 8 T?TC K}h}    ¬? !aT_ T  I@ _T   *@ ?T(g@JqT#@A_3@CTJhA"s lTT7J4@SS~ 7}A5@ @7 C)@) 8@)?)) (}!"(8k7@@@T/Z)-@)@?AT*{EODWC_BgAoƨ_#og_WO{C*-@@?T?$bT}ӈ}Ӎ@7 @^#qן;R;@4T.C;c" TC@!@qZq q觟 ?kTnB{CCTu6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRR` @G7 @R r qT@@qT RҼ`4̻6 AR `Z՟Cn#hcC7?bTT@!@qZq q觟 ?kTsB)Tu6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRRM` @G7 @R r qT@@^q!T R}`4w6 AR- `Z՟XiTTCC@TO@!@qZq q觟 ?kTBC@bTu6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRR` @hG7 @R r qT@@qT R'`4!x6 AR׽ `Z՟B?T;CG? TF?! TC@@v@6@96 @ 9@9 6@@=@9H 76@9(6 @ 9@9 6@@=@9H 6BRR @@7 @R r q!T@@ ?@ThqT Rڻ`4Ժ?@6@!@qZq AR `Z՟q觟 ?k?@T;@hHHi#џ '  _qAT#K_,@L+K!_  #TTX6Ah'@i##T%iC 뉃;) ?AbT )D)+l| { A A J aT T? TA{CCTTF?ATH#H!Y R@/( !#'@+Eh} AU` @) 4 3C@)?)) (}!@BH#)M((-@g#(@ }m @  ˔ @/  ˗ _ 觟 @1K'T?6T?E@*! ) '@8T _c8TC l}}*) " ¬? !aT 6T?u@@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRR` @@7 @R r qT@@qT Rۺ 4չR @!@qZq AR `Z՟qZyC(# T<RU@@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRRc` @@7 @R r qaT@@"tqT R4ҍRkLT@!@qZq k-T藟#ȚT AR0 `Z՟k,TA"?TU@6@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRR` @@7 @R r qaT@@$qT RC4=RkMT @!@qZq klT8# @!@qZq "k”TC ?~}U@@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6BRR` @(G7 @R r qT@@qAT R4RAR `Z՟_Th"肈3 7GC@T?TC K}h}il  ¬? !aT_ AT !)G!肈, ;@T ?CTC *}H}Ӌ  ¬? !aT? T !  +@ ?T!    i@ Ti" 7@k@ MA'?T TXAR8 `Z՟k-TJ?E'@4@ # 8 T?TC K}h}    ¬? !aT_ T  I@ _T   *@ ?T(g@JqT#@A_4@CTJA"˟ lTT7J4@TT~ 7h}A5@ @7 C)@) 8@)?)) (}!(8k7@@@TZ)-@)@?AT*{EODWC_BgAoƨ_[og_WO{C*-@@?UT?$"TC@ @qT}U}D@ @qT RѸ4˷R|S@7R7@_"TbT6_A^qT6BT"b;7B"Tq!T R4ҟB;_T\"T q跟?kT{CiT`iqT R`4҂6T'$[C;@TT7;C;@?T`HqT Rg 4aq跟?kAT5CTB;@ aT7@T @@+qaT RJ`4DT6 q跟?kT7@hh#_ ' _qATJ#K_,@L+K!_  #TbT6A'@##T'%C_ I<) ?AbT )D)+l|  A A J aT V? TACCT_T7@ATh"h#; R4DR@'( !@#@v _TAӓ" lTT-75~w7h}A5@ @7 C)@) 8@)?)) (}!u(8k7)M((-@O#H@ }v @  ˓ @  ˔ _ 觟 @1K+T@@`qT R4yR}JquH#T3R @@IqT Rh4bRKkMT藟s"ȚhCT"_T"_iT @A@+qT RJ4DRKkTZ#h"K?k“_TC ?~}S @a@qT R'@4!R?T"먂7 ;@T?TC K}h}͂  ¬? !aT_ !T !(#먂8 ;@T?CTC *}H}  ͂  ¬? !aT? T ! +@ ?T#  i@ T" 7@@ VA'?T T?@TE@*! ) O@CT _TC l}}*)͂ " ¬? !aT T8h4/@@ 3@ # 8 cT?TC K}h}  ͂  ¬? !aT_ O@E!T I@ _T O@E O@E*@ ?T+@(q@T#@A_V@CjTh}AU` @) 6 3C@)?)) (}!oC@@T Z)-@)@?AT*{EODWC_BgAoƨ_og_WO{C*-@@?#UT?$"TC@ @qT}HU}x@ @qT R4Rqן@7 h"h"R7@_Tb"T6_A^q`TqTBT"b;qlTBTqT Rҵ4̴B;_bT\"T q觟?kT{CiT`qT R`4ү6ITHTN[C;@CTB;@ !T7@T @@sq!T R`4Ҍ6"q觟?k@ T;C;@?T`[qT Rz`4t6Wq觟?kT7@hh#_ ' _qATJ#K_,@L+K!_  #TbT6A'@##T'%C_ I<) ?AbT )D)+l|  A A J aT X? TACCT_AT7@T&5Cr; R4JR@'( !@#@x _TAӓ" lTT7-75{~w7h}A5@ @7 C)@) 8@)?)) (}!(8k7)M((-@g#H@ }| @  ˔ @/  ˕ _ 觟 @1K'T@a@qT R4ҬRqZٲu(#T8R@@}qT R4ҖRk-T藟#ȚHcT"?T"?IT@!@`qT R4yRkT9#"k—?TC ?~}7@@?qT R^`4XRT"눂6 7@T?TC K}h}̂  ¬? !aT_ !T !(h"눂3 7@T?CTC *}H}kl  ¬? !aT? T ! +@ ?Ts"  i@ T" ;@@ \A'?T #T?`T?E@*! ) '@CT _TC l}}*) " ¬? !aT g@T6?E'@(4@i" 3 CT?TC K}h}il  ¬? !aT_ g@T g@I@ _T g@g@*@ ?T(q@T#@A_@C*Th}AU` @) 6 3C@)?)) (}!GuC@@TYZ)-@)@?AT*{EODWC_BgAoƨ_@og_WO{C*-@@?yT?$bT}Өz}ӷ@hC`@|S H#Hs7@RC@"-Thc BRq跟 JB6C@"T6@96 @ 9@9 6@@=@9H 76@96 @ 9@9'6@@=@9('6bRR` @(@7 @R r qaT@@ @!@qZq AR `Z՟b7"g?@TT6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR` @@7 @R r qT@@BR=q跟 ?kTBHT@!@qZq ARl `Z՟C(TB BRq跟 JB6A"T6@96 @ 9@9 6@@=@9H 76@96 @ 9@9'6@@=@9('6bRRC` @(@7 @R r qaT@@ @!@qZq AR( `Z՟TyC?@!TC@7@?T?@@6@6@96 @ 9@9 6@@=@9H 76@9h6 @ 9@9  6@@=@9 6bRR @ @7 @R r q! T@@h BRq跟 ?kC@9(HHs)#џ '  _qAT"K_,@L+K!_  #T?;@bT6As('@)#?#T'%)C 뉂9) ?AbT )D)+l| 9 A A J aTh S? TAs9C?CTTC@7@?T@!@qZq AR `Z՟ R@/( !#'@+3A} AU` @) 3 4C@)?)) (}!{@3>H#)M((-@g#(@ }y (@  ˓ @/  ˗ _ 觟 @1K'T? 2T?E@*! ) '@4T* _4TC l}}*()- " ¬? !aT 2T@@6@9?6 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR ` @&@7 @R r q!'T@@8BR}JqwCh"T;R@@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR` @(@7 @R r qaT@@BRKk- T_Z藟{#Ț(T@!@qZq AR `Z՟" T@v@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR` @H@7 @R r qT@@BR<KkTs" BR/(#K?k™BTC ?~}y@6@6@96 @ 9@9 6@@=@9H 76@9(6 @ 9@9'6@@=@9H'6bRRO @(@7 @R r qaT@@ @!@qZq AR4 `Z՟T"肈4 7GC@T?TC K}h}Ӊ  ¬? !aT_ AT !)G!肈, ;@T ?CTC *}H}Ӌ  ¬? !aT? T !  +@ ?T!    i@ T" 7@@ YA'?T T@!@qZq ARı `Z՟@!@qZq =AR `Z՟7?E'@4@ # 8 T)?TC K}h} ( -  ¬? !aT_ T I@ _T *@ ?T(g@JqT#@A_@CTJhA"s lTTʽ7J4@SS~ 7}A5@ @7 C)@) 8@)?)) (}!`(8k7@@@TmZ)-@)@?AT*{EODWC_BgAoƨ_Tog_WO{C*-@@?yT?$bT}z}˦@hC`@qן H#H7@RC@"-Thc BRq觟 JhB6C@"Tu6@96 @ 9@9 6@@=@9H 76@96 @ 9@9'6@@=@9('6bRR` @(@7 @R r qaT@@ @!@qZq ARɰ `Z՟yb7n"g?@T|T6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR` @@7 @R r qT@@BRPq觟 ?kTBHT@!@qZq AR `Z՟C(ThB BR/q觟 JB6A"T6@96 @ 9@9 6@@=@9H 76@96 @ 9@9'6@@=@9('6bRRV` @(@7 @R r qaT@@ @!@qZq AR; `Z՟TyC?@!TC@7@?T?@@6@6@96 @ 9@9 6@@=@9H 76@9h6 @ 9@9  6@@=@9 6bRR @ @7 @R r q! T@@h BRq觟 ?kC@9(HH)# '  _qATj"K_,@L+K!_  #T?;@bT6A('@)#?#T'%)C i9) ?AbT )D)+l| 9 A A J aT T? TA9C?CTTC@7@?T@!@qZq AR `Z՟ R@/( !#'@+4Ah} AU` @) 4 3C@)?)) (}!@4>H#)M((-@g#(@ }y (@  ˔ @/  ˗ _ 觟 @1K'T? 2T?E@*! ) '@4T* _4TC l}}*()- " ¬? !aT 2Tu@@6@9C6 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR ` @&@7 @R r q!'T@@8BRqZy?(#T<RU@@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR` @@7 @R r qAT@@BRkT藟#ȚT@!@qZq AR® `Z՟"?TU@6@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR` @@7 @R r qT@@BRQklT8#B TC@ BRD"k”TC ?~}U@@6@96 @ 9@9 6@@=@9H 76@9H6 @ 9@9'6@@=@9h'6bRRe @(@7 @R r qaT@@ @!@qZq ARJ `Z՟8#TC@_Th"肈3 ?GT)?TC K}h}i(l-  ¬? !aT_ !T !(3G!肈, T) ?CTC *}H}Ӌ(-  ¬? !aT? T ! +@ ?T!   i@ Ti" 7@k@ YA'?T T@!@qZq AR׭ `Z՟@!@qZq ;ARʭ `Z՟5?E'@4@ # 8 T)?TC K}h} ( -  ¬? !aT_ T I@ _T *@ ?T(g@JqT#@A_@CTJA"˟ lTTʽ7J4@TT~ 7h}A5@ @7 C)@) 8@)?)) (}!s(8k7@@@TZ)-@)@?AT*{EODWC_BgAoƨ_gog_WO{C*-@@?cIT?$bTC}HJ}ޢ@v`@BR|S7R7@BThc"T`BRq跟JhB7wb|";T" T BRq跟?kT9C?T?TBA"T BRq跟J(C7T|CT7@T@@BRq跟?k9HH# ' _qAT"K_,@L+K!_  #TT6A'@##T1hTT%C ɂ<) ?AbT )D)+l|  A A J aT T? TACCT;@!T7@TH#HZR@'( !@#@t _TA"˟ lTT+75j~w7h}A5@ @7 C)@) 8@)?)) (}!U(8k7)M((-@O#H@ }v @  ˓ @  ˔ _ 觟 @1K+T@@BR}Jq{󢘚u"T @@BRKkmT4R藟"ȚTs @@BRKkLTs"$z#_ T @A@BRKkTS#s"C ?~}t @A@BRKk”SÓT?T"먂7 FT?TC K}h}͂  ¬? !aT_ !T !(#먂8 FT?CTC *}H}  ͂  ¬? !aT? T ! +@ ?T#  i@ T" @ VA'?T T?@TE@*! ) O@CT _TC l}}*)͂ " ¬? !aT T8h4/@@ 3@ # 8 cT?TC K}h}  ͂  ¬? !aT_ O@E!T I@ _T O@E O@E*@ ?T+@(q@T#@A_4@CJTh}AU` @) 4 3C@)?)) (}!C@@TZ)-@)@?AT*{EODWC_BgAoƨ_og_WO{C*-@@?GT?$bTC}H}u@u`@zqן7R7@ThcT`hq觟JhB7wb|";"T T Vq觟?kT9C?T?TBAT Eq觟J(C7T|CT7@aT@@4q觟?k9HH#ѿ ' _qAT"K_,@L+K!_  #TT6A'@##T1TT%C 멂<) ?AbT )D)+l|  A A J aT V? TACCT;@T7@!TH#H^R@'( !@#@v _TAӓ" lTT*75b~w7h}A5@ @7 C)@) 8@)?)) (}!(8k7)M((-@W#H@ }| @  ˕ @  ˘ _ 觟 @1K'T@a@rqZزu#BT@@gk-T7R藟"ȚbT@@XkT# Y#?T@!@KkT8##C ?~}@!@6k—8ØTT"눂6 FT?TC K}h}̂  ¬? !aT_ !T !(h"눂3 FT?CTC *}H}kl  ¬? !aT? T ! +@ ?Ts"  i@ T" @ \A'?T T?`TE@*! ) '@T _#TC l}}*) " ¬? !aT W@AT:'@4/@@ 3@ i" 3 T?#TC K}h}il  ¬? !aT_ W@EAT W@I@ _T W@E W@E*@ ?T(q@T#@A_6@CJTh}AU` @) 6 3C@)?)) (}!C@@TZ)-@)@?AT*{EODWC_BgAoƨ_֡ )og_WO{C*-@@?yT?$bT}Өz}@hC`@j |S H#Hs7@RC@"-Thc BRzq跟 JB6C@"T6@96 @ 9@9 6@@=@9H 76@96 @ 9@9'6@@=@9('6bRR2` @(@7 @R r qaT@@ @!@qZq AR `Z՟b7"g?@TT6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR` @@7 @R r qT@@BR q跟 ?kTBHT@!@qZq ARͧ `Z՟C(TB BRq跟 JB6A"T6@96 @ 9@9 6@@=@9H 76@96 @ 9@9'6@@=@9('6bRR` @(@7 @R r qaT@@ @!@qZq AR `Z՟TyC?@!TC@7@?T?@@6@6@96 @ 9@9 6@@=@9H 76@9h6 @ 9@9  6@@=@9 6bRRg @ @7 @R r q! T@@h BR|q跟 ?kC@9(HHs)#џ '  _qAT"K_,@L+K!_  #T?;@bT6As('@)#?#T'%)C 뉂9) ?AbT )D)+l| 9 A A J aTh S? TAs9C?CTTC@7@?T@!@qZq AR `Z՟ R@/( !#'@+3A} AU` @) 3 4C@)?)) (}!ܿ@3>H#)M((-@g#(@ }y (@  ˓ @/  ˗ _ 觟 @1K'T? 2T?E@*! ) '@4T* _4TC l}}*()- " ¬? !aT 2T@@6@9?6 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRRn` @&@7 @R r q!'T@@8BR}JqwCh"T;R@@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR9` @(@7 @R r qaT@@BRQKk- T_Z藟{#Ț(T@!@qZq AR `Z՟" T@v@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR` @H@7 @R r qT@@BR KkTs" BR(#K?k™BTC ?~}y@6@6@96 @ 9@9 6@@=@9H 76@9(6 @ 9@9'6@@=@9H'6bRR @(@7 @R r qaT@@ @!@qZq AR `Z՟T"肈4 7GC@T?TC K}h}Ӊ  ¬? !aT_ AT !)G!肈, ;@T ?CTC *}H}Ӌ  ¬? !aT? T !  +@ ?T!    i@ T" 7@@ YA'?T T@!@qZq AR% `Z՟@!@qZq =AR `Z՟7?E'@4@ # 8 T)?TC K}h} ( -  ¬? !aT_ T I@ _T *@ ?T(g@JqT#@A_@CTJhA"s lTTʽ7J4@SS~ 7}A5@ @7 C)@) 8@)?)) (}!(8k7@@@TΚZ)-@)@?AT*{EODWC_BgAoƨ_ֵ=og_WO{C*-@@?yT?$bT}z},@hC`@~ qן H#H7@RC@"-Thc BRq觟 JhB6C@"Tu6@96 @ 9@9 6@@=@9H 76@96 @ 9@9'6@@=@9('6bRRE` @(@7 @R r qaT@@ @!@qZq AR* `Z՟yb7n"g?@T|T6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR` @@7 @R r qT@@BR q觟 ?kTBHT@!@qZq AR `Z՟C(ThB BRq觟 JB6A"T6@96 @ 9@9 6@@=@9H 76@96 @ 9@9'6@@=@9('6bRR` @(@7 @R r qaT@@ @!@qZq AR `Z՟TyC?@!TC@7@?T?@@6@6@96 @ 9@9 6@@=@9H 76@9h6 @ 9@9  6@@=@9 6bRRz @ @7 @R r q! T@@h BRq觟 ?kC@9(HH)# '  _qATj"K_,@L+K!_  #T?;@bT6A('@)#?#T'%)C i9) ?AbT )D)+l| 9 A A J aT T? TA9C?CTTC@7@?T@!@qZq AR `Z՟ R@/( !#'@+4Ah} AU` @) 4 3C@)?)) (}!@4>H#)M((-@g#(@ }y (@  ˔ @/  ˗ _ 觟 @1K'T? 2T?E@*! ) '@4T* _4TC l}}*()- " ¬? !aT 2Tu@@6@9C6 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR` @&@7 @R r q!'T@@8BRqZy?(#T<RU@@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRRM` @@7 @R r qAT@@BRekT藟#ȚT@!@qZq AR# `Z՟"?TU@6@6@96 @ 9@9 6@@=@9H 76@96 @ 9@9 6@@=@9( 6bRR ` @@7 @R r qT@@BR!klT8#B TC@ BR"k”TC ?~}U@@6@96 @ 9@9 6@@=@9H 76@9H6 @ 9@9'6@@=@9h'6bRR @(@7 @R r qaT@@ @!@qZq AR `Z՟8#TC@_Th"肈3 ?GT)?TC K}h}i(l-  ¬? !aT_ !T !(3G!肈, T) ?CTC *}H}Ӌ(-  ¬? !aT? T ! +@ ?T!   i@ Ti" 7@k@ YA'?T T@!@qZq AR8 `Z՟@!@qZq ;AR+ `Z՟5?E'@4@ # 8 T)?TC K}h} ( -  ¬? !aT_ T I@ _T *@ ?T(g@JqT#@A_@CTJA"˟ lTTʽ7J4@TT~ 7h}A5@ @7 C)@) 8@)?)) (}!Թ(8k7@@@TZi)-@)@?AT*{EODWC_BgAoƨ_Pog_WO{C*h-@@?cIT?$bTC}HJ}?@v`@BR|S7R7@BThc"T`BRq跟JhB7wb|";T" T BRq跟?kT9C?T?TBA"T BR}q跟J(C7T|CT7@T@@BRkq跟?k9HH# ' _qAT"K_,@L+K!_  #TT6A'@##T1hTT%C ɂ<) ?AbT )D)+l|  A A J aT T? TACCT;@!T7@TH#HZR@'( !@#@t _TA"˟ lTT+75j~w7h}A5@ @7 C)@) 8@)?)) (}!(8k7)M((-@O#H@ }v @  ˓ @  ˔ _ 觟 @1K+T@@BR}Jq{󢘚u"T @@BRKkmT4R藟"ȚTs @@BRKkLTs"$z#_ T @A@BR{KkTS#s"C ?~}t @A@BRdKk”SÓT?T"먂7 FT?TC K}h}͂  ¬? !aT_ !T !(#먂8 FT?CTC *}H}  ͂  ¬? !aT? T ! +@ ?T#  i@ T" @ VA'?T T?@TE@*! ) O@CT _TC l}}*)͂ " ¬? !aT T8h4/@@ 3@ # 8 cT?TC K}h}  ͂  ¬? !aT_ O@E!T I@ _T O@E O@E*@ ?T+@(q@T#@A_4@CJTh}AU` @) 4 3C@)?)) (}!fC@@TxZi)-@)@?AT*{EODWC_BgAoƨ__og_WO{C*h-@@?GT?$bTC}H}֓@u`@Jqן7R7@ThcT`8q觟JhB7wb|";"T T &q觟?kT9C?T?TBAT q觟J(C7T|CT7@aT@@q觟?k9HH#ѿ ' _qAT"K_,@L+K!_  #TT6A'@##T1TT%C 멂<) ?AbT )D)+l|  A A J aT V? TACCT;@T7@!TH#H^R@'( !@#@v _TAӓ" lTT*75b~w7h}A5@ @7 C)@) 8@)?)) (}!Q(8k7)M((-@W#H@ }| @  ˕ @  ˘ _ 觟 @1K'T@a@BqZزu#BT@@7k-T7R藟"ȚbT@@(kT# Y#?T@!@kT8##C ?~}@!@k—8ØTT"눂6 FT?TC K}h}̂  ¬? !aT_ !T !(h"눂3 FT?CTC *}H}kl  ¬? !aT? T ! +@ ?Ts"  i@ T" @ \A'?T T?`TE@*! ) '@T _#TC l}}*) " ¬? !aT W@AT:'@4/@@ 3@ i" 3 T?#TC K}h}il  ¬? !aT_ W@EAT W@I@ _T W@E W@E*@ ?T(q@T#@A_6@CJTh}AU` @) 6 3C@)?)) (}! C@@TZi)-@)@?AT*{EODWC_BgAoƨ_{C#WO{ @X6 @*9@9 6)@)@)=@9I 7i6@9I6i @*9@9 6)@)@)=@9i 6BRR @h@7 R r) qT@@.@ Rr qaT@@h@ qTAR ARh@ qTh@@ןZ{BOAWè_@!@qZq {BOAWè_AR `Z՟{BOAWè_O{C4@96 @ 9@9 6@@=@9H 7h6@96h @ 9@9 6@@=@9 6BRRc@ @@71Q qaT@@uqT R4ҎR{AO¨_@!@qZq {AO¨_AR9 `Z՟{AO¨_O{C4@96 @ 9@9 6@@=@9H 7h6@96h @ 9@9 6@@=@9 6bRR@ @@71Q qaT@@BR{AO¨@!@qZq {AO¨_AR `Z՟{AO¨_O{C4@96 @ 9@9 6@@=@9H 7h6@96h @ 9@9 6@@=@9 6bRR@ @@71Q qaT@@BR{AO¨@!@qZq {AO¨_AR `Z՟{AO¨_g_WO{Ch-@@6 @b6@ @4yjC6 @ @ @)-)U ?qT@ @99rT BR@ @99raT )A9)@*)@ 7)@ RI% )@998@95@9)J(rIJr5U@ ! ޖ@94(q`T qTzBk!:aҥ@ @`z@@9 4҂RRP# RlTI ) * ) *)? q T )!:)a X RFһе6@@-T@ )AJ _UT! @  @95 R(ҝ "Ry@҂RR @?qT(Q @ 1 T Rr J4q@T) * qq(* ) (@9 )a.(9@@[i)-@)@?!T{UOTWS_RgQ_)-@? q)R98@9i4!ң@5U^`6@ )A6 @_ T_A6@x_WO{b6@ 9еB6@ 7_@j:@9*(6ARf_@ @97rTj6@96j @K9@9k 6J@J@J=@9 6!:aR# R| @ @9 JA9J@K)@+7J@ Rj) J@9Wj6@9j7J-@_ q*RWj6@97873@?@@{COBWA_Ĩ_@{COBWA_Ĩ_y8@95sbQtsBL!RR `oy{COBWA_Ĩ_@j:@9/7a.)R 9` a! q T qTh:@9h87h@ @6@@) @yiBR:@907@.|@@!ѨKV@AT@ 9@i6@@@y!rT7 @) @{COBWA_Ĩ_.a6@@ )a(Yo_WO{Ch-@@B6@Д67@ @K H5 j#:b6_% T6@@) @yi"@X6UTt@:@9(6AR@@H X7-U qT@ @ HCBR @h @@@@(7X7p7r TR!BRCR'% J6J@J_T( !@(_6R@@@(6`,@_66R @ @(ARR+6@9H6!@` n9x@@@i)-@)@?T{EODWC_B_"RGw@( !@_6֯g_WO{CB6@6@97)@**) !T@h@X6{6@ )a6)@) @yi!:Y"h@_7Rr qTh@ @#BRm@ @@@h@7X7rT qTh@ @ARv!RCR~<RH@@h@6+h@h_6`4h @@@!"Ra`Z9H@@#R-@hRR|@@)5vH@%@q6@]mT(@( )7)@ `T @ )C Z? @ @AR*@ !@ARbRv|og_WO{h-@@9C6((ZC9I@ @ RARҊvH@ (@   @ @* @Jy* @)@? @6@ C{#9j@J@H ( @*@J @ k6j+@k @ !i@*H˟ T7 @ 7@@T(@@ C@(@774C s7 @ ! @(@(ՙqT7ϙ(@7S6AB} (@ @*! )@ qAT(ZwS 6е D}` !RRa3@8*5@@(H@ @*@h@@ K @H@ @h  6L@ @t 4jIs6"44|`|@T"s}Ө!](Iwa6@@@i)-@)@?T{GOFWE_DgCoB_u4@un{vg6og_WO{h-@@B6@Z6H@ )7*@K+\ )6)@c6 @J @3yj t@@ ?%qT?)qT!@q!T @@@ B9)y 9@@:@9h86!Rf,sB`J@&R`J@i)-@)@?Ta#(CDR{GOFWE_DgCoBBTh#@ @-U q`T @ @@ @-U qT@ @ @R@@ @-U q@TCBR @d#(CoH@  @4a.@9qTh@R)0r  ?qT R *ha "!:a4a!@@@i)-@)@?aT{GOFWE_DgCoB_<`Dt @@@@_WO{B6@c6@@9 r Th_ ))@43@6@T42@9%QqT @h@5:@986!R+`ДBz@&RzDRR{COBWA_Ĩ"Rt4!Rv!: qh@@{COBWA_Ĩ_C_WO{h-@@B6@@Ԏ_42@9%QqT @h@RŹ@@ @Rv3h2@9%QqTh @h@R@@ @Rrvns":7@a!(K @!XF@ @@(@@ @R 9@R 9 @@@h!:@@@@@`@hba6@@@i)-@)@?T{DOCWB_AC_֗g_WO{B6@9c6(@ @9? rT_ *1@9J%Q_qh T) @) 5@ )6)@ @3yh:@986!R*sB`v@RK`vDRR{DOCWB_AgŨD )!:)a '@@ ܨ|@a.@9qaT# @|@a.@9q@Th@R)0r  ?qT R *ha !:a(@@{DOCWB_AgŨ__WO{B6@6@c6 @* @yj(@9 r`T`_  @5M qT@@3UR@RHqT8@9(5*a.@9qT@R)0r  ?qT R * 6@Tt@@{COBWA_Ĩ__8@9h4 ARt<U8@9(4!p *a.@9qT46@T"R#sg_WO{h-@@C6@9c6(@ @9) ?qT5 )!:)aIE_5T__72@9%QqT @h@3h:@986!R)Br@ R_rR[v @ @-U q!T@ @ @"MR(R )!:(aH(@@@i)-@)@?T{FOEWD_CgB_CBR @wh@9 4h@@ i @ T94@ )!:@ )!:)a "og_WO{ CC6@67@@ щ[ s@h@ *%Q_ qT?-qT?1qT @R?(jTi@!@yh҇WA! !@qT_q@zT?)q!Th@!A9qT)h@!@!(R 776Nh@ R u3ia R/@@6C,B9 4s@ @  @@R].@"R/zs A9@ @@ bRAR2r kA9h@ @   @ @* @Jy* @)@? @@ C !9@J@H ( @*@J @ 6*@J @ `@  )7)@ TCy6@CT T?C@Tl} @ ! T6/@@J@ )TRARq A9@ @   @ @* @Jy* @)@? @ k6j@ C !9@J@H ( @h*@J @ k6j*@J @ @  )7)@ TC6@CT@T?C@Tl}Ө @ !BT/@J@ )Th @@h))R/%}I} Z )C  @`?b !AT 6/@@T2}I}Ө Z )Cӫ  @`?b !AT /@TvRh @h @@Mw6@Cq!T6C/@AR& A9@ @ @5@ @@) )C !9@k@i I @K@k @+ 6K@k @) @4 @Th2@9-Qq TRdr@ a6@@{IOHWG_FgEoD_v6@CpT@/@ @ @AR%6 A9@ @r@@ @X7 ?%q!TA@R  @()=@?qT@D@H? 1T@! 6P7!:?1aT@@Hۍ@ @`!RR-@͍g_WO{C9@i@ 9 @) )R*iR)BqIT)R* P)BqTO4)! R? j T9#6{w@9@@}(k7 @9h>q T {EODWC_BgA_)R)! R*r? j T"zw@9@@z7`h@h@.qT h@ h@h@ R u3i h@R i@Rr( h6h@2hh@R :qT * 97@9) @9 !R` AR"RR'h@ 2h=@ @@ @) i@(h@R !Tog_WO{CC6@3_h@ &Q ?!@qB Az`@zTh @@ h@ ?)qaTi@)!A9?qT<:  @.Q*R R? qu1 6&@ @I@Z H@@!R 0@9%qT@ @v )7(@( )7)@ T )6)@) )C @%6@M T8H @Qp!R#p@!:(!:a#H @ qT!`R9jh@iRR @rI *  ? kaTi@!@yhҔR!:(a6@@{EODWC_BgA_@u@"RoWO{A6@@h@ *-Q+R R_ q1 )%Q _!@q" Az`@z":Th @@h@ ?)qaTi@)!A9?qT҈9 @b6% @ba6@@{BOAWè_og_WO{C9C6(@a_aRR{R@!@"RC7y&7@!@"R8p{7h@`7@`T6@C6@-T@5M qT@@bA@RtRyn@5M qTARKXAR~!:6@9?q7 @ @AR"7@@X5"h@`7@@T@Cj( \7 @ @AR"7@@<@4 Rk@ RRo7a6@@{EODWC_BgAoƨ_Qt7%(#mog_WO { H-@@)A66;@@c6@) @yit^@7r T)R jTP6@) @z6R@HP7p7!R@(7X6 @*9@9 6)@)@)=@9) 7 R)4r q@TR 6RBR*R@@q _ @h7rT)R jTP6@) @<6Rׁ@HP7p7!R@(7X6 @*9@9 6)@)@)=@9) 7 R)4r q@TRY 6RBRqR@@ksˆv_@ 7rT)R jTP6@) @66R@HP7p7!Ro@(7X6 @*9@9 6)@)@)=@9) 7 R)4r q@TR 6RBR5Ro@@ksˆxvw@@7r TH7R/@@/Ha x^!a^8a%gax3'w26@955"@r!TR _ @6"@rT"@rAT!@r!Tw26@9H4@( @)@ k T4@ @ @klT6@95!Ҩ6@95 @kT (K @6@9h4@( @)@ kMT@ @ @kT6@9H5%6@95  @kT@(K @6@94@( @H)@ kT@ @ @k T`(Ks @`rS@@Y`@TBRt@:@9(07B6@Z @TBR5@:@9h07{@_TBR_:@9h07@a.@9qT@R)0r  ?qT R * t@ @9)rT@8"B6@""@a.@9qTet@ @9)rT)A9*@I)@I7J@ R)) )@9)@j? q!T@a^3@! !a^%g!b((` A`@@@I)-@)@?AT{JOIWH_GgFoE#Dm_ ) @ @J (@?qT(Q_֦g_WO{B6@c6@ @9i4t_9)@* @K!@qTJJ%Q_qHT* @J@_5@*_!@q T+ _5@*_!@qT))%Q?qT@ @ <@9j6 @K@ J=@_1TJ6J@ @Vyh(@!))@9?rZRR0@`T6@T`2@9%QqT @h@R @ @ 4@?qT(Q@@{DOCWB_AgŨ_!@#R:@9076@-Tvt"RkJ`!6@,T"Rwkvg_WO{9C63@6@c6 @I @J@9J r`Tu_ kA u@52@9k%QqT @Rv@yi*5 Ryi5:Ryi56@Tv:@9(86!R<"@@9raTA9@ )@7@ R(! @9ZC@c@R@cR q T(@@` TB€R{:@9 06*![-@ q(RZC@c@"Rj7o@4 @@B9q`Tsx(R!:ah68@9)a.(9A!>"R& @@ @ @9 @@ @ 4 @ @9jJVii8 T>@9 7@) @?T @ @)@ @m@( @27t3@@{DOCWB_AgŨ_ֈ@yh6 O{sb6h@@9B6 r`T@ _@?+6@@T@(0@9%QqT(@H@@ 5@?)* @@@ B9)y 9h@@{BOA"Rgj@A@)!:) h@@{BOA_ 3R g_WO{a6@@9B9r!T@ )@I7@ R(! @9h@qA9(6`A6)7@9@@ )D)? kjT Kk@!@ R )IR 99)6)@  )C )9)@ )7)@J7J@) )B -)A7)@ ))A8)@J* I@ )*)@I@*)@ 9*@  JCӫ؉RrJ} *)@: -@ !yi @)i i@*a@J*a-@ @) h@a@?qT%@dh@a@%@@a @)6(@ @ @?qcT(Qh@@{DOCWB_AgŨ_-@ q(Rh@qA9(/7|3og_WO{9C9(@ @! R%*)@h @@Zc6H@A@y!RqT@@t %@@K@k@{l@? DLA T(@ @! Rk6%*h@@ ZC6H7@@kMTk.@@ @) @?qc%T(Q. @?qC%T(Q "@):(H @)6(&@&@ a@)Q a@?qT(Q:@)@()7@. J7HA7*@ @JA8H @J9H*@ @(!@Q(!6@@@ TRqaTH@)!:)a -@ B9 6I@q+T@ @@ ) @ "AR{Q q T @( n@@@ '@%@@)@*@H(@{8 )@ 1@h@@!@1h@@ԗRRJ@@aRRRaR@)@)@RR@@(@-@ B97 %@ @?T!R"RcR@@>n@ !@ %@ @) h@@ B9)2 9@-@ @@ B@{GOFWE_DgCoB6@ !@ % <"RxhRqT@@@ @)@ %@I %T n@6$ @RH@)!:) H@{GOFWE_DgCoB_֡!<RE@m6@ @? @? @@ @?i(8@B9h6|H@)!:. @?qT"@):(RuO{C~{AO¨ _O{H-@@ @-U qT@A@BRb@~@@I)-@)@?T{BOA_zWO{6x~uj48ҡ{BOAWè_{BOAWè_g_WO{96(@)7*@K+X Zc6I@)@9 !?r@u2@9%QqT @@B6@T6@ ?-T)!:) 3eB6@T h:@9h86!R(@  TBV@"@CDR{DOCWB_AgŨh@@F@C"m 4h@B96|1@T!:2h @R&)6)@@)? T !C }"}B@!BV@tRVRa`4(R!:a)@) *!(H@@{DOCWB_AgŨ_"Rg@{"R g(@@{CH#@g_WO{CH-@@ RrB6@c6@@9rT_ @ q T@@@ @ q TAR @)  qT@ @@a 4 @@@!:6R@ @ q!T@@ @)  q@TBR@` 5!:a@@@I)-@)@?!T{EODWC_BgA_ARȃ@ @ q@T$#mog_WO{H-@@{C6s@Z6H@)7*@K+W)6)@9c6*@K @T{FOEWD_CgBoA#l_ֈ@ R)4r  ?qAT@) @' @#@#2h@@9h6#BR`@h7# h@9@)R( h #h@@97'a6@A@y!qT 7RG>@9H 7@ @@ T @9c6@''@ 6T>@9JJ  (6h@@9 7'@ T T(@9q0T @9Iii8 TL@a|9c6C0@( @@) @i)8@Rr  R rJ2 R@qj) *s6(7@B9 78@9H)5h@ G@Cs|sZ(R9c6Z6K@) @  _8)?qTcTH}C(R'@  ': @ k @@ @>@9I 7 @I!T @*T H|TmT#@4@ )98@@x@()9(@()! @`RRRXw)!@( |@ )*(@ 7@Ta7@y @ 2A|@a6@A@y!qT{7מ @J ; @i( @(  @ @) @i)8@Rr R *@H49@@97JJ@'@6 ҉@9Sii8 )?HT9jT@9Sii8?T9 ?T )R'@@) @TAT @  @St)! @@{ @@5Ұj#@4R|s6 @@2s6:@9B607@@B9 78@9(5h@ @R)0r  Ja.J@9_q AzaT R * va6@D(R@B9q{C69c6Z6TR7+@@B9'6|@B9'6҂RR|҂RR| @8)?qTT@JJs@j6I)>(yhz,og_WO{ CH-@@C6@Z6H@)7*@K+[ 9c6@2@9%QqHT @)6)@*@K @)ykIA@y3!@q @aT7@ @  (RH@ )!:)a (@@@I)-@)@?T{IOHWG_FgEoD_:@9(86!Rh"џ` TsB`N@`@I)-@)@?T#шCDR{IOHWG_FgEoD7@͛ @@@B9qTRq*@7 R r@)   ?qT@) @ @BR}@7 @K 49@9@ @C57CRk`6@qaTA @ Rr qT@@0? RrBTA @ qT@@<@6@T͇){sB`N@tRY`N@I)-@)@?@ToAR T@ @  qT@ @@ @ B&3AR ?"T @ @ qAT@@@BR}@B AR@TH@ T2@@H@ a.@9q@T@R)0r  ?qT R * t{{"Rob~`@@@y!@qTAR}I)> yh`@@@y!@qATAR} I)> yh`.g_WO{CC6@9c6(@ @9? r`Tt_)a46RT2@9)%Q?qhT @I5@ :@9 86!R(` Co@RoDR%RN)6)@)?mT 9)7)a4@)!:i; R @9_ rT9q跟)R(*7 @@B96 @@aRN@@8@987@ @ R @9_ rT(@)R @9_ rATV|@@TRa`cf!: qh(@@{EODWC_BgA_!:@@ B9)y 9A!"RRT\ @@uA!"R:@976@!RZ"Ra(@ 9)6) )@* @K!@qTJJ%Q_q(T) @4@)a4VRt{)a4VRtg_WO{C6@6@9c6)@* @yj(@9 rTu_a 6@Ta@U2@9%QqT @@:@9H86!RFBj@RjDRR{DOCWB_AgŨ%fa.@9qT@R)0r  ?qT R * ","Raa@@5(Ra.@9qT@R)0r  ?qT R * t(@@{DOCWB_AgŨ_yg_WO{CC6 Rr@ @ @ q!T@@ _ @ q@TAR~6_a68AR} _ @ qT@@6_a62@9%QqT @h@5:@986!R`6c9C8g@R g`~@sDRER%5Cb6@A@y!qTe!: qeT !:aAR66@@{EODWC_BgA__WO{ RrB6@_ @ qT@@AR}ܘ@c6@97@7 ?!@qT )%Q? qbTRR 0@9%QqTS@ ?!@q`T(X6 @ @ ?)qT7 ?!@qT%Q qT@@: @ @ ?!@q@T@X6 @ 1@9_=qaT)8)@95 @{73tZ6 ( qaT @Raz8@95 7s":3RRom@)!:3a5g(R@@{COBWA_Ĩ_a! Ҧ6a!  @og_WO{(-@@B6@)6)@c6 @J @3yjA @ R r* 2  kT@@6@AR6@62@9%QqT @h@R@@H @@P7 45M qaT@@,(Rr R)4r q!T@ @ @rPcTCBR$ @rPTav@ @ @)Rj(8AR|@A@y!@8@95@ @;{q!T~@ 6@9(7H>y{@ @+{q TV6@9(6@ @jh8?EqTj(8:@907~@?1 Ta5!BRih:@9069a.@9qTh@R)0r  ?qT R *ha &~@?1!T!:a3@@@))-@)@?T{GOFWE_DgCoB_w@@@y!@qT!RzI) yhE|_WO{B6@6@c6 @) @yi_ @5M qT@@@AR{@0@9%QqT@@ @Uisz *}S-2(Ra.@9qTh@R)0r  ?qT R *ha @@{COBWA_Ĩ_wg_WO{B6 Rr@@ @ qT@@_ @ qTAR{b_ @ qTAR{@AR{_ @ qAT@@b_ @ qaT@@@62@9%QqT @h@R@@( @Rm`8@95)X":7A!(@x !X;x(@(@iR 9 @(@@!:q(@@@q) @b)@)@ba6@@{DOCWB_AgŨ_a!8 og_WO{(-@@C6 Rr@@ @ qT@@_ @ qTAR{_ @ qTAR {قւ^AR{_ @ qAT@@_ @ qaT@@قւ^62@9%QqT @h@R@@7@72@9%QqT @h@R @@h @R_H @R_8@9( 5W":7@Ss(w` @ДZwh@h@vR9@w@ @wH@H@9` @h@@(H @H@@!:ph@@@ph @h@@h@*@ @@pH@@@pI @bI@)@@b(a6@@@))-@)@?T{FOEWD_CgBoA_a! ǕC_WO{(-@@B6@@_52@9%QqT @h@R{@@ @c6x7h@-U qTh@ @s @(R!:a$BR_w@A@y!@8@95@&qT H>yuҷ@&qT!: aq@@@))-@)@?T{DOCWB_AC_\WO{B6@_ @5M qT@@@ARy@2@9%QqT @@ @ x|!: aqR@@ @ (R!:aa6@@{BOAWè_og_WO{CC(-@@B6@6@b6@) @yiR@_h 1@9)%Q?qT @5@u @ 42@9%QqT @h@R@@ @=x#LVZ#:7( @Rm^A!(Kv !XFv(@(@iR 9 @@(@@@#qh:@906A (R!:a@@Z))-@)@?ATC{EODWC_BgAoƨ_Scro(@@@no( @Sc(@@H˔Sc_WO{B6@6@c6 @) @yi_ @5M qT@@@ARy@52@9%QqT @h@R3@@ @wv *}Sa.@9qTh@R)0r  ?qT R *ha 49(R!:a@@{COBWA_Ĩ_tog_WO{(-@@C6@9c6(@A@y!;qT RHt_ Rr`@ @ qT@@`_ @ qTARxzCw_ARx`_ @ qAT@@zCw_72@9%QqT @h@R@@ @ Cw7?qT;q T@Rr R *@ R @@) @i)8@ @ @#7 @@( @@) @i)8T (R!:aH(@@@))-@)@? T{GOFWE_DgCoB_ֈ@7P6 R r?(jT @JJ}%? JJ%$JT@7R1xzc R r qT@A @@ 6@@SR6##R@w7!:@(W7cg_WO{C(-@@B6@b6@A@y@42@9%QqT @h@R@@( @(R Re~ @Rr R * @ @ @) @i)8 @v`7#Eq TAqaTa @E6 (R!:a a @  7@i@( h @i@) @i)8@@@))-@)@?T{EODWC_BgA_g_WO{(-@@B6@c6@ @99+е8  7t_@7 ?!@qT )%Q? qThX6 @ @ ?)qT7 ?!@qAT%QqT@A@y!IqT@@A@y!IqT@T @@@@(>+q+@yIq.TҨ@ATT@ ?!@q T @ @ ?!@qT@X6 @2@9?=q!T@A@y!IqT!:(-! Rx@Tq+i"R y)!(.@2@9%QqT @H@ @u6)8)@95Rr qAT@ @ @(@H6@@Ԏ!= /(2(R(@Rq@@9rTqTgA9@ )@i 7@ R(! @9q` T q T 46@*T*@)7)@ *TZ~`е=q@S~` rO~` @yrK~`@yrG~`@{rC~`@wr?~`q;~`"2@q7~`&@q3~`*@q/~`."@q+~`2r_r'~`6@[r-@ qT6@T!: q(h@@@))-@)@?T{GOFWE_DgC_"R"Y.@@Rr qTR}sД.@ޑ!@ @@yq+*! y@ @J _qT @@(!q@T))6Yh_ BTBRZs@ @@y@(!qT!Rt_ TBRْ@A@y!!=IqT 6 Rx4_8)qTH)/!! RxR `7RX0L_7:HRH#H&[A!D6Rw( Rw@57 !Nvg_WO{(-@@9c6 @@9 @@y(! QQK}}L K%˚R_qj1 @9+ 7kA6k@k@k @ R r jT@# @ @@y(!R RUQqTJALih8k `RSRR6 6R 6R3RR6 6ZC6H@@ @J-JU _qT @W @ @(!q@T))6Yh BTBRr@ @ @@y(!qT!Ras TR)4@%5 %5ʐ$5`$547(@@@9 7H@C5(@ @9 @9J 7 7H@SRR4R67R!^`7B=e(@ 4 @9 @9J 77A6@)!: (@@@9 7A6@34RR3R6@@9 7A6@M6@A@T( H)!:) (@@9h 6@ @@y!QQiq T@9h 6@`6@ДB6@-T )!:)a (@@9h6ShB@y!QQiqTh@9h6s@B 7s":&7s":-6@ДB6@T )!:) (@@96hB@y!QQiqTh@96s@@6@@@- T@ @6@ДB6@ T(@@@))-@)@? T{GOFWE_DgC_ЏHR#H&[A!D6R9v(@@@9h 7H@ 6@A@ T( H)!:)a (@@9(6@@y!QQiqhT@9(6@"RWA@L"RW@d"R W@@"RW@"RW@"RVA@ (t(t)t)tWO{(-@@B6@@еb6@@9h7h:@9(7h6@96h @ 9@9 6@@=@9 7@))-@)@?T{COBWA_9!RR~" RR`8@9H (7!:i)CjU)} ? Th@r@TP7@7X6h @ 9@9 6@@=@9( 6R6,h@( @Th @@9qAT@@@9h 7@ 6@@T( @@96@@y!QQiqHT@96@h@@@ @9 @9 77@ I6@6@@ T@@= h6@968 T"RIV@"RCV@؎WO{b6@ @9 @9 77A6@@@{BOAWè_I6@6@B6@-T@@{BOAWè_"RV@WO{b6@@@9( 7A6@@@9(76@B6@T @@9h6ShB@y!QQiqTh@9h6s@{BOAWè_"RU@WO{b6@(A@y!jQ }}ӫlҫ)kj%ʚRqH1)@9 7)A6)@)@) @ R r? j`T{COBWA_R[7jqT@ @9 @9j 77A6@)!: @@@9H 7A6@!6@@) @yinQ q T)U+ih8J @=1@mA6@B6@MT )!:)a @@9h6ShB@y!QQiqTh@9h6s@7s":@a^=@@a^=@@a^=!@!a^8aҨganh:@907!:i)CjU)} ? Th@r@TP7@7X6h @ 9@9 6@@=@9( 6RJ~6<h@( @Th @@9qAT@(@)@9) 7)A6)@3@)@9)7)6)@B6@)? T 3@)@96 A@y)!)QQ?iqT @96@?{COBWA_h@@@ @9 @9 7i7A6@I6@6@B6@-T@@{COBWA_ T"RT@"RT@C"RT@@O{sb6h@ A@y)!@*}Q_-q(TJ1I )})@9@9 6R@9 7A6@@ @ R r jT @ RZh@`7A@y!}Q-qT)e+ih8J @=@Fk!T@@9 7A6 @ 6 @A6@)?T) !:a(h@@9h6@@@y!QQiqT@9h6@0=@kTe=1@( h@@@9 7A6 @ 6 @A6@)? T) !:(h@@9h6@@@y!QQiqT@9h6@{BOA_= @y 1@qaT2= @y  @qT+= @y @qT$= @y !@qT= @y @qT= @y @qT= @yh_6 = @yW6= @y(O6 :{BOA"RSA6@@s"RSA6@@O{sb6h@@9( 7A6@@ @ R r jT R{BOA_RZ7= @y h@?)@q!T @9 @9J 77A6@)!: h@@{BOA_h@@@9 7A6 @@@9 7A6 @-6 @A6@)? T) !:a(h@@9H6 @@y!QQiqT@9H6@)7!:6 @A6@)? T) !:(h@@9(6@@y!QQiqhT@9(6@@)6*@)A6 @J_mT h@@{BOA_"RBSA6@@"R9SA6@@"R0S)A6@ @CWO{(-@@b6@ @9) 7JA6J@J@J @ R rk_ jTR&@@ @9 7A6@@h@ ?!@qaT )%Q? qT<@@X6` @ @ ?)qHTh7 ?!@qT%Q qBT'` @ @ ?!@qTh@ -)U ?qTi@! @ t @R(CR:m @h@Rh2@9%Qq(Th @@ @`n@9%T#;`4@_7v@4 @9 @9  7 7A6@)!: `'(R@@@9 7A6@ 6@B6@M T )!:)a @@96hB@y!QQiqTh@96s@:@@9( 7A6@7s":"6@sB6`@T h)!:) @@96B@y!QQiqT@96Ҕ@@6@B6@T@@@ )-@)@?T{DOCWBC_"R/R@"R*R@"R%R`@og_WO{C -@@b6@ @9 7JA6J@J@J @ R rk_ jTA@y!IR Rq@ @ @9i 7@9R q!T8@B8@`T".@@(- 1@9)%Q?q,T @&b-A6@@@ ?!@qT )%Q? qbT!@"2@9=qa"T+  q+i"R yX6 @h@ ?)q(Tz7 ?!@qT%Q qT@-U qT@ @ @Rl.@h@@@@y!@qT!Rl T ))4yh TR{@i4R.@ @!!!(0 q+i"R y_m`7=+7RRl@R qd-&Thj @i~A) S*)*)qS)}) )! cT*i9i,7i )!u @ T9+7u @T9*7u @T9J*7u @@T9)7u @T9 )7u @T9j(7u @`T9'7*@J&T5!*A_)TET˩9 &7T$44+  q+i"R y R6p4h_8)qTH&!! RMp@@@9H 7A6@Tdp(R@@@9 7A6@6@sB6`@]T h)!:)a @@9Z6ZB@y!QQiqYT@9Y6Ҕ@G@'dC@@@9 7A6@R1%QqT @@+  q+i"R yU @cr@\4 @l7s=+`7h @y @qaT@A@y!q%TZ )-@)@?XT!: {EODWC_BgAoƨf+  q+i"R y4Ru@@@9 7A6@ 6@B6@GT )!:)a @@9(K6KhB@y!QQiqhJTh@9(J6s@N6@sB6`@-KT h)!:)a @@9hG6TGB@y!QQiqFT@9hF6Ҕ@0 @y @qT@A@y!q<T :6@sB6`@mGT h)!:)a @@9B6AB@y!QQiqHAT@9A6Ҕ@(R@@@9( 7A6@@@@9 7A6@HCQ5haTŊ @~BU**qS} !cT+9H7 !_ @ TK9k7 _ @TK97_ @TK9+7_ @@TK97_ @TK97_ @TK9K7_ @`TK97 @JT ! A  )T_ B+T K9 7JTR @q T @1T @Æ @q @yq@R񔲈Tf(6@sB6`@m4T h)!:)a @@9h.6T.B@y!QQiq-T@9h-6Ҕ@hZ )-@)@?3T : {EODWC_BgAoƨ6@sB6`@0T h)!:)a @@9(6(B@y!QQiq'T@9'6Ҕ@:JJJJCJQ  8 _ BTK@8 kk8 D9_ bTqT5H qT@9qT  R O@  Tҡ *_8 kj8 D9?T)qTRq)q(4qT@9qTk TR98RZ/@s{Ti@9i4@H @96R!=7@(@96R!5`7RAR14H@9`@9(4{`h77i@9 * ?}T {h)) ?q Kz Hz[zT87 =@R65H@94h@9{hW6h9@7 =@(w7R&5R  (鷟@ A@yJ!_q? kT@@9 7A6@ @9 @9 77A6@)!: /6@sB6`@mT h)!:) @@9 6 B@y!QQiq T@9 6Ҕ@c7s":@6@B6@T@@P"RZN@@A@y!q@T!:(BHR#(&S!!D6R'm+ Jq+ h"RHy@@@9H 7A6@"RN@6@sB6`@ T h)!:)a @@96B@y!QQiqT@96Ҕ@Z )-@)@?T {EODWC_BgAoƨ_"RM`@"RM`@ @h@ ?!@q T,"RM`@"RM`@Z"RM`@Z"RM@x"RM`@yS!k"RM`@C_WO{B6@b6@ @9) ?qTt_T9( 7@h7 ?!@qT )%Q? qBTҨ8@94U@@@R@@6@T!"RRR׶@!"RRRζ@ @-U qT@8@9h4$BRgҨ8@9h52@9%QqT @@H @ @ i`6<RR8@94A!t!: q,R8@9H4A!!\"`Rl(R8@9( 5!: @i`7"r(R!:h@@{DOCWB_AC_"RLv@ ?!@qTX6 @ @ ?)q(T7 ?!@qT%Q qT@-U qT @Ҩ8@94RsA!ҡ @ @ ?!@q@TWO{B6@6@)7*@K+I 6@b6@* @yj(A@y!Wa.@9q T@R)0r  ?qaT R * 6@-Tt@@{BOAWè_e6@,T"R{L_WO{B66@b6@) @yi@@ @-U qaT@BRf8@95" *}Sa.@9q Th@R)0r  ?qaT R *ha @@{COBWA_Ĩ_A!=e_WO{RrB66@b6@) @yi@_ @ qT@@ @ qTBRf BR{f@ @ qaT@8@95M *}Sa.@9q Th@R)0r  ?qaT R *ha @@{COBWA_Ĩ_A!һdg_WO{RrB6@6@c6 @* @yj9A@y_ @ qT@9#@@ @ qTBR(f BR#f9#@@ @ qAT@8@95?qT} (>yyx?qT *}Sa.@9qTh@R)0r  ?qT R *ha @@{DOCWB_AgŨ_d_WO{C-@@B66@b6@) @yi@8@9)a.(9@ @-U q!T@##R`j 8#ph:@906k BRe##R!:a@@\ )-@)@?TC{COBWA_Ĩ_Ƀog_WO{-@@9C6:@6@{c6i@* @yj(@9 r@T@_ @ R r* 2  ka T@@@@ @-U qTBRne@ T?R@@ @-U qAT@ @@ #T_8qT T_8qTa8܄6RR8@9h5> *}Sh@R)0r  Ja.J@9_q Az!T R *ha Sv4a:h@@@ )-@)@?T{FOEWD_CgBoA_ARj@@ @-U qTA!xucSv5/g_WO{C-@@C66@9c6)@) @yi@@@ @-U qT@ @@ "T BRd@ #T_8qT T_8qT`8X5RR8@95 *}Sh@R)0r  Ja.J@9_q AzT R *ha Su4Sa(@@@ )-@)@?AT{EODWC_BgA_A!*cS5C_WO{еB6@_ @-U qT@@BRtd@42@9%QqT @h@Rb@@ @(@ @@@ł@s":r@sb5n(Ra6@@{DOCWB_AC_ֈ @@@@`#gg_WO{еB6@b6@@9raTA9@ )@ 7@ R(! @9t_ 2@9%Qqh T @( @ @@ 4qT 896T$@yZ@B9h 7@95(@mTOm`@@ŃB҂RR/b(@T"RyIT$@y3@B9 78@956@T&m`-@ q(Rt_tR@@@@1ف@H4( qT!:a@@{DOCWB_AgŨ_Ł(R( qT҂RRa6@T"R$IO{ h2@9%QqTh @h@Rw@@ @a6@@@y!@qTAR.dTAR*d )> yhh @@h@@#a!)Rg{BOA_ )> Yhh @@h@@#a!*Rg{BOA__WO{еB6@6b6@@) @yi@42@9%QqT @h@R$@@@@`ƒa.@9qTh@R)0r  ?qAT R *ha ,@)!:3a5&(R@@{COBWA_Ĩ_aWO{еB6@_ @5M qT@@@ARe@42@9%QqT @h@Rԍ@@@@s": A@)!:3a5(Ra6@@{BOAWè_WO{ДB6@@3h2@9%QqTh @h@R@@@@s": @)!:3a5(Ra6@@{BOAWè_WO{ДB6@@sh2@9%QqTh @@v@@ۀ@7s":Re@@@@@s":}@sb5y(Ra6@@{BOAWè_C_WO{-@@B66@b6@) @yi@6@M T~\`R~nh`5/! @?@o<<<<<<<A<4@`Rc.57Q2 @5) J)mIJ)! JJA2I)5 J)EIJ) J *a.@9qT@R)0r  ?qT R * t!:ah@@@ )-@)@?T{DOCWB_AC_"RlGo`C_WO{-@@еB6@6@b6@) @yi1@Rg71AT/,@qAT@5Rg1T @?Rg1Tq T@) (1T R r k4?q@T J *?q?qH*) () (|@@R)0r  Ja.J@9_q AzaT R * 6@-Tt@@@ )-@)@?T{DOCWB_AC__6@,T"RFrg_WO{C-@@ RrB66@b6@) @yi@_ @ qT@@@ @ qTARc ARc@ @ qT@@1@Pg71AT9/Z,"@qAT(@5?g1T H@?6g1Tq T@) (1T R r k4?q@T J *?q?qH*) () (|@h@R)0r  Ja.J@9_q AzT R *ha @@@ )-@)@?aT{EODWC_BgA_J_~og_WO { -@@'C6@Z6[@7 @* 9h)6)@b6@J @3yj!(TRr R`@@ 2ҏ(T@@7  ?qT@! @ @ 2)T@  ?qT[@8@9(5ҦZ?R? Rf1TqTt7G@~@R!Rgc`R!RgSRf1TV~@qT`R҃@Rgc`Rg@1Zе 1@T R r k4?q@T J *?q?qH*{ hV@6NRgNf1!T&~@qTH@ h@R)0r  Ja.J@9_q AzT R *hh 6@MT7C@P~G@N~`R6:{ hV@7RCR q(T*C@A˟ TC@2~qT45h@@}h}@h@R)0r  Ja.J@9_q AzAT R *ha 6@ T@@'@ )-@)@? T{JOIWH_GgFoE_qTv4*}S`Rt7C@}@@907!AT@ARi @-U qAT@;%@94A!^6@LT"RD]6@ T"RDt6n}@G@`$$IbG@M}BRB_G@My}og_WO{CB6@6@)7*@K+Y)6)@b6@J @3yj {8h@9Zc.( 5eY@@907!T@AR0i @-U qAT@@RRL@ *H@9qTDBR^RRM@ *H@9qTh@R)0r  ?qAT R *ha 6@ T@@{EODWC_BgAoƨ_Rrz"H@9"5HT@ @ qTBR^@ h@9H4!!0$Q]6@LT"R@DWO{6@b6@) @yi}|@a.@9qTh@R)0r  ?qT R *ha 6@B6@T@@{BOAWè_]"R D@WO{B6@6@b6@* @yj(@9 r`T`_ @5M qT@@RARa{}|@a.@9q T@R)0r  ?qaT R * 6@-Tt@@{BOAWè_\6@,T"RC_WO{B6@6@c6 @* @yj(@9 ? q!T`_ @)5)M ?q! T @5@ r!T6@M TRs"8@94;R r T`@ @5M qAT@@8@94*R8@95} *}Sa.@9qT@R)0r  ?qAT R * t@@{COBWA_Ĩ_AR`8@94A!0(AR`@@9 rTM\"RAC_WO{ RrB66@b6@) @yi@_ @ qaT@@@ @ qTARS` ARP`@ @ qT@@||@a.@9qTh@R)0r  ?qT R *ha @@{COBWA_Ĩ_[g_WO{ RrB66@@c6 @) @yi@ @ qT@@BѠ_ @ qTAR` @ @ qTAR`AR_BѠ_ @ qT@@ @ @ qT@@8@95:} *}Sa.@9q@Th@R)0r  ?qT R *ha 3@@{DOCWB_AgŨ_A!h[WO{6@b6@) @yiҍ} a.@9qTh@R)0r  ?qT R *ha 6@B6@T@@{BOAWè_["RWB@_WO{-@@B6@6@}m T#Q}g@a~B3@!a^az[b6@ @9)rT? qT')A9*@I)@I7J@ R)) )@9)? qaTf` @a~@!a^a][f`@a~@!a^aU[f`@a~@!a^aM[@@@)-@)@?T{FOEWD_C_RAzC#m_ W O { -@@B6b6@@ A@y)!*J+k?9qw@9 r`T`_  @1Q qAT@@ |@a^ARb@e!hT mg!`Ta!(& ǂ(h mg!`-Ta!%R`a!t&R`@ @9)rT? qTD)A9*@I)@7J@ R)) )@9)? qTt 6@T*@%7@jTYf`;YUf` ?YQf`CYMf`GYIf`KYEf`O@ a^Z?f`SY;f`"WY7f`[Y>6@Tt6@@) @yi`Ii))!8(yh))9K)yjj/H)7G)a!&@A@y!C9qT[}"RA!:ah@@[)-@)@?T{LOKWJ_I#HmC_"RA~GyWO{B66@b6@) @yi@@ @5M qT@@7y7*a.@9q Th@R)0r  ?qaT R *ha AR^`6a!('R_UyR!:a@@{BOAWè_YCWO{-@@B6@6@b6@) @yiC{@@9 rT`_` @5M qT@@7]{z#{@ DTa.@9qT@R)0r  ?qT R * 6@Tt@@@)-@)@?T{DOCWBC_AR]@6a!'R^xR6@T!:!hY6@T"RK@"RE@xWO{B6@6)7@*@K+I 6@b6@* @yj(A@y!hq Tdq`T`qT P  Q `PRQ *}S*a.@9q`T@R)0r  ?qT R * t@@{BOAWè_XWO{B6@6@)7*@K+I 6@b6@* @yj(A@y!"N1`T|@a.@9qT@R)0r  ?qAT R * t!:ah@@{BOAWè_XWO{B6@6@)7*@K+I 6@b6@* @yj(A@y!KN41T!:ahA!BRd:@906|@a.@9q`T@R)0r  ?qT R * t@@{BOAWè_sXg_WO{C-@@B6@c6@A@y!96(@=TߒqaT`_ @ R r qT@x<BRex5BR9?ߒqTߖqAT`@ @5M qT@@x@ARY\uB`_ @ R r qaT@ @@x BRd@x`A@) (1`T=(@@9rT qT/A9 @()@H7)@ R% @9 qaT @hb`@6@-R@fz@hB>"RCRiyA_YzH@c`ߒqT@@HaRQ@@Ow1@w-!:AR:cu c`Vc`V@h@ !(@ TRY`@ "R>_RL`@@@@@)-@)@?T{EODWC_BgA_wg_WO{B6@c6@A@y!qT`_ @ R r q!T@w2q!T`@ @5M qT@@BR dw` wARw[vB`_ @ R r* 2  k!T@@w`ARR^w`A@) (1`T=(6@} T@@9rT qT8R>@@9rTA9 @()@H7)@ R% @9 qaT4@za`@v@(-R@xy@B>"RCR{x!_ky(@b`q T@v!:ARZbu b` Vb`@V@@{DOCWB_AgŨ_g_WO{B6@c6@A@y!qaT`_ @ R r qT@CwqT`_ @5M qaT@@ BRSc3w7wARZ0w6@] T@@9rT qT8bR{=@@9rTA9 @()@H7)@ R% @9 qaT@'a`@v@(-R@x@B>"RCRw!_x(@%b`4qT@v !:ARau b`vU@@{DOCWB_AgŨ_g_WO{B6@c6@A@y!qTRr`@ @ qT@`_ @ q`TBRbsB4qT`@ @ R r qT@BRb`_ @ qT@sBє@9H5v!vBRb`_ @ R r* 2  kT@@sBZ}S AR\sBZ}S@9H5v6@} T@@9rT qT8R<@@9rTA9 @()@H7)@ R% @9 qaT4@%f``@@-R[@#x@HB>"RCR&w!_x(@da`qT"@y Z}ST@Mu!:ARau Pa`"@y Z}ST@+``@@{DOCWB_AgŨ_WO{sB6t@@ @5M qT@@ARYb6@A@y!Q qTI)+ih8J @ֹvvvv!:t@@{BOAWè_O{Csb6h@A@y!Q5qTI)+ih8J @uu u uvuvu6@B6@MT!:h@@{AO¨_"R;@_WO{B6@b6@A@y!qTqTqT`_ @ R r q!T@uu`_ @5M qaT@@  BRauuARXtu6@= T@@9rT qT[BR;@@9rTA9 @()@ 7)@ R% @9 qT @__`pZ_` 6@97@dt8@9 5k``@Tg``@Tc``@S@@_`@5cvR6`@95@0_`"@SvR&`&@95?``"@S :``qT@kT@%t@@{COBWA_Ĩ_R`@9h4҂RRSR`&@94҂RRS҂RRS_WO{B6@b6@A@y!qaT`_ @ R r q!T@tq!T`_ @ R r* 2  kaT@@ BR`vtntAR[mt6@} T@@9rT qTAR:@@9rTA9 @()@h7)@ R% @9 qT@S^`@N^` _`@S@@-R@Hv@B>"RCRKu_;v@_`qT@S @ts!:AR'_t@@{COBWA_Ĩ_WO{6@b6@) @yi6@B6@-Tts@ "Rr:s@)!:)a @@{BOAWè_{C(MP"W_____WO{@@`@5R Q}}a)Q@ qCT@@@ Q@@P@@@@@R 9@@ @@@@@A5*t{COBWA_Ĩ_WO{A7@@0.vs44tRǃ@tPssBu!Rt8`!Rt8` !Rt8`!Rt 8`!Rt@8"@a!@#Rs-`!Rt`-` !Rt@-`!Rt -`!Rt-`)R 9{BOAWè_O{C9 @!?@T %@` !!3RRR%  @h@7@5{AO¨_։))@) @ @@97@5{AO¨_ Rr qTh@@6!!3RRRޢ@ @@7@5{AO¨_ARV h@ qTh@@{AO¨_ Rr qT@@ARV``@ @ qaT@@{AO¨_@5{AO¨_AR{V{AO¨_O{C@{AO¨@{C-@@c@5!RR @)-@)@?T{A_ִq+m#mog_WO{C 77-@@9 R/RPb:AR@Y?9B@y!qT5@T@HR A@y?!raT @9J ip6@(4ROuC@0E@ qT @ kT?q)ş )ySkT @~{ӯO |5B@y!qaT:R @HR A@y*!_qZp6@HR@}POaR@B@y!qT@h@ R A@yK!qT @j)) A@yjp6@h@ @h4B@y!qT@ A@yip7@ҭ @hX6U @2@9)?!q7@Ty(R(9 @  R)r)G qTH@ @#@ @7@-@#A)9*@J@97J@Jj*)j+ Sj97*@)!_ !TR)@9(6= RR7@-@HH@7诨7 Rj*)j+ Sj96Hi@I R+@  @9ߡq H TbT_ kT- @N}{in!TL}@ @J@9qT @9qTqAT @9qT<RR.3h?vr gwq2Ch/"SWh9HB yCR uC+'Gy  9H95@h@q*uJkT@)?)qT @KQAyk1S3@ kT QAyK1S3@ kT @JQAy**J|#Ab _ T?)qAT @ @QAy @ Aqq*6@5@)9(@("H""@?@RRR/J?@@"o u@2@9?)qAT @Hh@4w@g@h5w@g@5h@w@4(RhC@{56a.@95y@h@($4)3@9!A#AЌA6)J T+@9qq@TqTЌA6@}@M(NRy R 9 R Ҏ RR0R8Kkj8 8J_"Tk@+l@? kTk @,}{kil_ !T+}@%xJ l@ @k{ӌ @_ "T8Jl@ @ @_ #T8)J_TKkj8qqTqT-8j@9j7'@  R 9i@9'@i 7  9?9!h@q SȀNf8fE3*ДB6kA9h@ @`RAR7kA9h@ @ @ @)y @@ @Ќ6@ )CЭ!9@J@I @ @J @* Ќ6 @J @) `AR)A @?q3T(QH G@)A6(@_( @@@ЭA9R|ЭA9@@(;@9(1(7!:(CiU}  0T(@rT(P7h@7X6( @ 9@9) 6@@=@9 6R_ЭA96(@ @(T(( @@9qT(@@ @( @( @ @ @A6@Ρ6@J JC!9@k@j * @+@k @K 6+@k @J *@)*)@ MT=7h@(5)@I7(@)?)qAT @A@ @h @7 4z@RL @0BH@qTI @ kT?q)ş )ySkT@ @~{M@ T z @@T@ `{LqAzTR RJC+}@)M l@Ll @Lk @KJ?kkTkT?kT @k @ }@k n@k@l @+}{ikk`T @k @}@kn@TNl@Lk @K+ @k+ YJ?kjT! @?q#T(Q( h@ h@h@ @Lh@ ! @?qCT(Q( 7@'@G@~A(@9yq#A(y"yZy&")yvF*/@}  hB@i"C  BhBML`hB@dnh@ABh@7@ h@h@ QAy)YW@) * Qy[6h@i@( h@ @ @) h@xy"zkjh@ i6*R 9(Rh:R#R `i@/B9i62/`j@`n/B9H(6 (606tZ@ Ch@qT`N@}EL`Nhڀ}nhN@)R `R@hڀ}:L`Rhڀ} n`N@`dLN`R@``LR@@`[L`b@`WLb`@@?qT(QMzJ! hZzXzc A9t!:?aT!zGh@Qi@(9h@Qi@(=h2@AkTRh2hB@i@(RKh@=h4}ӝK`aR<hBB9h(6h@ } r)i }K`aR</Z#%/9R@wCW;Rh@1h@=@o`@hAi@!}m6oࣀ=/Rnh@i@(h@?@(5v@/Rnh@~S(3hoˀ=h@i@(h@?@4@2h@hz@)qT@ @)2 i@!hBB907(@9qTJ J @9RR 4))@'# 1# #AiB@ R(rvr R(C9c )R"gL9H &6R)M@yRRRR*)?qC*@y+*_q QqqT)Rjk8 9RqTI@9?qT)@9)4 }~Kki8qT)@?qlTqTI@9)~Iki85 8R6R+LK(@9j @94q`TqTh@ (@9 y~AG(@9qTJ J @94*@ @ @)2 !G(@9 }~Kki8*qTq!Tnh@@*@  @)@ (Cӈjh8* % 7 qT!q T1q T?qT<4h~@55?qT? q@*@H*(*@9)K h@9( k @94_q`T_qT)@)@9) )y~  5?q!T(J I@9 J @9 4+@9k k~+ k@9k~Kkk8AqAT@l@ rTmFB9(74*@9J J~) )@9?AqIRJRI) *i*@9K i@9 k @94_q`T_qT@ (@9 y~!(Qw@(%7R?@h@4x5V5|4h~@5hFB9(7@ @)2 -?_;w7K 94_ARk;wARh;KARe;AGi@8@x R#  #  RA9RCjB@ vrR(r RH *C9#c )RgL9H 64R[945444?@@=@5@=@9@=@ @=@@=@!@=@%A(@9h7`@?@4!0"RARI?@h@@~} h@@  @AA@K@B= =h@ @I ) @ h@ @)y 7@@h@qaTJ9(5SAOATh@H5hBB9R jT?@@ @) 2  Rh@wA7@@4x_A@ @?@8)9)@)9@)  ) *4#A)9)@)9@ 2?r Ry| X6I @*9@9 6)@)@)=@9'77@@?8@ @_A@ @?@cA{A? !TwA)@) @ T@=@*@=@C*6kFB9k7wA=@9+(7 !0<R_qNT)?' MT hi8_q* BHT K@9qaTJ @9_qT J @946k@97!@=@%h@_A4wx?@@ =@B :!wA %AL@{AAkk k )R_q6h@9 wANJ{AA ?@@)=@(A@)=@(A  TA@)=@*@H(wA @) h@_A5@ @@ =@B 4h6k@9+6kFB97_A=@9(7 , ? @=@3h@ @9? _A+kAL@cAoAkk k +R_q6h@9 _AIcAoA ?@I@)=@(gAI@)=@( gA  ToAI@)=@* @H( _A @) f3h@ @)@9)?AqAT?@@=@ @i @i@A(@9h7`@]?@4!0"RhARVH?@h@@)} h@@  @AA@K@B= =h@ @I ) @ h@ @)y 臟@)=@(9@)=@ R %k@+=@)=@ %k @+5@)=@ %k@+9@)=@ %k@+-@)=@% @(1T@ @?r`T)2 @ =@*5@j)9@ @) 2 @ =@I5@II9@)@)@94 @) 2 hFB9h 7h@@ @)2 @(-A@(5@*1@_T(1h@(6h@ @)2 h@9@}}G?@h@Qh@6h@ @)2 h@Hh6h@ @)2 h@6@ @)2 h@( h@/7h7o77h@@ @)2 h@87(@77hV@ @) @(@ 5B9? rT @)2 h@ @9?q(T*RJ!ɚ _ `T L @9j @9L4?q`T?q!Tk@ h@ @)2 h@ @)2 h@(G6@ @)2 6@ @)2 hV@( R *~Kkk8qT7 @9 *k ky~J L@9 +~Kkk8qTl5R@*@H*(hA4@ @)2 h@h@q Ti@Qh(YhiN@ @)yjj6@  JB) K h@qLT`"[)|@kaT@!@%@)/?qT? qT? qA T @9 5 5RRG`f`^@hڀ~Nih@ qT *}@J~lKkik~ӌikmf@i*j^@Ii+  hTh^@i@(!hb@i@(%hf@i@() `ڀRGh@M1X)-@)@?TC {GOFWE_DgCoB#Am+l_֌}~Lkl8}qTJ@9_)qaTJ J @94 )@ 1X)-@)@?@Th M@y *J@9j4@J%B9J6qT*Qw@j%7?q`T?qaT )@ @9_qaT?q`T?qaT@9q!T?@@95RWRU@$/M R'@6Mi@ ˪RHJ-k&jk@qL.@l.M}@#@/MM MO{C @@?qT(Q`N@G`R@G`^@G`b@F{AO¨Fmu@?qT(Q_du#mog_W O {  -@@'?dAzT-{R7?q>TR9s":hb_uC@-!RBRcR@@@ @"@:T6R"@h@ ?-qTVB@y!raTȊ9&7RB@y.p7h@H6o@ib;@h@ ?-qaT(7h@ @Vh;@987z @|@B@yp7Ҽh;@987Rh@)7X6h @ 9@9i 6@@=@9 6abB R#RD  @hX6@0@9!q5Tx7@96 @ 9@9 6@@=@9H 7h7@96h @ 9@9 6@@=@9( 6RR#`BR^@@U@qTR @iz@?q#T(Q9Z?Tt9Z?Twh7@96u3h @ 9@9I 6@@=@9 6abBR#R[T@@96X6i @J @? T7_7H@_7@96h @ 1@9?!q@ R)4r qT@ @ @h?@9(7!h@ ? qTj@J%A? Th @ij85RX#@h?@9(6?@9h(7@CS@2RiY4@@ @) @) @H 2@9!q!T@ @)-@A@( @H@4 @)R 9@@( @@H@ qTI @ kkT?q)ş )ySkT@ @a{dE@ [ @h;@9H?6}h}EaRk6uhbH{99`TR@H{99T-Rx@@@(7  @_ kT?q)ş )yS?kT @!{+E @ @) @ R R kTY4ARR95 Ҫ @}{Ii( @)6 @( @B@yp79RB@yw6@9RB@yHw6@h@h֯6h@_7RD@0:H@ qTI @ kT?q)ş )ySkT@ @a{D@ [ @* @H@qkT "kQAyk @J @J@@ @M@  M@ K @ J @_K @kK )* @K? T@2@9)qTk @@h4;@9H07'@)-@)@?T{KOJWI_HgGoF#Em_#'@)-@)@?T9f@6PKg_WO{Ch9@3i@ h9 @) =(R*hR)Q_=qh T))#(M4+kUmij8 }8 9#6kj@9@?@({7#f @9h {EODWC_BgA_֕"zw@9( @?@z7`h@h@.qT h@ h@h@ R u3i h@R i@Rr( h6Ch@2hh@R hBhbTJ_WO{6@@h@R@ @~A) V*)*)qS)}) )! T <@9)Gӟ @T @9GөA) @ T @9GөA) @`T@9GөA) @T@9GөA) @T@9GөA) @ T@9GөA) @`T@9)L L! !AG} )N  T_ Tk !bT KAT n}Moo!NI oo$@ ///ocnB.n!.!T!NN N^ fT1l|oo!N  oooooo< o/2/1oo/onBn..c.nn!.)AT!NcN!NNBNN N^ f Tk7M J @8)K T C@H R R   R J)@? Tj87 8_k T R39R39 _kTm@ @N}@6@? @T,R@? T  ,R R9˨aR34 `z{COBWA_Ĩ_og_WO{C@@@I  *qH@qR8 * @9w @5 IFJy+ @Hi8rJRJ)%Y) )) (;Ch@ R  *i@4 R r *h[zR&xx77{4R8z777: 7z 7z(6 R8HR8@eh@K@*QAy 3*Qyy4IR 8)R yi @ i@( {EODWC_BgAoƨ_ R96@@%G} )&8ihI)#7ih!%fq%e5 R86hR8z6( R8:6R8'6R8/7og_WO{CG-@@@A:D@(7!R @@7}RC@ Rr* qT@@ARH{ hTG@CW)74 qATéI_8?q_bTV@9ߪq!T @8qTKk:`=<`<(@yh4)( ҈R(9h6@  @9_qT?yh6@(Bh:*_T RK9Jh6@ _cT K}S(yT 4%bRg]s@  ?@ R? ן_q`T_qaTR R'h6@~i)8"%C9u:@E(h6@~i)8h6@ R 9h6@ yh:h6@ +@9qHfT +@y4)+*JB+@9qeTJ+k @94+@5 @9 + @9 +4  h@*h rTi@i5i@i4q2h?A@TR y(Rh9G@(@2(kC w@Th@_kMTzt yh@*h r`TkC §T @9?qaTi@w@I4i? ]TJJ@9? )1)R h"R(h@_kLTh@))%J%rA"R|h@@M  h*Ah* ߪqTh@2hߪq84 Rh6@ ~JR i)8h@)A R ObSi6@ ~(i*8 p7A RRAbSi6@ ~(i*8Z)-@)@? oT1@onO.K@y΍Rn4RqC@`TqAYTRRq5hh"ARh"@ T@ B T @9?k T{@<!!L"Rh@@M  @ RC@@@? "T(@9qTh@kTh@q Tk Th&Dh"j@k.@ ki@ T  hu@!%E9w:@.'h6@~i)8h6@ h6@  h6@ R 9h6@ yh:h@hh@2hG@(@2(iC B^Tj@j4)?CT @9kjij8? )1)R h"R4'Ryn..ή@@o- @y1R R1 Rn..ή@@oM @mQ-эQ Rp@/RﭭrJ@y0mRJ*N5 RRe..mk@@oL/ O@@9 RΝRk@ rT 7{"hE94RRRRIRq(2kqk2k+RkkE94k@K7ҌRc8Rx96RRhRέ,.ή@@o- @y1R R1Rέ,.ή@@oM @mQ-эQRKR-7_ TRRRh@hhAhh@ *h{"(QqTa RRh (QqTh@hR Z)-@)@?!ZTC@T{TRR!Rh"@T@ 낰T 9 k!TxV@R~h* @ h7@jITha7@y @ 2xVRRRk@V@HP7qTR3aBR9F@ R *@)Rs qT@@AR> @KTh@+@k T)JaT @>@9 7 )A!_C TMhh""B AR`3RRRRHhh"Z)-@)@?ITG@#R{UOTWS_RgQoPncAR{@@rAT96 Rb{869hi6@?i(8R RR @7@ @) h@x8@ @) <Rj@HhR_ k Tj@) k-&?Rl@q  >Rz  ˟ 샎'+#!!dRI?h&@( i.@j"@H)h@jZ@+ Tj @_ I1 (hZHj@9KQqT,R!˚ AaT_qT Rh6@ ~*R i)8{@c!R@rT6RR@(Rh9G@@2RO R# 6= h"i@j.@k&@ Kj@ )T   TRC@6h $T   냎?q+ 7'= j&C)  (1ӁR' @4= R# 6= R# 6|=˭,.ˮN=@  J@J k j C@TR _KTk@R(rk Jl @yͩR Jk *K4JqAT`i@9?qATh "R*lџ!(TSC4K@H_hS@h"! RR*_!(TScR4O@ _{@S@! RRh"@h"4R{@ @*@9_aT RRO6c"R`a RRx?6h"@@9cB96G@(@2(qATT5 RRbc"R " 6cB96G@(@2(h"@@9p蛀 r0TG@ Z)-@)@?aT{UOTWS_RgQoP_qaTR`66h6@ L@9K)!%- @9i @9m4q`TqATj@?qaTh h"ARY@@R{@ R] 7 J@9 *J Jy~) (B7 R# 6}< R# 6x<]%C@ qTh@i.@k&@J + j@ T  j"i@9k.@l&@J l k@ T  j"i@9k.@l&@J l k@ T  E9i@h.@k&@J  h@ kT_ i$Tl # T  ˟ 샏?q/A!&h@u5 K R# 6$<h@i.@j.DJ + j@ T  oVT   k.@l&@J l k@ T  @ T  ˟ 샏?q/!! i"h@j.@k&@) K j@ IT  i@k.@l&@J l k@ T  i dT   냎q+( R!!d_ Tm  T  ˟ 샎?q/(%< 7';h@i (1fR' @4;5)Ri T   냎q+))8 7#; T  ˟ 샎?q+(: 7'; $T  ˟ 샎?q+(E; 7'{; dT  ˟ 샎?q/(; 7'j;7@l"h@i.@j&@ , j@ IT  j@) ˫k-&?Rl@q `J;h@i (1XR' @4?;i $T   냎q+))1 7#.; dT  ˟ 샎?q/( 9 7';LT n _ ꃎ?q#!!(h@j (1IWR' @4;MT o _ ꃏ?q3;!!7i@  (1 R' @4:hT@JIii8 1(Rj&@ i k"m.@j@  T   DT  ˿ 샏q/@k+!!/oh@j (1 eR' @4:j"C  (1ɇR' @4:Jj"i@k.@l&@J l k@ IT  i@  (1R' @4:i@  (1钁R' @4:i@  (1R' @4|:m@5.R T  ˟ 샎q+)) 9 7#f: (1]R' 0]:h@j (1 NR' @4R:i@  (1ɊR' @4G:h@i (1WR' @4<:h@i (1)XR' @41: (1 _R' 0(: (1[R' 0:`" @9-j@i.@k&@ + i@e T #T   D T  ˟ 샎?q/( 7'9i@ KTϦ@91o&@JNj"j.@Lj@+ 7 T \ T gh@j (13R' @49C@ @@?T  C@+@9k%T)J!Tj@k.@l&@) l k@ T  Pi@j.@k&@ Kj@ ) T  Q T  i@  (1R' @49h@)˪J-k&?kRIj@_ql@9,07+kU dT  ˟샏q+!! T  ˟샏q+!! T  ˟ 샎_q/Ph T   냎?q+( 7'S9i@j.@k&@ Kj@ IT  i@j  (1]R' @4=9 @9?qT i"h@j.@l&@) L j@ 5T  k@l.@m&@J ˍ l@"T j@ ˫k-&R?q,y  l. 9i@j  (1 _R' @49i@j  (1[R' @48m d T   냎_q'(99m $ T   냎_q'(:h T   냎?q+ 7'8  8+k#+ l.8i@  (1ɮR' @48i@  (1IR' @48h@j.@l&@) L j@ T  j@  (1сR' @48j&C)  (1ҁR' @48h@i.@j&@ + j@ T  i T   냎q+))) 7#m8h@j (1eR' @4b8h T   냎?q+!! i"h@j.@k&@) K j@ IT  i@ ˪J-k&jRhk@q, l.28 R# 6-8l@k.@m&@J m k@T h T   냎_q'7+8 T  ˿탏q3!?_j.@k&@k L k@ T  +'4 &5+R6i@  1IR'@47i@  1R'@47j&C)  1)ׁR'@47  7i@j.@k&@ Kj@ iT  h"i@j.@k&@ Kj@ Th Tj&C)  1؁R'@47 DT  ˟ 샎q+)) 7#7j&C)  1)R'@47i $T   냎q+!!&1 T  ˟ 샎q+))7#q7 T  ˿탏qC#!!+j&C)  1 ہR'@4W7i@  1ɭR'@4L7 T  ˟ 샎?q/!! jj"k.@l&@J l k@ T  h@h5*Rh T   냎?q+qRR(!!h@j 1́R'@47 1R'07h@j 1bR'@46h@j 1i4R'@46i@  1IR'@46i@  1iɁR'@46 DT  ˟ 샎?q/(i7'645+R ˟<Tik8 1l&@m  m"o.@l@ T  T?q 3!!'Pi@  1߁R'@46  T  ˟ 샎?q/( 7'6@k 4Tij8 j1k&@) , i"i.@j@,  Ti   T n ˟ 냎q+))7#_6j&C)  1iR'@4T6k.@l&@J l k@ T  /j.@k&@k L k@ T  6i@  1íR'@456i@  1 R'@4*6j"C  1IR'@46 T  ˟ 샎?q/(7'6 $T  ˟ 샎?q/(y7'5 ˟+$Tik8 1l&@m  m"o.@l@ T  T?q +#!!x/i@  1鹁R'@45i@  1R'@455*RBh@i.@j.DJ + j@ T  FlCi@h.@j&@  h@ T_ Tm i@  1iR'@45i@  1R'@45h@i.@j.DJ + j@ T  >_Tik8_ J1k&@j M j"j.@k@M  T  i T   냎q+))]7#b5 $T  ˿ 샎?q/(7'Q5_ Tm <i  T   냎q+))y7#;5j"C  1iR'@405i@  1IR'@4%5MT n _ ꃎ?q#(7'5MT n _ ꃎ?q#(7'5j"C  1R'@44 h@ 1R'@44h@ 1IR'@44  _  X @|B@**qS} !*_TT @9G_ @T  @9kGhA(_ @ T  @9kGhA(_ @`T  @9kGhA(_ @T  @9kGhA(_ @T  @9kGhA(_ @ T  @9kGhA(_ @`TJ@9J ! AkGkk} K T _ T)?!bTK?AT ,} ooN J oo@ ///ocnB.n!.J!T!NN N^f? T1*|ooN oooooop< o/2/1oo/onBn..c.nn!.AT!NcN!NNBNN N^f? Ti7 j@8J T_{C@9qT)!%(I( @9h4@@y (q{A_ R'64$SqT qT(@ @* @ JC)@9_ TRKr)J J6 @ yjT R R h}S*@J@_ *kQ   BT 1)}@) ) ) k T-@@̡ @C@9@"T @  zn?T  @ѿ T R_ R_R(@@ _O{-@@ @tj@@@?qcT(Qh*@H4h@92h9Rz[h*@5Ah4Rh9@)-@)@?T{BOA_sN0RhbT@9qT ) RT @8-yj-j@T *J_%T  _T L@8џ)#T T*@9 *J_%T bT, Rn@9.yn.jTkATl@9qaTo R@9T0yn0j T%hTT @8)#T T" T T/ Rq@9 Yq jTkAT?qT IK JqT-M R_R_H R_H`} R_O{C@9~)!%(ih8Iqa To<=(@ @l@@ @N RR)Rl@@ @*RnCӯ@9@˿T @ pym"T n k@kџT  Tj1 kTJ @Chm8+! * h-8_ kThi@)@(hi@)@(7h@@ 7 hi@)@(`@H3@"Ri`@ @( @)@9? HT@?qT(Q{AO¨_oZCWO{-@@?q TqT.q`TNqT4qTqTqT-qTq!T`@/R/Rq`Tq!T`@/R/R`@A%RB%R `@a%Rb%R`@sRsRd`wRwRd`])-@)@? T{HOGWFC_87*ѩ)i61R!T`@d`$ C@?qT`@d`@TT\yu?qCT`@d`&@.@"@H+@Z@h  -T@_q @ T  H   냎'+!1R2&@(.@"@H)@Z@+ T @_ I1 (ˈZL"@1R01&C)  1R'@41og_WO{CZZ9X@Y99X@H(@(&v h@9~)!%(ih8Iq TW"@ @ *C@9IT(J 6 @k jyj @+ы6?T+ H ykbTU$iC[{#`/@`RRRa&@h/@@ @ @@ R u3   @  @@ @ `@ @?qC#T(Qg@@@4w1_T@@ @)ix8?qT  @ @(;@987(@ @T|@,TR@Rj4!RR@@Rzj6_ T@@ @)ix8?qT  @ @(;@987(@ @T|@,TR@RWj4!RR@b @һ @@ w @  @@ @?-T@ @?qT(Q  @?T!R @@)R  @  @@ @?T @?TAR @@IR  @@?qT(Q U@@H(@(~# BѨ @y  @2!|5"R@@M  x{EODWC_BgAoƨ_8,_T@@ @)ix8?qT  @ @(;@987(@ @TT|@,TR!RR@Ri@6_T@@ @)ix8?qT  @ @(;@987(@ @T,|@,TR!RR(XO&Xi$X@ @)C@9?aT_() i7_ @H yi_og_WO { -@@'#@ @@@ @4)@ @Jii8_qT  @ @ @h@#@ @Th@@ @ Tv @4-R\ @@9qR$RR@ @H#@`Rd @?qT(Q ##@hh@ T @@ @ARLRR><R6?҄RRR@kv8%q`T)qT@qAHbR@6'!5LCR|Ldh"RCRpL@ @9?qTsT @8j?)qs@ @i) @#@_#@ @ R3dTARxe#@  !Rkd#@ !Red@@(* @*7)SR:R8)99) @|@(* @LC+@9*@ _ "T @+ M iyj bTL h @ TOOk BRLeu#@'@)-@)@?T{JOIWH_GgFoE_VI@)uS @x+.Co g _ WO{ )Gg @-@@ @(-U q/T7@ @? @ BR+?@@7 @) @i) =#= <ࣈ<;)R+i9T@/@(R7@9qhT(R!ӚI T@8Zh`7;*`TTARK#TTsRZh`67@ JT S }S ,@8kh  zl Jg7h@8Zh?)jTqTARKH[" T)q T`7a!KH7@T _8zi?)j Ta@#g@H)O@+@R0@9qT@9)qTARmK[h Q?1qTT S }S k@8JH  Zk Ig7@8Zh?)jTqTARMKT@TT"T)qT@Rb(4`7@h Q?1qTA%ii8J @;@"Rb|cT;@R e|CT;@Rb|#T ;@"Rd|T@ @@?T;@ RaZ)-@)@?`TKARJT@ @!!BRCRJK7@uS!x+z!@-"RCRJ;/@!!"RCRJ@g@*!x+z;@Z)-@)@?AT{POOWN_MgLoKC_ARcZ)-@)@?TqHARJT7@@ @7@@ @!!BRCR^Ja!HBRCRXJ 1iR'`h-_WO{`aRu@9h@9(*@)y+(ih8)R7!Th@9 i@ k!T_7kTh@9yqaT;d{COBWA_Ĩ_{C-@@D@8@zR_@@)-@)@?T{A_H@ @*_)qAT @=@?r R RIii_@?qT(Q_TO{C@ 0@9?)qAT @t@`?)qAT @@@?ր@@?q T(Q>@ @@?q T(Q>@@@?qc T(Q>@!@@(q T>@%@@(qi T>@4&h@i2@9?)qT @@]@ ]@@ @ R+0r_ jTR,#h@i2@9?)qT -B97^@  @ -B9i6Y@&h@i2@9?)qAT @ @)y ^@@?qT(QN@&"@&&@%*@%n@@?qCT(QR@ {AO¨%dT>@`TN@%"@ZTR@ {AO¨_TT>@@OTMT>@%@HT_WO{6@(0@9)qAT@su2@9` @h@ @H% h@ h@ h@Rr  ih6A%*q!TH9@u@ H9 @) -H9@si@ H9 @) RFB`U""@RRR R @"o` *BW""@RRR @"o h@ "A)]?qT(Q @ @i@( (Rj@I2iw@J_)qAT@@ R rJ I *i @i ==ABCDEFh7h@ N@h:@ R})$NN@ H>@R$>>@@ A B C >@ @( @( >@ @( @( >@ !@( @( >@%@ @) "@h:@}~~$""@:@}~G:@}~t$&&@:@}~G:@}~j$**@:@}~G>@>h@i2@9?)qAT @ @)y ^@ @) n@ @) R@:@}}G$R{COBWA_Ĩ_~*>@>h@i2@9?)q`T#SYC_WO{@ 0@9?)qAT @A@t @@q,T@qKTR {DOCWB_AC_SւjT @iv i6@?qT(Q @}${$h@ @?q T4еv% @o$џi T Qh@ @Jii8KQAq Tljk8  @@?qT(Q6} @@qaT @|F@zFh@ @vF`@ sF6} @@qT@hF @fF@dF@@aF@@^F@@[F@@XF"@VFh@ @RFRh@@$`@${DOCWB_AC$5*WO{@qT{BOAWè_@qTRrRhjTh @iu i5@?qT(Q` @#{BOAWè#WO{C-@@(A8@ @(@)1@9?)qAT @9@1TqT@)-@)@?T{EODWC_hR5R68s`TKR7:@KRRu @0@9%qT@@H}!E_WO{ @!MR rj2R rl@8 J}  T*Rr }Ki ̓Rl KR}!imxm4!HJ })i( 1@9@9 k!T@ybXF4R={COBWA_Ĩ_4 @yaJF`5@y={COBWA_Ĩ_O{C(9@3i@ (9 @) mC`T"2@RRR@2`h@h@ h@R i@Rr( h6"h@2hh@R  (A5sb ]T":(]1] .].` $]&@1]6 2]`]" =]`&] ] ]* ]  ]> `6]@=]2]Ss$`:` ]`` `]` ` `]`.h @h&` `]`6` @]`` ]`"` ]`` ]`` @ ]`` ]`*` ]`>` ]`` ]`2]Haz]H#t]Ha"!n]H@h]H!Ss2a](3@3[]H!V]H@ 4P]HA J]HAD]H">]H!``8]H!'=2]HA'`.,]Ha! &]H ]H@4]H&`@&]H&]H&2]H& %]H' \H! -\Ha' 3\H'*\H'{AO¨__WO{ @!MR rj2R rl@8 J}  T*Rr }Ki ̓Rl KR}!imxm4!HJ })i( 1@9@9 k!T@ybD4R={COBWA_Ĩ_4 @yaD`5@y={COBWA_Ĩ_֨:`\!`_֨:y`_{C#F(O{C4B9@ @RARү @  L)@ @)y @@ @))A6*@+k6l@J ,Ќ!9JC@@ @j @k @K -Э6 @k @J *{AO¨_{(A9 @) @*@+kA6l@-Э6@.!9C@@ L @M@ @ /6M@ @ l {_'WO{!%I!@98@6@~i)86@ 96@ y:{BOAWè_{C4@H +@9q(TJ!%KI+k @94+@5+@y4)++aB+@9qiT R#6'  @9J!%I * @9Ij4  ?A@TRR y{A_ y R{A__WO{!%I!@98@6@~i)86@ 6@ 96@ y:{COBWA_Ĩ_( D)_ T @4)?+T @9kjij8? )1  R_)R  R   RoWO{DcT?R@RBHRj5xCg$ @-U qT@ @@"T BR#\cT@R@RA*x+'_WO{!%I!@98@H6@~i)86@ 6@  6@ 96@ y:{COBWA_Ĩ_Cg_WO{DAR@q!TT @9)+yj R_+jT  l@8,yl_,j`T T  9_ k T!L"Rh@@M  @ R(Rh~h@ R %SK R, R R_q_qjr7y@!% 7@9v:@ i6@~?i(8i6@)8i6@)9 i6@)79i6@)?yi:i@4 kTi6@*R*i(8@2iC Tj@j4)?T @9kjij8? )1)R h"R {HOGWF_EgDC_ i@j.@k&@ Kj@ T  h T   냎?q+!j&C)  1)kR'@4<&WO{R mC? " T(@9qT!%5F9t:@f h6@~i)8h6@ h6@ j R 9h6@ yh:iC Tj@j4)?T @9kjij8? )1h@hh@*hhAh{FOEWD_)R h"Rj {FOEWD_ h@j.@k&@) K j@ T  i T   냎q+!Pzh@ 1 yR'@4%WO{R1 mC? Th@h(@9qaT!%C9u:@ h6@~i)8h6@ R 9h6@ yh:iC Tj@ 4)?KT @9kjij8? )1h@*hhAh{FOEWD_)R h"R {FOEWD_ h@j.@k&@) K j@ T  i T   냎q+!Ph@ 1rR'@4H%_WO{C@ T(9@@97h@h4)T9H@7)(yh7@9)(yh R)r?(jT _ qT? T@9*_qT) 3(@)(yh7p 4h@4ւbC @9ji8 ?a""T @zi 7*(9h6 y?1TI? + T)@9*_qT e3)@zi7Rl4bC(@9@jh8!?a"T hC)J+Ri"?T,@8Lyl,j@ThB@K}@h@ R RqBPqT `V@`RRRwp`@h@q*Th{GOFWE_D_R#RR#Rh&Dh"j@k.@ ki@ T  h T   냎_q' 7+$j&C)  1=R'@4z$!w$h@i.@j.DJ + j@ T  i T   냎q+ )%"7#[$j"C  1)@R'@4P$o g _WO{C-@@"%b43;hE9y:@7~34FE9v h6@i78h6@h6@ h6@ R 9h6@y(h:h6@iAy)Q yȆB9Z h6@i78h6@h6@ R 9h6@yh:h6@iAy)Q ytRy R_ ';臀 r{Tr 6hC?bmT(@9qmTqlT|@z:@@ {h@s)`"@ 9(@?qlT?qT?q!YTi@ B Tj@* 4)?kVTJHih8?(1Y?q T?qVTa@#6`V4+K@SJO@yoTo@TnG@h"i@ D#TYi@ BTj@*4)?kPTJHih8?(11i@ Tj@4)?NTJHih8?(1-oATG@h"i@ DBTj@*4)?kLT @9kjij8? )1 (Rh"R :R\(Rh"R RR(Rh"R R<RH)R h"R o@kkJTkaT@ @9?qTi&@hj.@  i@jZ@h  mTj@_ql @ T  p   냎'R+R!t&h$h&@Hi.@j"@H h@jZ@+ Tj @_ I1 (hZ@(RjT*qT*kTh@2h7_ 6hz@%qTq   hzR hURHUrkTh&@h\i.@l"@+i@jZ@h  Tj@_q3m @ T  q T0_q3T45h@P7R hz@%qlThzH\   냏'+3R! (#h&@(i.@j"@H)h@jZ@+ Tj @_ I1 (hZ_qZ<R7FD9t:@ h6@~i)8h6@ R 9h6@ yh:h6@i)8h6@ K@9qFTJ+k @94K@5 K@y 4J+I)BK@9qiT( @9 J @9 4 hE94a RK RG h6@ iR yaR? hE94h6@ R yC9t:@ h6@~i)8h6@ R 9h6@ yh:h6@ K@9q>TJ+k @94K@5 K@y 4J+I)BK@9qiT @9 J @9 ˪ 4 h2@h2hz@%qTyShzi6@h~?i(8i6@):i6@)< +O) kTi6@)?yi6@(yi6@)*yiQj6@H y@ @9?q T?qTi@ "Tj@ 4)?kTJJ@9? )1 i@ Tj@4)?TJJ@9? )1<?A@T yhE9H5}?A@*T yh2@h2hz@%qmT)R h"RA a Rh6@ K@9qH.TJ+k @94K@5 K@y 4J+I)BK@9qiTcj @9 k @9I 4)R h"R @9t:@h6@~i)8h6@ *R 9h6@ yh:h6@ K@9qh'TJ+k @94K@5 K@y 4J+I)BK@9qiT, @9 J @9 j4 ?A@T y RMC9t:@h6@~i)8h6@ R 9h6@ yh:h6@ K@9q TJ+k @94K@5 K@y 4J+I)BK@9qiT @9 J @9 5?A@kTR y(Rh92'7Rhz@%q,T hz&hz@%qT1 R zҫҳһ  y@@9q!T@Q @@9qT Q? q&TqT1 @@9qTa@n4&a Rh&@*i.@j"@H*i@kZ@H  Tk@ql @_ T  h)  _ ꃎ/#7R!$"h&@(i.@j"@H)h@jZ@+ Tj @_ I1 (hZ6F9i6@) (y3@h3(R @(*;@(hz@%qlThzh6@;@ *@9_qHTJ*J @94*@5 *@y*4)**JB;*@9_qITz;@ @9 * @9i j4 ?A@JT y_@_;@3@_@q T C9t:@h6@~i)8h6@ R 9h6@ yh:3@_@q!T@(*r TZ)-@)@? T{QOPWO_NgMoL_R y(Rh9R R#6B h&Dh"j@k.@ ki@ T  h T   냎_q')7+$ j&C)  1uR'@4  R#6 j@) ˫R?ik-&l@q# :@ 1dR'0 1aR'0i@ ˊJ-k&jRh @l@q"j&C)  1dR'@4@h"i@j.@k&@ Kj@ T  h T   냎?q+)7'j&C)  1sR'@4j&C)  1aR'@4@ 1`R'0j&C)  1`R'@4# mo g _ W O{h-@@/ @8  qT(q2h rT?9996@59v@(@q2h(RhhE94h@h7҈@2Yi)-@)@?mT C'iC4".@`RRR@.@@ @ @@ R u3 :Z*H@@;{7h@몂T<c7@y @ 28@i@(@.@`RRR@.@@ @ @@ R u3  H@@h@*}T@y @ 2D_?"T RrG+?"RYhC?T:@9TQnq#T&ytxJ @!$R667'@G@#RR%R&RRt@ш @ ( @ @_sqT_q!T@ @)@/@ {T/@ Tl_wqTqJT_q%T_q@T@/@sT/@hsTR`r@5@9r7/@h%T`{_ `RL@ @K@6)H kT@@qT AR qTRJ)Iytx uRQqTRk+jyhx) wR8kT;h7@9v704@9(v7q Tq`Tyq@TqT;qTqT;@RSa @?qBT];@"RAUa @?q"TT;@RR;@R2UF"R.U7@@?qT(Q3@@?qT(Qa @?qBT5;@RUa @?qT(Qh @?qCT(Q;@@%A?T@9UR5RRWR7RREE3@@?qbTEa @?qTE'@G@#RRR&RRT@ш R@ @~@/@T*j@4kkiz8) ?%TiC)  BT@8?qT 9|R9t:@u"hF@hFAR'@G@D@ rNTh6@ @9?qTi:@J!%JF9 J? TA@>T?+@A @?q+T(QH hF@hFt:R@ @~@/@jT@R+@!@ @ @6)H kT@@+@@ _8?uqT9#@%A?T@ @ ( @%A?T@ @ ( +@ @ R r qTH@@8`Ӛ@/@_+@+TRi@ @H@6)H kT@@h"@h"'@G@RR%R&RR;>t R@ @~@/@*Tm+R) ?T ARv/A @?q#T(QH /@H/?4@9C74R+@@ @~@/@ TRU@ @@7~`/@ T5)H kT@@AR:T?@qaBTS@?q#T(Q@ @~@/@TR,@ @G7 D@ @~@/@JT~`T/@ aTqRT/@ mT` `R@Q@5@9P6?@@%A?TB@ @ ( h@i"@h4(@9JJih8h@) ?i"T*Rh@) ?i"TARATK@?qcT(Q R"@%A?T@ @ ( ARaOTh@ @@7/@_NT``RM@5@9hM6/@_c@%A?T@ @ ( (҈`/D/@H8CC_wqa$ThC_"8T +@8q+@A7T @) @8@ @h.. @!q,T@ @h,hF@(h"@h"!%F9w:@:h6@~i)8h6@ Ah6@ R 9h6@ yh:iC #TYi)-@)@?T{OONWM_LgKoJ#Im_j@4)?T @9kjij8? )1.@`@`-P @(* @9Z #h @(* @*KC,@9*@k _ bT @, M yj "TK  @?T?!Th @(* @* t@@ R r)  qT@ @? @BR/?@'@ H)_qu@hh&@h@yhRR%RRi*@h&u @?q T(Q ?@ @?q T(Q 6h@2h_qTh@q2hh6@~ R 9h6@ ii8J2 i)8V)R h"RYi)-@)@?@T6(@ r,T)Yi)-@)@?T@ r@+TҩYi)-@)@?@T@ r)T҉Yi)-@)@?TB?@ @?qTB7 h&Dh"j@k.@ ki@ T  h $T   냎_q'!(j@k.@l&@) l k@ T  j&C)  1)[R'@4+@(@(( T  ˟ 샎_q/7+@?q#2T(Qh@i.@j.DJ + j@ iT  ; @?qc0T(Q h@i.@j.DJ + j@ T  i T   냎q+) /7#j"C  1)rR'@4uj@  1)oR'@4ji T   냎q+!( i i@k.@l&@J l k@ T  i@k.@l&@J l k@ T   T  ˟ 샎?q/M7'2j"C  1jR'@4' T  ˟ 샎?q/ 97'i@  1IpR'@4 ?@@?qT(Qh@i.@j.DJ + j@ )T  i@  1pR'@4k.@l&@) l k@ iT  Ci T   냎q+)]/7#h&Dh"j@k.@ ki@ )T  Aj@) kk-l&?R}@l@qh"i@j.@k&@ Kj@ )T  1 T  ˟ 샎_q/ 7+j"C  1mR'@4h T   냎_q'E7+xh $T   냎?q+7'gj@  1gR'@4\j&C)  1iER'@4Qh@i.@j.DJ + j@ T  j&C)  1iPR'@4;i $T   냎q+)/7#* j"C  1)BR'@4@q@~@_WO{!%I!@9LhF*j:j@7jN@j@_qKTkR@l@Tjj@_ q+T*RJkҀ_ jTkN@lyjTkR@lyjTly*kR@lyjTly* kv@k kkvk6@` _)T) I_ i6@ _hTD8h6@~ 9h6@ y~{COBWA_Ĩ3CO{@@@@~`h@Ah@h6KT~Ӊi:@ ~{DOCC3{DOCC_Ki@ jJ-kk&jRhk@q.l.{b4& Ci7 @)@J _ kT*@9_qT*@9_qT* @9_qAT)* @_ T) )K_8qTI ) @J _ T{C_*@) @  T    @T @  kTK@9qTK@9qTK @9qATJK @ T* Jl_8qTj * @  T_ BT .Rm- @  Tm@9%T.RqT@4.im8  TqT q`Tq!Tl@9qTl @9nR9qTqTq@TqAT  T n@8)qAT l@9qTNR @k2 qT @ ˪RHjJ-kk&j @q]l.#mog_WO{ Ri)-@)@??DX|@9?qaTh@"Ti@ 4+T@9 1(Rh"R%ARP?A( 6iC T )Q?aqhDTJy-Lyixk `!6Ҩ@2h@hh@Ti@4˥T@9ki8 1wh@"Ti@4kT@9 1h@bTi@I4+T@9 1v"fE9R$RR'R`@ @9?uqTi@ BTj@ 4)?TwA9 @9q9T:R)A0+yhxJ @v"fE9#RRR'Rd )7@ш iR @(*  rTҩ()6h@#C@4@_@+qcTi@?kmT(Rh"R{u:@h@97!%%@99h6@~i)8h6@ JR7!%5@9,h6@~i)8h6@ jR*(Rh"RWh"@@94h@hu:@h@97!%E@9h6@~i)8h6@ R !%U@9h6@~i)8h6@ R 9h6@ yh:e (Rh"R&h@v:@rR)R( R7)!%(ih8h6@~i)8h6@ 9h6@ yh:@2hz@%q̧Thz; @)@9)?qa!T@ @8)?)Ti@ kTi@?qkgTi@ kTi^@8x7i@ kTi@?q T kTi@j.@k&@ Kj@ Th Tj&C)  1R'@4Nh(Rh~h@) R %S R RM R_q_qjr(c@%h@4kTh6@ ~*R i)8@h6@ @9)qaT(Rh9@2 ,@8qTTx@ˡRc2\ i) R @8,yk_,jTq@9%RT R @2 hA5h@ha Rh@2h h@7R h@2hu  h"eE9)7@9/7hR|@h@hh@2hR'3w@?bT @9qT9R2`'Sm@9h ym R*jT M@8ym.j`TT _8yo/j TH TQAqHT4ylx T Tk@xlLR kT9R RhR/q3|'qBT#qaT(Rh9 h@qRh@qRh@h h@?Th@9h7Rh@qR)R(x:@ch6@ ~i)8h6@ )R 9h6@@ yiFh:@(  @9?q`T?qaT!i"jbh" h hB[S R`R(B y==)BR h"@i@) ?qHR')(RG *@*W@a@?@3IeTw(R(@9 Q?eqT4yixJ @։@? TiE9I4s@)@ g@J@) ) ,k@*@o@+@ ? mTk@q[@@ T  8hE95S@?IT(8  eT(_8qq`TM@g@)@( k@ @k@H  Tk@q[@@_ T  g (@9qH@Tkq7jyhx) ( @9%HYT#C.4@ _Ӊi@?kWThRH RK@C#dRRR@@#E9T06@9%(TTRS4s@@(g@)@ k@)@ o@)@ QTc@h@qRRh@qi.@@k&@J I +j@ JT  Th@?T(8  e T6  _ ꃎ/#7R!>s@@H&   ˟ 샏+/R!Xs@@g@)@@H +M@J@+ MT[@J@_ I1 (o@(@9(7@9R@a@BT@9q`T<R Q? qCTqTRҊ\4Ch@7h@4@? T)R@I K T @qT?T(T? T?$T 4(RhR^i@4kiih8a@RJ%ɚHi )D9? q#T A" T l@8il8 z A) )D9?qhT2?Thya64h@( 7 q(RiR(P*dӪG)jRI K)R)} )} S@I K QT@?T4@p@藟@8~AI5I) TAq TR?p TӃR? T~AqT<C#DRT@ T%S Q q(h@4@?TW@ hHT()i(1@ W@ (GT@};T z?M>T@>Ti)1)ih8jJ5Jih8? k@* i@y? r=T=Ti)9(ih8h@ A)?q @RIzHRR#@@*W@_ AT@ wRI@  *@ܿ6/ ?(T?T?CT?T?T?T?CT? T? T?pT?tCT?T?T҃(ThӃR?TӃR?TӃR?#T_(#T(%(Ta!@}GA@TAq@T( h"eE9&6@AHqRZ@ *7hRRR"{Ti))yh R_)jT@  eT( @9qTs@@~g@)@( k@ @o@ @h  Tj@_q[@@ IT  eE9h@qcSR n6@AM)@ig@J@@i L k@*@@ ? TAk@q[@@ T ( 9OcS`m6OD9@ @A MJ@ g@k@) l k@*@@ ? M TAk@q[@@ T} eE9h@qcSRbh6@AH M)@g@J@@i L k@*@@ ? TAk@q[@@ T  HR(RR( i T   냎+#R!7s@@g@)@@H +M@J@+ MT[@J@_ I1 (o@(A@Ti@i4_s@@g@)@@H(+M)@J@  MT`0$/ a!0$ /!/aRs@@g@)@@H,k@ @o@ @  T@k@q[@@ T  kH   냎'+R!=s@@(u  ˟ 샏+/!7As@@g@)@@H)3M@@+ mT[@J@_ I1 (ˈR@I K iTXA)?qT W@ h T@hnR$xHR(RRF7@)_8)y?MqT@ )Ri@y? rT  ?iH182)R@ȝ  ˟ 샏'/ Rs@@Ȣg@)@@H)+M@J@+ mT[@J@_ I1 (o@((RRi@(%SqA` TjQJ_ q Thi6@@) )@9J!%I :@9qT)!%(B9)B9j:@ ˈ h:CK@ R+҈R(i@)) c@I I 1( T4@Th6@@ IR 9h6@@ yh6@@ @9?q`T?qaT!KC!-@HR(wS+R+w3c@@H`R6q@)R WqT@!R! G7R 3@W TG@w3@GK@h@4@h@ qHRR#CG@`@@9jJIii8 T Rc@}aTi@) ?q ThnRG@(%xw@Tw@@9  (N8N=!n!(a!p.)&B7R  ?!q BT. < A7 &iA7 RQqqGT<yhxJ @w@@9 y?q`?T RQ!q(ET*RH!*(R(;/G@@W@hTG@@W@Hw@) 3@Hy)h@h4a@CW@w@DR@HG@9i)(ih8WW@@9}Tw@hnR(%xi)9(ih8w@(8GW@W@7@ 9W@?G@ HT7@/@(W@ @: 7}H @G@<#F}0 3HGTi)9(ih8G@(8Gw@(Tw@ @9(yq`TqT@@9i))yh R_)j Tw@w(R Tw@@9  (N8N=!n!(a!p.)&-7R  ?!q -T. < ,7 &i,7 RQqq2T;yhxJ @w@@9q@)TqTw@ @9 R qATK Tw@@9  (N8N=!n!(a!p.)&'7R  ?!q'T. < &7 &I&7 RQAq+TI;yhxJ @w@@9q!T"}qTh@ q T@?Th9 ii8RG@I8IR* _!qT)qTjR) ?MqTQqTeqTR:Tw@ @9(yq`Tq TR* _!qT)q`TjR) ?MqTQqTeq!T Rw@@9Q5q"T*RH!*"R  Rw@@9Qeq!T*RH!*R @r jTw@@9qTRinRG@I%xGw@G@I ? mTw@)@9)y?qT?MqTw@)@9))MQ?qT*RI!ɚ?aTyTw@)@9)y?qTw@)@9)y)Q?q T*RI!* R? j Tw@(@ 멟TG@)? T @9)y?MqT?qaT @9)y)Q?q*RI!* R) $@z T  ? T @9)y?MqT?qT @9)y)Q?q*RI!* R) $@zT   @9))MQ?q*RI!ɚ)$@T   @9))MQ?q*RI!ɚ)$@T  @ T G@J _ T)@9)y?qT @9)y?qT @9)%Q?qT*RI!ɚ**? T) w@@? Tw@)G@J _ T)@9)y?qaTw@)@9)y?qTw@)@9)%Q?q(T*RI!ɚ**? `T({ȏ4w@w@@9 y?q T y?qTqAT w@ @9q y RJzR$HzT@@9i)(yh R?(jaTw@@ Tw@) )@9)?qwTI@_ T)Rw@@_ iTa@h@ qHRR$C~ R@)Rw@w@J@9JyJQ_q+Rj!+ RJ D@z@T)Rw@ Tw@@_ )T w@  k@9kqT  (TJ ITjw@ _KTw@J@9KykQaqTα ik8 JQ_qqH;Tyjxk `w@J@9Kyq"T_q%T_q 6T_q!9T*_ATw@J@9KykQaqT)?ik8 JQ_qq6T?yjxk `w@J@9Kyq+T_q@,T_q(T_q4T]_KTw@J@9KykQaqT>ik8 JQ_Aq2Ti>yjxk `w@J@9_qA1Tw@J @9KMQqT,R!˚T_q/Tw@J @9_qTz_ a Tw@J@9KykQaqTΡ=ik8 w@J@9_1q-Tw@J @9_)qTcw@J@9_)q+Tw@J @9_qTZw@J@9_1q*Tw@J @9_qTQw@J@9_1q)Tw@J @9_qTHw@J@9_1q(Tw@J @9_1q`T?w@J@9KMQqT,R!˚!T_q&Tw@J @9_q`T/w@J@9_1qa%Tw@J @9_!q@T&_ $Tw@J@9Jy_MqT_q#Tw@J@9JyJQ_q"T+Rj!+ R_ jTw@J@9_qT_qT_q!!Tw@J @9_Yq`Tw@J@9JJMQ_qT+Rj!ʚ_Tw@J@9JQ_5qTij8k `w@J @9_5qT_1qTw@J @9_MqATw@J@9_q T_qTw@J @9 RJ _q` T_)qT_qATw@J@9_qTw@J @9JJMQ_qiTw@J@9_qaTw@J @9RJ _9qTw@J @9_9qTw@J@9JQ_5qHTy ij8k `w@J@9_qT_qTw@J @9 RJ _qTqw@J @9_9q Tw@J @9*w@J @9_UqTw@J @9_q`Tw@J @9_UqaTw@J @9JQ_EqT+Rj!+(RKr_ jaTw@J @9KqTKyq`T_qTw@J @9_9q!Tw@J@9_qTlw@J@9Kyq@T_qT_qTw@J @9_5qT^w@J@9JQ_5q( T>ij8k `w@J @9_1q T/w@J @9_9qA T w@J @9_9qT_5qaTw@J @9_ q@T>w@J @9_qT9w@J @9KqTKyq`T_qTw@J @9_9qaTw@J@9_q@T&w@J @9_5qT_1qTw@J @9_MqTw@J @9_5qT_1qTw@J @9_!q!Tw@J@9_5q T_1qaTw@J@9J_q Tw@J@9_ qTw@@_ T_+T @9Kyq`T_=qT_9q! T @9_qT_q T_q@TQ_ T @9Jy_qa T @9Jy_qT @9Jy_1q+ RDKz!T@ IT @ J@9J_qT  (T) iTI @9_%q@T_qT @9_1qT @9_MqaT @9_5qT @9_ qaT @9_9qT @9_qT @9_1q!T @9_!qT @9_5qT_1q!T @9J_qT @9_ q TI76w@H@9i)(ih8HW@ 4@ 3@)yh 4 3@@K@`ReK@ K@`R`h@hh@h7ARh6@ ~*R i)8R@2 (Rhq`"h@#C@q_@!T@qTi) R @8+yk_+jTT  k}T44i@8Kq T kJT R6aRdVi@?kTi@?q Ti@?ksTi^@ ~8ij i@9?qiR+Ijk8%)Ti@(?uT @9qTq`TqtTqT*@9i)+yj R_+jTl@8,yl_,jTRRRqC(@8)Ti"h@j.@k&@) K j@ )T  9 xTk@9qAxTyR wTk@9qawTYR vTk@9qvTR rT) 4/q|Tj&@ʽk.@ J Mk@lZ@ _ TlЌ%n%? qi@?qn @IT sJ2j*RjjE9j4j@*7Ҩ@2XR.@07Hr.7j   ˿탑/'#!4R h&@Hi.@j"@H h@jZ@+ Tj @_ I1 (hZXR|_qh6@ ~i)8@ ?AT @8?qTa@h"@`6i@ b#Tj@*4)?T @9kj8? )1)R h"R  MoҞh"i@j.@k&@ Kj@ )T   h"i@j.@k&@ Kj@ T  h $T   냎?q+-7'! h dT   냎?q+!67' j&C)  1ɂR'@4 j&C)  1R'@4 @K@ W@4Z3@XBc@.AHqTqwTh@ @?r)RjRIjRqJYh6@@ R 9@h"@rHRR*wIh@96#S) *h7HqTqT@h6JR4@@E>ATR+Hq TqwTwqT@h6*Rh6@@ @9?q`T?qaT!@6@9yRMq@T@zMRJ(Rh9RHq@?jR h6@@ 9h6@@ @9?q`T?q!Th:@h:h@(4h6@@ @9?q`T?qaT! 9h:@h:h@(5(R@9jh8@)2)(@ *@XR`"@@9q!Th6@@ @9 q`Ta@ҳ7hE95h&@Hi.@j"@H i@kZ@H  -Tk@ql @_ T  h%  _ ꃎ/#7!>Rb h&@Hi.@j"@H h@jZ@+ Tj @_ I1 (hZ@YI)-@)@?T {FOEWD_CgBoA#l_*RwlAj#Rfi@h.@j&@  j@ T  h $ T   냎?q+-7'}@j@) ˫R?iKk-L&l@q,h&Dh"j@k.@ ki@ T  P@ 1 R'0i@g@J@s@k@ K[@ @k@ @ ) T  av"i@h.@j&@  j@ T  f)h@g@J@s@k@) K [@,@k@*@ T  ej&C)  1 ɂR'@4j( 1BR'0ah T   냎_q'!67+Pj@) ˫R?iKk-L&l@q c( 1ICR'06h T   냎?q+7'%h T   냎?q+i,7'i  T   냎q+)!67#j&C)  1R'@4j&C)  1 R'@4j@ ˫RhKk-LЌ&l@q (+j&C)  1ɴR'@4j&C)  1iłR'@4h@* 1)BR'@4i@*  1BR'@4h@* 1ICR'@4Si@j.@k&@ Kj@ T  h T   냎?q+:7'j&C)  1R'@4y j"h@k.@l&@J l k@ T  h*D @9,i@k.@ jh@%T_ .Tl wi@h.@j&@*  j@ T   h"i@j.@k&@ Kj@ T   h"i@j.@k&@ Kj@ T  i@ JJ-Kk&jRhk@Pj"k@i.@l&@L - l@T @@j@g@k@s@@) l [@-@k@+@ hT Tj"C  1I2R'@4@h@h5*R@@j@g@k@s@@) l [@-@k@+@ T  [@@k@)@ JJ-Kk&jRhk@qM<l. 1R'0h@i.@j.DJ + j@ IT  _ Tl h DT   냎?q+07'h@i.@j&@j + j@ T   i"h@j.@k&@) K j@ T  h dT   냎?q+u/7'hh T   냎?q+e.7'W T  ˿탐qJ3!3#j@J _@T+@9Lik8_ J1s@k@) * ˉ@g@m@[@l@k@k@  iT   T  ˟ 샏_q/7+ $T  ˿ 샏q/7# h@) 1R'@4h"i@j.@k&@ Kj@ )T  h@i.@j.DJ + j@ T  LdT n _ ꃎ?q#:7'i T   냎q+)E:7#LT n _ ꃎ?q#5;7'j&C)  1ӂR'@4i T   냎q+!t0@mi DT   냎q+@}@!1]j&C)  1 тR'@4j&C)  1΂R'@4wh@ 1iނR'@4lj"C  1/R'@4ai"C  15R'@4Vj"C  1R'@4@h dT   냎?q+9:!8i T   냎q+);7#i"C  1R'@4j"C  1)R'@4i"C  1R'@4h@ 1)؂R'@4h@ 1قR'@4 1 R'0j"C  12R'@4j"C  1I6R'@4j"C  1i0R'@4i T   냎q+)Q87#j&C)  1iR'@4j"C  1R'@4h@  1iR'@4[@@k@)@ JJ-Kk&jRhk@qy<l.sh@ 1 R'@4h@ 1FR'0_j&C)  1FR'@4T[@)@k@J@) Kk-LЌ&?Rl@q> O{H-@@Ѣ4]w2hT^I)-@)@?AT{FOE_ֈ@9qT^h"i@j.@k&@ Kj@ IT  *^h"i@j.@k&@ Kj@ T  h T   냎?q+w2!j&C)  1 TRh T   냎?q+7'j&C)  1)SR'@4og_WO{CC) @H-@@ݗRջr43@w(Rh@9S29@)%.!@ @)!.IT _)9?9hT1@9(7(DOC0Rh@ S @ @ @y  A6hC?T JJ R,@9Lyl,jT!!)!T:@9_{qT!a"hz@%qlThzAh4h@?T JJ R,@9Lyl,jT!!)!T)R_{q !@:@9_{qT_{qW (R_{qW (@9Qq)R(!Ț)) @ T$R1+ T@R7h&@ i.@QH+i@jZ@h  mTj"@J9_qRDLzMM-1l@qn @T (Ri   냐'3+!R:h&@(i.@QH)h@jZ@+ Tj @_ I1 (hZ @o6hC@ @W_R@9uqT R)o@)oݗRջrQ 1 R'0j&C)  1 RPA(@ @(@Q iT3%AH6hCT JJ R @9Lyl,jT )!T @@"T@9uq@"TU{_@)i@4h86a@@jJKih8R)%˚)H D9 q T BT @8Nim8-z A(HD9qT? @!?mT@qR7P@ @HQ)@ T) @ HT @;@h3@5i&@ j.@i L j@kZ@ ? &Tk@q}@m @ !T  5h'5!?m T/1T @h@%Sq ]z#Tџ R@(%H6R4@y)@yXѣDRҍ @U @!?m@T(ѪQ T*_HT+Rj!ʚ++_ T@?q#$RR@RA *7?THyix7?qaTh@i@?b:T*9\46I@jJKii8R%˚ I )D9? q#!T,7T @8Nim8z A)I )D9?qTRR_ITi@h.@j&@*  j@ ;T  (R!  *@2)@2!@"S)"!Yhё8R @RD6 @@?q_T(QP(@ @h$@_@W@o@:'ARRo-hC'h@{H@ @qT}@6R":bXsRo@-T(`4H @  @?`@" T7"RCRA @`@b T"RCRA @`@baT;;1  ˟ 샏+@/#!RXh&@(i.@j"@H)h@jZ@+ Tj @_ I1 (hZRRR3@3 h@%Sq ]ziTzqT(RqATҭ"Sq$NzTJ"k$S qhYiCR"SjRyq()"!Yh 4r#ѪC`@"Yi5(R@hh@O@&TC@@9A!p"RCRnq!+TA!,5h@y'h@%6 qѩ4a!@R7@ @? @IK @!VւY95@ @IK @@W@k kCL@9J@k _ T @ M-yj "TK + )@:ѿiTTTzuW 6h@%SqaT TT5!ku8TR2Ah@ quSѢ#ѢcѴ;R@2C;{CThq TqaTViQI)@h@%SqaT?T?hTqT)y?T qTR2R2@!ku826HTh@ qT?1qT?q@T1_@OO@{@ѣDR҄ @U!@;;'A( qTI))y| R_)jTRiC_ TQ!q7TR)9+yhxJ @@qhRH R(` ѢdRRRU(@7 T@( 5Y806|@BT@9%ȨTR$`4h&@Ri.@ i@ iZ@ Th@qRRh@qi.@j.DJ I +j@ iT  A!p@{@"RCR]'(@@?q$T(Q_@@RR04! @?q!T(Q( SRR$4S@?q T(Q{R@{@@ @(@CR.4iC @Ta!x"RCR"_@_@@a! "RCRw.@-U qT@ @ @BR @ `&`"(R@#h&!R@i R @(*|.@hr|n&A @?qT(QH T@?qT(QR@?qT(QS@?qT(QT@?qT(QS@?qT(Q9! @?q#T(Q( ks) Si@y? r`T-R -R3T@?qCT(QS!,h@7h@ r)Tw@Ti9?!TRi@H R )+@8 yk_,j`TyqAT{Ҫ R )+@8 yk_+j`TT;+ R kkk8 yk,+ Kl43TH'A@E5 RS@0RN3S@?qT(QRwRiR_hh"a@h@qѣs@P`6(i&@j.@k"@i L j@kZ@ ? TAk@qm @ Tixj"C  1iR`RR)Rѣ_@@@\)R!6RRR`9os6oD9(@ )Prj&@Jrk.@) k j@lZ@i ? MqTAl@qm @ lT  dR({TRI))y|*R_)jazT zT@ 5i&@!j.@i K j@lZ@i ? xTh@ql @ sT  wRRIR;RR_hh"a@h@qѣs@P6hoi&@)oj.@k"@i L j@kZ@ ? nTAk@qm @ fT  4RR7R7RWRR RR{RR{(}@zi"T34RW@@-R)8 h@qh@ SѧRR!@ @h @ W@3@h&@i.@*i@kZ@H  JTk@ql @_ IFT  1q2h(RhhE94h@~6S$R`R*2S@?qT(Q A@R_4R @cR2T @"RU4RT@R2T@?qcT(Q @ 3@Bt@17)7@7h64h&Ao5@(4o@yqT(@ @9?qT@H5h&@i.@j"@H*i@kZ@H  뭱Tk@ql @_ )T  hTR1T@?q#T(QRRR1R@?qT(Q @R"R3 @ @( @)@9b2? H@?qBT$h&A65UA@?kT+8@986|@@ @4T @8@987h@ @|@/~5@ @ @) @i)8 @Rr R * a.@9(5h;@987h@ @n|@Tx @ R rIH  kT@@TARcTh@94!I @?qT(Q R$a @?q#T(Qh o@/@o @+@8@9?78@94҂RRW3$ @@?qCT(Qrc"R]3R @( @)@9? HT@?q#T(QTRA@6(@ @)C@9?aTPA藟@?k@7RR0T@?qT(Qt6b2h@ %Si4?qTh6Q`R!"R3Q @( @)@9? HT@?qT(QR@AR87R@ *7@522(Rh9@2,R &Rs0ATR!&Rn0A`TR@ @ @9 IT @(yhT@2! R[0A`TR! RV0AT2@2R*@2RSw:@D r`T(Rh@(S4qR:H@I@(* @JC+@9)@J ? TL @ , tyi T* h @/ R$ R.() i7K*@H yiFh&@i.@j"@H*i@kZ@H  7Tk@ql @_ sT  I@(* @JC+@9)@J ? TL @ , yyi BmT* h @e)R  _ ꃎ/#7!dRh&@i.@)h@jZ@+ Tj @_ I1 (hZ3@ @@?qCT(Qh3@9qTh@?-T @ꍫ n*)  @ʭRr ((@ @ @R"@@BRRRRF X8h5!R/ATh@ @))C@9)?Ti @(yhh(RUTAaT"RUi)/JJ-AA?@"RCR3@BRS@2@2R/;WR~ R_@(Ei   냏+3!7Ph&@(i.@j"@H)h@jZ@+ Tj @_ I1 (hZR\I  ˟ 샏+/!7/h&@i.@j"@H)i T   냎+#!7Rh&@Hi.@j"@H h@jZ@+ Tj @_ I1 (hZRU?&#    냎+#!<Ri&@ij.@k"@i J i@kZ@L ˟ MTRk @ j1? *I iZRA)4iC_ T) JKk RM_8mym-jT*J)!TUiTk@h.@j&DI  i@ T  @7)@*@9_qT<t@'Aj _qT))JJ R@9Lyl,jT)ATT҉@9?uqT7TCTCh@ r T@h5_hfh@r@JRI *)7U?TRAT IRRqCѢєUTh&A5@!ї -R%U!Fo@o{@T@4.AT@)4R(4zq@( q!TTh&@HEKZYH*UH  Tk@ql @_ T  q2h(RhhE94h@H7_@(@2(Z))-@)@?/TC{EODWC_BgAoƨ_R5!4UU `Tj_} T _y) TcTJ;R TjD_qTR*r TJ cT"@-AT@U- TA h&@ȈKZYH*UH  m Tk@ql @_ &T  4<:R4@;7R 6@ K 3i&@Jj.@ L j@kZ@ ? -Tk@qm @ IT  Uh@-T4h&@(FKZYH*UH  Tk@ql @_ )T  h7  _ ꃎ/#7!8 Rh&@(i.@j"@H)h@jZ@+ Tj @_ I1 (U T 4yT%RR R8(R(A(99h&@H*i.@j"@H,i@kZ@  T@J Kk@qm @ T  %hTHyw6i&@I.j.@h"@  I j@kZ@) ? T@ Kh@qi.@j.DJ + j@ T  7,  ˟ 샏'/@#!%Rh&@(i.@j"@H)h@jZ@+ Tj @_ I1 (hZU@*i?% TR)Ti NT   냎+#@'!%Rh&@R  ˟ 샏+@/#!Rh&@(i.@j"@H)h@jZ@+ Tj @_ I1 (hZRRR*Ҡa(N  _ ꃎ/#7!!#i?eTRi?ehTRicThy  _ ꃎ/#7!$ I@(* @KC,@9*@k _ TI @, M yj  TK  @KIRdhu  _ ꃎ/#7!Rh&@i.@j"@H)h@jZ@+ mTj @_ I1 (hZ` ˴,o@u  _ ꃎ/#7! Rh&@(i.@j"@H)h@jZ@+ Tj @_ I1 (hZ@F (I@(* @KC,@9*@k _ TI @, M yj b!TK  @iR ?qH@ tTH@ @)C@9?T@14h}=@ N!Nh=#NnAn!CN!(!!0.(& 7h=!Nn(a< <)(3 < )(3 <(q3 q`R$HzRDHzRdHz` TQja,T|,T ѿ @ZR~Sk!@"Yi. @RP0 @@?q&T(Q@@ Aw@&4k@tJR RkYR R(I)!%(@9w:@+h6@~i)8h6@ 9h6@ yh:h6@@ i)8_@@@h]4@uH!%5F9w:@ h6@~i)8h6@ h6@ y R9h6@ yh:() i7aJ @H yi\h&@i.@j"@H(i@jZ@  던T42$!aRh&@HQi.@j"@H+i@jZ@h  TUl@qm @ T  3SPT`wLuJS`F}DS`@= (R?qH@ t.Sy*w(tF54%I   냏'3 Rh&@i.@j"@H)h@jZ@+ mTj @_ I1 (hZK?%hT  }ʛkCLRh i *}ʛJCI  뉜TQS!RA#$;^RDG @5 T  ˟ 샏q@J KJ}@'!|+j@i.@k&@k , k@ ɿT   1R'0j&C)  1R @@ Aw@5_@@{@@@H74@ 4@H 4[ 4\5R[7r[TTH[?ZTR*ARidY8X8i6@)  kaTyR99Y8i6@~(i*8R_R[4t%!T?/TTH!%A9w:@h6@~i)8h6@ R9h6@ yh:hz@%qThzR8@h5 T<<Th@ ?qLTZ7yRg 0TN,R ? YRW9Q(yqiJT(q@T}q!T${"ѣR)@@"Rw.`<7{##CT(q@@4@86#$A@R', @ @( @)@9? HaT@@(qiTҾ+@ѣR)р@@R?.57@4A@R+ @ @( @)@9? HT@@(qTҔ+@!ѣ@?6#џ@74q"{$u@AR.@_7@"R.^5qt@AR- ^7@"R-]74qu @AR-\7 @"R-\7qt@AR-[7@"R-`[74qu@AR-Z7@"R-`z7qt@AR-y7@"R-@y74qu@AR-`x7@"R-x7qt@AR-@w7@"R-v74qu"@AR-v7"@"R-u7qt&@AR-t7&@"R-t74qu*@AR-s7*@"R{-@s7qt.@ARs-r7.@"Rn- r74qu2@ARe-@q72@"R`-p7qt6@ARX- p76@"RS-o74qu:@ARJ-n7:@"RE-n7qt>@aR=- n7>@"R8-@6Rf@4H!%A9w:@&h6@~i)8h6@ 9R9h6@ yh:hz@%qLTThz9RRH@ @*C @9_ TM@ @ R ,R R  R) ) )M@ @N CӰ@9@ TM @ q zn?T o k@k 6ayT   *n cTq pTJ* AT)J 6K @i )yj)?ITRz@yrTa! w@(@Aw@ A@T +T+T!T(zTh@ ?qdT)))ytId7R)d6r9 RwT? TREyRR@H!% 9@9w:@h6@~i)8h6@ 9h6@ yh:h6@i)8@@?qckT(Q @>@?qkT(Q*Jy+ @Jik8+Rj!ʚ? T{(*|h6@~A i)8{@RH@ cT)@ AY47hR)R91.Tр@@@?qsT(Q @{@@?q#sT(Q@@@ AH4TRn4h@ q3Tr3TW2Ѡ҇Y8XѠ}Y8X8kT˩_J1_kT+ ѪM@9@9kTJ_ #T8RmRqT )KK) IkiT Ik TIk(9YRRXRcTTT&TR( T(yt rR)R9h@5R 5RT ˟T TH!%A9w:@h6@~i)8h6@ R9h6@ yY8j6@Hi)8Y8@zh6@ Rv$h:@h:}U"%A9w:@ I|h6@~i88h6@)R 9h6@yh6@i88h6@!th6@+@9*J+)@9I q`TqaTJ@B@&AhRR9uRGRG@ @)C@9( T@(5i`8w@ A@끇TѢR3Ѣch%-%ѣ@R&_yRZ*@9 *J Jy~) (Bh:@9RUR3R{:8Rw8R6XRsXR2xRoxR.Rk?)T? T?CT?T?T? T?CT? T?! T?q T?uCT?T?T҃(ThӃR?TӃR? TӃR?#T_(CT(%( TyR h@(5IA @?qHT(QH h@H4`RTh@ q`Rh@5R4CTd(CRRr}b*w:@h6@~i)8h6@ 9h6@ ykFH Hh:h @9?q`T?qaT9qTh6@ 9h6@ H@9h(7R@?qT(QQ@?q#T(QR ҭ(IqT;@4;@@7@4R yRh@ IRRqYH!% 9@9w:@?h6@~i58h6@9h6@yiFh:8i58h6@߽@4h6@  )@4h6@ iu8)2 i58RAR`R%R@?q T(Qh6@ iu8)2 i58h6@ q?@(@ @R@?qcT(QQ`@?qJT(QEQAR(ReR$RaR R]RRYR8RU8RXRQXRxRMxR RIRRERRAR@9>R:Z###yCW#?TRVYt# ?T@R)4h@T(7@$A`Th@%SIRRRqjq9ER @?qTVHQRщi41h@5R5Th6 rjRXRRy@*57)))y|)rR@I4@R @?qT@yT  @R!IzR @?qT(Q V@?qcMT(Q?r_@@@@ Aw@T2 j.@k&@+ L k@ T  > D T  ˟ 샏_q}@/@!# @Rh@i.@j.DJ + j@ T  6h $T   냎?q+7' T  ˟ 샎?q/i,7'j"C  1 Rj"C  1Ri $T   냎q+73wj&C)  1ńRi@  1ƄR|(@ 1I(R'0^(@ 1)6R'0Uj"C  1RbR% @{@k ih@H5)R:h@i.@j&@ + j@ T  ]h@5R Rj&C)  1I(R7(@ 1)7R'0j&C)  1)6R&i@)?dT@9+kjij8? )1j&@ , i"i.@j@,  Ti   T n ˟ 냎q+))7#hh"k@i9j.@l&@ Lj@ T  ei T @K3  냏q+!;w(@ 1*R'0 1R'0h@i.@j&@j + j@ T  P3@ ,@ 7i@Wi@j.@k2Dk L k@ T %Ti"C  1 Rh@5)@*Ri@j.@k2Dk L k@ IT  j"C  1R T  ˟ 샏q';! #h@ 1 Ryh@5)Ri T   냎q+!)Ri@@K @ @m.@n&@ˮ m@T  $T?quS7/!`i"h@j.@k&@) K j@ T  i@h.@j&@  j@ IT  h"i@j.@k&@ Kj@ T   1 R'0jCJ _kCT+@9,ik8_ J1k&@) * i"Pm.@k@  iT   $T  ˟ 샏?q/7' DT  ˿ 샏q/7#j"C  1)7Ri@ ˪RH*J-+k&jk@qЌy<l.j&C)  1 ՄRh@i.@j.DJ + j@ T  h@ 1Rj&C)  1*Ri_4T)@+kiii8_ I1j&@i , i"i.@j@,  Ti  h@ 1ՄRi"C  1IR} DT n ˟ 냎q+!(i T   냎q+!t0h T   냎?q+!1h T   냎?q+}7'+i"C  1R8i"C  1R0i dT   냎q+)7#  1 R'0i@h.@j&@j  j@ i T  [ 1IR'0(@ 13R'0h@ 1)ۄRh@ 1քRi@  1لR(@ 1i΄R'0h"i@j.@k&@ Kj@ ) T  Qj&C)  1 Rj&C)  1iRj"C  1̈́Rh T   냎?q+!?j"C  1Rj"C  1)Rh&Dh"j@k.@ ki@ IT  B(@ 1)ЄR'0jh T   냎?q+q7'Yj"C  1 Rfj"C  1IR^j&C)  1RVi@Ɇ5 )RRqYR @?qTh T   냎_q'M 7+$j&C)  13R1j&C)  1i΄R)j&C)  1R!j&C)  1τR(@ 1 R'0j&C)  1 Rj&C)  1)ЄR'@4   _og _ W O { C-@@Dc(R(RBZH@9qTa@5`4y(.(!%A9t:@h6@~i)8h6@ R 9h6@ yh:@2hz@%qDThz$G@@9qLTu"{@bR Mh@ rT˩@9T?}qTR5y?{CTh@4hET @9*JIii8 1( yi R?*jT  K@8 yk?+j`T  TK_8 yk?+j T T!BR4w@W9@@ 9 @) ~q2h(RhhE94h@H7R+@(@2(Z )-@)@?7Tҵ C)!DbRCR@CRA!"RCR@{)T@V!h9R_7sRRR7@7@6TI@8?qB\b1TC@487'AR(Rh"RZ6(!%C9t:@h6@~i)8h6@ R 9h6@ yh:QmC"2@RRR@2@@ @R @Rr( 6@2@R wu"@RRF6`@3`"@h@qoY3@?`@a"@RR16@@@(-U qaT@ @7 @ ѩ6 @9,ik8k_ (T'@@96))*ih8_qTR)%) J4 h@8(z TBR7@@ ѩ7 _ )T9??@9(6(VRZ )-@)@?T'ARFBRA!  ubC @hh"@) @ hh&@G@!R̠i*@@h&ub @?qT(Q +@@kiR I@(*HiC bTj@J 4)?T @9+kjij8? )1IC@( 6v9R I@8?qB\BT{ T_7sRRRۯ7@B@ T'@@k"h@ Ti@i4 kTi@9*JIii8 1hKRZ )-@)@? TrA! "RCR)R 8v9R_7sRRR7@ @ T{TR;Z )-@)@?@TE x"h@Ti@i4T @9*JIii8 1(Rh"R RZ )-@)@?T{MOLWK_JgIoH_I@8?qB\Tj@j5)R(Rh5+@@k rTRIZ )-@)@?T1g Ґh@nR!h@i.@j.DJ + j@ IT  i@h.@j&@  j@ T  h@i.@j&@ + j@ )T  !i $T   냎q+73 h T   냎?q+a Di T   냎q+ R!t0 i"h@j.@k&@) K j@ T  Gj"C  1R*JIIi8 3h"i@j.@k&@ Kj@ T  h T   냎?q+/7'j&C)  1鞂Rbj&C)  1)RZh@j 1 RRi T   냎q+) 7#x"j@i.@k&@  , k@ T   |h@j 1R* $T  ˟ 샏_q/7+ej@) k- &?Rl@qTRj"C  1)R'@4Gog_WO{C-@@@`@@T?T;kO _8nq@[` TW@@9@9)@ 9 @) ?iC s"`.@`RRR@h. (@(@ (@ (@(@ R u3)? * @ 7@j5Ta7@y (@ 2(@q.@&@  + @ T  i $6T   냎#'7'(@%A{?T~(@) @ ( S@[@nq@9 ))yhR)jAT  k ?T*@8jyj*j TW@@99@y)@ 9 @) :R]X?iC s"`.@`RRRd@h. (@(@ (@ (@(@ R u3)? * @ 7@%Ta7@y (@ 2(@q.@&@  + @ T  i 'T   냎#'7)(@%A{?T(@) @ ( :RS@[@@9qTyqTqaT) T*-@8_(k T *R @9"T yk,_-jTqT(k!T*@9_uqT) k@J *"6W@;@JIW@0yq!T W@@99@y)@ 9 @) ?iC s"`.@`RRR@h. (@(@ (@ (@(@ R u3)? * @ 7@jTa7@y (@ 2(@q.@&@  I +@ T  i T   냎#'7X-(@%A{?T](@) @ ( S@[@(@8 kjyhR*jAT W@ ?T*@8jyj*j T@ 9@Y)@ 9 @)  (R:R c(R:R_3?iC s"`.@`RRR?@h. (@(@ (@ (@(@ R u3)? * @ 7@jTa7@y (@ 2(@q.@&@  + @ T  i  T   냎#'7)v(@%A{?T؞(@) @ ( (R:RS@[@@9qTqT6RW@@9 9@y)@ 9 @) W@@9@9 )@ 9 @) c6R?iC s"`.@`RRR@h. (@(@ (@ (@(@ R u3)? * @ 7@Ta7@y (@ 2(@q.@&@  + @ T  i T   냎#'7\/(@%A{?TO(@) @ ( 6R:RS@[@jL?iC s"`.@`RRRX@h. (@(@ (@ (@(@ R u3)? * @ 7@JTa7@y (@ 2(@q.@&@  + @ T  i $T   냎#'71(@%A{?T(@) @ ( @9S@[@ J uQ? qbTRRHYh R?(j:R@9 ))yhR)jT  k ?T*@8jyj*j TW@@9@ )@ 9 @) J:R@9yqaT@5@8)R ))YhR)jT@9uq!#TnqaT׋ah_8q`$TqTW@#@`R* @ 7@JTa7@y (@ 2(@q.@&@j + @ T  W@w@0z?iC s"`.@`RRR@h. (@(@ (@ (@(@ R u3)? * @ 7@ Ta7@y (@ 2(@q.@&@  + @ T  i DT   냎#'7)(@%A{?T(@) @ ( :RS@[@@9yqT ))YhR)jT  k ?T*@8jyj*j TW@@9@)@ 9 @) :R@9uq TG?iC s"`.@`RRR@h. (@(@ (@ (@(@ R u3)? * @ 7@몹Ta7@y (@ 2(@q.@&@  + @ T  i 뤼T   냎#'7)8(@%A{?T(@) @ ( :RS@@9uq TO$i T   냎#'7\/:R W@)@ T*R Ќ @9yk_+jT HT RORRRҿnqo[@+Vւ0O@ RRR:RhO@ aT[@bT@9yi R_(jT[@ T+@) k R@9hyj(jT)AT7R[@x R_(jT?uq T[@ T @9 kkyj R+jAT[@ Jˋ ЭR[@ Tl@8yl,j@Tj7R:R[@_ TH7R O:R7R R_(jT * _eT(@c(y/8R:R=TW@J@486,ih8RJ%ɚK D9 qT[@? T*@8-ij8jzA(D9 qhT[@ TK@9uqAT?qgGT?qGT(R)R=*Q_qT+Rj!ʚkK_ T=qTqTo4[@ JT[@_ )T. J[@_ )T(_8Hyh R  k+@tK[@_ )BT@9Iyh R_)jTq Tq@ Tuq Th C"<T R(R:R qIhTC R:R qI?Tq_GTqTqTh@RIr kZ1  ?qTh@ R)r Ji @y*R) J *qRZ1  ?q`Th9QMqTlyhx) h@)R r kRZ1  ?qT(@c(y/=T R(R(R)R RC:R qIhT 4[@DRRc y/@9 )(ih8=Tq,Ts)@cIy/=aTh@iR)lr kRZ1  ?q T{h@LR) r kRZ1  ?q@Toh@)lRi,r kRZ1  ?qTch@IR)̭r kRZ1  ?q@TWh@i̍RNr kHRZ1  ?qTKh@)Rɭr kRZ1  ?q@T?h@R鮬r ktTh@R r ktT1  ?q%To@ qT@@ qhT(RHR ** # R wgk9Tzk kUZ k(T o@ })n RJJ&st) }    Rc@@ @? T @RQ|6R@Q6w@{@@TTcyv @? T @Rw@|Q{}HYc ~5R  i1KI{+ _hTTTyu @?@T @RQQ@|QHH  _i@? T @ @? T@ eI{i(kh  _K{l TM{jL @ 1 T? )Ti? T j@_ T) @*@_T_@;H@t @L Vւ0s@lTS7URRR:RG@O@(Twh@,R,r kVTh@ NR)ͭr kVTh@ Rmr kHRZ1  ?q@T7h@9)RuqT4Qc)Yh?uT R )R R:RC qIT R(R R:RcHC(R qIhT@:R qITX5:R(RS@;@iC@*6c@)*W@7@ 9@@ 9 @) 16k@I7W@C@!@-@%@i  @ )YT  S@W@@@ Z )-@)@?KT{EODWC_BgAoƨ_W@@@@` 4iCs"`.@`RRR@@h.@@ @ @@ R u3 * @ 7@BTa7@y @ 2@q.@&@C@j + @ T  i DPT   냎#'7`4v@%Aw?Tؘ@ @ ( g@)*( 7@9@5@ 9 @) iCs"`.@`RRR@h.@@ @ @@ R u3 * @ 7@j5Ta7@y @ 2@q.@&@C@j + @ T  i CT   냎#'7`) @%Aw?Tk@ @ ( _@4x*@5 9@u@ 9 @) 8@R4@9@ @ 9 @) `JiCs"`.@`RRRV@h.@@ @ @@ R u3 * @ 7@J&Ta7@y @ 2@q.@&@C@j + @ T  i 6T   냎#'7`\/@%Aw?T@ @ ( @ 6iCs"`.@`RRR@h.@@ @ @@ R u3 * @ 7@Ta7@y @ 2@q.@&@C@j + @ T  i ,T   냎#'7`6/@%Aw?T@ @ ( X@R6@59@u@ 9 @)  hiCs"`.@`RRR@h.@@ @ @@ R u3 * @ 7@ Ta7@y @ 2@q.@&@C@j + @ T  i T   냎#'7`8@%Aw?T#@ @ ( @8@987@ @,w|@`T@RRSR RRW@J@9_rJR3RR)U'%#3!mzU)V "C  h1ՃR"C  h1׃R"C  h1IR"C  h1)R"C  h1iRW@!@-@%@) L ʵ@ T  "C  h1R|"C  h1)Rt"C  h1Rl $ T  ˟ 샏q#;a!+'zh d T   냎_qO@C@JJ -@q7?#a!:_"C  h1 R:"C  h1)!R2"C  h1I"R*"C  h1!R"W@J!C  h1i߃R"C  h1!RW@J%C)  h1%R"C  h1R'`@4kC_WO{9@)%.!@ @)!.IT _)?hT@9( 7Rh&@( i.@j"@H(i@jZ@  T!!: a `T6֪aܛD @R @(q T T#T֪a @R @?q#T(Q ATATh&@i.@j"@H)h@jZ@+ Tj @_ I1 (hZ 6Rh&@(`@{DOCWB_AC{DOCWB_AC__WO{ 4 @yu@%A?MT}9@4@ 9 @) iC".@`RRR@.@@ @ @@ R u3 { 59@6@ 9 @) OiC".@`RRR[@.@@ @ @@ R u3 @@* @_jT* @_T @@5 yu@?qT)Q y5@%A?T @ @ ( {COBWA_Ĩ_Cog_WO{3_C@G @O-@@aRkw RRR9RR(r)R RKRRTmjl8{m?.jTeTlK88 qJzTq TqTqTt7.R.6RmK88  }qTmK88 T.j  ѿ iTmJl8qT kK88  kK-8  T:R RTRRRRR9RRRhK88RTTh@R r Ji @yJGR) J *4RR6qTh@ RIr kTR R(R'*@}S*JTR RRojq8fT0RoK88 HTB}qT7 R0RkTkT_TQoJo8%ToJo8)T Rq) 7{o0j) P7oK.8_Mz *o7)Tpjo8 q/_hT_TiTojo8PRpjw8&T_Tpjo8~qTqT_T*T7CRvjw8{v* @Hz TR)jaTnqTqT~qTrqT)T hJh8{h R?(jTr{QQR%R6`߮q T߶q TqTqTh@-Rr*#qT'q!Th@iR)lr Ji#@9 R) J *5R R(R8R'*@}S*Th@RIr kTRRR)R'*@}S*Th@y-R k`TMR rj2R r?k@8) J)}  T*Rr+}li ̓R LR}M!inx4!IJ*}JiI :5B@9J@9I ?kATH@y)a )7GBG)G@7@D@4q`TqTh@-Rr kT*{h@y-R kAT@}@ze(TB6@vK88  iTjj87K@{k6jK(8) T`C'KgG `>!RRp `R@ݯ7 @ 7@ T6@C6@TARp@_ @) )*(@)*)@ MT: %6@94 @X@9jx8Tq`TR)%) Ȝ4JX@88z_T*qTi@y*mR? k*} Qi ? T?1Tl @έҮN.nʌ @.Rrʬ ]?%Tj k l_ͭRr Jk_LR-mrk J *4?%bT?]TRi,-i,K1@i ʋm뭭K,- J@,͍l-lnJ )  Qi ? Tikjx͎R? k!T-? T? Ti *@yklRJ J+ @9l Rk JRJ *4*@y+RJ J) @9 R) JI *\5Rikjx*͍R? k\TiTRK@ylLRk JL @9m R Jk *4K@9qaT&RIT J Tkj8lyk mmџqiT 7 R(Rw@'*@}S*TD߶q T߮q@Tw@* T Rik(8 w@* T T'7jjw8J_%TTjji8_}qT_qT7T * !Th_8qTR QjKi8_q8)R'*@}S*)TR)R'*@}S*hTqTqTh@9qT8Rh@lRr kTR k!Th @9?%q!!T@9q`Tq TqY 6'RnEh=<<<A6@(R3@(9a.@95 )_@_q !RR '@GCVp BR|A5@ @@@RR$`WR Rr@h@ ?q }TP6R@YP7 qTh@@ARM@Zr[TQ RA5@ @@@RRk$`B6B9@ @ RAR#@ @ HB@ @)y @@ @6@  ˋk!9)Cj@J@I @ @J @* 6  @J @; h4ҽA5@RRR0$ @}7 @ 7@T@hC@-T":_@?qhtխa@+ARn@ @@@R@@a.@9P5A(;@9(7(CiU}  T(@r`@T?P7HN@7X6( @ 9@9)N 6@@=@9M 6R>6hRR|2R r?jMR rl@8) J)} T*Rr+}li ̓R LR}N!imx-4!IJ*}JiI 69@9@9 ?kT@y)a +K=K@N!+@4k@ qTZ  Q?JMR rGl@8) J)} TQ Q*Rr+}li ̓R LR}imx4!IJ*}JiI 69@9@9 ?kT)k+@yb@4+@H)k@N!G67@'KK@9q+TQ9Q֊9Ѣc`5Uw@N6/6CV t}?}Th@R r Ji @yJGR) J *|5kKT|@@HC8aJTXd `T  k`-9Ѣcע4V@9qTKCѢcˢ4VTWhX   ˚k _TO@@ @Da!BRCRa!R#44 @y)a AuK@N!+@ 5@y4G4 @yAb 5@y+@H)k@N!44>qUZ>iqT>)R} }S)R  ):(YhO a!T R>_@i4 REq-TIq Tq Tq@ T&W'@GT7Z6{KRI@ Nҫl.) J!@9 RJ ) I(Rw@'*@}S*hfT5 qTqTq RIzR6.hR`D R T7!T7@(7(Rk rq'!TwJy8  R:Yv 9@%@a!4RR:4@9hb7R1x675 s ) ʚ ʚ+@`MR r(# *@8 JT}?T*Rr~*i ̓RK JRk}jkx&4k!TJh}i ]@9@9 ! ka%T@yb`4O@@ @<$(@( @HT( @@9qT@O@w@44@9H 6@ @ G@#CV_@@3@&R6/RO@@ @a!BRCRa!O@h@ @a!BRCR@BRO@@ @a!BRCRa!bRO@@ @a!BRCRa!RR R(RR'*@}S*(GT7R4 @y!5@y5O@@ @(@@O@@ @a!BRCR/(;@9U(7(CiU}  TT(@r@.T P7@7+X7R `+7j4H @yJa@a G)G@7@D^5ZyZ^k rq'`T`@<"R@ @9*ITh _8?kTrqT_8qq!Trq< dTa! = Rk@H4trq(R( `=aRo WB #C@86WcXO@)Aa!h_( @ 9@9 6@@=@9h'7a!lRCR%BR!@-"RCRa.@9"5a!"RCR CV*W!x+!RB6 @QA5@RR@ @ ?qT R@HP7A5@RRB96w7W0@9qTA5@A5@O@AR RRRB9*@)*)@ MTڼ@ @H @@+@J JC!9@k@j * @*+@k @K +@k @J '@7Wh3@9qTa @?qcT(Qh :?CV '@a!`"RCR! 3R"RCRz3@9O@'@@ @Lh_8}qAJT*Rik(8MO@@ @a!O@BRCR]O@RCRWGa`d @ @ p@ @6R|e*G@O@'cRR@w@Sa.@9 5'@RQ XCRWa!R?T6"Ry\j?롞Th"Rk4a!O@BRCRO@RCRG;jW?T'@UO@W `P?O@@ @a!O@BRCRa!tO@RqWO{@%A?T@ @ ( {BOAWè_C# mo g _ WO{+-@@9C67@hi==9`Rh7ZC9H@ @ RARH@ 7@ HB@ @)y @@ @s6i@ ˛{#9)Cj@J@I @i @J @* 6 @J @7 7h@))7 @ 7@sTh@C7aRi(@@ @) A_ @ *)@)*)@ MTW(H@ @Ht @*@k@J JCk@k@j * @j+@k @K +@k @J *iH6@9h67@97 @?qlT(Q  @?qlTR(Q K @6@ @2R,7c@5!R&@R'@RrD{@ @*_)qAT @ Rr=@?r R RIii/`AR @i  q!4T@ @7@/@s@h1@9)q@T 7-s@h1@9)qATs@h.@(1a! @&7@#R1TH'\iC+@`@k`3 @(@ @yB=@y/@@ 0@9?)qAT @b@@R?+4h@i2@9?)qAT @M@!@@T) @*@J @) "AR@( @)@) @ AR'@T ,@8kџ)qT(T+_8qAT_TH_8)qTH _8_)qT _8_)qaT4 "T @9*F+Ck}) @i ) @9KFLCӌ}J @ J @9lFmCӭ}k @ k @9FӎC} @  @9FӯC} @-p))1 )! 6 'T)9*@H@()9(@( :_H)! -@ `RRR )!@(-@H@H@ H@ H@H @ R u3I _  E@%Aw? T @I @ (  @@T I @ ( @b T@9@9 @9@9@9j)9*@*H@()9(@(_H)! -@``RRR @)!@(-@H@H@ H@ H@H @ R u3I _ hFiC)} j@) ( F CJ} @J I FCk}@k j FCӌ}@  FCӭ} @p  1 !  @%Ax?T =@(R4@@`R )@@%Ax?T %@ @ (  8R+@`@`8RRBR/@s@h1@9)q`Tk#@h2@]K Th.@K Ta! @7@a TRMR R<$;{&ZC@)?MT J!XyiV`T}@srT@ R {ua{s @@ @H@yH/@@ 0@9?)qAT @"@@R?γ4+@@(RK#@h2@]KT@ Rr:@987@ @#@ Th|@#@ TRI@ @A! <RRRt@a! bRRRk@ @ qT@@AR3a! RRRX@ @ qT@@AR a! RRRE@ @( @`( C@T!"RCRkh2@i@) @ Th.@T@7@@\TZT( @ka!H w @h@ @Cۻ@y/@@ 0@9?)qAT @@@R?&W4+@@(RKK@-M@@ @sBh@yh/@@ 0@9?)qAT @@@R?4`'`3@1X"R @?q T(Q @?q T(Q  )E3@"R  @?qT(Q +@`@3@R3@@?qT(Q4R! @?qT(Q( /@@?qT(QY)-@)@?T{POOWN_MgLoK#JmC_Fa @?qTR/@@?qT @?qBT` O{-@@R(@Rr 2q'xc@5!Rw@)-@)@?T{BOA_j_WO{C-RW59@)! k8 h@ @()=@I4@@!*!x+W! BRCR9!x+K{EODWC_B_WO{wB5@RR@ @ ?qTP7@RR{BOAWèR@W6{BOAWè_O{C 8@9(7!:i)CjU)} ? Th@r TP7@7HX7R{AO¨nR{AO¨_h@h @hTh @@9q{AO¨_h@@{AO¨_R{AO¨_h @ 9@9 6@@=@9('7 R{AO¨_ e{AO¨___WO{h@k@jl @ )Rk@jl @,Cn@9l@˟ bTk @n Oyl T M J@J  T  @Cӎjl8-! *j,8kHi@({BOAWè__WO{ @a("T Cji8 )%)6  뷆 TKCjk8L Jk%+7I W{COBWA_Ĩ_C_WO{-@@` @( @C)@9 T@RI@)-@)@?A'T{DOCWB_AC_֪ @W ) 6zh(bT#T @?T@* @JKC*@9l k TѬ @ ,@ 댱MylTK@T 2@?T4)?iT $K k_TK k@iT K k_)T     񌥌AMyl똁kT 8 T@I@( @H C,@9h k TJ @J ,@ 댱MylTH@T"K k_TK k@IT H _)T     񌥌AMyl눁kT (6Ti (@T  T? BT" @?T ? JT } !A}@ @*@9 }( 6? T z)  IT_` T6iK@? TTzh hTz(T@6 >@9h 7@ @}!!Ti*}J@!!"}ә@@ @9jI )} }!8 }i @@J@9) 5 b"}h@@ @9 )} *@@*@9 }#( @RkR @?qT(Q @@WO{HRh9@3i@ h9 @) E`"@RRR@o@h i>@9 7 @}A%?T}%Mh@ h@ h@h@ R *h{BOAWè__WO{\@@h9@3i@ h9 @) iE`#@RRRu@o@h ԝRHrTbi i@(9i@}ӿ( h@h@ h@ R)r *h{COBWA_Ĩ_ր<o @* @jJC+@9L J T @ +@ k ykT @_T_ J__T J@_IT _ J__)T  j KkkA yk`J_T  _og_WO{-@@(@ @C@9t`T@ @)C@99 Th@y@9@ } @ @S4v4@ @ @9_ ITR?,Ts@@@ @))C@96˿4@R@u@@ @ )C@96k@ @C@9 Tt@@ @ @*_%*RI @@ @ ?%A 2t0Ҿ`, @5  @ 4@""7t@4@ @ @_(9HM(  ҭzlzn T@ @`T  ,6kaT y6,7k y6k? T   hT? @T7 `TI6k@9 @wb. @@9(89 Rx9 @ @ @9@)} @@  @?qT(Q h@h`TJ@9@} @ @s@@ @))C@96˷IR 9?aT<@9 @wb. @@9(89 R49 @ @ h@9h@)} h@h@ @@?qbT{ @9@} @ @Ntn  @@,Rl98 T } }ӡ  } } 0@@ @)C @9)  T @9 )} @ @*_%*RI @@ @ ?%A t@@ @)C@96u(@9 @wb. @@9(89 R9 @ @ @9@)} @@ @@?qT(Q@)-@)@?T{FOEWD_CgBoA_@9 @wb. @@9(89 R9 @ @ h@9h@)} h@h@ @@?qT@)-@)@? T@)-@)@?aT{FOEWD_CgBoA#P,_WO{@ @4C@96RJh>@9 7h@ @}A%?cT @9S'}%h@ h@ h@h@ R *hh@9h@B7)} ` @ @X{COBWA_Ĩ_@ @ @9_ ITTIR 9_{C#g_WO{@ @C@95T(@ @ )C@98T @7 )@9 4(@)#*# 9x@ @T(R@ @_(9҂"4x@ T@9@} @ @s@@ @)C@96t@@ @ @*_%*RI @@ @ ?%A {DOCWB_AgŨ_҉`{DOCWB_AgŨ_(@@ @_(9  HM(zl*{n T@d @T  L6? aT y6)  7)? aT y6 T   (T AT7 aTK6)? #TT}  }  ˩}) }! @ @)C @9)  T @9 )} @ @*_%*RI @@ @ ?%AT u@5@ @)C@96t{DOCWB_AgŨ_֨@ @ @*_%*RI @@ @ ?%A2 B@9 @wb. @@9(89 R9 @ @ @9@)} @@ @9 @wb. @@9(89 R9 @ @ h@9h@)} h@h@  @?q#T(Q {DOCWB_AgŨ_{DOCWB_AgŨ_WO{C @K!AihCN@9Tш @  _@@@ TqAT Th{EODWC_B_ҿ @W9M7)C) ?BT>@9 7@ @ }A!?T@ C7J}* y6 Ti  {EODWC_B_}!@ C7)} @ @@9( y6!T@A7}#( {EODWC_B_h}!џH {EODWC_B_W@ RR( X!+WO{#@ @9))}ӿ @ @@9( !h{BOAWè_g_WO{h@ @?TB@X=i@(* @җ! 9? CZ @(* @JLC+@9*@ _ T @+ M iyj "TL h @ T#k {FOEWD_CgB_{@ @i)C @9( *@I @)CL@9)  @ +@J@9a 6*@+ , -_a T}q{_)*@H @CI@9  II"6aT@{_ @ @R{_  @TR{__WO{@ @4@i@9 R)M*7@4T5@ @h@9 RM)@@ @cTThbB9rTx@9a @TBR:@907}{ijhRO( !44 i"@i& vi@j&@K@J ? i> a@j@I3 a}h @@ ` @ @6 4Rg_@ hh@uh{COBWA_Ĩ_t^O{C?o =HR(9(R(y(`h@92h9A qh*{AO¨_O{C~`h@92h9{AO¨_Cog_WO{-@@"%!@9?q"T  @94@ )R)@9 J@9?qaT @y(q J@9?q`T?q%T@%   *J Jy~5 ":RRR" @9I}~ji8?qT"4?q!T @y!4@yl k!TD\z?qTi y @9?q«TJ)) @94@54@9q`TqAT@)@_q#TQ @yI4)@9_qBT @9n4 @4-_qT_q`T_qT @ qT @9 qTQ5q T(jm8 _qTjR_qT_qATj@9_q@TR@9 J.@9qT9_qT_qT_q!T @9JQ  J@9_qTj@9_q`TR_q`T_qjR`T_qT_qRT_q`T_qT_qT@9JQ@Ij8_qT @9_q TR| kAT@9 J.@9q`TߩqT@@y y_qT @9@y y_q`T_qT @9q`TqT@ @9q`TqaT@@9 9_qaT @9@@k k _qT_q@T@ @9_qT _qAT!_q`T_qaT@@9 Jy~ `A)  @9@9 9_q!TjR@9 J.@9qaTR@9 J.@9qaT @9_q!TR@9 J.@9qTR@9 J.@9qTR9@9 J.@9qT@93A?qT@9?qaTR9?9@9 ?qT(R!ɚ @  !"T(R!ɚ  "?q`T?qaT@B3@h4?q!T@9BS!4s) ( DR@ZBT9HI@{ji8 6J_ TQq(Tkh8) @9q!T* Q_qT kj8k `@9qTk@9 %Q?q( T*RI!ɚGQ ? ` T%qaT^@9qT\@9q! T@9yqqTS@9q T @9 Y?TyqA T3@9qT @9qTA@9qT @9T9@9}qT3@9%qT/H?7*)_i(1H8@9yAqT#@9qT@9QqT k=*jih8)  @9 Y?#TyqaT@9qT @9Q]qhT)R(!R r jT(R(9Zm @9uAq!T @9 ?T ? T ?@TqT @9 ?q`T  )? qTR q@TqTC@9B3@5*Q_ q`T?q@T?qa_T4@9}qjTcT TR.1 @[TR@9qT@9@9_kZ@:@)-@)@?gTR{HOGWF_EgDoCC_#THRkh8T?+T@9 z)?aTki8J @@9?1qT @9?)qaT#?aT@9 z)?aHT ,ii8J @@9?1qAT @9?)qT?kT@9 z)?ahT !+yixJ @@9?1qT @9?)qaT? T@9 z)?a.T Y*yixJ @@9?1qAT @9?)qT@9*yIR_1q`<T_%q <T_qT @9y1q) RIzHR @9? KT z?M T?T@9)y)Q?qT*RI!* R? j&T@9?)qT @9?qT@9?1qT @9?qT@9*MQ_q+Rj!ʚJD@$T?qAT @9?qT@9?1qaT @9?!qT ?qT  /*yixJ @@9 y?q.TqTq;TqAT @99q-T5q!AT@9 q@T@9?1qT @9?qT}@9?1q!T @9?1qTv@9?)qAT @9?qTo@9?1qaT @9?qTh@9*MQ_qT+Rj!ʚ_aT?qT @9?qATZ@9?1qT @9?!qaTS ?qT I-yixJ @@9 y?q$Tq1Tq1Tq!8T@9?1qaT @9?qT8@9?1qT @9?1q!T1@9?)qT @9?qAT*@9?1qT @9?qaT#@9*MQ_qT+Rj!ʚ_T?qT @9?qT@9?1q!T @9?!qT ?AHT +yixJ @@9q!T @9 MQ?qT*RI!ɚ?ATqT@9qTY@9qTq`TqT @9YqT@9 q)T@9?1qAT @9?qT@9?1qaT @9?1qT@9qTqT @9 R q!T@9))MQ?qT*RI!ɚ?T@9R)Q?5qT /JyixJ @ @95qT1qaT@9Mq #T!qT@95q#T1q!T@9q$T@9?)qT @9?qT@9?1q!T @9?qT@9*MQ_qT+Rj!ʚ_ TIR@9?1qT @9?!qT) TT@9qT @9MQqhT)R)!ȚR?T:@9qT @9R 9q` T0R/@9?1qT @9?q!Ta@9?1qT @9?1qATZ@9R)Q?5qT 1.*yixJ @ @9 ?qT y?q`Tq!T@99qT@9qaTR?(R @9UqT@9q`T @9UqT@9QEqT)R)!R*(RJr? jTR@9 y?qA T @99qT@9qT@9R)Q?5qhT q, yixJ @ @91qa T: @99qTC?qaT @9?qTiR @9QqhTR96@kh8#TϪH Q @99q@T5qaT@9 qT@99qAT@9qRR) @95qT1q!T@9Mq`T  @99qT5qT@9 q@T@9qTRqTqAT @95q!T @99qT5qT2 @95qT1qT@9!qAT@95q@T1qT@9q!T@9 qTRR_@95qT1qT@9qRT@9 q T@9 q@9 qaTRREbT)R**+R, R-R "T˿ T@9yMqTqaT@9y1qT%qTqAT @9%QqT/!Ϛ TmR0 T@9yMqTqAT@9yQq/! @zAT@9}qT@9qT)9@9MQq/!Ϛ@TyMRMqaTyMqT@9q@T9MRQ@ * TR9(R(9 R# 6 R# 6{C@9qT)!%(I( @9h4@@y (q{A_ R' 6og_WO{C 'w@-@@#:@H@9qaTH@W@@HP6bB9S'W@@W7' @7(R(9oࣀ=Ks"%@5(@y)((4(@9qTh^D9(4(@)((5 /;#{Ҩ@9b?(+ / @+ )(c0# g @Qk@@@@(@:@@9 @zAH@9qB[@TR9@ 4 c@9?q R4R ~iji8R?qaTq TqT7#L@9 q`Th  @9q RIh4M@M@ym@y4  kTqET lJ, @94l@5 l@yl4k,l@9}~mjm8q`TMqaTm@-5h4JJy @@8ȡQq+T{hx) h  @9@4@@?aqT @y@?aqT(@9 kTP6w@'A_r To k=HR9(RGyF929(Aqc@9@ kcO)T@ @R[@Ls"%h@8@ ka(Toࣀ=KȞ@"JCG{@i@9?qcTCG{@i@9?q3T@ iJ)) @9i4 @ @yU)@J ?q@)@9 _rTo [=HR9(Ryg3E929(AqK2H* AC9Cc@')w@AA{뜳@  ‰  #A#'A'{BrA)Hx7H6_@(@2(BȞc@ o@_*oZ{_@I@)2IO7_rTE9 ~iji8?IqTE9By?qAT@F9I *9u7#R9E9Mq!T RhRF9I *9u7rSJI *F9I *9U6}~)!%(ih8IqTByqaTU6AA(*4)rqT5 +Rz!J _q) y!) $@zT@A)*) oࣀ=K@9q@BThJ( @94@4(cCGw@)@ @9?qTiJ)) @9D4 @ AD4)#~hjh8q@TȥQg@(%GG6Oq`TߩqQT@qQTOh~E9H4@(@@iy)@5767@h})I,ihKih'A#A(*34 r5TH R@@1Iz(5H R@@1Iz4"@  J@ h) " aT'Ah4(R9{@   1_ J{9c0@@Z`7C@X7@9q*7;@k@@#!RR4@97!R @ R r q;AT@@@ ?@a@k@C@a@7@Zws"%@9q*H6G@c@O@k@CJ/Kii8 ,R!_ j6TQqTky3jyhx) P6w@'A(R9z`6@9?@3@qaT`@`@y"(qAA(@HJ@K RRf(@(@P@yH5cCGw@)@ A<@(1?@@k@Zw@9q*6ARY`M h@9qThC9 )@y) ?q)@9?qT 4)@8,RR@)  I@yJ)?q_@TI@9\k j@9 k @9k4?q`T?qaT@I@9) )y~J RK@93RlQMqHT 12il8 RqaT R,RR?k)T)RqT?7kR"JzTVs"%B?qR-RR?kTs"%q)3R rTqTk@@ AM@(q*RYVs"%I@9?q#T. 4i ) @94I@?qI)"DTI@y?qI)"DcT9 I@9?qTiJ)) @9I4@J)?q_AT)@9?qTЌ2*ii8J @R)R6r@Мc0`4Tq6T@G@`TLc@g@(_@@906 5@9qTs"%hJ( @9g@H4H@9cO @u~CA4Q"AH|(hu8i *RX!j#Tg@@P6w@'Aj(R9O@Мc0c@@`6?@@g`h@92h9Zw(R#(R's"%$H@yI(q(R'(R#0 @y Aɻ5I)2!@C9C#)AA@h @9?qBTiJ)) @94 @4)  @y5q`TߩqA*T@(@H*4q`TߩqAT"9@D6 qAT_rjTgX7:j`6?@c@h"=@` CR0a@7@ >L@RHaR?@@ @@=aib=7s"%IwMk=@  =:2@9q*(7 !AEh )R8!x@9q`TߩqT"T!T@9 z)?eT_qhT_qT)(yh @(MH*g6P6g@w@'A(@4G@E94(@2(@ *@{@ $L+ k{g@P6@kk ? Tk/iii8_ j@:T:P6w@'Ax@_rT?@@ @9) 9@9 AQ?YqhTRRRЌ4yixJ @?@@ZX7Y H|(@)A)} iu8)* i58@V  c@(@ RR 6(SA(S6@9qBT)!%(I( @9h4H@H@yI(qO@*AA&)hc@9h4(R@9yq@)b9g@s"%Мc0[Ls"%O@Мc0@Lc@G@O@@L@c@G@O@Мc0k@@ AJqA$T$Tk@c@@O@%5"@l  늱i)R9_r@T@9q`TqT"qTHO@@9(@5q`TߩqLT"@9P6g@ @&T@9q`Tq/T"wAqcO+7TQq6T@9A?k6T+R;Rh  @9i65@y)?q q`6T_ r@[Tk h@9( j @9 Y4q`TqWT,@q`TqaT@@9R(@c4o 9@h7O@@9qT+@9TzMqO@ Tqa"T@9yQq!T)R(!) R jTkhiy8R)%Ț*hD9 qO@?T ??T9@8Ќiy8YzhA(D9qT>5@9q!?T?T(T?C>T?' T?+=T?T?C=T? T?<T?T?C<T? ETA9HG7@  ?iH19@@HT97@  ?iH18@?g@T9@H6khiy8R)%Ț*hD9 q3T ?2T9@8Ќiy8YzhA(D9qTh15%s"%W7X7g@`6?@@`@`s"%@k@7@ @R/@k@c@O@T@5Z2ATg@ VT(@y(G@g@G@ Vq @za1TQq3T@9Ir@ @zg@@ @ 3T@JUQ_q2Toࣀ=Kg@H@H)JCGH@V{@5g@h@h'A04h@9qT O@TzMq!T@9MQq(T)R(!ȚTseY6@@9qT?@@) @9)q 9?@H@ @9) 9H@)C@` CR% @9qA"Th@cR~z%"T@!&R"&RJ&R&R g@` @CRk@@4h @ @)2 ` @ @H6 4RQ @h h@hhh@uhs"%Z_6?@@@RCR @?qT(Q ?@H@ @9) 9H@))Rg@ @9I 9Zwk@G@qbnT@ih  @94@)?q qTg@i)Q@)@?q)џZ9 @9I  @9C4q`TߩqTH@L`h@92h9s"%Zw(R#(R'?@c@H"=@` CR:h@) @9)q 9h@ @9) 9s"%Zw{@{W6w@'A"@)`T(R9nR9y Lc@O@˲T !? )) )?1cT)B)*~K~  E RA8888aT ? `T R9Tt Ah6R9@9yR9g@G@O@K@9W6 4DRZ@m H4DRO@@9q TG@T.Cyu65iu89yu=687@9 C=Tc @q(Rg@ɚ@(*Țw@'AG@K T@?iq`dT?q@eT?q!hT@A?kAg@i@ @(? (h@9qT>@9 y~)(@9iqP6DR@5h@9)(ih8vCTg@G@T@9 y~  @9~mjm8qTQg@%l6L,5P6@@9 (@9h ) @9i4q`TߩqaTi@@9) )y~ @9?q@J **6?q`T?qT @_qT9R 9 @9_qT?q`T?qT !J9 J J_eT(_r Tq@Tk @94+@+q5 J9 J J_eT?qT?q!T @9JJyiJ @jMJ*6 A4 @9)y 黃R y_r`T@9qB7T)!%* I @94i@P6w@'AN(R9@9q5T)!%(I( @9H4h@@y)?qI@9i J @9CJ4q`TqATh@@y(q(R#(R's"%@9 qT@9 y~)OcRP7 ) g@w@'A %@y+qJ4q`TߩqAT)@ G@ g@s"%@9) )y~ COcR;R P7Gg@+8RGg@@c@_@(@q('A*42(WrTo k=HR9(RGyF@F929(Aq?@@ Hw2MTWraTT T  @Ty y(@3 AC9CO)Lw@O@AA4h_@)@9?r{w4?@{@k@`7X6?@@0k@`7X6RծaR.@?@h@ @@==7IwMk=@  =:2h@ @9)2 9?@@ @ ?@@ @7@i @Zw@@R(rH qATq` @ A@@ @ qT_@@yraTHURHUrT*'@ +/@(@* j +[@J_ T*@_q)Ra!#ֶ@@*'@+/@)@  j +[@L ˟ T 1?( ([_@T  TzH@c@?j T@T)R @ןc@J c#Ak *'A#j *{@)% '_q {814@9g@(86@VP6w@'A@@zKo@?)oC@@9 qA.T(GB9((7@9r@A@ *6(@h7@9jJ*I *()H*@ *6@+h6C@T@y  _8?qaT @ _8? r T@I_9q T*c@) * 8Ar@HGP6BRWrTF@9qBT)!%(I( @9(4@xBIR9F@9C@@y4)*@9_q T_qT )!%)I*) @9i4@i5 *R*9@970*R*9@96@9_q!T@9(O@ R*7@ JB@ y+(7@(B)S@@(y*F99(RC9cO)w@AA@@Ar@;P69Ar@:P6DR?@@9)(ih8g@AT9H@7@  ?iH18@?G@T&@yB)(q @9*Ck/jij8+ J% 6?qbTJ!%I ) @94 @)?q @9?qT2*~k!%jij8_qT?q`T?qjT @_qT$g@97_@(@2(@A?kTW@ kg@aT'@9R1IzW@W@R@(V@q?T\5g@@@M@"PH`7X6?@@` CR, @?qg@s"%Tazg6?@@` CR @?qg@s"%T(Q L6R@9I)" yhү@9qTHA@"R?@c@@` CDX7) @y)?q @9?qT)O@*7@ JB@*y+)7@  )B) *S@@Iy+@9(R9RF9C@Ar@P6g@@KT;C@@ @ @ R r)  q!T@ @@)@ 4( @* @)@) @I bT @9J_qЭ@TKT_ TK@9ik8, ˟ J T  @vcBR=@)@I5RHR@!k@@@4! D@@@k@7@T T>@9(si 7@) @@A ?Thg@i@%h'A4C@:h@j@JH! C@h2@!!@ @ yP@ @)} g@ @@ @@) @BR @ @h6 (4RsL @s@(! s@}@g@I @%H k@C@@@i g@j@))i  Tj@_ @T~(! I@J Ii T g@w@'Ag@ @(@(6 4R6L` BRg@I@(I'Ai4I@ k@Hg@)R 9 @?qciT(Q R  AJ A?r *7_@(@2([Ls"%G@O@@9 q@fTh  @9q RIh4@@ym@y4  kTqbT lJ, @94l@5 l@yl4k,l@9}~mjm8q`TMqaTm@-5h4 yDRӢ?@G@lT@9 y)Q?aqT8yixJ @QqqHTk8jyhx) @9 y?qTqTqT@95qT1qT @93cCGV{@4@9h5@9UqT=K2(@9!% h@9( k @94_q`T_qT)@@?q%T?qq'T?qa*TVB4g@w@'AZ{@RARBR`7:_6?@c@` C"R!h@) @9)q 9 @?qg@s"%Tg@s"% `6?@@`@`s"%Fڼg7(R@9Iy3zX7)*QqJ?@@*@+Rs!u!j T@w@ )@)5 )@ )@)3 )3R@9I)$ yh҃?@c@` C_6h@) @9)q 9s"%@g@@?qQT(Q`6?@@7@UZw?@j@K)@(R!_)jTi@*)@H*()Қh@*@9) )y~ Ii *@ AC9#)w@AA@934@ȓTT Th2yGA@@?1T15(E9H15(R(9('@ȓ)/@*#@H+)@*[@h  /T@_UqjJ(le(,@q- @ )*T  Pg@w@'AZ{@9qaT_@(@2(Zwo@o@9Q5q(iTk9jyhx) @95qeT1qgT @9MqUT!q!gT@95q=T1qfT@9q@TT/?@@` C"R @?qg@s"%T**g@s"%W @9_qT(@ @IH7{@ 'A5g@g@J@J)2 (@9g@X@9? qTv4g@w@'Ay(Rh9s"%`6?@@Zw(R#(R'g@?qT@qg@!TqTs(@@@  @4g@w@'AR_rT@j@4@:RZj@_kToࣀ=Kg@H@I!JCC@5G{@?rTk@K2@(Yzx)@y@V @) *@H  AC9Cc@#)k@w@AAmv@9~)!%(ih8qTB*@s@  T(R#(R'.@ @?){BrA)x7g@IH6_@(@2(Bg@(io@_ Jo@)yg@_@I@)2IHO7@rTk@kjg@}? rT4)2 (@ 9@?g@T'{9o@Vk@@J2EHh   냏'3@Ra!x&{('@()/@*#@H)(@*[@+ T* @_ I1 (([9g@{BrA)H6_@(@2(BȞX7 sX6?@a@z`7rh@ @9)2 9s"%(s"%# 4g@h%@I h%aT'A4g@)R 9{@  @ H H{z`7X6?@@DZw.?@@@7@8Zwg@#g@!'{^[RjaRÙ@ @@==7IwMk=@  =:2g@us@s"%? CT?s T?wT?T?CT҃(ThӃR?TӃR?g@@ c0@TӃR?cT_(g@@ c0T(%()T@9 qTE+L@9qTJkAT tъg@@ c0G@TT@9 y)Q?aqT6ii8J @Qqqh#Tk6jyhx) @9Q5q("Tk7ijih8) T@9 y)Q?aqT5ii8J @QAqhTk6jih8) @9qAT@9 MQ?qT*RI!ɚ? TqT @9< T@9 y)Q?aqTI5ii8J @@91qT@9)qT@9)qT@9qT@91qT@9qT@91q!T@9qT@91qAT@91q T@9 MQ?qT*RI!ɚ?TqT@9q`T@91qT@9!qT T@9yMqTq!T@9yQqT)R(!) R jT@@9q TqTqT@9Yq T@9qTqaT@9 R qTu@9MQq(T)R(!ȚTl)q`Tq T@9q T@9MQq)T`@9q T@9y9q`TX@9 y?qT@99q! T@@9 ?qT y?q`TqT @99qT@93@9UqT @9QEqhT)R(!)(RIr jT4@9Uq!T @9qT-q@TqTqT @9Q5qHTkU6jih8) @9@99qT5qT @9 qT @9qT @95qT1qT @9MqT@95qT@_3RB3s T?'@j Q)I*qI!@?闟@9J J_ )@zTe@9qg@T(z%T!&R"&RW&R&R ?T?AT! R" R! R" RHk@@^7?@c@` CRka@7@Gh@ @9) 9s"%Zw @?qT(Q c@fj H@9( J @9j4q`TߩqaT)@@9) )y~ g@8#Aq{@3o@ Tj@+_  @#@('@@W@P6'A4@@6?qT4AqaT R6A4R_@I@)u(*H`7_@|p7(GB9 6?@@7@_@w6(@2((GB9h 7h@ҿmT)@?JT(Z)-@)@?AT {EODWC_BgAoƨ_ R#6 R#6H* R'6 )@ ˪J-k&jRh+@q .l. R#6`$ R#6( @ h}#IAR'0ݬ)@ ˪J-k&jRh+@qR`p%ɬ(#@ h}# R'0!A`(*'C)  h}# R'@4_WO{H@9~ӷ"%jh8IqT@9@yq!T@i@9(*h967R@9rSJI *Mqi@9(*h966@9~jh8IqaT@yqT6*@i*@(*h*H4)5RrqT6 "  _q) "  $@zT`@`h*@ *) h*`CR{COBWA_Ĩ!C_WO{H@9~ӷ"%jh8IqT@9@yqAT@v#6(@@H@ @+C @9 @k ? TJ @J - Lyi #T+ H @@)@ *R#@9r R RI) Mqi@9( h9@9~jh8Iqv7TYT@yqaT@yqA T@@@H@ @+C @9 @k ? TJ @J - Lyi T+ H @@)@ *` CRv7*h*@4*@*Z T!?/$ n IG   <  &i *`MG   <  & *) *`QG   <  & *) *)yJ*( h*{DOCWB_AC_ @@ h C@j@H@ @)+C @9 @k ? bTJ @J - Lyi BT+ lH @i@)@ *$ h@@ h*@  *)5`@R{DOCWB_AC6*@( h*`@R{DOCWB_AC@h@@ A4h*@  kT@9~jh8Iq T@yqa T@ =@ha`={DOCWB_AC_ @@ *@(4!}= N!N#=#NnAn!CN!(!!0.)&7!=!Nn(a < <JI3 < JI3 <Iq3)   ?q `RDIz RdIzT R?(jT@@ A(4*@  kTfa*7{DOCWB_AC_l@@ 2*@GO{C@h{AO¨_C_WO{-@@(@9~Ӷ"%jh8Iq!T@9@ 1 T1!T R R{ /R@ 1!T) @)@(  @ @h@ @MT Rװ@)-@)@?T{DOCWB_ACWw @@oð6h@ @KT@@ҩ7@9~jh8IqTRR"R  @*6(Rq T*)Cji8 )%6q肘 kTCjj8 J%*7Q76HA@"R@9~jh8IqTR7@9MqAT6@HA@R+@1T6@W:@(3@"R756@4! R@AT&R&R! R@AT!&R"&RH@R!&R@AT! R" R&RAT@! R" R@@@)-@)@?T{DOCWB_AC_C#mog_WO{-@@))9*@+k9H@(h@h_iC@Ss"`.@K`RRRK@@h.@H@H@ H@ H@H @ R u3I _ A!8BRQ'qT*(R!Ӛ  3aT(R!Ӛ @  fT?:RR5?(R4R RRLh@@'@M) RAR3@qT(R!Ӛ @  TR!RWj@R"@@#!R>'4@97'@!R 뮃WT;@@9qT@9J!%J K@9 J @94?q`T?qaT@@9* y~kC ҈mC @y(q;@ ¢T @9!% H@9 J @9j4?q`T?qaT @@9) )y~ @? @9_qTJ!%JC94 @7@ cT @y *_q7@_ H1 Tq @9kR@Kz_kTk7qTK2qT)@9qTL _q`T_qT/!_qT/_q`T_qT @ @9  @9l @kC-ik8/R! *,i+8@9qT@ m@9)2 m9+ʐR SsS@BT@@9)4JUih8qTRJ%J  4  @8Hz TZ6W)YT@6J9Hih8wR5R7qKT4 @9JIii8 KqTWJS@J4_ T @9*zJ_aTЭ>ij8k `R)?qSTЌ>yixJ @ @9*y_q`@T?qT?qLT?qAlT @9?9q?T?5qkT @9? qAkT @9?9qMT @9)?qRRJR 7)R KBiTn_ KT @9)y?Mq T?qaLT @9*yIR_1q@ T_%q T_qAKT @9)y?1q* R$JzIR)V_T @9*zJ_aTЭ<ij8k `R)?qHHTЌ<yixJ @ @9*y_q5T?qAT?q@T?qaT_ ET @9)y?Mq`T?qETR @9)y)Q?qhDT*RI!* R? jT_KT @9*zJ_aTi;ij8k ` @9_1q\T @9_)qTR @9))MQ?qh@T*RI!ɚ??TIR4Q[T_ ! T @9*zJ_aHT:yjxk ` @9_1q!=T @9_)q T @9_)qWT @9_qAWTQ @9KyJR1q T%q` TqVT @9Jy_1q+ RDKzJRJA @9_1qTT @9_q@T @9_1qST @9_q`T @9_1qRT @9_1qT @9KMQqHT,R!˚TJR" @9_1qPT @9_!q`T_ 4T @9*z_M@ T_3TR @9JyJQ_qH3T+Rj!+ R_ jT_qMT @9_q!MTjRkiii8T KLTR)?Ah0T;yixJ @ @9?qJT @9*MQ_qT+Rj!ʚ_`TjRR @9?qHT @9R) ?9q!HTjRIR @9?qT?q!GT @9 R) ?qFTR @9JJMQ_qh*T+Rj!ʚ_TNR @9)Q?5q()Ti?yixJ @ @9?5q T?1qCT @9?Mq?T?!qaBT @9?5q?T?1qAT @9)?qAAT @9?qT?q T?qA@T @9?Yq?T @9? qT @9_)q#T @9_qA#T?)T?"T @9?qA"TR @9))MQ?q!T*RI!ɚ? !TRjRy @9KyJR1qT%q@TqT' @9_1qT @9_qTg @9_1q!T @9_qT` @9_1qAT @9_1qTY @9KMQqT,R!˚T_qT @9_q!TK @9_1qT @9_!qATDR @9)Q?5qT=* ii8J @ @9?qT?q!T @9?Uq!3TR @9)Q?EqHT*RI!*(RJr? jAT @9*_qT*y_q`T?q0T @9?9q!0T @9?q/TR)R @9?Uq/T @9?q.TRR ?q.T @9?q-TRR @9*y_qa T @9?9qa,T @9?q,TwR @9)Q?5qTY<ii8J @ @9?1q!*T2 @9?9q)T; @9?q T?q T?q(T @9?Yq T @9? q T @9?q T @9R) ?9qa TIRjR @9?9qT?5q%T @9? qa%T @9?9qAT @9)?q @9?5qT?1q#T @9?Mq#T  @9?9qT?5q"T @9? qT @9?q!TRR?qT?qaT @9?5q@T @9?9qT?5qT @9?5qT?1q!T @9?!qT @9?5qT?1q!T @9)?qT @9? q!TRR @9?UqT @9?qTk @9?UqTRT?@9ih8@ yyxI4@X yix 4@ȡ6X @*RI!@ CLik8) *Ii+87 @?@Iii8* @+Rj!@)Clii8J *ji)86@5S)R(!@*a@9H*(a9ɑ@y)ɑy y9x@ 4R@ҁ9i@( h@ R r *hK@@%A?Tc^K@@ @ ( VW@@X yix5ʑ@yJʑy y)x@4R@XS9i@( h@ R r *hK@@%A?T5^K@@ @ ( VW@H6X8!RzK@@%A?T^K@@ @ ( VW@(6k8!RbK@@%A?T^K@@ @ ( VW@X yix 5 @9?5qT?1qaT @9)?q  @9? qATRR @9)? qRRJR @9? qTRRRT\))9<@<@())9(@(ї99#R 3@RRRޙ@(3@@ @ @Rr( 6@2@ RRR@W<;@9H(7(!:CiU}  T@r`TP7@7hX6 @ 9@9 6@@=@9 7WW@ @HT @@9qT @@GRW@7`@ȑ@yȑy=@7@h4R@Xd9i@( h@ R r *hK@@%A?TE]K@@ @ ( X8!RK@@%A?T/]K@@ @ ( VW@;W(!:Tҿ@/@ T)@W?3@T ) WM3@-@IT-L+@@9qT)!%(I( @9(^4@(q;@ #^T;@ ]T@H@9qRR(Hihxy@9qHRR(ihxy h~( Rr`~ W@y4uR'@ @ q/T@@'/TW@y`RRRR C@#@7@h@y+4s(;@dTi@9k!% H@9Sh J @9V4?q`T?qTS@k@k@9k ky~ +@9qTk!%kC9k4+@+@y,+qy1?T3@q+@9lR`Lz kT73@qTl2qT 4?q`T?qTS@)@q`Tq!T<#q!T R6R<q`Tq!T(@R(6R4@)M6*@J*Qʓ@y) )Qk kWY+ @}6ihZ T@@9)4)8ih8q`TR)%( 4H@8hz_ TT'@RRRW@ @ R r qT@@<rT@6)9(ih8T8R@ yhx<rT8R@ yhx<rTQ@"( )M(*@4 ZTҨ@ yhx<rTlARW<r!TfwR8Ri@9R) )y~ 6R(@9R(6R'@Qɓ@y  @~|iixy(@9qT)!%(I( @94(@(@y)(q#@>@ '5)~i)x#@ #@  7@T@O/@ARWARWO@ARW@K}S (k)xh@9qHRRHhjhx RRjjjjx@ji)x@Hi)x+@+K@@h@9qT)!%(I( @94S@@4h(5 @|i)xK@[4#@i)~ iixR + i+x#@i)xSh@9qœT)!%(I( @94S@@5ҥh@y55AR'TRWRw R+@ @ @)R y@RC@)\R @ @(RS7@h@yH14{(;@bBT#i@9k!% H@9Oh J @94?q`T?qTO@k@k@9k ky~ +@9qTk!%kC9k4+@+@y,+qy1?/T3@q+@9lR`Lz kT73@qTl2q T4?q`T?qTO@)@q`TqT5#qT5q`TqT(@R;R}h(x@@ @y @))@*@yJ*yS@)Ss뷃VT@@9)4)8ih8q`TR)%( x4H@8hz_ TT'@RRRW@ @ R r q T@@<rT @6)9(ih8@ T8R@ yhx<rT8R@ yhx<rTQ@v| @RW@@@)R y@@R @ @*@y_ qT+Rl}},ilx!7kTk_ kHT )M+)@ 4 s뷃VcT)W;Y<@@y @?kHT;ySa}ӼW@@@@@@ybҨ@ yhx<rTARW<rTwR8R@*i|iix7@i@9) )y~ (@97@R@8!@y5R(@9qrT)!%(I( @9h4(@(@y)(q#@!@=@&,)~i)x!@ !@  bT @/@y@AR;WAR5W/@AR/W@K}S(k)xh@9qHRRHhkhxR RJjkjx@ji)x@Hi)x+@+@HVV/@x4!@R  iix~+ i+x!@ i)x@| i)xh@9qfT)!%(I( @9(4O@@5wh@9qVBdT)!%(I( @9H4O@@(4h(7@h@y(5ȓ@yQ( g q##T R R R+R,R}}i0@ k)kJ T@ynQ1@M.@4RRq|@1"  @cb@hf4QÓ@yBB#}}ӂh#@BK)#RQ4“@yT@|@}c5hfG4hf4q`T!Qc4G5RRQA5 kT * *L-@4!aT |@  @  @}io4QГ@y e @|W S@R_W q#TRR3R*'@R sT@x| )@6@y*@y_ cT(AI  @x>>_ kL_ kU12)TK!6 S@T @|OGW ;!}G@O@WSʑ@yK "6kT* @_k"T*,M:@4k! kaT@JJ@J @}}*i+6K!6 S@cT(R'@@))@*@yJQ=_kT' R=_kkTʑ@y)M(+@yj KJ )@ @J}}ii* @) 3@))@h}@ }JK[ @JJ@J @*i, @( '@@@ @W sT  R) @|:W @R'@K@7@ @}}-W @ @?T;@@9qT;@ K}S(y(RM@())@(e@ Q 1!T@!3RV @ (@yqȑ@y4; @ T RjK)?kbTk kcT@K  kT @M+k@qATZ _qT_qTK@ @y @ R r)  q'@T@ @@T@@9qTBRWT3@@(9qTq@Tq`TqT3@q!Tȑ@yTi ?kCTKi(@ kT @(M(@TZ_qiTK@ @y| @ R r)  qT@_ q T;BRW_ qT@o7K@ @Yy @ R r)  qaT@BRW@9 @*RI!@ CLik8 *Ii+8@i7?@)ih8* @+Rj!@)Clii8J *ji)8H86@ 5}F)R(!@*a@9H*(a9@9 @*RI!@ CLik8 *Ii+8@i7?@)ih8* @+Rj!@)Clii8J *ji)8?6@i5}F)R(!@*a@9H*(a9@93@q`TqT @X) )  @I@9X) I9@88X ѩhse@QCThQaK@7@?TR5)1??a23R'@hQaK@7@*'@hQaK@7@@*@9)k!%k l@94 k @94_q`T_qaT)@@)@9 *) )y~ @ K)}SyM)E+I%TH K}Sy-@@+@_;@IK)}Sy'@@@JKJ}S*y @M@J|)ijx)4R93@9i@K4)RR RLyi@)!)k#T!@)=@*1(M@y-5+1(k @k4Wyk 4 @m|ӌimxL4WrV@@'@)M) @?qT(Q W(@@RYi)-@)@?AT{TOSWR_QgPoO#NmC_@T(R9@@<<@sW'W(@h(M@qRYi)-@)@?TX@4+ƝX@d* R'6!Yt#@){C#og_WO{<@@@  @@yg@@ @@! "RE@9 RqTR@R@@@9 9;R RR@@M7 v|  @`~WRs 94 R@ KZk@T_kT_kBT @M M-@qT}ӌim,4Z))x, 4 RJ_ k" T L Zl @ @K1 1)Z1kT k"HzT@ N1!@T1}jqq AT AT @bK#" ? Txa$|ehd k HzT@E L%@?T}Ӈhgq$AT?T?AT}ӂha4X0!R0#@y5?X0!R0#@y#5B||1jbx41yM{FOEWD_CgBoA_qog_WO{Ch-@@@0@9)qAT@>@9h(7 R(9@@9rB@;s 96B9H6 ' 7?6?@  @L@9h07@(6))9)@)@9)7ˈ7X6 @ 9@9 6@@=@9 7c?@iT{@h7X6 @ 9@9 6@@=@9h 7Ry?@@9 ?qT) @9*ij8 {T˸[@:@ `74 ) T)R*ˉ) @9+ik8 K_ T TMT@Hl4b{T)R)ˈ @9 ij8 *? T T_T?r8*( 3$ #xTx'86wTBT 8 6iT @9KqTHT@9J_qT*jhT?JTRsT2@(sTo?7@@7( 4?@-@p@7?@3 >@-@KmTW'G;@@9qqTR+(  2o@_q(i@)uS999'@)G[ 3@H 6:@979R^{86_hTJSo@H4 ( 26@?@>+-9@zI@ 9 @) -eT 8 6iT @9*_qTHT@9)?q)T ihTT(y 6@?@N@3N@(E0 7@@i*_huC@W_TB€RR@/s.z@9:@bIc; TR/`o܃=` `; T@GR h@` ca `; TGRi@  h4c@(g@h@)a a;? iTGRh@`c@c@ c@ c@@*B9h7_gA8@G@/@@G@@ 1@9?)qATs@g@ @) W@*"8@@@R@@?T@R@ @* @J* @h@ @@ @@@?q}T(QW@ @) @) @(W@( @( W@4' . @2L@9Ȣ9G@.@ R Ra6@h A@y)!@JIyi) ?qaT @)@ @) @ @) g@G@@* @J*  @?qrT)Q A8 @ Ja8Ih.B9h7hZ@hb@hf@"hj@&h^@h@yh'IhZ (hb/@@ TR@:@}}M@_r@TG@(@)1@9?)qAT @7jIi^_K@k KjZ_q+Tk@ka JQl @_ kT@"#4=Th@86N@@'@) +4T7@W@kMT}@@@y 7O@/@@ @) RJ`7+@>@ @?@7o@I)6 @%>@* RN@aR1:@RNNR@`_@h@kmT}6B9H,6(R_C94?@ .G@.@()T#z*7J @?@iJ6o@7 (4>@ @?@o@4 @>@ @b&T( @@9Z97h@9kaTG@(@)1@9?)q?@AT @jIi^_K@k KjZ_q Tk@kaJQvف @_ kT8@"#<AT_@s(@kmT^}KTi@9Iki8 1{BTh@9kTHkt8{CT?@O@+Ti@9Iki8 1{T{cT{cT?@hTZ7Th@8)qT>@ 5@?@i9@/@@yG@(@)1@9?)qAT @jIi^_K@k KjZ_q Tk@kaJQvف @_ kTX@"#(<T_@{H@kMT|bT( @@997?@{"Th@9kATG@(@)1@9?)q?@AT @jIi^_K@k KjZ_q Tk@kaJQvف @_ kT8@"#;T_@s(@kmT|hT @8?k@To@6 G@ !@i %@* @@_ &To@)(4 %@>@ !B@4>@?@ a@(@;tC94o@4;@@ o@(4;@@;@@ @@9  [;@@ @@9  zK@ TC94Jx TW@@N@:@ R}W@7@kMTN|RZi)-@)@?!3T{UOTWS_RgQoP_ @{@@TC94?@=`?@;@X`C9h4#(A)!B_@@@)TC94#A!h@ @C9h4Bh@7*K@7TC95C9i4O@ T @9kkjij8  _ O@" @  @X@[7 @Xo@6TG@(@)1@9?)qAT @jIi^_K@k KjZ_q Tk@kaJQ| @_ kT@"#:T_@s@kmT{BTh@9i)(ih8{)Tc{TG@(@)1@9?)qAT @jIi^_K@k KjZ_q Tk@kaJQ| @_ kT@"#:T_@s@k-Tn{;@X@io@ 4 %@iY>@/ !@4>@?@ )C(@;;@@z@9~Ӊ)!%(ih8qTq@TC94(R# A!?@  %@o@ 6!o@Fh#z 4>@@@-U qT@ @C @BRߓ@@9C@4{xCTBd4cT5\5 3@*X>@@i(o@I7맟_ j(sl6#ѯ' 7tYbT @9ji8 #Ѣ'6#ѝ'7Y Th@kW@h @8)?qT {T?@ ]?@  ` L7 ,og_WO{h-@@@0@9)qAT@>@ -@!)<@9)So2@? To2@? T' @9?3R@B@z  Ro@qJ) *+9W @)uS'9#9 4 @I %@ !@   5@i  @Q>@ ?@j K;8@@? r TJR* _q_'@Ti7?@T X7E? AT@ @o@ 4 @_'@ =@o@D 9@4>@_7@94;@5bѨB+&TT_8)qT+b$T@ @@9@9 k#T_Te #53_#+~ҨZi)-@)@?AT{SORWQ_PgOoN_  4#TBT(86?iT(@9 _qT!?HTh@9q T(h?hT?jT#`? ATTi)*@9*ij8! T?CTTTi) @9*ij8 `TCTTT 8 6iT @9*_qTHT)@9)?qiT ihTT`_@7@_ rT>@ 1@?T@@ @@9h_rL*  T   JTrT*im )T Tl@9il8l  T *? K  Tl8 6 iTl@9qTk HTL@9 qiT)i Ta?c T@;@h+>@3@ T+C9 4?T)Ti8 6iTi@9*_qT{HTi@9)?qTTh )Tj@9 ij8)j _T@@Rs( @i @(7Rs( !o@7>@ 5@i 9@Io@?q R RIii@ @) Rs( @ 743+C9@i42@  TIjJ T@9Kik8) T%2@V ?@?q T3@)'@; Z) T8 6iT@9KqTHTJ@9J_qIqT)iT?@?qT'@7R  D TI 3@jkTj@9J_qkTjJ7R) T Tk@9Kik8˟ { T7RoR R s)) @_ kT jJ ) TWTk@9Kik8k TV R s)) @_ Ti ?ۂid?@?qTR R s)) @_ JT3@ T7Rj J@9J_qTj(T)ITijJ T?T+@9Kik8+ T63@(iNTj8 6iTj@9KqT{HT@9J_q_T)iTRT*8 6?iT*@9KqT)?HT@9J_q\Th?T+@?1Rs(o@?q R RIiiH@ @@9i (롂(T;@  4+C9@ '@*4?3@T)Ti8 6iTi@9*_qT{HTI@9)?q)UTTr'@T+C9x4Thi@9ii8h|#@6@(R 8R?LT@TjbMTj@9J_q OTi)8R˴T내Tj@9*ij8s 8R T|6@#@8RBTh@9i)(ih8hs8R+'@s#@ T8Ri )@9)?qTi(TITho+3@3@_@7!h )Tj@9 ij8)j _TTh @9ii8+3@_@6Th_8)qT@i6*@9H~Ӌk!%kih8q5T_q`T_q!T(! Rq T>@ @?( Rq!T'C94_q`T_qT)@-_q`T_q!T(@*>@ @ )+C92@ 84_3@M"T#T 8 6iT @9KqTHT*@9J_q);T) !T)@9A)|>@ @ @?_@) *6+C92@)4i) TT@9*ij8 _TҊh뼂)T86iT@9 ?qTџHT@9q2T hTi !@%@h +C9ˉ4-T3@ ?iT3@i8 6iTi@9*_qTsHTI@9)?q .TT(@9*>@ @ 3@3h 3@h3@ )Tj@9 ij8)j _Th #TT@9 ii8 ?TT86iT@9 ?qTџHT@9q%T`T@렆T@ r_@) *I7ȅ6>@@h@@9iq3@$WT#@+C94+@Thi@9ii8hs @@Rs( !o@67s+@h 먀T+C9_@3@(6{(R_3@*7o@#@4'@hi) *T @9+ik8J  T멞TAR: >@@9(4/@ #@4_MTT 8 6iT @9KqTHT*@9J_qiT) T#@+@ #@R(RȮi) *T @9+ik8J  TbTo@h4@@@Rs( !+@@h@@Rs( !Rs( @H@@T>@o@?q R RIii@ @) s2B9(n7>@o@49@m@ @* ?lT>@9@%@ 5@l@ @* ?LkT>@5@!@jT@?qT(Q>@o@?q R RIii@?qcT(Q>@9>@5>@%>@!@u 6H*Ak@9kqT{JAT)јk@9kqT{JAT [D| L7%O{C<@!@  %@AR*h>@%ARǚh>@!@ @ R r?(j!T@ @)I@9? qTARQ*h>@!@@@94@ @) RRIh>@ !@ 5@? aT9h>@ @`@{AO¨_ARh>@ARҒh>@ @ @ R r?(j!T@ @)I@9? qTAR*h>@ @@@94@ @) RRh>@ @ 5@? AT9{AO¨_O{C<@%@` !@)@` @ R{AO¨_AR!RBRA6h>@%@ @ R r?(jT@ @I)I@9? qTAR)h>@%@@@94@ @) R/AR!RBR4h>@@ @ R r?(jT@ @)I@9? qTAR)h>@@@@94@ @) R @?qcTR(Q {AO¨_Rh>@!h>@ %@ 9@? T5h>@Rh>@ h>@ @ 9@? T5 R{AO¨_R{AO¨_{i)!#TT@9(ih8TT86iT@9 ?qTHTH@9qT!aT{_ L7{T@9q@Th!TbT @9 ii8j_ T)T@9qT(TT!IT!{B_*Ϗh @9)?qTAT!o g _ W O{H-@@;hA9dA9(@9 *) *)Q?=qTRRRRRRQ1&@ss5JLyixk #`B@@9)Q?%q#|TJLyixk ` @T_8@9h4Rs@T_8V@9hM5@_TAh @Ҽ,qTDTR!@he/@9(5@96! 1@RD+@@95@ 1AT났T3!7] bT37+@#@; "TRx'@4h q'@aT@`A9+@#@5@HT@@1@9)qAT9@(C@ @ *O@I?K);@?q T*O@Ja)QTс+@? kT@;@2aTH@@kmTr+@#@; CT!!@W/@9(5@96! 1@R/#@+@낞T3t97 @9jh8+@#@;¿T$R' 4h q'@aT@H`A9+@#@H5@T@@1@9)qATZ@HC@ @ JO@I_KI;@?q TJO@Ja)QVفK@? kT8@;@1a4Th@h;(@kTzr'@+@#@@T@9ji8 1;#T8R뢑T3t6RZ7;BT@9zi@9"J2_)j k`Th qaT@h`A95@T@@1@9)qAT{@hC@@ jO@IKi;@?q TjO@Ja)QY偨k@? kTW@;@M1!T@H@kTr'@+@#@;#TQ0R@9h*QqC( T)+yhxJ @ֿTsst7Z7R@9jh8;"T9(@6 _  T? KT@9*_qT) 3(@hzh) SkT qaT@h`A9h5@T@@1@9)qAT@C@@ O@IK ;@?q T O@Ja)QY偨 @? kTV@;@0aTh@h;H@kTq'@+@C@@kT@9ji8 1;Tjh8? Tq TqTqT@9iqT@9q!T @9q@9qTq!T @9 ?-  R$!J\R @9}qR#RmC@DRRE@8#5!@)ZRE@8#t5:RE@8#5!@H)@9)4R/@9 50!@:@95@_@Th @ґ*q, T T/@9'@ 4+@@94R@T_8&!@H6@964/@93R5!82@RkD+@!@F@9G4/@95!82@RZD4R@;T@9Q qȷT)I+yhxJ @sbv@@a @ҫ+@bqT9-7{`zZa @|v@9(@ 6kh8RJ%ɚK D9? qT_TH@8kh8hzA) )D9?qT )4DR_pYQ6{`'@@;@$R'@k@T`A9|5@@1@9)qAT@;@B@;@@) N@IJ:@?q TN@Ja)QXၨ@? kT )75@;@/Th@H;7@kTnp'@@;@)?+@kT @9Jkj8? )1  ;T,   ;#T%`A9s5"D`r7@;@  _wT+@9lik8_ J1;@5 ;Th@943R@ T@9Q qHT)i+yhxJ @ֿBT7+@;"T_85qT@9)q(R'@k@T`A9Hk5@@1@9)qAT@C@ @ O@IK ;@?q T O@Ja)QTс @? kT@;@$/iT(@@kMTo@`T_8Z"R[#@+@ҿ "dT3t97zZRV@9"Rҫ[+@ҿ "aT3tzZRK"RҖ[#@+@ҿ b^T3Rx{{R"R[#@+@ҿ [T3!t{{R6T37;XT@9@KM@) ?QJTh qaT@h`A9V5@T@@1@9)qAT@C@@ O@IK ;@?q T O@Ja)QTс @? kT@;@{.TT(@@kTFo'@+@#@;TB,T3t7y9R@9Jh8;bMT@9@9 kTH86)kh8J'ɚK( D9? qT_TH@8,kh8hzA)) )D9?qT 4DRҵnD+@Y@*M@ ;@QITh qaT@H`A9F5@T@@1@9)qAT@B@@ N@IJ:@?q TN@Ja)QW݁˒@? kT@;@-(Th@H;@k+@#@TnD+@@;@)?T @9jj8? )1 ;T T37;=T@9@KM@) ?QJTh qaT@h`A9;5@T@@1@9)qAT@C@@ O@IK ;@?q T O@Ja)QTс @? kT@;@-9T(@@kTin'@+@#@;TT3@9t97R{{ @9ji8 ;1T;0 9(@7D#@#ikh8J'ɚKh D9? qD#@T _TH@8lkh8hzA)i )D9?qT i4DRm7D+@Y@*M@  ;@_QITi ?qaT@ aA9)5 @ hT@6@)1@9?)qAT@B@@ N@HJ:@q TN@JaQXၨ˒@ kT5@;@"  -! T@H;(@k+@TmD @;@)?T @9jj8? )1 ;T TE@83tZ7@9jh8;T;T@9 Cii8 (%6h q'@aT@aA9H5 @T@@1@9)qAT@B@@ N@IJ:@?q TN@Ja)QY偨˒@? kTU@;@  ,ATh@h;H@kTpm'@+@ @T @9ji8 1;TT37 ;T@9@9 @~Ak U*k*kqSk}k k!˟ T@9k k T K!_ @TL@9 k T _ @TL@9 kT_ @TL@9 kT_ @TL@9 k T_ @ TL@9 k@T_ @TL@9 kD#@ T_ @ TL@9 kD#@aT },}m@  ʭ   Tu!mAiTbT˪ @9 kTkAT;_BT_h qaT@(`A9h5@_hT@@1@9)qAT@B@@I N@IJ:@?q TN@Ja)QTс˒@? kT@;@+Th@@kTl'@+@#@VCQj;_TD#@Tss497  @9hjh8;T@9@9 @~Ak U*k*kqSk}k k!˟ T@9k k T K!_ @TL@9 k T _ @TL@9 kT_ @TL@9 kT_ @TL@9 k T_ @ TL@9 k@T_ @TL@9 kD#@ T_ @ TL@9 kD#@aT },}m@  ʭ   Tu!mAiTbT˪ @9 kTkAT;_BT_ qaT@`A9h5@_(T@@1@9)qAT@B@@I N@IJ:@?q TN@Ja)QXၨ˒@? kT5@;@+T@h;(@kTk'@+@#@TCQj;_TD#@T37 ;T@9@9 @~Ak U*k*kqSk}k k!˟ C T@9k k! T K!_ @TL@9 k! T _ @TL@9 kAT_ @TL@9 kaT_ @TL@9 kT_ @ TL@9 kT_ @TL@9 kD#@T_ @ TL@9 kD#@`T },}m@   Tu!mA TbT˪ @9 kTkAT;_낰T_h qaT@`A95@_T@@1@9)qAT@B@@I N@IJ:@?q TN@Ja)QTс˒@? kT@;@[*TH@@kT&k'@+@#@[  CQj;_#T;D#@¦T3T97  @9jh8;T@9@9 @~Ak U*k*kqSk}k k!˟ C T@9k k! T K!_ @TL@9 k! T _ @TL@9 kAT_ @TL@9 kaT_ @TL@9 kT_ @ TL@9 kT_ @TL@9 kD#@T_ @ TL@9 kD#@`T },}m@   Tu!mA TbT˪ @9 kTkAT;_—T_h qaT@`A95@_T@@1@9)qAT@B@@I N@IJ:@?q TN@Ja)QXၨ˒@? kT5@;@)Th@h;(@kT^j'@+@#@Y  CQj;_#TuD#@T3T6RXZ7 ki8 ;BT@9zi@9"k2*jTh qaT@h`A9(5@T@@1@9)qAT{@hC@@ jO@IKi;@?q TjO@Ja)QY偨k@? kTW@;@/)aT@h;H@kTi'@+@#@@T@9 ki8 1;cT+<R!@9T37+@#@; 뢢T@9@9$kTh q'@aT@`A9+@#@h5@HT@@1@9)qAT@C@ @ O@IK ;@?q T O@Ja)QTс @? kT@;@(T(@@kmTi+@#@; T6RbvT3T97;"T@9zi@9)%) kTh qaT@h`A95@T@@1@9)qATZ@HC@@ JO@I_KI;@?q TJO@Ja)QXၨK@? kT7@;@v( Th@(@kTAi'@+@#@;cTz:RE@8#t5 ZRE@8#5 "jT37;"T? +T@9*)_ T?q$MzAT ?T@9*)_cT?q!Th qaT@H`A95@T@@1@9)qAT@C@@ O@IK ;@?q T O@Ja)QTс @? kT@;@ (T(@@kTh'@+@;T;R!@(]T3T7 @9jh8+@#@;~T@9c"k@Th q'@aT@H`A9+@#@|5@T@@1@9)qAT9@(C@ @ *O@I?K);@?q T*O@Ja)QVف+@? kT@;@'aTH@h;@kTth'@+@#@@T@9ji8 1;CTQT3T8RY97)ki8 ;BrT9 7)@zi@9 #k2*j@Th qaT@h`A9o5@T@@1@9)qAT{@hC@@ jO@IKi;@?q TjO@Ja)QZ遨k@? kT@;@E'!T@h;@kTh'@+@#@@T@9)ki8 1;#TABDT3TД73`A9Hf5'D+@e7;@;( @cT g'@+@;cT@9*Cӊjj8) I%6h qaT@`A9a5@(T@@1@9)qAT9@(C@@ *O@I?K);@?q T*O@Ja)QW݁+@? kT@;@&AuTH@@kT;CTqIR Rq)qRqR) Rr@@ < @@ W @)M) @nEAgAty}@  @ R * @  qT @D@? q T BR-D@? qT@#@)@9?qT#@)!$?T?T*@)*)@ MT\l-gҁEХ(@f#;T/ TR,R @ H|(ihx"@R%*@hK ۚ(Hxh+@;aA9a5@@1@9)qATs@hB@@  jN@IJi:@?q TjN@Ja)QTсk@? kT7@;@&A]T@H;@kTf'@;@ @+@C@EХfTiA9I4@9hi8 ?뵂R:R(R3@  T @J|*ijx_aT#@+4hT@9lCӌhl8m %7hk8 T;HT4"@RJ-,J@j KK ۚjJxj_+@XH4* ۚ(Ux(/@T R3hT@9lCӌhl8k % 6)?!qh'TCRR@ylxk `֨@9)R#!@h<@9IRqT/@95 @R `4liv8R)%Ț*D9 q+@T?bT6@8iv8VzhA(D9qTxR (R3@9c rEХ@?D7(RCTd:iR(KR} } S'E)/'@f7@T:!@4#@%4@9%T/@9%5@R  @fEХGC?D+@`#4hv8R)%Ț*D9 qT?T6@8hv8VzhA(D9qT)!)@0CRH96)hi8Rk%ʚi JD9_ qT"T @8hm8-z A* JD9_qTy 4{ (4DRҋe?@a6@@@y!@qTAR^I)> yh@R!d.IRDC@EХf @/@ (9)7)R3@97*R\Dcr+@7K!T@9EХhi8 13?DGCfbT(R")hi8Rk%ʚi JD9_ q#TT @8hm8-z A* JD9_qTd"iR(KR} } S/@)/'7@Tu5jJ7DRefEХGC?D#E3@  7@ T@`RRR@ @ R r qT@@ RD RDC@EХf:ARǀDC@EХf <. H4DRd?@a6@@@y!@qTAR~I)> yh@R!d.ǂDC@EХf @@987(R3@97@*yhxs @+!@yz4H|hih4J4@y,*   +T@ kBT@M,@T}ӬilL4ض_L3@  IT*hh8RJ%ɚH )D9? qTT l@8hl8 z A) )D9?qT5I)#iTcDR\dfEХGC?D+@7@TEХrfEХGC?D+@@9IRqTcfEХGC?D+@#@h5VfEХGC?D#ECRR1R:RGHRSshzh4R(jT97 \d'@+@q;"T@9hzh(jkT`A95@T@@1@9)qATZ@HC@@ JO@I_KI;@?q TJO@Ja)QXၨK@? kT6@;@V#iTh@(@kT@_0Th @{qLATD)/TR HRSshzh4R(j"T97q;T@9hzh(jkT`A9(5@HT@@1@9)qATZ@HC@@ JO@I_KI;@?q TJO@Ja)QXၨK@? kT6@;@"!^Th@(@kTc'@+@IRJi8 ;bT_ +T@9I)? D)MzT_q!T@9?qT @9)?qTIR_ T@9I)? D)MzT _ qT@9?qAT@9_T*)_ Th qaT@H`A9H5@T@@1@9)qAT9@(C@@ *O@I?K);@?q T*O@Ja)QW݁+@? kT@;@"TH@h;@kTac'@+@@T@9ji8 1;T®T3TWZ7R@9jh8;T9(@6 _  T? T@9*_qaT) 3(@zh- SkTh qaT@h`A9(5@T@@1@9)qAT@C@@ O@IK ;@?q T O@Ja)QY偨 @? kTV@;@'"!T@h;H@kTb'@+@C@@ T@9ji8 1;T#jh8? +Tq TqTqT@9iqT@9qT @9q@9q@TqT @9 ?-![R @9}qR#R)_C@DRTSs4WZ7@9jh8;BT9(@7hzh1 Sk`T ? @Tjh8_ K TqT@9q TqT @9 A?))FORk`T qaT@h`A9(5@T@@1@9)qAT@C@@ O@IK ;@?q T O@Ja)QY偨 @? kTV@;@!!Th@h;H@kTHb'@+@C@@kT@9ji8 1;cT{  @9'kTR#R^C@DRkTBTSs4WZ7@9jh8;낪T9(@6 ? q T? T@9*_qA T) 3(@hzh5 SkT qaT@h`A9Ȧ5@T@@1@9)qAT@C@@ O@IK ;@?q T O@Ja)QY偨 @? kTV@;@ Th@h;H@kTa'@+@C@@T@9ji8 1;T R#R^C@DRk@TyT4"Y9{7\  @9)ki8 +@;뢚Tzs9@(6ka8R)%Ț*D9 qT?T!@8ka8AzhA(D9qT H4DRaYA;@C@_ kT ?qDaT @ `A9ɓ5 @ HT @6@)1@9?)qAT@B@ @ N@HJ:@q TN@JaQZ遨˒@ kTu@;@"f !vT@H;h@k+@T/aD @;@)?T @9*kj8? )1 ;Tc  hTSs4WZ7@9jh8;‰T9(@6 _  T? k T@9*_q T) 3(@hzh=SkT qaT@h`A95@T@@1@9)qAT@C@@ O@IK ;@?q T O@Ja)QY偨 @? kTV@;@Th@h;H@kT`'@+@C@@T@9ji8 1;T jh8? Tq!T@9qT @9qRR#R ]C@DR DR=`Y0;@A@T@9+@#@Ja8; "xT@9h@9?kT86Hka8i'Ț*HD9 qT? bT!@8Kka8AzhA(HD9qT 5;@ATh qD#@aT@(`A9r5@T@@1@9)qAT@B@ @ N@IJ:@?q TN@Ja)QXၨ˒@? kT5@;@]UT@H;(@k+@#@T%`D+@ @;@)?T @9jj8? )1 ; #TX   DRһ_Y;@AT@9+@#@ka8; gT@9h@9 B)z* ˉ K()_((T86hka8'Ț*hD9 qT? T!@8kka8AzhA(hD9qT (5;@AATh qD#@aTH@HcA9a5H @TH@@1@9)qAT@B@_I@ N@IJ:@?q TN@Ja)QY偨˒@? kT)75@;@CTH@H;7@k+@#@T_kD+@I @;@)?T @9 kj8? )1 ; T   DR1_Y$;@AT @9ji8 +@; VTb˗;V9@6Hka8i'Ț*HD9 q+@T ? T!@8Kka8AzhA(HD9qT 5;@ATi ?qDaT)@I)cA9P5) @ T)@<@)1@9?)qAT@C@?*@ ˊO@HK;@q TO@JaQW݁@ kT7@;@"L T(@H;7@k+@T_D) @;@)?T @9jj8? )1 ; TH   DRҬ^Y;@AT @9ji8 +@#@; FTa˃@9M; E9@6hka8'Ț*hD9 q+@T ? T!@8kka8AzhA(hD9qT H5p;@AATi ?qD#@aTI@IcA9?5I @ TI@6@)1@9?)qAT@B@_J@ N@HJ:@q TN@JaQY偨˒@ kT7@;@"!TH@H;7@k+@#@T^kD+@I @;@)?T @9jj8? )1 ; T  sv@@Ta @9 +@"#T9s37{`ZZa @\Мv@9(@ 6kh8RJ%ɚK D9? qT_TH@8kh8hzA) )D9?qT )4DR]Y߮6{`;@'@@'@ @%R'@k@T`A9-5@@1@9)qAT@;@B@;@@) N@IJ:@?q TN@Ja)QXၨ@? kT)75@;@2!Th@H;7@kT]'@@;@)?+@kT @9Jkj8? )1  ;T   ;Tsv@@a @Ҥ {+@T9&7{`ZZa @\Мv@9(@ 6kh8RJ%ɚK D9? qT_TH@8kh8hzA) )D9?qT )4DRX]YJ6{`;@'@@'@ @%R'@k@T`A95@@1@9)qAT@;@B@;@@) N@IJ:@?q TN@Ja)QXၨ@? kT)75@;@}Th@H;7@kTe]'@@;@)?+@kT @9Jkj8? )1  ;T#   ;ThcA95sb"v@@& @ +@bTTZ37V{` @[{R\Мw@9(@ 6kh8RJ%ɚK D9? qT_TH@8kh8hzA) )D9?qT )4DRҾ\YW{`;@'@@'@ @&R'@kT`A95@@1@9)qAT@C@;@@) O@IK ;@?q T O@Ja)QY偨 @? kT)75@;@ATh@H;7@k;@T\'@@;@)?+@T @9jkj8? )1  ;T   ;TyO@11'Ss1!@/@9H4ZRE@8#4 bD+@qHR ( ыhA9H ɚ4? TBTi8 6iTi@9*_qTsHT@9)?qTTT7 ;@)R+@#@ ;Tq q*p'@4aA9h5@@1@9)qAT{@hC@;@@) jO@IKi;@?q TjO@Ja)QXၨk@? kT@;@  ST@H;@kT\'@4 @;@)?+@#@ T @9+kjij8? )1 ҬhN@*@)*)@ MTa[@(O@=@OT_8~HR3shzh4R(j" T97:Z@9hzh(jkTq`A9(5@T@@1@9)qAT{@hC@@ jO@IKi;@?q TjO@Ja)QXၨk@? kT6@;@aT@h;(@kT['@+@@KT@9Iki8 1;Tҵ;Th*@(jk!Te@ MT_8hHR3shzh4R(jB T8Z7@9hzh(jkTq2`A95@T@@1@9)qAT{@hC@@ jO@IKi;@?q TjO@Ja)QY偨k@? kTV@;@T@h;H@kTK['@+@@KT@9 ki8 1;cTҵ;Th*@(jkT`A95@T`6lhO@i@_8ɫ+@Ts3{`;b T@@9{`'@@R+@kT'@`A95+@7;@@_8+@ T&{`;bT@@9{`'@@R+@kT'@`A95+@7;@b"@_8y+@T9376{`R;"T@@9h7{`'@@Rs+@kT'@`A95+@ 7;@'@`A95@Tt6@R(Y`@R(Y`bA9Ⱥ5b|@RdDT3s@497IT9H@6 _ qa T? T@9*_qaT) 3(@hzhRkT`A9+@5@HT@@1@9)qATZ@HC@@ JO@I_KI;@?q TJO@Ja)QXၨK@? kT7@;@s,Th@h;(@k-T@ 4 _ q)T@>@I5:@ _ qT@*07kA8k@j@_ TjA9 06Z@  1KqTLik8 ֋N@b@_T_1TN@k@T"L*A   "b.@99p9@ }Sh@*3j)8)@95{BOAWè_C4:@_)T54"@i)jN@ R*@)yl4,}@)}* ii? T!*k@T N@ R })Iii?T}@ R)+ @Tb ˈf@) !"{BOAWè.B97{BOAWèqTh@@(R9@i@(҂RRch@@hh@{BOAWè_(R9҂RR{BOAWècRO{8@9h4{_ֳhg_WO{@ 0@9?)q!T @ =@ 5 9@J_ qHT =@I4J_ qT @+07A8@@TA906_qTKkmij8  RR M@K@ qT )B9  71 M@)@?1T a@K Kq T )B9  6Y@e@ 9}@S kTu~@&?kT !@I"b M@ R N|@J|+-ij T%+J @_ T )@jByn5 Ri`4hR{DOCWB_AgŨ_u @~BV**qS} !bT4I9J7 ! @`T 9j7 @T 97 @ T 9*7 @T 97 @T 97 @@T 9J7 @T 9j6(@AT(!*A_)TT )) 97) aT-CQ( 7 T*@8jj8 D9?bTqT5  qaT@9qTR.JT}K K  qTwCog_WO{ )-@)@)@9*Y_TR9T@R7Ix@99T@R6w4*JIit8Rk%ɚtI )D9? qT"T @8Nim8z A)I )D9?qT5hCTh@9Qqa TX 7/@9 5@Rh` 4a6@@@y!@q TARdTcDRJ@Ti@9(YqaT06i@9'?MqaT(*(6Rmh"C ij8 J%7X86?MqT7T5R_h@8 rT86)a)it8*Cij8) %H7h@9H6z*@4RHZZSrJ)R)!q IZ: {qD@zT;7#T  )> yh!d.@Rhh@ 1T07BDT[/ 1iTR"R6AT@95R@/5R@@9q**h6BDT@ )-@)@?TJ{HOGWF_EgDoCC_֟TThV@9@9 y?%qTq&RSA@/@9q*7FAhF@9SRBDTx?6h@9MqT@Rag4!L/@RHh@ |B)@*)*)qS)}))!*_ T( @9) ?k T ! @ T @9J _k T @@T @9J _kT  @`T @9J _kT @T @9J _kT @T @9J _kT @T @9J _k T @T @9J _k@T*} *j} ,@ ʌ   aT !,AiTbT) @9J _kT)AT_ֈCQ _@ |B)@*)*)qS)}))!*_ # T( @9) ?k T ! @ T @9J _kT @@T @9J _kT  @`T @9J _kT @T @9J _k!T @T @9J _kAT @T @9J _kaT @T @9J _k`T*} *j} +@k aT !+A TbT) @9J _kT)AT_h CQ _ւ49 @9 ii8*@9? kT!BqT R_R_"41!BQB4 @9*@9? k T ij8? kTR_ R_"4a!BQB4 @9*@9? k T ij8? kTR_ R_og_WO{ C-@@*a6R iy8<RY==77 Қ [{@kh8QqiT@q$T mq%T@kh8QqTj{hx) #RQ q' N=n(aqp. &I *(**r)a6R% iy8@kh8QqT#Rxq T@qTRq@TqT@0Qq(T#Ț?T#R0QqT@0Qq(T#Ț?T#R0QqT#RqT#R~QqT#Ț)I ) T@,,QqT#Ț)P I Txq@TQqhT#Ț)   aTk@,QqT#ȚJJ ? T#RJ,QqTY@QqT#Ț?T#R:QqTI@@Q5qCT #R)@Q5q#Tq T*#Ț )0 !TO#RQqT#Ți  T #Rq!T7@qT@qaT)#R<qhT#IR jTR#Rq T6#Ț  T#ȚR !T#Ț @ aTH@@9q@ )-@)@? T R@ )-@)@?T{IOHWG_FgEoD_R@ )-@)@?@T~@g_WO{-@@ qTq`TqTqTR k2qhT R  R jT@ )-@)@?T{FOEWD_CgB_hQ qTQqT#0qT(R ! R? jT@  Q? qT&qaTq T>qATqT#gRR=q!q Jh76RWR#<qhT"jT qT12qTqTCD5qaTC<4q`T qT qaTC0q`T9qT9q`TqT2qT R  R? jTqT:qT(R!IR jT(RR)%):q(1)RjRJ%J:qI1?rlA~Cog_WO{-@@*_R(`iw8{ '\sH@hkh8 qTcbDqa TuWH@hkh8 qTcU`iw8H@hkh8 qT)q Tkh8) C@RPqT(R! R r jTQC@#R,q)T.c.,qT(R! !R j@T<C@#Rc qT.C@#RDqT&Rc Hq T7Z HuqT R@ )-@)@? TR@ )-@)@?T{HOGWF_EgDoCC_H@iR]r(%Ț@ )-@)@?T}{C-@@97(Rh@9@*JIih8Rk%ɚhI )D9? qT T @8Nim8 z A)I )D9?qT @@ J-@J@_ Tg}5i)i@ J-@J@_ T{A_RF@r@ J-@J@_ TCWO{-@@(97@ )-@)@?T{DOCWBC qTh@9@ J-@J@_ T3{DOCWBC/@95@Rc4( iv8RJ%ɚK  )D9? qTj_TV@8 iv8vzA)  )D9?qT I4CDRҨE @a6@@@y!@qTAR{_ )> yh!d.@Rc*QqHTI)+ih8J @h@9q TqTh@9q TqA Th @9 ?-  R$!JRIoh@9qTq TqA Th@9iq TNh@9qa Th@9q@ TqTh @9 A?))F'@ )-@)@? Te"Yuh9@6( ia8RJ%ɚK  )D9? q#Tj_TA@8 ia8azA)  )D9?qT%h@9q!Th@9qTh @9q(h@9qTh @9q"h@9qTqTh @9 ?-R!IR@ )-@)@?T% I4CDRE @A@ )-@)@?T{DOCWBC_h @9'@ )-@)@?@T>|h @9}qO{/@9H4Ys%{BOA_*8qTI)+ih8J @~qT87@I3=@ R q{BOA_hQ)q'{BOA_87@I3=@q{BOA_ֳ87@I3=@q{BOA_87@I3=@+ 87@I3=@q{BOA_ֳ 87@I3=@q{BOA_֓ 87@I3=@q{BOA_s 87@I3=@H `7q{BOA_S 87@I3=@q{BOA_3 87@I3=@q{BOA_@I3@9{BOA_87@I3=@q{BOA_hqෟ{BOA_R$ R!RRRRRi{4 R{BOA_R RAR@RW{q{BOA_0p`og_WO{-@@5@T"6T86IT@9 ?qTѿHT@9) T647R8y9s3h@_8ϔ {`0Qq"Ț@@Tu@ "Tkh@_8hq3y`bq Ti T9;zZs38(7@8@@{`u5JiT@9 ?qTHT@9qI T*kh88@RJ%ɚJ D9 qT?T!@8ka8AzhA(D9qTh5x@{`u40Qq)R(!Ț@THT 4DRjC@]@{`u5tR@)-@)@?!T{FOEWD_CgBoA_֜zL7_O{)-@)@ @BT4 )j@9-ij8` T@ 9(@6 )*ih8R%ʚ( D9_ qcT "Th@8-ih8zA** JD9_qTi ?T@!@9R@)-@)@?AT{BOA_ 4DRC@hq3y`@)-@)@?THR)aJ(k@9l@ @R(R)5*J8k@9l@ @yl@ *(@yn,_4 kcTU@ *R}ipTR=@T!(R)5 R*J8l@@@@ @@@K[T @@ZT@ kkT}@U1@RF @`T Y4H@L@ kcXTU@R55@A`WT QPT@ %qPT 5l-QqTx7_T(@9kTXHT_kT%qATq7r"BR5 R(R+P+i@9)9j@94#?rQT@q R) i7]V)Q9JQ+4hA9k4_rT@_ T ҍ* 8 6 iT@9qT HTm@9 qrTm hT TV*@ Th@94k@@i@  @W@]5>Ph_!GT#'@y@3@kmtT78@"Br7#E)@? kqT )w@yhs5T(TI@4T)-@P@QIY(@H @uSd9 @O.@@I @)I @?q T(QI@H1@9)qAT) @ (A@k @ @3@i @)i @C@?kT7 @ @@BRe;@9277r"Ba @?qcT(Qh BsH@(Q?qTI@H4T)@P@QIY(T(TI@4T)-@P@QIY(@H @uSd9 @O.@@I @)I @?qT(QN@H1@9)qAT @A@k@G@kT77@)6)@ Q*(K_kF QL_̕ QL^̑QS^Cj  KJ}kUJ}˛JDk KkM@ R`1!(H }o@:@ kr"BiqTBsH@(Q?qjTI@7'4T)@P@QIY(9@C@kT>7"Br7@s& @HQ@I@) @ ks TQHQG@h5@@(-(Q@Qs(QG@("4@) @C+ij8h*(i*8 @3@kmT7"Br7#E)@? kT R +1 U@ i+ka)Q_ k#T )s@yw@y?!(k#TU@ =@k%(k} Li+@J L @J L?!(k"Tg@RT  #@Cxgh@9q8TQq!T#E))R? k+@4&/@C5@9 qbTR R+@? k+@(C5? kBT7@t@BRR~7@rr4@?@ Q ThA94I@ T 8 6 iT @9KqT HT*@9 r @p7@W@)W(Rg#U)@(xw@'@kT}67@)6)@ Q*(K_kF QL_ QL^QS^Cj  KJ}kUJ}˛JDk KkL@ R`1!(H }n@:@ k RT7r"Bw@85R!@hh@9Q(4/@9H5A!82@RS"Br7 @@?낏TP_rTi@9?qh/T*JALyixk ` @_ TT*86? T*@9KqT!? HT*@9 h@9q+T*JLyhxk `_ TH_8)(yhx7))Ya)R5RP?r!T!y7_TYai@9*RI!)2?(jkT5R!y7_TP?r!T?q T TH@9 q!TH@9 ?qT(<3@)(yhi@9%kT!@(JaIR@PrD@8k *7qTk/k@94P%x7@9+<? k%TJIa8? khX$T5Pr@TIRD@8r@\I 57r"Bf#h@Oh@RSc S@9 ~ji8?qw`T?%qAT@?qfThA9dA9w@"Br76SCPHd6O@4+O@kj4TC7r"BTw@6' _(_T+Rk!ʚ, (  \T@?qT@ @9@9 ?(T*RJ!ɚ+  _ T ~ji8?qTU`TT@9?T?a`T@9H4@@y@9TT)I@4 @J? kT ~ji8?qT @?qWT]T @9PrQt`77r"B/@ @  k`?T?@?kTYai@9%kTT @9? qTI87 @9? k!T)R cTx @9J*3 @9_ kTIR Tl@(R k!Tc#E)@? kiT R +1 U@ i+ka)Q_ k#T )w@y4s@y)!)k#TU@+=@k%)k} Li+@J L @J L)!)k"T?@q?T?+T qT?"Br7`5NRP @_ ^T^x7c@_ 0T 8/6 /T @9Kq.T HT*@9 o  @_ RT[x7@_ TT 8S6 ST @9KqRT HT*@9  @_ XTaXx7@_ I6T 856 I5T @9Kq4T HT*@9  @_ `UTAUx7c"@_ ?T 8?6 >T @9Kq>T HT*@9 `@9!kT7r"B  A0TH@9 )? PT5qPT?r@T qTH@9qT E()} L@J K 8@)a  BTTL@ Ki) E()}ӆ7r"Bw@ L@J K 8@)a  TTUJ@ Ki)H@9i@*M@ QITgY7RP"BK@/9?q T#S ? k!TшRIF4@9qETш _8)?qT'rRCT*K_q DT(K?bCT*@9kjij8) QqT/@95w@RP 4"a6@@@y!@qTARL5/@%R)"BR74YK@ KS@ k+T ? kAT6R U( 7 g  7@H?G@_ @?@ ?ThA9Qy4I@ }T 8>6 >T @9Kq=T HT*@9 i$@yj@J)?qTT)I@4h4?kT%RG)47@?@C@k@H@i@  @@ysy@ywyH@i@)M) @N@h@9q`TqT!@jr Tx7(qTh@9qAT/@9ȟ5@REPU"Br74H9@6@ ix8RJ%ɚK  )D9? qTJ_TX@8 ix8xzA)  )D9?qT@@ K)D(%  k1*Q( ) T5 9?q}C@@cw`P(@TGR)@iR|P TrI@9?))?' *q(6 (RZK@KA9HcTw@_aTT TJI@4Sk@k_ kT?qTS)@?qT9SCP7S@%4("BR7KO@kTCRTw@7d RKO@kkTYw@-T@ @9*}~jj8_q$ Ez@TOI_8?)qT@9q`TQOC@/QRs Raxx7@I;TJ9H@6 _ qwT? :TI@9*_q!:T) 3(@)(yh_ Tx7H_85q TH@9)q(R kvT _ T! x7@A_8;c`Wr3z`@A@9Zz`@R@R4<R(R krTh _ Tx7@A_8;c?W&z`@A@99z`@R@R_ Tx7b"@A_8;c%w27z`@A@9z`@R@RR*c@"B;@r7(R kjT&  R(R kiT I ((ˈcTшCA9HTA9kT(R@_ HTA9i"Br7w@A9 hTA9A9@9  ? k! TM)nQ qH T R R R/ in8 ֈA9A9J @KAk Z*k*kqSk}k k!˟ bTw@kw@ K@9k k TJ J!X @ T @9k k TX  @T @9k k TX @T @9k k TX @ T @9k k TX @@T @9k k TX @`T @9k k@ TX @ T @9k k7rP"Bw@!T; @9kS @9lA * @9! * @9 *i ? k@ Tr T)(ih8@_ TW } ,} M@  ʭ  TZ!MAIT_bTX K@9k k TZJATrT`rTbT @9)?qTATQCQXrTG7rP"Bw@˂h"Br7w@@iTF #@rT:6R56 94#@K@ K/@&Rk7"B>TRw@ rC 5f7rB q?T R#Rx,RRf7RBJ(R k=T %qT)Io8 kTB (!RgEjN@f7RBc@w@'6Lh@9 @@J DH% ?C) K*RI!@J @Ji8? j %Ts@(Q@Q(Q @?f7rB54 "RҎ)tKAf7rPBA1T q0T  )4DR yh!d.@R6Mf7rBTD@8P@)kT*T@9!kA*T JTgBrf7H4@ RA+6 R k(R k&T I@ 3I@ 3( 4N ia8RJ%ɚK  )D9? qP(TJ_ 'TA@8 ia8azA)  )D9?qT4)> yh!d.@RLf7rBw@h@9 )Q?q(T ii8J @4 )"3yhI9(@6@)*ih8Rk%ʚl( D9_ q#TKTh@8-ih8zA** JD9_qTH@9qTqTH@9qTqTH @9 ?-  R$!JRIH@9q@TqTqTH@9iqT+H@9qTH@9q{TqaTH @9 A?))F'H@9q!TH@9qTH @9qH@9qTH @9qH@9qxTqTH @9 ?-R!IR k5h@ M@) ?QHTr*T(<@)(ih8Z_TH  4DR&.Brf7Yh@ M@) ?QH)TWf7rNJ_q 2T T+9i@ 7yi6'+ q!T_ T*@9KqaTH(3@)(yha6R#R*Brf7R6RJ(R kTR;RR;Brf7!6 4wDRұ-w@Y~Brf7AkT I`4 DRҐ-Y )4DR҅-Yha6@@@y!@qTARXG)> yh!d.@RKf7rBU@(Ax7_T*JCij8)@%7 @|iix(4@H 7@'@+@79y_HTRRw @)/ @)@y)44@y_q JzBTyy0RoT4hTT)?!q0TCRR*@ kmyjx h@9)Rw@A9_q*k7s@y_q JzT!@(GPr9Tu@9C9Th/@985@R;cJ@@c@B;@rf7 64 iu8RJ%ɚK  )D9? q/Tj_/TU@8 iu8uzA)  )D9?qTs!@Bu@9IRqTh/@95;@RJ`4 iu8RJ%ɚK  )D9? q Tj_b TU@8 iu8uzA)  )D9?qTX)!)@ @IR (i9i6)kjii8R%ʚ j JD9_ qw@cTT @8oin8.zA*j JD9_qTc5R`@9ѢC8Brf7w@CTd(;iR(KR} } SW˨c@@UVT"4 )4DRL,Xha6@@@y!@qTARF)> yh!d.@RFJIRf7r;@B@@UW Hi97*R@9w@wDѣC8hk'Ti@9JIii8 1w@f7rB@UT(R))kjii8R%ʚ j JD9_ qw@cTT @8oin8.zA*j JD9_qTR d kRj KJRJ} J} S?W)˩5VT5Jcѣ#;DR+w@B;@rf7+w@U ˨7 V T@@ cRRR@ @ R r qT@@ RT Rf7rB@@UAR]Gf7rB <@@U @3 I4DR]+Xha6@@@y!@qTAR0E)> yh!d.@RWIf7r;@Bc@@@u@9w@u87(Rh@9@)yhxWh*R9 4ʒ@y** ) +dT@? kT@KM)k@aT!)}WiiWs qbEIT*JIih8Rk%ɚhI )D9? qTlT @8Nim8 z A)I )D9?qT 5i)hTcѣ#;DRc*Uw@c@B;@rf7VTc@@c@Brf7PrTc@@c@Brf7u@9IRqBT|cɿ@@c@Brf7IRWR.04jH @9'H @9}qkTJ_qiT 9!@;cwI6)*ia8Rk%ʚl* JD9_ qT Ta@8-ia8zA** JD9_qT *4DR[*YN{-z`@I9(@6R!@)*ih8Rk%ʚl( D9_ qTKTh@8-ih8zA** JD9_qT *4DR/*YP?r{z`Q@;J_qT 9!@;cwI6)*ia8Rk%ʚl* JD9_ qT Ta@8-ia8zA** JD9_qT *4DR)YzW&z`@I9(@6R!@)*ih8Rk%ʚl( D9_ qTKTh@8-ih8zA** JD9_qT *4DR)YP?rzz`Q@R@ J_q)T 9!@w6)*ia8Rk%ʚl* JD9_ qT Ta@8-ia8zA** JD9_qT 4DRґ)Yczw27z`@I9(@6R!@)*ih8Rk%ʚl( D9_ qTKTh@8-ih8zA** JD9_qT *4DRa)YP?rPzz`Q@R@RZrf7jJ_qIT 9!@;cwI6)*ia8Rk%ʚl* JD9_ qT Ta@8-ia8zA** JD9_qT *4DR")Yz7r3z`@I9(@6R!@)*ih8Rk%ʚl( D9_ qTKTh@8-ih8zA** JD9_qT *4DR(YP?ryz`Q@R@rf7;@Bc@w@(R kAcTJ_qT ҈@W7@_Gf7BJ_qTG@@WG޽Brf7h/@9(f5˽Brf7}6Brf7h@9Q(S5 @Pr T_ TIT(8(6? IT(@9 _qT!? HT(@9 q}T(9 7i)/)@9 4@)(yhx6h/@9(4@9JRkRTg_ T@_8h/@9h 4y`h/@9x7 4YaJRkOTNh/@9H 4)@Sh/@94@9h/@9A6(5@A9x}q`4T)@( (@9R jAx6 y@?1TI? 2T)@9*_qA2TjJ/J@9 e3j4(@)(yhBx6|q2T`87@I =@ R ?|q+T?qhT@I!=@ R @A9R jq7I9(@7i)/)@94)(yhJRkAT @? qTI? &TI@9*_q!&TjJ/J@9) 34(@)(yhBJRk!>T}q"T)@( @9R jJRka<TR5rf7BJRk:T@A9R jh/@9!6_Rd5rf7B6R^Brf7qJRk3TqR^Brf7qh/@96# R^rf7qBJRk.TF Rm^rf7qB6AUBrf7rT+@Brf7Brf7PrAT@Brf78Brf7XjBrf7.jO@f7I@H1@9)qTjO@f7N@H1@9)qTL RJRkaTR#RJ#rf7RBJRkT8R6R#R1#rf7RBA68Rh/@96:t$4ch. @ T)G R@9 yMqTQq@TqT @9qTR@91qT @9!qT҃R@91qT @9)qT@91q!T @9)qT@9yMq*TQqT^@9qaT@9Q5qȊT Iyhx ֨ @99qT@9Q5qT yhx ֨ @91qT@9q@&Tq&TqT @9YqT@9q TqT @9QqHT yhx ֨@99q!T)q TqT@9q!T @9yMqT @9y1q`T%q"TqT @9y%qT``R'@`R%1q`R`R  @91qT @9q!T҃R@91q~T @9q!~T&R@91q}T @91q!}T>R@9 yMqTQq!T`RCCCR3#@(R,@91qazT @9!qzT҃R@91qayT @9)qyTӃR@91qaxT @9)qxT ӃR@9qawT @9R 9qvT )R@9Q5qvT ayhx ֨ @99qtT@9qtTR@9Q5qsT yhx ֨ @91qrT@9MqArTR@9q #Tq#Tq!qT @9YqpT@9 qapTఀR@9qTqoT @9QqoT !yhx ֨@99qmT@9qmTR`R @9QqqlT !yhx ֨@99qakT@9qkT@9qjT @9R 9qiT<@9Q5qHiT yyhx ֨ @99q!hT@9qgTR]@9Q5qgT yhx ֨ @91qeT@9MqeTRK@9q#Tq@$TqadT @9YqdT@9 qcTఀR<@9qcT @9R 9qabT )R2qaT @9qaTR+ @9Uq`T @9Uqa`T@9QEq_TbR Iyhx  `R @95qT1q!^T@9Mq@2T!q]T@95q \T1q@ \T@9q@ZTq@ [TvR @99q@T5qZT@9 qaZT@99qaT@9qR @99qXT~ @99qaXT @99q@T5qWT@9 qAWT@99qT@9qR @99qT5qUT@9 q!UT@99qT@9qR @95q`T1qaST@9!qST@95qPT1q@ RT@9q`OTq@ !QTrR @9QqqhPT 9yhx ֨@99qAOT@9qNTR @9UqANT@9qMTbR @9UqAMT@9QEqLTbR anyhx ֨ @95q T1qAKT@9MqJT @99qT5q!JT@9 qITRm @99q!IT@9qHTRe@9 q!HTR`@9qGT`R[ @99qFT@9qFTRS @99q@T5qET@9 qAETRI @99qT5qaDT@9 qDTR? @95qaCT@9 qCTR7@9qaBT`R2@9qAT`R- @9Uq!AT@9q@TbR% @9Uq!@T@9QEq?TbR yNyhx ֠bR @95q T1q=T@9Mq=TR  @99q@ T5q<T@9 qA<TR @99q;T@9qA;TR @99q:T@9qA:TR @99qT5qa9T@9 q9TR @99qT5q!8T@9 q7TR @95q!7T@9 q6TRbR`bR RhnRyHR@riRCR@99q4T@9q3T@99q!3T@9q2T@99qA2T@9q1T@99qa1T@9q1T@99q0T@9q!0T@99q/T@9qA/T@99q.T@9qa.T@99q-T@9q-T@99q-T@9q,T@99q!,T@9q+T@95q 3T1qT@9q'T@RtRr@99q)T@99qA)T@9q(T@99qa(T@9q(T@99q'T@9q!'T@99q&T@9qA&T@99q%T@9qa%T@99q$T@9q$T@99q$T@9q#T@99q!#T@9q"T@99qA"T@9q!T@99qa!T@9q!T@99q T@9q! T@99qT@9qAT@99qT@9qaT@99qT@9qT@9 qTR@9qaT`R@9qT`R@9q!T`R@99qT@9q!T R@99qT@9q!T@R@99qT@9q!T`R@99qT@9q!TR@99qT@9q!TR@99qT@9q!TR@99qT@9q!TR@99qT@9q!T@R@99qT@9q!T@R@99qT@9q!T@R@99qT@9q!T R@99qT@9q!T@R@99qT@9q!T`R@99q T@9q! TR@99q T@9q! TR@99q T@9q! TRx@99q T@9q! TRp@99q T@9q! TRh@99qT@9q!T R`@99qT@9q!T@RX@99qT@9q!T`RP@99qT@9q!TRH@99qT@9q!TR@@99qT@9q!TR8@99qT@9q!TR0@9 q@ ATR)@9 q@ aTR"j61! T? q!T@yJR k`T@yjR kTRieS@9)zI@J9Iii8C9*RC86? qThyq!T@xR kT?qT@9 y_q@T@yR_ kAT@9qThŘRy( RK9(R RC@@9 qRR %q@`T1`T CdR@(RC@9)?7*0@996R#9W709r`T689649?qT)/)@*Q)%6@94)+ij8 qT R)%˚) 4 @86z T@?+ TKykQaq(T i%ykx ֪@9_)qT @9J_qJӃRY-r!TR?497 @? KTKyMq@ TqT@9ky%q@TqAT @9ky%q!Ty`R? TIy?Mq T?qT@9)y?q T?%q TIR9`R ?qT?qaT߾ T&TߦT&R  TT( R(&R( R/5R @?*T?aTIy)Q?aqT k myix ֩@9?)qT @9)?qIӃR?+TIy)Q?aq'T kmyix ֩@9?)qT @9)?qIӃR@9kyMq!TR? !TIy)Q?aqh?T kmyix ֩@9?)qAeT @9)?qIӃR"@9)y?MqTIRRIRQq`Ry? tTIy?Mq`,T?qa-T@9)y `RKR,`RMR?1qN`ROR?%q?q9`Rw1qK`RysJQ_qqT k1&myjx ֪@9_q!oT @9KyMq@TQq@T_q!nT@9J_qRYY@9Jy_%qT_qT @9Jyk`R_1q `R`R_%qyI@9_1qkT @9J_q҃RY@@9_1qiT @9J_q &RY7@9_1qhT @9J_1q >RY.@9KyMq TQqT`R&@9_1qfT @9J_!q҃RY@9_1qeT @9J_)q ӃRY@9_1qadT @9J_)q*ӃRY ?Qq`R 1q `R`RIR`R?1qI`R9IRҩRJQ_qqT ky!lmyjx ֩@9?qmT @9*y_MqT_Qq`T?qlT@9@9)y?%qT?qT @9)yj`RR?1q `R`RRB@9?1qiT @9)?q҃R@9?1qhT @9)?q &R@9?1qgT @9)?1q >R@9*y_MqT_QqaTR`R@9?1qeT @9)?!q҃Rn@9?1qdT @9)?)q ӃRf@9?1qcT @9)?)q)ӃR^R9`R_1qJ`RY_qATT @9J_qRY҉RJQ_AqT kILmyjx ֩@9?qoT @9*y_Mq$T_Qq`T?qnT@9*@9)y?%q#T?q#T @9)yj`RR?1q `R`RR@9?1qAlT @9)?q҃R@9?1qAkT @9)?q &R@9?1qAjT @9)?1q >R|@9*y_Mq@T_Qq!TR`RA@9?1q!hT @9)?!q҃Rk@9?1q!gT @9)?)q ӃRc@9?1q!fT @9)?)q)ӃR[@9)yRKR?Qq`RMR?MqIRRR9`RR?1qI`R?qRT @9)?qR@9_qaCT @9RJ _9q*)RYҪ@9JQ_5qT k)Lmyjx ֪ @9_9q@T@9J_qRYҪ@9JQ_5q(T kA)̼myjx ֪ @9_1qA>T@9J_MqRY@9_q ,T_q-T_q<T @9_YqA<T@9J_ q가RY@9_qT_q:TҪ @9JQ_qT k(myjx ֪@9_9qtT@9J_q R_)q#T_q&T@9?qA&T @9)yRkR?Qq`RmR?Mq@9)y?%q@"T?qa"T @9)yj`RkR?1q `R`RmR?%qiY@9?1qA"T @9)?q҃R @9?1qA!T @9)?q &R@9?1qA T @9)?1q >R@9*y_MqT_QqTiR`Rm@9?1q!T @9)?!q҃R@9?1q!T @9)?)q ӃR@9?1q!T @9)?)q)ӃRRRRR9`RO?1qI`R~?qIT @9)?qRw@9?q!8T @9R) ?9q))R9R:Ҫ@9RJQ_5qT k$,myjx ֩ @9?9qA5T@9)?qRҪ@9RJQ_5qT k$myjx ֩ @9?1q2T@9)?MqR@9?q'T?q(T?qA1T @9?Yq0T@9)? q鰀R@9?q"T?q/TҪ @9RJQ_qT kI#myjx ֩@9?9qzT@9)?q RҪ @9JQ_qqT k'Lmyjx ֪@9_9qaYT@9J_q R@9?q:T @9R) ?9q))R9RҪ@9RJQ_5qȘT kA lmyjx ֩ @9?9q8T@9)?qRҪ@9RJQ_5qHT kmyjx ֩ @9?1q5T@9)?MqR@9?q`$T?q %T?q4T @9?Yq3T@9)? q鰀R@9?q!T @9R) ?9q))RiR9`R?1qI`R iRR?qT @9)?qR9iRziRw @9_UqT@9J_qbRYn @9_UqT@9bRbRbR_qnbR_q_q_qy] @9_5q` T_1qA T@9_Mq 8T_!qAHT@9_5qiT_1qGT@9_qmTYR@H @9_9qT_5q T@9_ qA T@9_9q!GT@9J_qRY@6 @9_9qT@9J_qRY- @9_9qT@9J_qRY$ @9_9qT_5q!T@9_ qT@9_9qAET@9J_qR @9_9qT_5q!T@9_ qT@9_9qCT@9J_qRY@ @9_5q@T_1qT@9_!qT@9_5q`\T_1q<T@9_qaTYR@Ҫ @9RJQ_qq|T ka"|myjx ֩@9?9qXT@9)?q R THaiv8 @9?Uq T@9)?qbR @9?UqT@9?q9T?q9T?q9TRS @9?5q T?1qT@9?Mq Ry @9?9qT?5qT@9? qRp @9?9qT@9)?qRh @9?9qT@9)?qR` @9?9q`T?5qT@9? qRW @9?9qT?5qT@9? qRN @9?5qT@9)? qRFҩR @9?UqT@9)?qbR @9?UqT@9?q@LT?qLT?qLTRbR@i@_rH q!T?T@Rr k@8T@9J_ qRYR@9J_qjRYL @9?5q`'T?1qA T@9?Mq Ru @9?9q&T?5q!T@9? qRl @9?9qAT@9)?qRd@9J_qjRY,@9J_qjRY&@9J_ qRY  @9?9qT@9)?qRJ @9?9q"T?5qaT@9? qR  @9?9q"T?5qAT@9? qR @9?5qT@9)? qR0҉R@9)? qR@9)?qiR@9_9qaT@9J_q*R@9_9qaT@9J_qJR@9_9qaT@9J_qjR@9_9qaT@9J_qR@9_9qaT@9J_qR@9_9qaT@9J_qR@9_9qaT@9J_qR@9_9qaT@9J_qJR@9_9qaT@9J_qJR@9_9qaT@9J_qJR@9)?qiR^@9)?qiRY@9_5q2T_1q3T@9_q5TYR@@9_9qT@9J_q*R@9_9q T@9J_qJR@9_9q T@9J_qjR@9_9q T@9J_qR@9_9q T@9J_qR@9_9q T@9J_qRy@9_9qT@9J_qRq@9_9qT@9J_q Ri@9_9qT@9J_q*Ra@9_9qT@9J_qJRY@9_9qT@9J_qjRQ@9_9qT@9J_qRI@9_9qT@9J_qRA@9_9qT@9J_qR9@9_9qT@9J_qR1@@9)? qR<@9)?qiR7R@@9)?qiR@9)?qiRRbRR?qibRR@R@@9?9qT@9)?q)R@9?9qT@9)?qIR@9?9qT@9)?qiR@9?9qT@9)?qR@9?9qT@9)?qR@9?9qT@9)?qR@9?9qT@9)?qR@9?9qT@9)?qIR@9?9qT@9)?qIR@9?9qT@9)?qIR~ӃR/5R@@9?9q!T@9)?q)Rp@9?9q!T@9)?qIRh@9?9q! T@9)?qiR`@9?9q! T@9)?qRX@9?9q! T@9)?qRP@9?9q! T@9)?qRH@9?9q! T@9)?qR@@9?9q!T@9)?q R8@9?9q!T@9)?q)R0@9?9q!T@9)?qIR(@9?9q!T@9)?qiR @9?9q!T@9)?qR@9?9q!T@9)?qR@9?9q!T@9)?qR@9?9q!T@9)?qR9R@ҩR@@9J_ qR/RbR@ RbR@?qibR9R@@9J_ qR@9J_ q RRy@R@ RHR,Ry RC R(R@_q rR_q vRY@_q RRy@qRR 4@R 1@R .@?{ ?q*#@@ TTt@QYiT ''?q', k *qT) J( 7藟' J*qT@rT(0@9Ri)"T(R/@!T(T)09*R(}(Wk(8(RdiR(KR} } S@@)09*k)8H(09*4@9 ()_8_ kIT)49*8@9_ k"TQ@kh8(89R@70@9r T?x(4@9Rq1T"4)8@9 kT@R9A99 qT+  Rm@8N J).  aT99*@)y+,i8_!q T R Rlq T@R9A99k m@8N J).  aT99q TR9A99k @m@8N J).  aT99 qTR 9A99kAm@8N J).  aT9 9qTR9A99kEm@8N J).  aT99qTR9A99kIl@8M J)-  aT99*R*<9!qT R RBB@*@9+Rq`TR9A99 qT @R@8J . aT99@-i8 AqTJ*<9AqcTk+@9 q@ TR 9A99 qTAR@8J - aT9 9@-i8 aqTJ*<9aqcTk+@9q TR9A99 qTER@8J - aT99@-i8 qTJ*<9qcTk+@9qTR9A99 qTIR@8J1  aT99@(i8 ?qTI)<9qcTh(@9A9(9@9(9?) qcT RR Rk@@n@8! *@8!*J!T)) qTRR9\@@;D#:7BT_`Tkx8 6&B@ h@iuk(870@9 RR(6]@@R))#4ih8B3E9 RZ)-@)@?!T{ROQWP_OgNoM_֖@o g _ W O {-@@hA9+8@|@j_ @z Jz  TK@9 * Q=qTRRRR Э!*ylx (!@jA9fA9cR@-4A9 ?,TcA9gA9 @9) ?k+TK)Q qTR R R k, mi`8 (!@(/@95(@96 ! 1@R&(@9H5(@ 1TBT(# @9KC ik8J j%J6)TTR|7S(!@(/@95(@96 ! 1@Rr&qKTTRs$R^@!4@9hjh8kjTCT0 TT(@9)R(!2ˊJ @9Kyk+jT)ATT(@9)R(!2ˊJ @9Kyk+j`T)AT0R9@9(+QqHT ),+yhxJ @ֿqKTTR9ZRR9(@6 _ T? KT@9*_qT) 3(@({h) Sk T@9Hkh8kJTTJkh8? kTq TqTqT@9iqT@9qT @9q@9qTqT @9 ?- $!\[R @9}qR#RR@9S @9 A * @9*!*@9H* k TA94A9k T蓁9 TRc7]}@;E)C)_y@9"@4{sTPk T" T@9H) kT@ qTR R R Э, i`8k CF)_B@`@9SCF)_B@ @9 A * @9*!*@9H* kT&RbTq+T蓁9TRc7]}@;E'y@9k@4{T 2Uz'@TR5+6R q˞TI?hTqTH*   AA9qTA92AR;@:AzKTR@9?)T ii8 2Uz T:Az+TR@9 ii8 2UzKT"RҕqTBTR{R@9(@9?kcT86ka8i&Ț*D9 qT?T!@8ka8AzhA(D9qT H4cDR6/@)XAT@9hkh8k T#T"RQq T“TR{R@9(@9?kT86ka8i&Ț*D9 qT?T!@8ka8AzhA(D9qT H4cDR/@WAaT@9hkh8kT#Ti"R qTBTRRs@9(@9 B)z* i K ))_) HzT!86ka8R)%Ț*D9 qT?T!@8ka8AzhA(D9qT H4cDRҦ/@WAT@9hjh8k T#T"Rq TR:#{R"@9T/?59@6ka8i&Ț*D9 qT ?T!@8ka8AzhA(D9qT H4cDR^/@QWAT@9hkh8kTq zTyT)@(M@)T@9J_ (TkxTTqkwT"wTRZ{R@9)@9 kcT86ikh8'ɚKh D9? qT_TH@8lkh8hzA)i )D9?qT I4cDR/@)@*M@ QIT@9Hkh8kpTTqoToT*@IM@JT@9k  hTkjTTnq mTlTRZ{R@9)@9 kT86ikh8'ɚKh D9? qT_TH@8lkh8hzA)i )D9?qT I4cDRһ/@)@*M@ QIhT@9Hkh8kfTT1qkeTR( G)7 ?T*_8+@9_ kT*@9KC ik8J j%]6 ) kT T(@9)@9 @ Ak X*k*kqSk}k k!˟ RTJP @9k k_T  J! @ OT@9k k^T @@NT@9k k]T @`MT@9k k\T @LT@9k k\T @KT@9k k![T @JT@9k kAZT @IT@9k k`IT"@9#@9 q XTWTR(@9)@J@9  ? k TKik8 kjVTT<R(!@TTT @9@90kSTs!T)3Rq STRTRZ @9k T@9Hkh8kJQTcT(RPT)@9ˋk @9lyl% kNTJTrqMTMTR)RJ9@7 yk-@9-!2,j@TKik8 kKT#TY@9))/)@9q )@zuT@R"`u4(a6@@@y!@qCTARqKGTGTR(Ri? T@9I)? T)R_q@T_5qT@9?)q  ?T@9I9?T)R_q`T)R kJCTTq+BTATR(R? T@9*)_ cT?5q T?qT@9?qaT @9)?qTiR k T? AT@9*)_ T?5q@T? qT@9?qTIR kT?T@9)9?T)R kJ;T#T@9?)q  kTq+9T8TR9ZR9(@6 _ T? T@9*_qT) 3(@({h- Sk T@9Hkh8kJ5TTJkh8? +Tq TqTqT@9iqT@9qT @9q@9q@TqT @9 ?-![R @9}qR#RRq.Tb.TR9Z9(@7({h1 Sk!T: ? @TIkh8_ +TqT@9qTqT @9 A?))FRk`T@9Hkh8k)TCTI @9'kATR#RxRkTq+&T%TR9Z9(@6 ? qT? T@9*_q!T) 3(@({h5 Sk@}T@9Hkh8kj"TTR#RFRkTqTTR:Z"{X{y9@(6hka8R)%Ț*hD9 qT?T!@8kka8AzhA(hD9qT H4cDRP/@CTAksT@9kh8k TTqTTR9Z9(@6 _ T? T@9*_qT) 3(@({h=SknT@9Hkh8k TTJkh8? Tq!T@9qT @9qRR#RR } ,} M@  ATX!MA TBT @9k k TJATi  CQW] a6R J, k@9kS  @9lA * k @9! * k@9 *k kTZkT  T k|8k kaT qT R R RnOi`8 7ݸK)> yhA!d.@R zt(/@9h35(/@9H85룫T+@@K+@Zi)-@)@?AT{NOMWL_KgJoI_ִ9!Yk#@T6@ |B)@*)*)qS)}))!*_ T( @9?kT ! @@T @9_kT @T @9_kT  @T @9_kT @T @9_kAT @@T @9_kT @T @9_kT @T @9_k`T*} *@_AT !*A_)TBT) @9_kT)aT_H CQ _WO{i)-@)@4@T"4)T86T@9*_qTџHT @9 ?Th(a@_8R -y`@i)-@)@?T9)?q) T)T 8i7!@(a@Bh@R@i)-@)@?aT{COBWA_iT @9*_qTHT @9)?qiT(a@ * ii8Rk%ʚk  )D9? qT _TA@8 ia8azA)  )D9?qT )4DR҃@vR -y`t@i)-@)@?T@L7{C#O{C3sb6`@@?`(/@5(a.9R{AO¨_(,@?O{b(6@3sB6Gp ( C` )IT))!9 @S`@{BOA_@7@x8_WO{Rn(9@5@ (9 @) 5iC8#/@`RRRA@/@@ @ @@ R u3 uw7uQq@@))!:)a @ Q~ i")/` R~(&`aR9{COBWA_Ĩ_g_WO{C(9@i@ (9 @) (R*hR)BqHT89O4))5+iw8J @99#6{w@9@@}(k78 @9h>q T {EODWC_BgA_֮(R*P)Bq TT5"zw@9@@z7`h@h@.qT h@ h@h@ R u3i h@R i@Rr( h6h@2hh@R hBhhbh * 97@9) @9 !R ` AR"RR;Ph@ 2h(=@w @@ @) i@(h@R !_WO{NĮUN3sB9h@% ?q*V}A?HTW}@ R!}(h@%T R)@} aR8h@!@{COBWA_Ĩ_{C#PWO{3sB7h@4R7@ kT))!7 @))7)@ j ({BOAWè_7 q}6"7@~~ah@!7@ )A7*KQ+ _7@kMT_og_WO{1Tc.@9qZ7H@k͌T6<899 6FHKHH@k-T9@)(5_@kv8+*J JqȋT( +{vx)  !@ @F  @ ? !@ 2S+46@J)} M7!6@C)} 7R@ ]@)2 ]@ ]@)2 ]<8@u 2"Q7'4@ @@  ?q@ @zT5q@T1qT-qT9@@ 9 @)  R)|r j!T ?5q T @*J7Lii8k `@()uA987@@@9@@ 9 @) 89@ @ 9 @) h9@ @ 9 @) Zv@()uA987@@@_f@ uA9?6@@m@Rr  hqC;{#`7@R RR @h70o @ uA986@@m_@@@@ ]@)2 ]@@ ]@)2 ]<8 @?q T(Q _@2Q75 hmC;{#`3@RRR@h3@@ @R @Rr( 6@2@R  @?qT/ hiC;{#`/@`RRR@h/@@ @ @@ R u3  @?qT p huC @?qTB)R jT) iRR @rI *  ? kT|h6@ r`TR 7@ ?5qT@ R)0r jTR@6@ )*(| @藟(9?Tt@5"%."@@!.H@T0O"e@9@ )%.!@ @ )!.I`T O@!T@Q@N@@?qKT(QF@H yB@H 9>@B ;@F 7@U@ @@@?qHT(Q @U@ U@4 @@@@1U@ @@@?q#FT(Q @:@9(&06H@) R6) H )7)@ km?TPU@@@T5U@ @  U@@R%H@ HR.%@ @5 @}Ӡjvj6@ @"RS@}S q @>Tj<T@!:aH;T:@986  R`A @Q@<#@9;{7'@2';H))-(yh@qT @ @6<8@@?q9T)Q  @* @@h@ @ B?@?qT)Q  @ BfA6<8 @@9@$@ 9 @) @ ):(1 @ )6(w@t@=q@ )a6(l@p|i@ )6)@}`(u )A6(_@ @*) Y@kV@RU@@TK@ @*@4Ҽ@<:@9763 )A6*@ !@ !9 6@JJC@ h @j@J @ 6j@J @ (A9@  U@ @5MM]@ @RRRd @?q#&T(Q j&H A )!:)aI%T:@9686  R<'@@U@?qCT(Q:@907 @?qT(Q v @?q#T(Q  @ @ @( @*  *(  Q@ @(@@<@9H6@ @=@1Th1@95qT@1@95qaT( @ A"IT@ qT* @)  @@ @ @iR R H@HRRCd @@?q#T(Q5 @?qCT(Q 6 @@%V @@` <@9)6 @*@)=@?1`T@ @? q!T @y*iR) J)@9*R J(*4@ qT* @)  hmC4"2@RRR( @2@@ @R @Rr( 60@2@R  RR)h@ @3@(5 @H  @@??H@) R5)6)H )7)@ k TД8HR9h9 ?? ?g @?qCT(Q U6??? @?qT(Q ?@h@ @* @@({L ?6 @?q#T(Q  @?qT(Q  @ @ @) m?5? {?U@9{GOFWE_DgCoB_h~@ ; ;WO{Д7@е7@B q}}~67{BOAWè_WO{s7j7@HK  i}@2 kT+ ktA jT 7 }Ӊе6@}~t{BOAWè_ 9@WO{s7i( 2 kT _JTA jT7 }Ӊе6@}Yt{BOAWè_ 9WO{Д7@ A RH (}b7@}6{BOAWè_֢WO{*@Д*@Tеb7@ш@yi$A))y  ?qT)Q LT>@T{BOAWè_7  J6J@J @K|@K )  7@ kLT_ւWO{@@(9@9(7h @h @ @) )7* k6k@k s!Rh H ( )7)@ kLT@9@t@ 9 @) RC>@@9@9/6Д8(R9@9h @h @=@9@8 huCh2@9qTh@@"R{BOAWè_WO{@ @) )7*s6k@k `!Rh H (Д7 kT{BOAWè_KRr_ kT _JUA T kT }I`@}d`{BOAWè_ 9&WO{@ )7*Д6@ kR H (s7i kT{BOAWè_KRr_ kT _JUA T kT }I@}+u{BOAWè_֘ 9WO{ )7s6*h@ +R-H (Д7 kT{BOAWè_kRr_ kT _JUA T kT }I`@}`{BOAWè_c 97 )6 )@) +|@ -I  7@ kLT_gWO{@ )7*s6k@k hRh H (Д7 kT{BOAWè_KRr_ kT _JUA T kT }I`@}ӭ`{BOAWè_ 9oWO{@ )7*s6k@k `!hRh H (Д7 kT{BOAWè_KRr_ kT _JUA T kT }I`@}v`{BOAWè_ 987  J6J@J @A BRK ) 7@ kLT_WO{0@9%qT` @@uA9H86LAh @h h @ )7* k6k@k s!Rh H ( )7)@ kT4?h@@>@9I6@*@)=@?1T@ @? q!T @y*iR) J)@9*R J(*4h @ @5 @hRh @@h@B96R@ B9)2 9u v4{BOAWè6Rh @@5` @NRh@ @)@ {BOAWè_WO{@@aRb<@@h@}S q@T @ 7  J6J@J TMkRK )  7@ k,T @ @@Uh@@{BOAWè_C @ @@aR/<@@h@@h"R{BOAWè_WO{@@@R<@@7  J6J@J TMRK )  7@ kT @ @@h@@{BOAWè_ @ @@uR;@@h@@"Rj{BOAWè_WO{AR4J )7*6@ R H (s7i kT{BOAWè_KRr_ kT _JUA T kT }I@}, u{BOAWè_֙ 97  J6J@J @ @9RlxL)  7@ kLT_֚7  J6J@J @K|@A)  7@ kLT_և R z7  k6k@k `%I  7@ kLT_s7  J6J@J @ 9RlxL)  7@ kLT_^7  J6J@J @ yRlxL)  7@ kLT_I @7 J6 J@J @Rl }S5Rle3}@KR@1 J7J@i  k T_KkRR+ @7 J6 J@J @Rl Z Rle3}@KR@1 J7J@i  k T_KkRR O{C7@  J7J@? kTi@ J6K@ i(H@+y)H@* R y){AO¨_`R@WO{@ )7*s6k@k h(Rh H (7 kT{BOAWè_KRr_ kT _JUA T kT }I`@}- `{BOAWè_֚ 9WO{@ )7*s6k@k hRh H (7 kT{BOAWè_KRr_ kT _JUA T kT }I`@} `{BOAWè_c 9WO{@ )7*s6k@k hRh H (7 kT{BOAWè_KRr_ kT _JUA T kT }I`@}ӿ `{BOAWè_, 97  J6J@ k6J k@ }mil @ kil :K@KRK ) 7@ kLT_"WO{@ )7*s6k@k hhRh H (7 kT{BOAWè_KRr_ kT _JUA T kT }I`@}h `{BOAWè_ 9*WO{@ )7*s6k@k hHRh H (7 kT{BOAWè_KRr_ kT _JUA T kT }I`@}1 `{BOAWè_֞ 9{6@ ICJ} @l @y l ?JaT )7+6@J y+h( )7)@ k*T{B_ 9 K{BWO{@ )7*s6h@  +R-H(7 kT{BOAWè_+Rr_ kT _JUA T kT }I`@} `{BOAWè_9 9C_WO{h-@@( @ -)U ?qT@4 @ @BR-@@rZh @h V j48-h, )7*6@  +R-H(s7i kT@i)-@)@?AT{DOCWB_AC_+Rr_ kT _JUA T k+T }ө@}a u@i)-@)@?T , 9 7  J6J@J @k A+RK )  7@ kLT_7  J6J@J @RK )  7@ kLT_ַ7  J6J@J @RK )  7@ kLT_֤_WO{Д"&@lv:@h7 )-)@yJR*=x )7 k6,k@k h` ( )7)@ kT{COBWA_Ĩ_@) @3@76 @J H@-@yKR =xK (7@ k,T@ @Cj@ @R@ @)  @RK k}Sk5RKe3k}@JRB,-@H  kT{COBWA_ĨDC*jRRg_WO{76@ @@8@9(7h @h 3[@ @) R(' )7)@ kTh@}S qT7@9@6@ 9 @) huC2@9q#T@@q@h:@986 R}`{DOCWB_AgŨ_Zh@}S qTu6{DOCWB_AgŨ#g_WO{@@8@9h (776@ h @h 3AR F @ @) R(' )7)@ kT7@9@6@ 9 @) huC2@9q#T@@@h:@986 R{DOCWB_AgŨ_zU6{DOCWB_AgŨWO{@8@9H(7@ )7*6@ R H (7 kLTt@9@@ 9 @) !`@KRr_ kT _JVA T kT })@}Ӥt@9@u*huCu2@9qT@@"R{BOAWè_ 9O7  J6J@J k*l@L *@lRK)  7@ kLT_CWO{4|@ C3} BT7@}@  )7)@  _ kTizӀ J6J@ I({DOCWBC_ 8: @_WO{9@5@ 9 @)  BѨ *@7@Ta7@ @ 2(h!8 R{BOAWè-g_WO{U9@5@ 9 @) w BѨ *@ 7@?*Ta7@ @ 2(h!8 R{DOCWB_AgŨ[- A RHJ (X}(9c7 @}ӯ og_WO{2@qT (< R4LB@R  ?qT5M qT@@B6@h2@9-qTC9@ @ AR ?RC9@ @ RARҩ@ @ @@ @)y @@ @{6i@ )C k!9j@J@I @i @J @* 6 @J @6 hC7@R7@9#7 k T @97)@  (( )6)@) * @*Z*J@ R* ( )7)@ kLT@C T7 @ 7@Th@Ch2@9-q!T T`TR; @Ȏ5RC9@ @}ӎB6!RIH@@Tb7@H@yi$A))y  ?qT)Q LTp5H@T!7@*Q _(@kMTp A9@ @(R @@k@J JC !9@k@j * @j+@k @K 6+@k @J {FOEWD_CgBoA_7 q} @~ @ 6T 6lh@CV {R( 9 @ @iG`R ll j%)a??AT ? R  @ J9I )9*@J*{__og_WO{C0(R99@RrRRr@ @ qTYb -h@ h sbTh@ q$@z Th @4` @8@9'6h@(j`Tyh @?qT(Q4@RR9R@ @ qTYb4sbTh@  q Yz!Th @4h @i @)i @  8@9 6@?qCT(Qh @@  8@9 6@?qT(Qh @@  8@9 6@?qcT(Qh @ @  8@9 6 @?qT(Qa @?qCT(Qh d4h @@ _4]4h @ @X4@RR;Rb @ @ qTacC4sbTh@  q [z!Th @4h @@@dIdJTi @)i i2@9)%Q?qhT@  8@9 6@?q#T(Qa @?qCT(Qh 4a @?qBT@R@u @ qTUbR2sbbTh@  q$@z Th @4@I( @)1@9)%Q?qT@T@( @)1@9)%Q?q(T@T@@ @ ?!@qT%QqHT @a @?d@T@(@H 9@9 6? @?q T)Q @?q#T(Qa @a h@ ?!@qT%QqTi @@?S`Th @a (@H 9@9 6? @?qT)Q a @?qT(Qh @?qcT(Q9{EODWC_BgAoƨ_֋3335}3x3g_WO{0)R 99@RRb 8@ @ qTUbW3sbbTh@q`Th @(4@ @dI`Ta"A)2h?qT(Qh R~@{DOCWB_AgŨ__WO{9@b@S!oA9{COBWA_Ĩ_Ss@sh>@97<@9(7v@h@H4v"}jwbT_WO{*c@X'"A) kCT RR{(R @  R]V" Ӛ }!y6?-T +   cT?yv{COBWA_Ĩ_og_WO{ @@k(Tе6? qT6REy@qHT)R)!*R? jTk T*h@]*hQ=q%TN4 Ja<Lih8k `ּ97(@9 @9!R` @9I @9KA( kjB !&>q@T qhTz @9H5q` T qATRq k!vy{5@9@a@&)#A) kT RR(Ra @ ) Re` [4# ՚} k!`y; T @ _ cTU"z{H :@9@9c<@&#A) kCT RR(R  @  Rq. W4# ښ}z;mT @ _ cT4h6@97 qRq^ @9H/6R*= z @R qKhBhbh s@vy{@hy;% @9` @9\@z{ @z;hBqT2qAT ) @i@Rr( h6h@2hqcT(@i@((@i@(@95?}  qBT } %h@ R u3iqT @9h5*Sx=  AR"RR\=h@ 2h=@d @@ @) i@(h@R ! qT@9(4 @9( )!}+ij (i*{GOFWE_DgCoB_`T og_WO{C @)R j?T6 ?1qTh@ X7 R r*2  _ kA Tj'Q_q T*7b7t7995@5RQ)9*@ @iG `R KK I%a?AT R@(9 @) mG@@J6T@y h@yhbB+#REh@)R j Ti{EODWC_BgAoƨh6R r)  2? kT#q@T r.T Rd@. RR{EODWC_BgAoƨ(+qT֢9@5R)9*@ @iG `R KK I%a?AT RR@)9(@(HuCh@ @ 47yh)R jT.T!:hCiU} T@@J&T@y h@ 2hh @h h @ @4YFh@@O)h@h@ @)~ h@@@[i@(yh)?%qaT"@9c8@R$ #A) kCT RR(R  @   Ral[R#jU~ʛE|T  ? ))? , ? }ʛJEL cT~ J|)  opok o T T  i)?cTnh@ @i@HRR"h@@ @(h@h@@ @(h@h@ @@( |@h2@9)qT@6 i@R߿r*yj+qT:7w @h@ @j88_$ @h@@ <@96 @(@)=@i4@N#R rt h@ @@( h@ R  *R߿r*yj+qT) )*i@i&A)( *?qc T(Q <_@ @i@ @" ==i@&@*&hh@] 2h7R}Rr  ih6a @(_8H(p_i@* @J* i @ ` h@yhh@ @$a @?T! @?AT{EODWC_BgAoƨ_zR`RW!c{EODWC_BgAoƨi/sqNO{C @46Q @-U qT@{AO¨_ ?AqT0 @ J<Lii8k ` rT R`{AO¨_BR{AO¨h@)'jJ)!r@{AO¨_ր*{AO¨_i))!J!@q@{AO¨_ր0/{AO¨_<{AO¨_X{AO¨_ր({AO¨_ֈX7h@!A9y )!jJ)!Qq@{AO¨_֠{AO¨_֠H{AO¨_ր{AO¨_ր'{AO¨_@<@9h7(_8H(p_ @* @J* @( @)y @) @"H#_WO{"@( b@R$#"A) kCT RRG(R @  RYR(R"q DZjq~ʛG |ӠEKT   i)? + ? @j}ʛJGJ_ TKl~ J|)  ρ/  БT T  i)A?cT_@ @i@ @2@*2hi@)2i{COBWA_Ĩ_WO{ @X6RVh@ ? qTaR76Ru @1j@I @ TJ @J JJA B"T} :a @h@ @b"u h@ {BOAWè_a @(_8H(p_i@* @J* i @ ` h@yhh@ @"u @h@ @?T @IRQ O{C@i@ R r_)jaT&h@yyh {AO¨_ )yi@7?qT@y)R jT.T!:CiU} T)*(@()7)@ T)a7)@ y( @ 2 {AO¨_?qT(Q{AO¨_{AO¨-WO{@@%A @ RK R k @ J  @h _84)Q 8@  @ @77@ @cT   v5{BOAWè_֡ @!@ @@) @i)84`"{BOAWèW{CH#@O{C( RA?1e` h@ {AO¨_O{ @ R)0r jTRh@ ?=qT @ J<Lii8k `iBi]2 Rfh@ ?!@q`TRr  i6a @(_8H(p_i@* @J* i @ ` h@yhh@ @!i@ R(*hh@a.@95{BOA_8@9(4҂RR{BOARa6@@@y!@qTARI)> yh>C_WO{_q Th Is8 @?qTjJ!8J ?q @*R? j@T06? rTqT(qcT@@+qT @@ {DOCWB_AC_#2qTq`TqT(R {DOCWB_AC_ֈ@ 2{DOCWB_AC_\O{C6h:@907{AO¨_{AO¨ O{C{AO¨"@2@{AO¨_O{Ch:@907{AO¨_h@2hh@h:@976{AO¨ٜ#mO{@` @ R)0r jTRh@ ?=qT @ J%=Lii8k `ibi]2hR`!@qTh@i@Rr( h6a @(_8H(p_i@* @J* i @ ` h@yhh@ @ h@ @R *ha.@95{COB#Am_8@94҂RR{COB#AmRa6@@@y!@qTAR~I)> yh>O{Ch:@907{AO¨_{AO¨ZO{C @ R)0r jTRRh@ ? q$AzT? qTi@Rr( h)7t 2h{AO¨_!Ri@Rr( hI6i@* @` @7&i@? h@ i@Rr( h)6a @(_8H(p_i@* @J* i @ ` h@yhh@ @h@t 2h{AO¨_ _8I p_ ` yhO{Ch:@907{AO¨_{AO¨(@(O{C(@(h:@907{AO¨_{AO¨ܛ{CH-@@ @ R j@T-U q!T@ @@ `R R@r@I)-@)@?T{A_.g_WO{H-@@ @ r_r7*7f@5X7p7U @7H7!@q-T%Qq(-TP bB+#R?@@}S 3 @@6@@=@9 7 @U@!q!T9@@96@RK@4@ S(3@ @h @#3D@ @hAq,T2@ )i=+yhxJ @ rT R1@ qTR@ @CY_駟LUڿq뷟 JTnQ RBӭ}ΛBӰPypxxD  Ti %T85!h779@5R)9*@ @iG `R KK I%a?AT R@9 @) HuCR;* @ 7@<Ta7@y @ 2!:aBR#RC` @ ?qGzCT@@R``@9(97@X6 @ @? TP7qTR\@@ @ `aT(TAR i %iTJymxxi4R8ˈ@ @T @w9@2BR9ȩRrIRȨr0R O'i))!r6?7@@ =@9)6 @(@)=@i4@H!@9@ 3X R@W :U(Q*R*1xI)%@*ij8 8Dѿ> (T R x R 9R85ShaRS6X78@95 R7`41@)RU- jT qTaRU-(TR@@< @Rx @@ @h@@}S 3Z~v *{v*xi))!J!@qVp X7@!A9y )!jJ)!QqVe֞bJ_v2/\v֖Y>V @`g bT `T,@@ @iTaR @"@96 R!7@9(6 R!7 RR79@h@9h7+@4@@R!P?BD `TR8(ɍRy R 9>8@T@25'R!ʋ 6+ @9+@8R5qLT8AT*WO{H-@@@66h@X7 R r?(jTi@)@)(I@9 q@TAR@ ?!q@TR r  JR r? k`T)R jT 5 R@4wA8@9 6@@=@9H 6 h7":b"R#RyA @X6` @@ @ T Rr  ?qTb t @h@ @R ?qaT@7 7`77h@@@))-@)@? TY  ?qT6 yh!<R5^))-@)@?T{GOF_gWO{C(-@@b6@@@y?R  R? k!T`t>S=A9@ -@? qaT!@42!@qTqaT @9i(7I)> yhS%AR@ +`<6@(@RT Cc>$RERQ!@!: ))A!H-A! R@))-@)@?T{EODWC_CWO{(-@@ @ h7 p7!@q!T%Qq TRv49@4R)9*@ @iG `R KK I%a?AT R@9 @)  mG* @ 7@%Ta7@y bB+#R[;cXa6@@@y!@qTAR" qTRs` @h@ @?AT @9*_%T5@?qTRt@h@ R *i 8@95 R4t2@9r T4RCR h@qT ?qTRh@ R *hqTRwr TR4t06c+Xa6@@@y!@qTAR4R!R^6j@I2i @7i@ (o!I)> yh!<RXh@2hh@@|g aTh@h@ @ b@( `IHTh@H6R R *htRh@h@@@ci@?rau @ R(*(2ha  hTi@()!I)> yh!<R4RLJ_qTRi@ @ꟙRr) @R) *ic@ah@h@ (h@2hqTrX4qATh@ @R *$RE`4h@@`uӈh@ @R *hh@@h@h@Bma^ `Th@ R *hX5h@uhR]))-@)@?!T{HOGWFC_xvWO{(-@@@66h@X7 R r?(jTi@)@)(I@9 q`TAR@ ?!q`TR r  JR r? kT)R j T i 5 R 4IA8@9 6@@=@9H 6h7":b"R#R> @X6` @@ @ T Rr 2  ?k@ Tb5t @h@ @R q!T@@))-@)@? TZ 7(75R`4r@))-@)@?THh`7 6@))-@)@? T<H  ?kT67h@X6A8@9 6@@=@9( 6"R#R4> @_6` @@ aT h@@@))-@)@? T@))-@)@?T{COBWA_@@))-@)@?Tu2 R r?(jTZC#mog_ W O { (-@@/@(7 R r?(jTi@)@)(I@9 qTAR`@ R r  KR r?!qDKzTt6ϓ@H!h7 R  ?@qATt @R#4h@ @"5cYVa6@ @@y!@qA TAR`7X7 } R*0r j TX7*R jT j5 R/4A 9@9 6@@=@9 7@a~/h7":b"R#R= @X6i @@? T@Rr  ?qTR rXR rRrR:0rRb!  ?qTu27?(jTi@)@)(I@9 qTARv@ ?!qT  _kTj@ThX7Mh@h7  ?@qT`7(_6A 9@9 '6@@=@9'6"R#RE= @h_6i @@? T? qTAR i@7 @a^f?qTR@ h7`7p7 ?!@qT%QqT/R @a~Oi@7 @a^/` @h@ @cG@*5RM`4` @h@h@@`u(  6@@ 6A # T@R(*$8@9/H5 R/`5 @a~ @ R rh@_)jT@T@@@mT@ @R *@2h@@/@))-@)@? TA`{LOKWJ_IgHoG#FmC_I)> yh!<R/@))-@)@?T{LOKWJ_IgHoG#FmC(@ @R *T5u)2i@7(((@247h@@ |!g aT@@T (@!Th@@T@ @R *@ R *CWO{(-@@R 49@4R )9*@ @iG `R KK I%a?AT R@9 @)  mG* @ 7@*Ta7@y BB+#R7cTa6@@@y!@qTARV!I)> yh!<Ry]))-@)@?T{HOGWFC_֪g_WO{4@96":y @b8c.(;@9H 6(@@=@9 6"R#R; @ ?qGzCT@@R``@9(76@9h6 @h @?T@996@97ry @9@3Rl)9*@ @iG `R KK I%a?AT Rh@9 @) hBh uG%3RG)9*@ @iG `R KK I%a?AT Rh@9 @) hBh qG`y @95h@y)R j`ThCiU} ). DCT* @ 7@ Ta7@y h@ 2h{DOCWB_AgŨ_@9(4҂RR{0@9q#T@@RJ``@97R{_ R{_O{C@h@y)R jT!:hCiU} ). DCT* @ 7@Ta7@y h@ 2h{AO¨_֬O{C9@@R J9K@ `iG@`R  ll j%)a??AT  ? R @9 @) @ uGa.@95{AO¨_@Ry J9K@ `iG@`R  ll j%)a??AT  ? R @9 @) @ qGa.@9h48@94҂RRV{AO¨_X?駟*TqL JTnQ RBӭ}ΛBӰPypxxD  T) %HT 8I5  ) % TJymx xi4R 8_WO{a6:@9(7֢9@3R)9*@ @iG `R KK I%a?AT Rh@9 @) (uC`z * @ 7@Ta7@y h@ 2h{BOAWè_֢9@O{C9@3R)9*@ @iG `R KK I%a?AT Rh@9 @)  mG`* @ 7@*Ta7@y {AO¨_~O{(-@@( @-U qT@ @ @H27@@i@}S 3i@))-@)@?T{BOA_PWO{ @ R)0r jTRh@ ?!@qT )%Q?q T ? qTaR_h@7h@ @iTv @j48h@ h@y] R *h)a.)@9)55qaTh@ ]@)y ]Rr  i7{COBWA_a @(_8H(p_i@* @J* i @ ` h@yhh@ @{COBWAY)8)@94҂RRh2@9C_WO{(-@@ @66@Rr) R  ?q@@zT ?!@q!T )-Q? 1@zTM_69@5R)9*@ @iG `R KK I%a?AT R@9 @)  mG* @ 7@Ta7@y @ qT@ @ @RE@@@}S 3RR$@ q!T@ @h @ T @R$@))-@)@?!T{DOCWB_AC_DBWO{C(-@@ @ R r?(jTi@) @U6Rvh2@9qCTh@@ R @? TN@9062RR{,h@-U qTh@ @ ` @CcCR$`6 @i@( h@yh R@))-@)@?T{EODWC_46R@))-@)@?Ta6@d?@@y!@qTARc))> yh@.C_WO{(-@@ @66@Rr) R  ?q@@zT ?!@q!T )-Q? 1@zTM_69@5R)9*@ @iG `R KK I%a?AT R@9 @)  mG* @ 7@Ta7@y @ qT@ @ @R3@ @@}S 3R$@ q!T@ @h @ T @R@))-@)@?!T{DOCWB_AC_20C_WO{(-@@!:aT @ -)U ?qAT7 R r  ?!qIR rDIz`T6RXh@ @*l @ @}Ak L*k *kqSk}k k!_ T ls)R  ?qD@zT R)4r  ?q`TBh@+i@h7)!A!CTVh@6Ti@7)!A!CT(i>@9I 7 @T>( @9 7 m! @Tn97  @@Tn9.7  @Tn97 @Tn97 @`Tn9N7 @Tn97 @ Tn96'5 @k!T!A  )T TM  n97kTi@*2ji 7 %AA?# TkkkkCkQ m @}A M* *qS}!0 Tҿ C TOp n@9G @Tp q @91G.B. @ Tpq @91G.B. @`Tpq@91G.B. @Tpq@91G.B. @TpQq@91G.B. @ Tp!q@91G.B. @`T@9P˭!  @( @@!A1G11~Q  T T/ !bT KAT}ooNooą@ ///ocnB.n!."T!NN N^fT1|ooN oooooo0< o/2/1oo/onBn..c.nn!.AT!NcN!NNBNN N^fTo7/@8O? Tu 6  JA @_T[ ih@J h @j@J @  _9( cTI  RL3,9 _8J}SJ2*8)  T 97*8 bTh2@9qCTh@@ RL@9yL9Rh@2hh@ @@))-@)@?T{DOCWB_AC_zWO{?rе":bi7h:@9h(7h@rTX6h @ 9@9 6@@=@9h 6R#R5 @X6 @j @? T rh7r` THP7rT(h@rTX R r  ?!qKR rDKzATh@ @IT R{BOAWè_ _qTh@@ @iT R{BOAWè_(@6 @)@ R{BOAWè_֨H6@@ `{BOAWè_jJCkUJ} _ iTP7(@7)%Q? q'!@q{BOAWè_(@h@ @T(h @@9q{BOAWè_R{BOAWè_h@@{BOAWè_{BOAWè_CWO{(-@@b6h:@9 (7h@ R)0r j@T R)r  ? qTRIh@P7 ?)q T)%Q!@q" AzI TzC(-u @h@ ? qTj @ `TX7? qT(7h@ @ @ATh@ @#Rh@ ? qTaRh@(6 @ @` @ @i@( i @?i(8h@P7 R *ha.@9h5h@y] R *h` @@))-@)@?T{DOCWBC_h@ R)0r jAT8@9h4҂RRcRa6@@@y!@qTAR=))> yhPCg_WO{(-@@ @-U qTh@ @w @@cTh@)R*  @9?qD @zGzbT!Rp`@@?a T@@))-@)@? T@`T@ ˟ b TR 9(46TD9 O[4@Th@ R)r  ?qT5 q" TR RRBh@ @ RH9(!8!I@))-@)@?T{HOGWF_EgDC_@_!T @@))-@)@?T2?"T@@ T@ ^@?T>iT  J@9J_qT (TT)T)RӋ@))-@)@?T_  _bT @ @# . @ @&h2@9qT7975:RWS0 SO{C@y)R jTRARh@yh{AO¨__WO{4@907 R{COBWA_Ĩ_!RBR4t @w@ @v] @~AJ T*J*JqSJ}J J! bT4I9 7 )! @`T9*7 @T97 @ T97 @T9J7 @T97 @@T9 7 @T9j6*@JT5!*A_)TT˩9i7THCQ5aT @~BU**qS} ! CT 97 ! @ T 9*7  @T 97 @T 97 @@T 9J7 @T 97 @T 9 7 @`T 9j7(@T(!*A_)T"T ) 97)T1CQ(XT*@8 kj8 D9?bTqT5 ˨ qAT@9qTR`TR{COBWA_Ĩ_h@2hh2@9qT@h R @KT @9?qThT R?og_WO{(-@@5@@ @2@96I 9@%@i @*A@ y3*Ah @h@ @) (/QqhT )=+ih8J @Rh @R7MI (/QqTRh @R:7ARh @Rz7;Rh @AR75h @<R7/h @!<RZ6?7qT @4 @@?q#CT(Qh @ h @7J6 J@J S]@l @l RK1) 7@ kl?T@[@?7qaTTh @@4h @@H 5@ @ qA97`R)@ 4: 7@qA9H7 h@@h =@9i77 h@@h @@h@@? @(@)=@I4@i @)@?i)@)@'?`@y)R jT.`T!:CiU} CT* @ 7@4Ta7@y @ 2@]@rCBz7@P7 ?5qaT@ @*uA9*(6*%AK b) #  @@# @M 5h @h@ @)~ h@@`h @ @6? qT)Q h @ @? q#TJ*K@kK? qT* @)  h@@h @ @)  @ 7h@ @?ATJ9J@J@ @_ `T) ?/q`T??qT?3q!Th@ @(!)? qc T _8?qT_8qTP Th@ @*@_ qT*@y+iRJ J))@9+R) JI *5@H =@9 6@ @=@1@Tv:@9h07E=@J7 @?qT(Q @ r TqT@@hR`@96a.@9h5@ )-@)@?AT{GOFWE_DgCoB_?qT@9qT6>@9(6@ @=@1`TR! RΈ:@906! RȈ@@2@9-qTR!R@X@ 1@9?-qT @)@51T @Q@@ @) @ C5zX@" RRJ( A9 *J!8J ?q?qTҨ:@987@ @ |@ TR ( R\-h07;R," R :@987@ @|@TR @(;@9 rT(@@h! RX" R :@987@ @LJ|@TRk @(@j!T rT(@@(! R3! R.h @h  @) @}@ rT#8@9h4҂RRZ {C-@@C{&@ )-@)@?T{A_փ WO{`RT}~h@` i@( u4 {BOAWè_WO{@%A?T/@ @ ( {BOAWè_ @R( BqaTi6hR( @qT @j @_cTRk @ Tj )_= @zT@qT@ @_R_g_WO{C-@@?T!:a?4@7@ qšBz T*?q@,T R)0r jTRh@:_+q*T)@ J >Lyixk `ֈ@66G@ ?!@qaT ?%qT*qT)R jvThX7 R? jTiBiX7 @i ) R9y3Rr  65 R r?(jTRh@ @( @( @i 6RRr  6u @y@ R? jTyH7Rr  7(]*u'ibi @` V@RRr  H6a @(_8H(p_i@* @J* i @ ` h@yhh@ @ i@(]* @?qXT(Q @ )-@)@?gT{EODWC_BgA_@ )-@)@?eT{EODWC_BgA@$@@79 X7.Q? 1TRr  H6a @(_8H(p_i@* @J* i @ ` h@yhh@ @@ J-@J@_ `T{EODWC_BgA @9O6 *%Q_ q T?q`T? qTRd@@h@i@Rr( h69h@ @R *wRzRqTIRRq#TDRRqT??)qaT.q"T@ )-@)@?XT{EODWC_BgA*qT ZR?!qTR r IR r kT@ZRqTWR"qTR@9kcT *%Q_ qbT7R WR R@@ *-Q_ q#T?9qT?5q`DT ?!@qX7 T&Q?q( T?r T!R"R'DTh@ @(!)? qT _8?q! T_8T&Q?qHT @( @R )R k T?&T@ )-@)@?JT qT` @`i@* @hH7i@? h@ h@Rr  h6( @* @J* i i@(*h@ rA<TR  ?!q T"qT@ r:T7R? qTRh@Rr  6ii@ R(*h@@i@(@(6@2!?R@ r6T@ )-@)@??T{EODWC_BgA)?!q`TR r) JR r? kTp7?rTRr  h7`Rr( (*`7Yh7Rr@6]A  R) * U 7 R* _BqTjR* _@qATߊT_=T BT97 @_qT` @j@J @j77v @h @ @i@( @ @i@( h@y h@  h6 @ @ @y 9h7@ R*jT` @j@J @jH17N @h h@ h@ h@ R *hYh7?qT@9qaTh @@ @ 7RRh @h @h j) @N)` !4@ >@9(!6@ @ =@1Tu H7( 7h@ @ Tf)?!@qT))%Q?qT"B+#RB(@ rTi@`Rr( (*g6@@i@(yh6@@h@@ rTh@ @)*_ |TJ9J@J@ @_ T) | h@ @) Rަ@ raTY 7 R)r) R? kT7?=T "T?T߆Tk@k @ TH2 @@) @ 8Y` @ @h@ h @i@) @i)8yh6@@h@(qT@y`6@@i@(6@2R( qT@y`Rr( @(*:@9 r T Re` @# @ R h@ 2h@ r! TfߊT?=T Ti@) @? T @@J @) )_8?qT` @h@ @@(7P @@) @ _8) 8@ )-@)@?aT{EODWC_BgA _)  @h h@ h@ h@2hyo7?r@T)/)U ?qaT@) @ @,Rr  h6@ rTqT@@(R`@9h6a.@948@9h4҂RRBRI@7h@ @@"T@@` @@i@( h@Rr )(* R *hh@ ]@)y ]@ raT _8I p_ ` yhE_8Hp_` 蟈R迫r( hn[_8Hp_` 蟈R迫r( h; _8I p_ ` yhYWO{ @q T@?q@TJa6S@*_-qcT_AqTuе2(@ J>Lih8k `? rT Ro@H'*J)!?rU3  ?Aq( TtД2 @ Ja>Lii8k ` rT RT@I)'*J)!rTSx ZSpU *lU*Sh()))!jJ!@qU3_i X7@!A9y)!*J)!QqUSuе3OuеJKU2/3GUC>!ZSMT *IT*SE)))!jJ!@qT3<X7@!A9y)!*J)!QqT0tД3,tДJ(T2/3$T >"U'ShB@y!@qTAR!t))> yh!mT'hB@y!@qTAR@"_))> yh@"XW TW Pg_WO{C_$q T@ ?!@qT )%Q? q T@7@@qkT@* @ @;7@ ? @ @ ?!qT!R:@"Rr  6  ?!qiT"Rr  6 @(_8H(p_@* @J* @ ˀ @y@ @V@(2@@@(@@` @@  %@9#R3@2 @ @ @4@?q0T(Q @ @ @h @4R&qT@I@(!)? qT @y,iRk J @9-R Jk *5J@K=@9K6J@K@J=@_1TWR@y)R jA TnҀ? qT _8?q T_8q`TP@@h =@9)6@ @=@1`T7R @h@@ =@96@ @i=@1?qAT@9qT @@@y)R jT.`T!:CiU} CT* @ 7@J#Ta7@y @ 2 @ wR@y)R jT҈@y)R jT.`T!:CiU} CT* @ 7@Ta7@y @ 2 @ @ Rs%@ @) @% @ r TqT@@hRd`@96a.@9H5@ @)*_ |TJ9J@J@ @_ T) | @ @) 4q T qaT @@ @@:@906! R<@0@9-q T @ y @@v>@96@ @i=@1T/@@2@9%QqTl( %A9 @?qT*J!8J ?q@*R? j@T(06? rT@@! R " RRzDR2@9%QqHT @&qT@=@{EODWC_BgAB`RORz@ @)R @@%A7?T8@ @ (  @ @%A?T(@ @ ( @@b2@9%Qq T{EODWC_BgA_4}= _8I p_ ˀ y38@94҂RR>5( R\<BO{C8@9 rT Rs @h@{AO¨_{AO¨_O{ @qT)R jT!:a T{BOA_q T R)0r jTRxh@ ?!@qT )%Q?qT!?R{BOADRr  i6a @(_8H(p_i@* @J* i @ ` h@yhh@ @{BOA3X6 R r?(j!TRt{BOA_` @t@?qcT(Q{BOA_h{BOA! :BRr!:BRm!: ?qBRfO{CBR`h:@907{AO¨_{AO¨ WO{(@YA` @ R)0r j TR`RJ ` @@h2@9 qTaR@7 ? qTaR@2 @@) @ 8  R  kT R kT@ @hRr @@J @) *_8J*8 @i h>@9i(62hh@ h@ {BOAWè_hRrhRr @*_J*og_WO{е9@3R ҩ)9*@ @iG `R KK I%a?AT Rh@9 @) (R*hR)BqT )(M4 J>Liw8k `}8 9#6kj@9V @{cz@:I#A) kCT RR](R` @ I Ri@[T# ՚} {7T  _ cT0"zw @9( @ZcY@ )#A) kCT RR/(R@ @ ) Re W4# ؚ}z7mT  _ cT6{w@({7 @9hhBhhbhzwH@z7j_h@h@ h@ h@h@ R u3i {FOEWD_CgBoA_ TvWO{ @ R)0r jTRh@ ? qTaRuh@7h@ @?T` @h@ h @i@) @i)8h@y] R *h)a.)@955qTh@ ]@)y ]{BOAWè_֩)8)@9I4҂RR*h2@9O{Ch:@907{AO¨_{AO¨}C_WO{R:񈂈 ` h@ Yj48h@ h@ R *ha.@95{DOCWB_AC_֨8@94҂RR{DOCWB_ACWO{ @ R)0r jTRCth@ ? qTaRh@H7h@ @T h@Rr  i(6a @(_8H(p_i@* @J* i @ ` h@yhh@ @{BOAWè"` @h@ h@y] R *h)a.)@955qTh@ ]@)y ]{BOAWè_֩)8)@9I4҂RRxh2@9O{Ch:@907{AO¨_{AO¨|WO{-@@ "4 _1T@@ )-@)@? TBR{COBWA@977h@ R)0r jTRh2@9 qTaRPh@ @h@` @7_t i@( h@ h@ R r  *i J@9)y R r *_r( ғ@ R"h@2h@ )-@)@?T{COBWA_ @9h@7y _8I p_ ` yhWO{ @ R)0r jTRQh2@9 qTaR` @h@ @h@( 78@7 h@ h@ v T@7j58h@y] R *ha.@948@94҂RRh@Rr  ih6a @(_8H(p_i@* @J* i @ ` h@yhh@ @t86h:@907{BOAWè_{BOAWè{ _8I p_ ` yh{R$R{_CWO{  @p6i @6 @Tk@j @Jj @ ( T R)0r jTRh@ y)] R) *iH7j@K @kt @U @7T` @h @i@) @i)8i@)2ii @(_8H(q_i@* @J* i@* @J* i @)i T(8{DOCWBC_?8@(q{DOCWBC_( C_WO{-@@ @ R)4r q!Th@ @w @h@ Tp7h@ p647h@ @@ A ?cTi @(T(tx6I5Rh@ @1@ Z@i @(T  RK3 9 RK3 9  T97 8 cTi @ i@( (7h@ @@A ?T@ 0@i @! h@ @) h @i@) @i)8h@y] R *ha.@95t86h:@907@ )-@)@?AT{DOCWB_AC_֨8@94҂RRyz@ )-@)@?TYWO{-@@( @-U qT@ @ @7 2t6h:@9(7@R>@9(69@@9rR,t86h:@9h07@ )-@)@?T{COBWA_jy@R>@9h/7z@ )-@)@?T C_WO{-@@ @R(4r qTh@ @u @F6@BRw@8w7h@ @@ !bTvh @@ Bh@ @) h@y] R *ha.@95@ )-@)@?AT{DOCWB_AC_֨8@9(4҂RRWO{{BOAWèO{Ch:@907{AO¨_{AO¨zO{C`Rah RA  @ {AO¨_ֳs9`@@Ry ҪJ9K@ `iG@`R  ll j%)a??AT  ? R @h9 @) uC{AO¨_O{C`R  RA E` h@ h@ h @i@) @i)8h@y] R *ha.@95{AO¨_֨8@9(4҂RR3{AO¨_g_WO{0@9qTR6 RR@ @ 9?TqTq`TqTqT2@9=qAT(7@96( @H 1@9)%Q?qT @@"(3@9%qT( @ @?T @?T @? T @?T @?`T@T( @( N@92N9q@TaT J9~@UqKTh88 1T @ w{DOCWB_AgŨ_WO{ @r@T(X6Rr(jAT!xR{BOAWè_)R jTt @h@*h @?qT(Q {BOAWè_h{BOAWè_O{C0@9)qATh@!A9qaTzh@!@h2@9qTR RRh@ @  RH9!8tw{AO¨__WO{0@9qC T@@ (Q@q@J9U?kD @zT@2@ @?@J@9qT@?TN@96? !T@?qT(QN@96q TN@96@@?qTu@7N@9(6h@ @h@) r T{COBWA_Ĩwqh{COBWA_Ĩ_{#RR{_WO{ @(1qATA@2@9-qT@(%A TA? rTRy2@9qTR RR,@ @ RH9!8vԂ@h2@9-qTN@92N9`Rg@!t/$ n@(RV@ @@K @lL ) ( @@* @K+  !{BOAWè_O{C @r@TX6 R r?(j!T)R j!T` @y2h@{AO¨_!XR{AO¨__eO{ @ ?1qTh 6EA @( @*_-qT @i @ @L@`TKyiTL !џ )T_T$q T rTRx B(2@ @q @zT{COB_?qTT{COB_J! j @Jj )@ {COB_֨2@q`T)2)@?q`T JHyhO{ @ ?1qT6@ rTR6x`@{_{_og_WO{-@@ ( @q`T/qT9@(@ @h:CCRrRrRr9#?HT5@@(jT  (7( 7/qT?? T *5Q_ qT)%Q?qT@/q@T9#?)T@9h@@* @J* @ ˠ @y@ @@( 6v/q`Th2@91qT@/q`Th @ @?!T@qT @ qbTFh@@ =@9I6 @(@)=@)4@$A:T`RR> @ R (ȩ 9@ R @ R *a.@95!4BRCRARR @?qT(Q @ ]@)2 ]@ ]@)2 ] @ @/qT?qLT@z8@94҂RR/qAT @(@ (@ qTQ(@)-@)@?T{GOFWE_DgCoB_֨0@95d$g_WO{-@@ @ R)4r  ?qTi@) @ Ch@y] R *hh @Tj@I @  T8j48I @ HT @?TaR @?iTi>@9 7i@) @!?cT! @i @ !ˉh@ a.@95kTh@i>@9) 7 %A ?Th @x @T @i@, @   K9_ iT˿!c T60 Q"Q Tˏ# TBT@6h@ @T_jT9_Tz9?9(i@( FmtzA @!# 0T }T}kJˌˈ!@i8!ь!TT qJkhK_8 8_ T3h@ @) h:@9(07@)-@)@?aT{FOEWD_CgB_֨8@94҂RRI*u@)-@)@?T#WO{ A) R)0r jTRh @qAT:@9 rTh:@9 r`T%wR@@i@(@ i@(*h@q@ "h @`== 2@9qaTBш h@/`79 @i9 @) {COBWA_X eog_WO{-@@ Yһ{#:<RwU.@@ hT1X72_:TCT6!R62@92!TS>@@RZcRZc?5T@@RZcRRv@h?5H/T 1?yixJ @&@@&-N:34C%@ !A9?q T?QqT!@@@@?q T(QJH@@)!@(@!@H@ @?!T):)@?T):?)6?@6( @ @ + Vyh @@) @y)2Bv3^@* @ J2J@g_q@`T(@(*=@j4@)= @`! @)c|@H@9҅R^'RR9@9 @@( C72B-+ @ T @)T @W T@ B907B9Qq'*  H%Ț# R@@ B9RZ#I07@@ @@i* xi@ @ @K ( 2B% @AR7ҷRZ#@)@@1@@9@H@ T!9R!@@?q# T(Q@ @?! TR r  JR r? T r?!@aT@%T @ @)4@@`-@@`H@T)!(@Ta @Ta (_&?$ @@@<@9H6@ @=@1Tʜ@ @?!AT@ @@׭)!(!@6!R@ @6 @*_8J*q_) ˩ hX7 @ @_=T@JB9066 R TT@ @ @(* R r TW@ @)*ih84JQ*i(8@ @ @ @  !-@ @(tRҟ2T@7R  @))2 9I7@9h4@@_T4R ))2 9 6I@ @9(}ӫk!jii hi)_`TH @42B2@9-qTAqT1qTCM6R.@* ARh@K+yjv'@* A Rh@K+yjRH@RI7)9(@H:)9(@(2B @h 4q T6@ @I7H@9AqT1q T-q!T@* A @K+yjV@* A* @K+yjC5` @H4q !T@j T)C)}?"X Ty  ")6[@(7)0)@95jTTC} ITR 4R!H { 96?@7)0)@95j`TC}CT @ A9yjAxhR@j`T)C)}?"XTy  ")R]4R!H DwR@ @iT@9!@ AR%6@)-@)@?!T{GOFWE_DgCoB_fC+m#mog_WO{8@h$,@?ր#49C6;@h@@Z* (iGR) *yG=@9h6@ @  =@j4)@!@C@I@qIzT !RR{@ @ !R#Rx @ @W ِ@@I@qIzaT@H@C@ ]@77@(@ A@y)!?qT? qT@A@y!QqTh @h )98@RҊJ9I@ @` ** <%a?AT )9@()9(@( C h@y h @ R)r *;B9@ @ RARN@ ;@ @ @)y @@ @J6I@i  )C!9@J@I @i @J @* k6j @k @! !H=T)7(@ 7@Th@(C8!R7o@ @h @*@k@J JC!9@k@j * @j+@k @K 6+@k @[ ;W @?qHTh @Qh  #A)y?qT(Q h:@9 6h@@TBR{6B95h:@9h'744h @40@95Rh@6i@ @y h?@?qT(Q R{HOGWF_EgDoC#Bm+AmC_J>@9h7@(@)=@I4@`&O{?qT h@)R jT)!:i )CjU)} J. CT y i"){BOA_h @(5h@Ri79 @i9 @) {BOA_h@7)0)@9)5)R jT.T!:hCiU}  TR4!H R|{BOA_h {BOA_ր@_@?qT(Q_֗{C-@@ @-U qT@ @BRb@@)-@)@?T{A_ք`O{C8@9(7{AO¨_n{AO¨_WO{-@@ @ -)U ?qTi@) @u @R,h@*@9 ?qD@zT@( 6=T rTRp@ T9 60@)h@ R)r  ?qaT7q"TRX RRh@ @ RH9!8!Hn!@h!@@96@@Tm9 OSRcp@)-@)@?T{FOEWD_C_h2@9qiT_WO{C-@@ @-U qT@ @ @(#(h@#h C @(S@)-@)@?T{EODWC_B_֜og_WO{ C-@@_y @(R*?jT(RT*@9J_q T  kT_bTN@9in8 JTґ(RW6 @9J4@ @ @?A T@  _cT+R9I : 9I_q귟 *h7?AT?qd@z Th@ -)U ?q T@9)4 R)r  ?q T@ q TR[ RRh@ @ RH9!8!KmD>(qTRvo @TH19H 7 @9?qd@zAT$ @_aT @?T?iT@  @Ts1@960RCo@)-@)@?T{IOHWG_FgEoD__T_iT @ @#19H6  @C096R-h2@9qIT| L@9qTJ_CT)k'9-Ogg_WO{-@@Zv@-U qT@ @ @H#Z4#)u@-U qT@ @ @HC#ҲCBR @R CBR @R`x@)-@)@?T{FOEWD_CgB_((I bTc_iTI )@9)?qTI_(T_T_T(__WO{C @)R jT{EODWC_B_6@Vq"TR RRp@ @ RH9!8!lRAn @*9h6 RRN@*966@906 @ T @K*AlT # !#!!B#A "#B"b#@ !TT@. `##!!#_K1c#Ka##@8!!8#!!AaT !T !dT @*B4{EODWC_B_2@9qT9q_O`O{C!BR-`{AO¨__WO{C-@@Rr T6@ R)4r j T  ?qT@! @ @- -h@ qTh@ @b @ @(72#@@)j@J? k TJ9J@J@97 51CBR @@ 28@ qT@ @ @2C B- @TTV R  Rdq@)-@)@?T{EODWC_B_C_WO{`RVR:񨂈 ` h@ +k58h@ h@ R *ha.@9H5h@*h6* @ 7@Ta7@y {DOCWB_AC_ֈ8@94҂RRWO{6sh:@9( (7t:@9H (7":bh7h6@96h @ 9@9 6@@=@9H 76@9H6 @ 9@9 6@@=@9h 6bRR8@9h (7CiU}  T @r THP7@7hX7R{BOAWèRq{BOAWè_@ @T(@@9q{BOAWè_R{BOAWè_@@{BOAWè_@ 9@9 6@@=@9'7 R{BOAWè_bj^j[j{BOAWè_WO{6sh:@9 (7t:@9( (7":bh7h6@96h @ 9@9 6@@=@9H 76@9H6 @ 9@9 6@@=@9h 6RR28@9H (7CiU}  T @rT(P7h@7HX7R{BOAWèI9q{BOAWè_@ @T(@@9q{BOAWè_R{BOAWè_@@{BOAWè_@ 9@9 6@@=@9('7 R{BOAWè_iii{BOAWè_BR_WO{C-@@Rr`@ qT@ @ @ s-@ qT@ @ @ @)2C# @ RB2#@@)@J? k TJ9J@J@975|24w25Z |)2q@)-@)@? T R@)-@)@?T{EODWC_B_ @)-@)@?Tyq(RZq@)-@)@?`TBRCWO{-@@+@94@)-@)@? TBR{DOCWBCSC>@#8TC1#+@@Uғ?@@ @J4_B1 4|26 R@)-@)@?T{DOCWBC_֌_WO{C-@@8@9 r` T Rj@@)A1)@?TR@ -)U ?qT2C7 @@uS#W42@9qTR RR@ @  RH9!8uh@@h@!@)-@)@?AT{EODWC_B_7R@ -)U ?qT@! @ @uS#W7@)-@)@?Tog_WO{C R@? @C-@@ @ R)0r jT_uSh2@9 qTaR 4h@@4H7RҸh@-U qA2Th@ @#b @2C:h@Rr R *h h7Rr R *hT4h@2h9@)! `TДB@ @?r TX6 @ @ R r) Q q-T@@@-T @P6@ @H7.@ @(.4Rr  2) ?k.TBR@.'RR5RRR)R  'HR'H4h@ @*_T@ G T?I TH kD7D5@y !@qDTCTS@ ? CTi>@9)B 7i@) @JH ?AT9@6RI҉)9*@ @iG `R KK I%a?AT R@9 @) uCRRh@ @-U q! T@ @# @j>@9 7JRJJ? TIR(h @'@H @Q4T@H@8h8'@ kTQ@2`1:)@(h @+h @R81`Th @h@ h>@9 7h@ @ ! #Th @8@h .h @8@?7kAT@_cTh @cTh @h@ h@ @@@I !i>@9i 7bTh @@@;9h @i@( @@1h qT(qTh@ @ TBR #@h@Rr R *hh@ 5AR@T @ @ R r* 2  kT@@h>@9 6HA6!RBR )4@ @(-U qA T@ @ @#RR@(_8'I5BRh:@9$(7#@R>@9(69@@9rRh@ @TAR|h>@9'7h@ @I!T"HR5U(q@T1Ty A;RHR'5BR@:` @N 4Ī@ T@):Rk  T?Tz6*@9|ij8*_T_TI@9|ii8I?T ?T:R T[:6:Rh>@9 6@:RT T; R4  h>@9'7h@ @@ !T R` @@~T kŸ@  j@I k(8h@ @ @T` @Z)-@)@? T @C{EODWC_BgAoƨ_I( 'RRn`5'@R@H1Tj887kTTR3T_81TR1T@bh@ @Ti @(@Y 4M(4Z0e#@R>@9h/78 `O{C8@9(7{AO¨_e{AO¨#mO{ @ R)0r jT)R j,T(X7R=h@ ? @qT t @:@9 6@@=@9H 6!:aR#Rt @RAh@ ? @qT 5)M ?qT R@6AR&h@ H@7?@qTh7 ?)qH%T _!@qT*%Q_qHTh$6 p6` @ @9* 4  K 9k kJicTK@8k)Tk@a @ _ b TRq@zT`5R4i@(@ h g!` h g`` !gDaTRr  i6a @(_8H(p_i@* @J* i @ ` h@yhh@ @i@@R(*hn)`h@{COB#Am_?qT?qRNh@Rr  i6a @(_8H(p_i@* @J* i @ ` h@yhh@ @ui@ R(*hh@)R {COB#Am_J_bTk ki#TeQH8h @_TH@9 M9%(TqkTRH8h @_bTh@i@ 7()A _ TYARqh@@7` @n(aCi@h7*@ _ Tnh@2hh@ {COB#Am_*@_@TRr  j7Rr  j6a @(_8H(p_* @J* i @ ` h@yhh@ @ j@i@ RH*h(@({COB#Am_~g{COB#Am3( @ i@( @( h @i@* @  _+T _8*9j @ hT @9*_)*RI1 9{COB#Am_! Rh@Rr  i7'x{C-@@#:&!hR _)-@)@?T{E_?`O{C8@9(7{AO¨_c{AO¨#mO{  @ R)0r jT)R j TX7Ri@I@6it @:@9 6@@=@9H 6h!:aR#Rd t @Ri@) @7(@q T h7()qT*_!@qT %Q_qHT 6p7qTqRh@ i@Rr( h6a @(_8H(p_i@* @J* i @ ` h@yhh@ @<h@ R *h{COB#Am_` @h@ @P4 7ARWi@i@7` @~(a{COB#Am\h@i7 @ _ T|gRh@@hg!`hg``gaaTi@Rr( h6a @(_8H(p_i@* @J* i @ ` h@yhh@ @h@ @R *h~)`h@{COB#Am_ @JRr* j7Rr* j6a @)_8I)p_ @J h @ ` h@yhh@ @j@h@ RI *i @) {COB#Am_Rr* j6a @)_8I)p_ @J h @ ` h@yhh@ @j@h@ RI *i {COB#Am_!0 Ri@Rr( hI7:C_WO{`R\UtR:񈂈 ` h@ gj48h@ h@ R *hha.@95{DOCWB_AC_h8@94҂RRC_WO{`RUtR:񈂈 ` h@ ,j48h@ h@ R *hha.@95{DOCWB_AC_h8@94҂RRO{Ch* @ h7@Tha7@y h@ 2h{AO¨_ւ_WO{C-@@ 1T@@)-@)@?aTAR{EODWC_Bt9@3Rdi)9*@ @iG `R KK I%a?AT Rh@h9 @) uC`.@9w7`R7_t i@( h@ h@ R r  *i )@96 R r * `RCҬ @ R;h@2h@)-@)@?!T{EODWC_B_V7R:Ȃ ` h@ ak68h@ h@ R *hha.@95@97h8@94҂RRWO{ @q@TA6(7v֢9@5Ri)9*@ @iG `R KK I%a?AT R@h9 @) uCzn{BOAWè_{BOAWè_֡! R/{BOAWè_`v֢9@CWO{-@@6K #CCR6R@~S35@bq T~@.!@_ahT )?,ij8k ` \@9 R)ij3J X@9 R)ij3J T@9 R)ij3J P@9 R)ij3J L@9 R)ij3J H@9 R)ij3J D@9 R)ij3J @@9 R)ij3J <@9 )%|3J 8@9 )%x3J 4@9 )%t3J 0@9 )%p3J ,@9 )%l3J (@9 )%h3J $@9 )%d3J @9 )%`3J @9 )%\3J @9 )%X3J @9 )%T3J @9 )%P3J @9 )%L3J @9 )%H3J @9 )%D3J @9 %@J`R@qZ}@Rr R r6( ~@@( @ @*@)-@)@?! T{DOCWBC_ D)+VRKr.  JK @  <()K AK 5J= /E(  KhJ #TT @) K1kb J@ Ќij8 R @9k  @9 @yK  )K)i(J  J* )!( 9  JJ1H  J* JmH )J K)KI=J3J*}- ˌ.(Hӊ-@1A T@ J KJʓ 0 ), ʌ ГATQqT im8  @9 @9 @9 @9a @9A @9! @9  j Kʉ - )Jʓ* HIʪʫ͓k@ ȓk L iʊ Kʉ̓jk˓)L (ʉj+ Hʊ̓iJ+ Hȓ ` J_O{Ck{AO¨_WO{]`R RA  @ @ @@) @i)8@y] R *ha.@95R{COBWA_Ĩ_h8@94҂RR+m#mog_WO{s-@@ @i)97S7)@)@9?rSG67 R)4r qAT@@ @TiT@^@ R)4r qT@Rs@(h@9qT@ T To'̌y K  )/ LR iG uC mGS@Wo@H7o@@ Tha6@@@y!@qTAR Th@9qT3 h@ !i@ )3@R>)> yh!R@1@9qT@@@@R`@D_ha.@9ȸ5X)-@)@?T{GOFWE_DgCoB#Am+l_Th@9qTh @9q!Th@ !i@Th@9qTh @9qTh@9q!Ts@@ @ R r)Q qT@@ s@a@(8@9)7@Rҋ@2@:@9@̌LRhP17g@obTTh@9qaT /@ i  `T+@9Iq!Th u T64TS@@)*6@ @( @ ?@9 7) @?T>@ @ @3j48@ @̌LRT*@ @( @X"bTLBbT -|ooN oooooo< o/2/1oo/onBn..c.nn!.kAT!NcN!NNBNN N^f `Tt7k }k ooNm J oo@ ///ocnB.n!.J!T!NN N^f Tj@8JT@j>@9 7) @?"Tʿ̌h@ @i @(@LR  R*3 9 R*3 9 {Ti97 8{aT9@)@( Th@8 ?!hT@ /@8* _%T?T @8* H(* _)T?qT3@8)R[ 1h5RRRRB[ 14RRRR?qT)R[ Ro@ /R@80R4 )Q?AqT*ii8J @@84 ?qT )Q?AqT u*ii8J @/R  _qjR Jz@@8(5/R@81R5/R)C)R R@ 9Ro@ h@ @m @0R@̌LR@9/R ?qT?qT7/R@9qT '@@9(@)?!T.@8*_%ThT@8} )K )T_qTqaT D73h@ !i@@ R r  ?qT@ _qT @9?qAT O7)R HZ@ Ts@4yh@ R r  ?q`TBRLŘ@h6i)9)@)@9?r**60*h!:(R@ R r  ?qT@) @ @7V6H 7i)93@RjJ9I@ @`R ** +%a?AT i)9h@(i)9(@(jRi)*(@ h7@Tha7@y h@ 2hARҥh@ R r qTBR2\i)93@q`T 'qT z?qT @)?!(T @8@(%@HT ?jT) (( @8* _)T^h@ !i@q@)UZgI)R '@8)R @)?!)Tg@7W@@ HT@ g"Ts@3yhSh@77(@7 RLŘ@` (R@ h@@@? cT(R(~ӈbG @9q_AT @8qTqT @8qT *!T@8 @1 ?%T?([T(~ - @8( )T#RR1Qq)T.@8 ?!T@ ?@8*_%(ThWT @8} )K )T_qT#RR1Qq TgSh@ !i @(}S?q UZg@: _qTU)R g@HT@ Ts@3yh3h@h77@7Rm_@LŘR ~Ӊ R)RR h@@@PT(R ~IPq@9gR1Qq(T kjih8) -R @8q Ri R@8q R)R- @9qT(R 7 R[ RRRPc6 bR_@LŘ@hQqT)[@(?g@IH@? Ts@Tyii)!:4)RghQqTRR<R kyjyhx) Q]q(T)R(!)RIr j`T@W@ha6@A@y!q`TqaT@R4i)94@R0jJ9I@ @`R ** +%a?AT i)9@(i)9(@(i)*(@ h7@|Tha7@y ha6@A@y!q(}5 )-(!X"T2!LBRCRT !XsTh@9 ?yT"RRsT !@-"RCR@!pRCR@R ! {(R@"RŘLRc{TDR\R7RR74@r7X6 @ 9@9 7 :R<3RO6S4K@rT79:R@@h@ !i@M@p7hMX6 @9@9M 6  !:d K4 @ !RRR4;@R!h!:H RQ]q)T@J$ RH@ !I@6RR\Ro7@ AT"W@_ T@9qaT  !bR_@LŘ@5@9qT@9q`TqAT[ RRq@H@ !I @?q AI @?) aI  @<3R7h@@z@?r@ * **(6@H@ !I@ $4c@C R[ RR%6RRRo7;@@ @@ @h2)YQ?qW@(@T 9yixJ @@i@*!j)@(!@@=@9d 7  e74K@+HYQqT ih8) h@ !i@c@5@HYQqc@HT aih8) Ggh@ !i@6@9(7R @ R r?(jT@@*@@c@H <@q@_q4@rTGgGg˨R79:RhGgc Rc@H <@ @q _qGg4I:@9Ț(7R 6@9U7R@`_8q`TqTh@ !i@G[g R)%c@@ R r  ?qa T@) @ @bW@@ 7@6@ @D$ R[ RRR c@h@ !ic@h@ !i9c@h@ !iyc@|Ggh@ !i@Ggh@ !i@9Ggh@ !i@y R[ RRc@ ҇ BR@c@7 R[ RRri)9)@)@97@ 'j _qT (7X6 @ 9@9 6@@=@9( 7@ R r qT@ @ @0@rAT?T ?#(T(R!ٚ1R %T[ RR? Rc@ h@ !i@  !@9*?뗟 $BR&i)94@RSRjJ9I@ @` ** +%a?AT i)9@(i)9(@(i)*(@ h7@J|Tha7@y @aQ@̌LR@ R r  ?qT@) @ @i)96G(@@9r@x_ BRɼLŘ@i)97@G?@r? jc@5h@ !i@h@ R r  ?q! Ti@) @x @X@i@*!j)@('@i@*!j)@(9 @i@*!j)@(y c@1t y@'h qT R[ RRc@(0Re R[ RR0R] @7X6 @ 9@9 6@@=@9 7( BRMh@# 7[ RR8[ RRh9@@9r**L R [ RRh0R R?Th@ !i@[ RRR+Rc@?+`T?aTh@ !i@ =@97[ RRR(R! @I@c@J=@j4)@I8!)@  QV@_7b DVLŘ@_7)}@ @(@H)=@i4@[ RRR  R%@9t[ RRR_ V@LŘh@J6_ R r?(jTh@@V_@LŘh@Z6 R r?(jCTh@@R*@̌LR_@@Ib  66@9h6@@A`4qT`g aT!hc@&FT ҂qi)9@Tc@H#4+Z)*r *H7@7qTA`K@ i)9W@d3@6s>?7@(6nh!@9s>?6 R!Ii)9 7h!@9(6 R!Ii)9 7 RRHi)9` 7(@h@977sRyqaTRCA`CAk`TqTIR} UR r }))`( }(}H s(!`c@eTR@r%ThR8@)ɍR y R 9=8  G[g @ ?kqTR!Hh9"6h+@9qh+@ BzqTR6uеBh@ @3 @=@9r@ *7@AR҇(Rs4?R.6ssBRqRc@(( "Th _)i))@?Tu@޶h_9JR?R4ss c@RRcP?R`?ֳѠRjŘLR_@ ~IJh@h@@r7@ 9@)99@A`A` W@u SR 6@9h7$TLŘg@o#ThBqs4RB)Rx R38KI69Rc@7)R@9)R<c@g@9)R)R7 )ii8k%ʚt  )D9? q#TT l@8il8z A) )D9?qhT5I)cRҵ@r@@c@*Rg  Q=qTk kjih8) ֟[TH9@@97 ҹ0R[K@R38Aӟ HT\R@) 6q TR7 R 9Z 9K@ \R(R 7[@R 3 8C  TR@J6qTRR(8K@K R 7[J%IAaq)K@@(ih88Dӟ> HTR@i6q TR7) R*9Z-9K@+RC7[@K@ ɚH 8  BTRK@+6 )T5R@ ?k@!T5RT5RqT#q9T@R+R5R97R@ ?kT|T@=@9/78(Rg@<RG@gGK 6 iRr(r'@o`RR& @R @y*R jTh.?`TH!:(CjU} CTJJ*H@@H7@ 2THa7@ y ( @ 2( o@@  R hh@ R r q'Th@ @x @BR@ 'h qT@ ?k@TWo6@@ @0R @ AR҉0R@?@:{C TyScC`RS@t.:R ` h@ k48h@ h@ R *hHa.@9!5h@ 2hI)*(@ H7@To@Ha7@y ARBh@ @S@ )x @o0RC@c@?@:{#T(@ ?kToW?@:{"#TSCzo@_V@@ @)) "!Tc;!@)=@9 7 @T@ʳh@ @@ @7@rTt77@so@Rs@w@`;@RzS@ `@_@?@7@H67a7@3sGo@!7@o@;@RY7@347G7@3?@o@RDs@6@`@_@[@9@( @)@( @*6@( @2( @H qAT@@G@R@W@̌LRC@g@@ȟLRW@@Y6Ha6@@@y!@qTAR&)> yh`R!dg@o |H8@9(4҂RR nnAR@`A`;7A` ;@@H8@9G4@҂RRh1Ha6@ @@y!@qTAR׶)> yhVSPa@N³3Hh RB?Ha6@P@@y!@qTAR)> yh&#mO{@`Ss9`@@R JJ9K@ k `iG@`R  ll j%)a??AT  ? R @hH9 @) `h }GHa.@95{COB#Am_H8@94҂RR߳@{COB#Am_O{CT9@@R JJ9K@ k `iG@`R  ll j%)a??AT  ? R @H9 @) @h uGHa.@95{AO¨_H8@9H4҂RR{AO¨_H!: qAR@ :ARH!:ARO{C@T9@@Rj JJ9K@ k `iG@`R  ll j%)a??AT  ? R @H9 @)  @h@y h @2 {AO¨_O{C@9q{AO¨og_WO{-@@H0@91q!Tu@ @o?+TC8RR90rRr@T@9@9?qF)@8 kT(K!R_n@9?7u@h Th @y{@@!@9jh8h4 @2@9%qT @@@j!TjTRT@ ?%qT  6 @(_8H(p_@* @J* @ ˠ @y@ @@I7 @@`u @@@<@96 @(@)=@i4@(!P @@ARP @ CI C@ M) @KA@ky KA cTZ)-@)@?!T{WOVWU_TgSoR_xO{ @ *%Q_ q"T ?!@qT )%Q?qT"?=q`TrTX6` @8@9h/6N` @RR;@0@9%QqT@@@{BOA_{BOA_h @h@h@@`tU <Oh:@9(6R#`EWO{ @ *-Q_ qT{BOAWè_?5q!T@@h{BOAWè_7HX7 ?!@qT%QqhT02R`{BOAWè_DN@_6@@(6@)@)=@9 6R@@ ?5qAT@@h{BOAWè_7 ?!@q!T%Q qT@ ?!@qT%Q q"T @@@@hzrT @ @i4R% {BOAWè_ @ @ @4{BOAWè_ @{BOAWè_M@ ?!@q T`{ @P7h@7hH7AR{_@( @T@@9qATR{_@@{_ R{_@@ `{_O{CBRRBR)@ @h @{AO¨_O{CBRR(@ @h @{AO¨_WO{@55\V֢9@3RFI)9*@ j @iG `R KK I%a?AT Rh@H9 @) h mG`H* @ H7@THa7@y @46@@ =@96@@=@h4!@{BOAWè_֡ !| R{BOAWè_Ha7@y @5 ?Aq(T!0 @j JLii8k ` r T RCOa!@ )' J)!rA{BOAWè_a!X !* !( ))! J!@q(X7@!A9yi)! J)!Qq!!H !0/ !a!< !'O{C @7(X7R{AO¨_Lh@(_6h @ @QS{AO¨_O{C @7(X7R{AO¨_L@(_6 @ 9@9 6@@ =@9 6 @(@)=@i4@(!q{AO¨_R{AO¨_WO{V֢9@5RUI)9*@ j @iG `R KK I%a?AT R@H9 @) uCh@ R)0r jTRh@ ?qTX7? q$AzT? qTi@* @` @h 7i@? h@ i@Rr( h70` @@?qCT(Qi@Rr( h 7"v @ v~)!R#i@Rr( h6a @(_8H(p_i@* @J* i @ ` h@yhh@ @Jh@u 2h!R{BOAWè_i@Rr( h 7 _8I p_ ` yhWO{ @7 X6>@96@AA9 7t @@)R jT)R jaT ?Aq T7 2?q T   2?qTR© @ @ @?qCT(Q :@9h06RM RM`M{BOAWè_֊@V@ 2?qTKh@H_7`x\:@977`pz`wC_WO{@R+@)R !9 A9(@qTJ!8Jq @*R  )_q @zT r T@)@!RM2@9qTR[ RR@ @ (RH9OK @ @!@q(Rډ@({DOCWB_AC_(R`\!'O{CB{AO¨_h:@9(76wL{AO¨_O{C{AO¨_WO{4{BOAWè_w@2@{BOAWè_#mO{@`dA`h{BOA#l_WO{U\{BOAWè_{0@9qCT@@RM @ {_WO{-@@C'R@)-@)@?T{COBWA_nWO{R{BOAWè_WO{R{COBWA_ĨkWO{-@@C~ROh:@907@)-@)@?T{COBWA_K@)-@)@?T WO{RҠR#h:@907{BOAWè_{BOAWèmKO{-@@C,GR@)-@)@?T{BOA_WO{GR{BOAWèO{-@@CGRh:@9h07@)-@)@?T{BOA_K@)-@)@?TWO{GRh:@907{BOAWè_{BOAWèJGR@a `!L`( `~g bdT_"~Ba~ b`Tl!(b(y"~Ba~ b   )yLR-}˛CӮ 28?% T `TRH8 )_O{-@@ @7X6 @*9@9 6)@)@)=@9i 7-U qT@ @ @C#{#T(@9qT) @9*ij8 sTCRծ @H  _8)?qTscT@)-@)@?T{COB_ @8)?qTsT#mog _ W O { CG(@` @`-@@7SCz A`q_6)1TE0TC A`l_Ac0T A`__qT(!`H_9)f+p 9+hkS 9+h 9+`kS 9+` 9+XkS 9+mX 9+PkS 9+MP !9+HkS %9+-H )9+S -9+  19 5 G@@)*T_j _A)Ta)T!`(Y@jTR{48 ҥK@9G@9C@9R9 R Rk%_qHjAv96_){ h@9(5)_ aTR R 9Sq) I 6_ J1_ TK_84T!`T!`TS@)QSqaT qT  }S) q hT8TJ kRi KRk%@9n !@9*9%8T @9I44_c4q_T@9!q"T(_))q@8jh8 9'@) I7975@T@8jh8h8TRU{Tt˟BTS@_q R RI#bB _BTv'@4X4H+@9qH+@ BzqaT`@9 7h@ @@"T @)` @@@i@( H*@I)*)@ MT@ @ @@K@J JC+@k@j * @J+@k @K k+@k @J )Xh2@9q#Th@@ RF` RFqEh@2h` @@)-@)@?aT{FOEWD_CgBoA_ҕ}bR7^5dg_WO{H4@9!64@9H!6(4@9 6ZZC6W@H7 @ H7@@TH6@CH6@ TxY994@4RI)9*@ J @iG `R KK I%a?AT R@(H9 @) BшH uG Ha.@9X*5@H7@ THa7@y @ 2~@RW`(AREV@@ :@9h(7H!:)CjU)} ? T@rTP7@7X7R*@5M q@T@ @T @@9q@5M q@TR@5M q`TAR!@@@5M qT @ 9@9 6@@=@9'75R@5M qTR@5M qT@@`V@I)*)@ MTzK{DOCWB_AgŨ_>RDH8@9H4҂RRU@y)R jTH.`TH!:CiU} bTi,`xCt@5M qT`T7og_WO{-@@:Z9S@3R ))9*@ J @iG `R KK I%a?AT Rh@H;{9h@hH mG`(* @ (7@ T(a7@y 83@9%qATC9G9CRBh @@9iqT RC9G9C!R"RDRER(a7@y 8қY@@%@@@F@@9Wh@2h q@TqTq TU@5R))9*@ J @iG `R KK I%a?AT R@Hh@huC@-U qT@ @ @,@)-@)@?Th @R 9a!y@)-@)@?TccRR@)-@)@? TJCRh @R 9 @Rf@Ra!O @?qCT(Q @)-@)@?!T{GOFWE_DgCoB_@)-@)@?Tog_WO{C!! :(`ZZ.dZb4W5{EODWC_BgAoƨ_/a6%6[ {<R08Q1B c'@@+B@yJ!LQqTMn{lx L-Q_9q q3,R_1q@T_aqT_9qT@ yjJ1@9_1q 7@MA@y!qT?T  ?!"T@ @ @LA@y!r!TL @e`T5TL@ *m75 R@MA@y!qAT@9H07@@@(Rf c'Q1B08!! :@@`bT@B@yb T@@9H075Rl!RRcR0@@/a608Q1B c'A T(C@y! qT5(@ aT(@ A@y)w6!5RF@u6ybT@B@y!q`T5RX@9/6(@ 5@9)6 @T6@yi8@9879Rc@/a608Q1B c'@T@ A@y*!_ qTJ5 @_ Tp75R @ A@y)Zp65R@9H6@  A@y+!qT4 q T 9qTq!T @k5@94 p7  @96p6@5*75R/a608Q1B c'@97(C@yw69@"RV@6 @ 4@҉@yiL4 9@9? r!T @* @J_*`d"JdZABTҕ7ҡR7@9H%7 -R:B)C@y)!+-Q qT?%q`T?aqT(@ A@yk!qT@ @?aq (@6@@T@@H6@9 R_)jT@6ybATҁR@d ccR@6 @@`8@9(?79Rb@AT9R~6@yi 8@9?79Rb`@T@9ҁRl@l@*J!8J@?N. RO l@ @Tѿ1hTim8 Rk!R7Rk!7RRR7R|@7Rx@R|`TTATk!74c@y@ z@ d@JzmQGcT҉@ @ 9@9? r@Tu7RR@ @@ @(`dHT(yd'TџLT)@ @׸HC@y!qTZ@:HC@y!qTX@7@9H4qAT !RRA@BRW566:@9 r!TB@y!eq!/TRRRr`@T_eqTr"@R҈@ A@y)!?-q@T?%qT @*A@yJ!_qT8@د @R%R\B@y!@qT!R RN Ml@ @Tѿ1hTim8 Rk!R7Rk!7RRR7R|@7Rx@R|A TTTz@k!6c@ y@ d@JzmGӯ?T_qaTy|A!T6:@9 raTw4RRR@aTP7(@9rT )? J?rH"@R  ; )m=q(( @@끛TR%R)3yh c $RR R ! "RR57(C@y!%qKz"@R R!҅R) @ɽ7 @)}@ J@K @T%*? Tz@yzTҁRRER4iؐ @q R RIii}@@ҡReR %4R{@R@R:@9 rTՋ7RRq!@ARR{EODWC_BgAoƨw@@@@6)!?qAT@6@@끇Tah@ R`@@T@@ @5M q!T@@ ( @@@ @ R r jT w4?qRRRRARqR`@TB@y!3@eqTReR@@ @5M qT@@ARqRER{EODWC_BgAoƨ 45M qT@@ARiR]`RWO{;@ @?Tp7L@906>@9H(6(9@@97BRsa R{BOAWè_R{BOAWè_C_WO{-@@@@-U qT@ @ @p6H2@9)qaT@!A9qaT@@!@2@9qTR RR@ @  RH9!8=@-U q@TBR'Sp7@6))9)@)@9i77X6 @ 9@9 6@@=@9 7@.@@ A(N@9) 2rN9@)-@)@?T{DOCWB_AC_{?` {_og_WO{C<@9((7@ @kT҉ @6(8/{\ 86 @9) 4@h{h07h RI9 R 9z*6qTkw8 ֈ RHy z? TJrqTRHy z?TA@9H4h[t07 RH9щQi(1R H9z?T0ˍRHy z?T)ˌRHy z?T"KRHy z?#TR5qT@I4=@5R4T9z?T(+T?TŅRHyRH 9Z_9{EODWC_BgAoƨ_(9@@97`RTRR~` h@ 9h@ h@ R *h))a.)@95 2h(* @ (7@T(a7@y R#R{EODWC_BgAoƨ*))8)@9I4҂RRZh@AO{C @A 7(7P6` @qh@{AO¨_֨$@@a?r a%@h@i@Rr( h6a @(_8H(p_i@* @J* i @ ` h@yhh@ @{h@ @R  *iW6 R *h{AO¨_O{C@@ |!g aETi@ @R) *i {AO¨_i@ ~Ag aMT @R r) *i {AO¨_ @R* *j@ |Ag aETjh@h@Bma^ ` T @R r) *i@jh@h@ @ c@ `$ ATh@ R *h{AO¨_{h_BTT@9qT)BKTT @9*ij8+  T!?iT() )@9)?qT)?(T?T?IT( {B_ *) @9J_qT)ATBI@@9qTk )TbT @9lil8-˿  T cT)Ri9_9I@) I_ @9J_qTCT){C(a6@@@N@@y!@qTAR@D)> yh@={C8@9 rT{A_@ @)?CT))!:)a? )).$I@T @ 7@)}@ J@K @T *? T{A_@@t))*(@())7)@ jT))a7)@ y( @ 2 {A_݌@8@9 r`T_@ @ @))!:)a$IT y`?`T  LTWO{(a.@95{COBWA_ ڿ~6 kT|qkT@9I)#JJ$qHH"HA#)))@9@9) *I4#R.{COBWA_#g_WO{C-@@4Д@) @ @ 8@986R<@ @5b.@9)@?@@!(8@99 !4@%@$A!<%9@ @ @R@@ !`RRR @@8@9 rTN4(8@9))a.(9@%A!$&j`@ R<L@96(8@9))a.(9@P&A!$&Y@ @ @R@@ !,RRR` @ 8@9 rT`45b.@9`@ @-U qT@ @@ 9ւTBR@ 9ւTK@8zk,R+j T9RSs&`T@9zh?)j@TR+(8@99@& !,@ @ @R@@A!$bRRRy3s":@hb T8@9 rT4(8@9))a.(9@&A!$@ @ @R`@@A!$RRRR@hb T8@9 rT4(8@9))a.(9@&A!$@ @ @R;@@ !bRRR-@hb T8@9 rTq4(8@9))a.(9@& !@ @ @R@@A!$RRR@hb T8@9 rTL4(8@9))a.(9@&A!$h@)-@)@?T{EODWC_BgA_#mg_WO{C@? H!'? gA`!A`xi@ed!`aA`!A`xi@ed!`a ggA`xi@ed!`a~ } ~(aq `phg(aphg ba RR7!` TQ( gan!(b(h4b ) "g( B 2R] )RQr Rʣr ) )jRjr? k#Tr`T+( ga(p4b ) "g( B 2R] )RQr Rʣr ) )jRjr? kTr Ta8R 8R])RQr Rʣr)   RQr kH  yx KAb!aT,=)RQr RʣrkRkr RQr .R=b)aYx=KbQ!aT)  k#Tr`TR  k*~I ))*-9H KAb!aTJR b)a*i8H KAb*!aTyRb)aG)RQr Rʣr)   RQr kH yx|!! !a^!a+T)RQr RʣrkRkr RQr -RYm|9aA! !a^!aT)  kcTr`T R  k헟 *RH  ) i8!b!ajTR ҉R#)9a i89!b!ajTb(acx q(' Nw x*j RK kq /*Jx@.`bqkk yI h&){EODWC_BgA#l_WO{-@@@H mg a臟 ]E!g a鷟 u6R#@*Q1Tq )ʼn) ꣐Rj=r*}*KJeJ +\Rµr)}++)g) )  +RQr Ṛr1   RQr? kN-IRirIzȁJ1 K  kTJ_ kITEiR)Ir }))`) *}I}I R(  qq(I )1(Yx Q?q+TRR+LRRm=r R2RP  1RZx JkQ? k`T} g,4_r`TR1e1.?q?qTR <R*R+RQr ṚrmRmrRQrO 1RYxKJQ kTPQQ1   kTr`TR1 ?k*+RQr ṚrK1 klRlr kT?rT )R )RQr RˣrI- )  RQr? k闟 RK kq)-*B)J}@)yx  Qb gaagaRA)(}bHeS Kb(a(b @! !a^(axE@h@h@h  @h @i@h@h@h @j" @j @ju7t@) K?-qT?-1T)R  t*RQr Rˣr)- *kRkr_ kT) +RQr? k@)@zTqaT-Rh]i)-@)@?T{GOFWE_Ҩ]i)-@)@?Tg_WO{h-@@_q#T9R ROR(=@| R(9@R9xC9R҈9fHR9hRJ9 96x@(9@7@ (9 @) FiC99# /@`RRRR@(/@@ @ @@ R u3  @ RK"RH&9 RRZ@ -)U ?qT@) @ @H7(R@'R^~CBR@6@ @#A6(!@9 6@ @`b @~A) W*)*)qS)}) )! cT+97 )!_ @ TK9 7 _ @TK9k7_ @TK97_ @@TK9+7_ @TK97_ @TK97_ @`TK9K7*@J!T*!+A )T_T I97JT7 @@^HCQ*@@96 @ ^A!'BRCR^@ @r" j@) @ nRh ^9I9 9@i)-@)@?AT{FOEWD_CgB_#WH'@0'g_WO{C(9@i@ (9 @) (R*hR)BqHT8 #2O4) )!+iw8J @99#6{w@9@K@}(k7s @9h>q T {EODWC_BgA_(R*P)Bq T TN5"zw@9@ @z7`h@h@.qT h@ h@h@ R u3i h@R i@Rr( h6h@2hh@R hBhhbh * 97@9) @9 !Rz`  AR"RRh@ 2h(=@ @@ @) i@(h@R !WO{# @~A U**qS} !? CT 97 ! @ T 97  @T 9J7 @T 97 @@T 9 7 @T 9j7 @T 97 @`T 9*7(@T(!*A_)TT)) 9j7)TSt R{BOAWè_CQ(ֺT*@8jj8 D9?bTqT5 ˨ qAT@9qTR`Su{BOAWè_O{C @~B)T*)*)qS)}) )!? CT 97 )!_ @ TK9+7 _ @TK97_ @TK97_ @@TK9K7_ @TK97_ @TK9 7_ @`TK9k7*@JaT*!+A )T_T( I97JT R{AO¨_sHCQ*Rj{AO¨_Rj{AO¨_R{AO¨_O{@@0R{BOAD0O{C@))9(\@@?q#T(Q4=@]E9`@ 7h@@`T 4=@]E9`@H'6`@@?qT(Q`>@@?qCT(Q`V@@?qT(Q`"@`&@`Z@h@{AO¨`>@@?qT(Q_vWO{PE94 ~өjix)Q?5q(TB]@@yW6_x ]TB{BOAWè_(=@ ]@i)=@9)(7]E9r))!)@9I _))9)@)@97 R_og_WO{C5=@(]@ @ @J @_T*Y@K@K,-M|+5L{˺˘+1Nyˋ˟)y@+?qTI @*? @   -  %  q u@i  u y@i  y4Y@ @i  {EODWC_BgAoƨ_g_WO{C_q)Tւ=@(]@h =@9 (7)]E97))!)9@74w)?T*@9_q&T  TJ_ qT K@8kqI J9J@J@97"4@ @y@a@m@'@ ]@)@* @J* m@) m{EODWC_BgAji @k~Ak S*k*kqSk}k k!TfX@ @(I@a@ m@@ ]@)@* @* * m@) mT8 ?T(8H6i@9 e38s Tkl@9G @Tk l@9GӗA7 @ Tkl @9GӗA7 @`Tkl@9GӗA7 @Tkl@9GӗA7 @Tkl@9GӗA7 @ Tkl@9GӗA7 @`Tk@9Ki +!i!mAGӭ} M  T? TJ _!bT L_AbT -K|ooN  oooooo< o/2/1oo/onBn..c.nn!.AT!NcN!NNBNN N^f_ Tj7, M}, ooN. k ooą@ ///ocnB.n!.k!T!NN N^f_ T) @8J T@ @@a@ m@:@ ]@)@* @  * m@) m R 39 R 39 sTh978saT{EODWC_BgA_@(H'@0'O{C{AO¨O{h-@@5 @ -)U ?qTi@! @ ` @CBRP @h@uS}@i)-@)@?aT{COB_H=)@0'hWO{s=h@a@TTm@#T5öh@ ]@)@* @J*  m{COBWA_Hq)@0'\{C=@ a@?T m@_T?T J9J@+ q)?T+@9)qaTK%@kK% aB4 K%aa{A_H)@0'/O{s=h@ ]@ @TT a@?T e@?T i@?T u@?"AT4 y@?"ABTym@_h@ ]@)@* @J* )L)J ) %M+J - u@jJ u y@jI y{BOA_e i@?Ti u@?"AbTu4 y@?"ACTH)@0'ڙ=@h)R 9_Cog_WO{h-@@Rrj+Tւ=@7 @yi4R]@ @T7 a@ m@_ T u@ @Tu y@ @Ty?9@ 6J m@ a@x S LY z -NJ j y@  7@@ I97RRh@RR qKT @ @zATA @z TN@ RR q T҈ @z!T6@97@ ]E9@ 7 @ I9) 98@9H54@94A!H*BRCR!R9(94R54@9h4A!+BRCRR94R a !=4R"RCRR @@ @@(m5a*]@jJ=@9*(7*]E9))!)9@J7 7 6aT= @~A) U*)*)qS)}) )! B T{ J9J@J@976@ @  @  q u@i  u y@i  y eB?1T) J9J@I%  e4(!@yIR jT8@))a )@ T@"`@i)-@)@?! T{HOGWF_EgDoCC_J9 7 *!? @`T+9+7)? @T+97)? @ T+97)? @T+9K7)? @T+97)? @@T+9 7)? @T+9k6I@)TI!KA )T?T *9j7)T(CQI @9i}$H *@0'bGg_WO{9@@ @@9=(@eB1 T"RQ@2@9qT6@9H 6 BRʵ@@7 R *@(@eB1`T{DOCWB_AgŨ_9@4@ 9 @) @%@{DOCWB_AgŨRR'6@97ЊhCZ#@@RRR܌@H@ш 6@97CRմ@hG6_WO{Ch-@@xrTւ=@m@ Ki)=@9(7]E97!9@7T4@a@`@9@i)-@)@? To )9)@)@97 Th9 6qT@i)7ih8T24@a@m@T`9`7@@i)-@)@?@TH4@a@m@h9H6@i)-@)@?T6 @ ii8Rk%ʚk  )D9? qCTj_"T@@8 i`8`zA)  )D9?qT5@i)-@)@?T{EODWC_B_ i4CDRz @@i)-@)@?@T8(!+ 0'L{Ch-@@97(Rh@9@JIih8Rk%ɚhI )D9? qT T @8Nim8 z A)I )D9?qT @@jJ-@J@_ T5i)i@jJ-@J@_ T{A_DRңz@@jJ-@J@_ T{CxrT1T(qAT9 @(%@ *%=@ aB4j *%a ]@=@ ]@i)=@9I(7 ]E97 )!)9@)7 a@)  )9)@)@9i7 a@*@9kkjij8) a{A_(e+ 0'og_WO{Rrj!T=@a@m@@ 7RxRZ9(5@9)qTqT@9)qTqSAT7@q(RT {h?)j`T(5T@aI@3%@aBh (%H@%@4a@ 43m@r  _qT)@(R)[R57vւR@9)qTqT@9)qTqSAT@qT9zh)j`T @z@zT@a{FOEWD_CgBoA_h R@9_)qT_qaT@9_)qT_qSAT yj?+jaT@ @z@@zAT(+ 0'Co g _ WO{h-@@99(@ %@* %=@+aB4j %?a*@J*I9 7*C9_)qT )m@_ T @9?qT xR @8 {i)jT( T@-Rɭr kaT@9 {hR)jT .@8 {i * j4(%Ti@8()T {iR * _q$Mz$Jz$@zT{@8 {{)jT!T"AR! @9?qT %@)Q %Zi)-@)@?T{POOWN_MgLoKC_  {{ R_)j`T@8{5 R @8 [j++ qDMzDLz T_)qD@zaTCc`4 @zQ˿T@ @II97(@@ T(@yF苇Ry8@RR@2@9%q@ T8@RH @(@%@ @k!T(@ @) @( @@ @) @((<@ @ @' Tt@ @@aRǼ@@ @@ @(@H@H{O{cT`T](@@@?qT)Q R@(@%H(@R@og_W O { h-@@/  )( @-U q! T(@A8 @i@(+ 'RRRRR7 vւ R#R R4R|*_sq + T@9zz?)jT[h6` D%bRݰO@  *O +bRӰD@zT_kqT_q`T_q!TK@*7KR)R#_oq T_wqTKR_qR)RK(RWCC BRi@(+RRR@7@h4` -Ra#B=@9(7RR3@5#RM#R3@4` @h@ @ARy  @ARa ! BRCR BR7K@747O@6W!!-R*R/@jJ-@J@_ AT{KOJWI_HgGoF_#@@!!,RK@6W!!,R46W!!4-RO@7ѮO{Cs=h@ 5@4 9@_ k-T KJ @4 a @y4Rm@ TjJ R @9MYlm- q@zT)T{AO¨_C9qS*2h@ K) @ q@)_ I a{AO¨_= @I@? 1T4KQE9K J@j?EqT?)qT?1qT?Iq@T? qT @I@)QII0R @r @K@kQKK9lQL9L!@ k8)A *)2 @KQE9J IA @HQE9HQ9(H_#m_WO{h-@@ @-U q!T@ @ @jT/#BR@Tt>@9h(7n/i@8!c!`)aga#T@i)-@)@?ATA`{FOEWD_C#Bm_ n/R )Rci)`g) `s BTi9(@6jh8&ɚH )D9? qTk"T l@8jl8 z A) )D9?qT5I)CDRҦv @@g_WO{ZH@ @@9#(@96!!."RRR@5@9H5 AR .R .RRH@ @@(@96!!."RRRs@5@95"B.#R@?qT(Q{FOEWD_CgB_~og_WO { h-@@'A6@@ @@!@97(Y.x -wRR @(5@9 4Rt!:aRj A6 kA9h@ @RAR t kA9h@ \@ @@ @)y @@ @{6i@ !9)C@J@I @i @J @* Z6J @J @< `uт7 @ 7@@ Th@CH@] T@9 @O?NHi )aJJ @+#3@y4=@ ]@i)=@9i(7]E9r )!)@9IjR )9)@)@9I7R)%h @h '@i)-@)@?T{JOIWH_GgFoE_@9J 7) @ A?T){COBWA_Ĩ_@h@ @p@02@9=qT@@Hr @w?fr{COBWA_Ĩ_ֈ @@h @5}qT }@i@( i @?i(8h@@{COBWA_Ĩ_@@qZ{COBWA_Ĩ_T4@%A)T?A441 @!CR>@ @)  @@*%A  _ T@8?)qHT@TCR& @@( R{COBWA_Ĩ_WO{aRsx@`Rnx@d@{BOAWèog_WO{H-@@=@I9<5RE9@4QR9()@ (AA r T7u76@ @)Q >q^T@#@9)AR4Ay54jqAT @9 )9j J%qH[@e@ ]@i)=@9(7]E9r )!)@9I q`TRB:@"@qT)@":@~S : (86@ @) u7Th = )m9"q(i )=Bq(@9 J9k k%?qi`")@ ]@i)=@9 (7]E9r )!)@9IjRd )9)@)@97R @_@h=@9(7_E9r )!)@9I qTR9@@9(7R3TRS4RkT@ C9?)q T 9@5Rri ]@i)=@9I(7]E9r )!)@9IjRB@ Ay5R`T@@yu@ =@9 7Z )9)@)@97Rby @AyRkT`RRQ@ E9RKR?qj?q @9) * 9 ]@I RR@ ]@i)=@9i(7]E9r )!)@9IjR )9)@)@9I7R@ y?1ATy'RRR@ 'R@@=@H4@>a ! BRCR@i ]@i)=@9(7]E9r!@9?HjR R# )9)@)@9)7RRR@ R 9q TE9qiR)jRqBARl&R )9)@)@9i7cR9@@ E9 @_qT)@)@I ]@i)=@9)(7 ]E9?r J!J@9)J  )9)@)@97)RA!R@i ]@i)=@9i(7]E9r )!)@9IjR )9)@)@9I7RiRRE@ R 9 R kaT&RN )8)@9?q)R) ]@jJ=@9j(7 ]E9_r k!k@9_Kj RJ J9J@J@9J7 RB *E9qiR)jRqCȿ&R'^@s"h=@9(7^E9h:@77 9@@97b@n@ˢ=4h:@ 6@a@m@ˢќ<6@ 9RE9h5C9 Q?qHT JiLyixk `VA9C9 k`T@ -R&@y߂b@@ -wRZR9m@7@9qT @8Zi** _q$Mz`T?)qT@8m@TI@m@AR qaTR0TRu8RTjh8?q@T?yqT?qT)@9?qaTi@) @  CR Th_85qTh_8)qATh @i@) @ xh@ @) @ @i I9i6 UE9?)qT m@ a@*%@J*% aB4j *%aR@ %@)Q %@a@5R J@o@ eB9 9Ew@w@qw@w@Yw@w@w@w@x@a_x@wA}T9@w@w@ w@ab@n@ 뀋T@8qAT>@5!!< Rw@b@n@ T mb@n@@`c4(R9&Lզ y?1fTb-ZZs ss{9 9SJA9@8T9@qT*{hx) '1AT@a@RRB+1 T@ C9?)q!T)8)@94 @I I9 7qT q@J8J@9 D @zT @i I9)7i@*%@JQ*%m@@m@T@9?)qT)RB@9%T@ IA95@9qT@ q@ T_8?)q!T m@ )?T @)R@9 R(*H 4 8q!T@ q@ T_8?)qT m@ J _ T*@RrJ J)@9R) JI * 4 @9%T@ IA94  @8mѿ)T}q@Tq#TqT@9џ%T? qAT m@ _ T @9pznR?0jT #Tjm8q Tk@ k kicT@9qAT@ q@ T_8?)qaT m@ )?ˑT @)R@9R(*5;=@ ]@i)=@9 (7 ]E97 )!)9@) 7hzt R?(j@T!m@"T(_8?)qTaT RT4 ?qT?qT@9hzh R?(jTR4 BR\!!<R@ IA9? qTz)?eHT q@ T_8?)qT)8)@94 @i I9 6 C9?)qTm@ I9)2 9i@)@9i7m@()TT86? qT T@9 ?qaT3@hzhۇ7 @zaThztڇ76+  L@8kџ)qATV? m@ bT )RG8 s{Ti_8?)qATvm@@m@i) ? T@gRr? kaTi@9jJIyi*R_)jTG@bARu@{9ssT?'B)qATT C9?%qT @y?qAT 5@ ]@? T* @J_qCT)@)@94*_8_qaT g@ 5@4 9@_ kLT| @9q$Cz T?)qT+Ri!ˁR? j@TA ]@i)=@9)(7]E9r )!)@9I q`TRrF{7.@9r@T @jzi Rj* )_q JcT @ ) )?iTq@TqT@()m@ "#T*@9"kzj R+ LqJ"TK@ k kmmH!T 8)@Km@J} ? 1JCT@ @i @y 4 I9 6 m@ bT  m@ þTJ8J@9j5 MA9 4?RB)1 T )R M9 )!)@b )4q+T =@]@@]@"RCRĥi@)@97RRu<]@ZT = @]@!!R[h@%@@(e@@ @@t@]@a@BR@@]@"RCRTb @@?qcT(Q@94@]@!!H"RCR{@9 ))@9 * 4@]@!!BRCRl@94@]@!!<RCRa@9(4@94/@@9?q(R! @ T@]@!!X](@]@!!BR @]@ !7RCR7 @]@"RCR0@8h4@9qqT@]@"RCR%@]@!!BRCR@]@a ! "RCR@]@@q @ @J @) m!@yIR j`T8@)a )@ `Tҳ9@@@!ˢ?@ gFA9 4F9iR9ɞ@)Qɞ/R*0RqU b@n@ T)RJ9@9q'T.@>@qF9)R95 I9)y 96@4:@_ k,T^@) @ @yJRKR rqh?q@K @r@?(b@9bQsq0T!R I" yxx) t9 BR@! aR @yq!T^@6@ T @)?q#T@@94b@n@ 롱T6Z@ @i @ b@*@9_qaT)b@ b@Z@) @ i@( h@ @! ` @` Zb@n@ T^@@@aT.@ C9cC ʥ[@@ ]@i)=@9I (7]E9r)!)@9I [ ` @At@4t@a1t@!.t@A+t@(t@%t@"t@t@q@!q@q@aKs@s@ %KI a@ Y@I  G ]@p@p@]@ @ % i @J @) mR`q@5@R[q@E9)Y9R@!R@%=9uiR 9T @J9J@I%  RR^@ Y@ Y 5AyjR?qI y)}Q? qhT Q@ -)8*@9KS a9Hy(9*R >@H4&@ Q>(( _88@ a@ m@? @ TJQ_=q+Rj!+RJ D@z@T) aiR 9=.@8_qqT @9_qATbhR9c F9(R9)? T@yR) J @9RJ J) *)4@yR) J @9 RJ J) *5 @9 9 9 Q=q)R(!)R @zT@&@!! ͣ@> Q>h8@ @)Q 50R R5RR8R n@ TJJ R@9MYlm- q@zT)T)9)@)@9i7(RgWjRpC@7)TRR?R #  m==hR[ (R(9R[@:R"T@(@yqTx"66_8?qT @ X_8 qTMix8q`TR% 4N@8zT Liv8qTR% 4  v@8z T R_8 @ X_8  Liv8qT ןK@k * KTwT?`T+6 ;@)!@) @? TdC@T+_8K9 ?T831r ˋ@i @Wˉ@>@9 7))A?@kh _TG@G 6(@9JJHih87Tm R 39 R 39 `T (?78AT[) @?@JH #HG {7*?T_CT  I|H + N=!NO @<!NAT_ aT  89T7 9-闟[@I G@J G$h@9iq Tq Tq T*-@%K@8q`TqaT?@,7q Th @9q Tg@H"6H@9h Th@9q@ T[@C@H[Ti@9Kkiii8 1i? Ti? #Th@9q@bI7@d2I@T @ Ta7s[g@ 4Rh@9 q藟K@  *K8Rg@ 4RR q藟K@  *KmqTuqT*-@J?@kR7h7@ T RnRR*-@*-@_?@k *7JA96Th@9)qTh[h@98[@T*-@_?@k *K6 *]@J@J@_T R*Rq@TqAT@8*]@jJ=@9 (7)]E97)!)9@7I)(yh)R?(j! T(R8R7hT9 R FC@vh7@ bT R  R @9_qqT)R7@ "T?q?c R @9_qqT)R7@ "T?q?@  ?TJ9J@J@97iT86 _ qT? Ti @9*_q!T) 3(@I)(yh6R#Rd[@v9 R @-@C@hq@TqT?(=@H5qTh @9qT)=@)5qATh@9qT?C@?v 6_bTh@9qT[h@98[@j_T?"T@8qqOT[@(@yqTqaT(/@H @94 HRbC@'(/@h @99qAT,@8qT҄PC@ 6 R8[@h@987h[h@98g@47 @ˉ@( @ R *9G@(AR @@) @ y6 @ 3@I !@) @? T\}C@[@@9}S29[@@9 R 39 [@[;RRh[h@98G@G@9 ?%Tq@Ti @9)?)TP [@9 Q?!q T )ii8J @hRH RѢdRRRIC@V[@ U8h#06"#T@9%"TRC@ "4@ ]@i)=@9I(7]E9r)!)@9I @(2@ @7 @aT @a|[@h97;RC@fI)6Ih8[@[? @JJIyi R_)jTR!!hC@H[@9qT [R@-@(u)) @ -RCG@y[@"T(Kk R@9jyj*j!T[!T RR8^HR8[@ ]@i)=@9 (7]E9r)!)@9I jR(R8IR8F[BT9ң@7V+RB@ -R@y(hR8&@ ]@i)=@9(7]E9r)!)@9I E ` RR!C@8 RR@ -RЮ@yC@[@[)9)@)@9i7$RRRRA !O()9)@)@9)7'RRR 6)9)@)@97'RRR 7VRWC@W@hT8\藟[@( q!TG@h @ˉ@( @ R *9W@T(R;7R8@2(RK @ d XiR(KR} } S[@?@  AR @@ @7W@)RKbT)R idiIijRI K)R)} )} S[@?@  k @, @a ? ET RqRb;RC@[@#zTz7Kk RT _8iyi)j T@9UqT@9q!T [@-@@9Kkhyh`6[ T@ C9i48 @9iyi`6[  T _8jyi*g7?}qT?q@T) ]@i)=@9(7]E9r)!)@9I *hR˨Ѣ҄RRRGWV[@_aTU87A7:Tdӈ;R |([8)9)@)@9)7"R/V@ ]@i)=@9i(7]E9r)!)@9IjR(ݝ)9)@)@9I7R/@/@ @ R r qT/@(@ @S3 @/@BR'~@ -@ S@h @/@=@9(7>@9 7@ @C@ JI !c TT @y/@ @?qaT R r  ?qAT/@I@) @SS @R9ˉRhrV-cPR"B|@>@9h 7@ @;@))@! T @G(7/@RՊh@ R r qaT/@(@ @S3 @RW;6;R8C@ )(ziR 9ˉRir +T6֚@h@8сRؐ#V8Vxy 9Tk;@@ _z@&O@J Ts;@MzO@s@T @h97(ROh@9.kkiih8RJ%ɚHi )D9? qCTkn@bT l@8il8 z A) )D9?qT@5I)O cR,dUrR"Bp|@>@9'7@ @!T @R8h/@BR,}S@@7?T"h@9JJJih8? T7@( ' |%8S@@yqTR/@BR } q藟K@  *K7/@=@9(7S@[@ ) iT?@) @ˉ>@9  7@) @?TS@[@?@  ˈ @ˉ@( @ R *9G@AR؉ @@) @ ;RyS@aS@/@ @?qcT(Q/@( ([@(2@ @7 @CT @( @ @>@9 7 @ TryW@YRky;R@@yqTbT(RRfRR% } S?@) @ˉ@( @ R *9G@(AR @@) @ @(2@ @7 @aT @a5y(RK;RW@hT86 R+qRh`;RR8G@G @mRG/@lR @@ @BT9 @ˉ@( @ R r)2r R) *@ )A+ T! @x [@7@hTEc[@@*-@8[@7@T 9 @@)? T hi8)qaTK%@kK% aB4 K%a @) )!*9@ -@?+R R j2T aB9j25j J93 ki ?b*RC @y_q`.T_q.T. |5'R| @!9RR@ QE9 @ QE9 I'R A@ QE9) Q9 Y@? )R I9!RAR$RR@ (m@t(RF9(R9!RB@ QE9) Q9@ @-!R!R{@ QE9 @ QE9 A@ QE9) Q9 )@ QE9 I0R @r A@ QE9) Q9 ) R @ QE9 I)R A@RE9R9.@(b@ @9?qTZ@( b@ b @9?q`T bRJ9RE9 %R A@RE9R9v@ vh,4>@4hR *R.@(+qTRRjRRh@ @7@iR I9@)@97 ]@i)=@9(7]E97!9@H6` @h@ @ҕ4h@2hRRo@ QE9 @ QE9 I'R A@ QE9) Q9 5@4a@ UE9 9i@) @IiR I96 RK@8Zk,, qd JzaTq TR I9 QE9 @ QE9 %R A@ QE9) Q9?!RlIa @?qC}T(Qh @45yRR(RiR rj@9KQqq !k d@zD @z`TsRJ950Rb&@!  Rh<h@%@@*@ k1(?I93aU'R QE9 )@ QE9 *R A@ QE9) Q9j@>@&@-qT 0w@&@9>@ >(8@ %@=?i(8@iR 9 QE9 @ QE9 I0R @r A@ QE9) Q9@9lQqyTR ylx J1Rl6@4:@?kT^@ @t@y4R/6 I]@@@Th 'R4GRRR@a[@@*-@ +C9c@ kTKA@k2KA @9_qqaT RR*9*a@ T*QE9* )@I@*R*I9*QE9) J'R*A@*QE9J*Q9*u@K+u 4*=@ 4jR* (a*Rx(a#*-@ (a!RqR RRR ) @a QE9 I)R A@ QE9) Q9 u@)4u =@?qT -@!RT7QiR *RMn@ TJJ Rl@9MYlm- q@zTs)TC9qS2w@K @r@?(b9@@97^@h=@9(7^E97!9@6n@))Th9$7@I)(yhH7 h@9I)(yh R)r?(jTȂ8‚ ^@h=@9$(7^E9r)!)@9I #aTh@94R#RP]@9y! 94 !@I )_8?qT5@ ) J1q@ @ @5 YE9?)q"T R *R I9 a-R@ @5 YE9_qbT) )R I9 au,Ra:"!R8@ 94 !@I )_8?q TR-)<{)"@ @5 YE9?qbT*R I9 a!R?=/RR)z@ 5@i4 9@_ kT@9?)qT?5qaT @9?)qT q@ T_8?)qATiR I9AR`@ @5 YE9? q Ti@)%@ @? k)1 jR I9 a"RO4K-H(U0RE<A.>; 8"5~,2`</!,!)@8q$To;<R"?qT RK@8lZk,, qdMz`TqdJzT_@Ukh@h@ C9 U9 9@) 5 C9 U9!R3) @5 YE9?qTRa )R I9a5,R IA9? q$T%5@92 y_1!"T? Ti@9*_qAT e3(@I)(yh(܇7)R 9 QE9 *R A@ QE9) Q9a"R@@97$RѡRRU9V@6@4:@?kmT@RrK) @ ˓b@y5C9IRq@K @r@?(bh@9 Q?Qq(T 1# ii8J @֟J9a4qTh@9q!Th @9qTfhRE9REn@ )TJJ Rl@9MYlm- q@zTs)Th@9qaTh @9qTfhRE9R'84bR@s(RiR rj@9KQqq !k d@zD @z`TsbRR@yfRE9R @ QE9 ),R A@RE9R9(RJ9E94RE9@ QE9 R A@ QE9) Q9sqT # ix8) ֳV@!Rb.V@b)V@50Rb$V@u"RbV@!RbV@"RbT%@ @)Q?q*RI!ɚ* $) $@@zT I9)y I9)2 9Z))-@)@?T{VOUWT_SgRoQ_R *R I9 a@9?q` T)Rl 4@Ȃ8‚ ^@([K@9?qaT @9?qa T*R I9 a(R@9 *J_)T?k!T @5 YE9?qBT.@8?k)aS )R I9 a(R?qT @5 YE9?qT(@*@5*YE9_qTR6a@R* *R*I9(a.R*R*I9(a!R@!hh@%@@*@ k1(?I9 aU'Rxq@TjR *R I9 a@9?qT a5,Ri*Rgqq\T!R{ Ta>@9i 7bTs#!R{[Rh95@|4<R#RZR:sV)@@a(@?ֈ@a@Vi@)%@ @? k)1 )R I9a @!yTȂyT[ )z[%zV@9@ 9RE95@7zp z6zh z#XzO{Cs=h@ u@* u 4 =@4 R 9{AO¨ -h@ ]@)=@9(6I @)2I I9RRՇh@@'R{AO¨_ 5@  ]-* @ ) i)@) @I mE9Y9%@9h@u 5@* @J_q#T)@)@94)R 9)R u ]@* @J_qT"R{AO¨_iR 95 ]@* @J_qT)@))@ aBk9k@l%@I ) i%a"R{AO¨_9@%@s]h@ UA9 C9? k`T QA95 I@?T @ aB K) a ]@* @ m)@) @I mI9+R{AO¨_֐ _WO{@9(4@9H4{COBWA_Ĩ_4R=@ ]@"i)=@9)(7]E9r@9IjR)9)@)@97R]RR9@ QE9 @ QE9 &R A@(QE9(Q9RJ89H@9q(R*]@jJ=@9(7)]E9?r@9?Jj R)"*>qT^qTcRJ9J@J@97 R"*>qTcR(RRNq#{COBWA_Ĩog_WO{CC(-@@=@ 9@)4 RZ))-@)@?@ T @9?qT?mqT?qAT@9qT @9 2?q@T)9)@*9@K}Sk kQqTKR*jT)IA96q0Tq!T@9qTqT@9qT RQ9-@@9qT8ERZ))-@)@?Tf@8vQ qTRZ))-@)@?A+TC{EODWC_BgAoƨ_" R%HTh T`T @9)TqHRo?=;=Z7=3=/=+='=#====== ===b$TR:R  Д# Rzi@) Qq JI1_r  Д#Rkw8k78" T9@ Q?qqTji8 k8)U 9@@9 7@ ]@i)=@9(7 ]E97)!)9@i6m@I T(97@I)(yh7nqqT94\ Rp 7(@))(yh)R?(j`T(qTq T(q` Th@ e( T9 e Tш8 iTKR ZQqN@9))(yh)R?(j!TRR%qT@ ]@i)=@9 (7]E9r)!)@9I q TR`9sqZ7! RzYaT(@94R#R"X @9qT94 bR` 9D RQ*Q N #7(k5k8KA y_1AT? T @9*_qT e3(@))(yh7/ -Ri 5P9P9 *4 !)9)@)@9 7R|@cR`h (  p "R h@% HT @9 "JcT~SZ))-@)@?T89 bR WO{ @  @"_qT*@_T` @! @?TT@9?qqaT@9?qqT T@986 2/bT  @9_qq( @98"T @9?qqAT ?cT R9h @i@( @987{COBWA_Bh #R'RT{COBWA_{ -R=@y{_WO{ւ=@ 9@?qT !@)Q 9IIi8 I9 @)Q C9?%qT@RR @ @)Q C9?%qaT 9@4 I97 "Rj!RqI QE9 A@ QE9) Q9s4Z@ qT QE9 "R A@ QE9) Q9a*R{BOAWè_a"R{BOAWè_) I9a{BOAWèp I9i7 @y?qT 5@ ]@? T* @J_qT)@)@95@9?q T?mqT?qT @9?qTR ) I9R 9a{BOAWèKR 9O{(-@@=@ ]@i)=@9)(7]E9r)!)@9I )9)@)@97$R C#%R@9h@))-@)@?T{COB_og_WO{ @Z=H@m@?Tq;{<3R @9@*(9@  @9@*(9@H@m@?T@T 4(97 @i{i7O y?1T)? T)@9*_q!T e3)@i{i7@g4@(@9I@!m@@kh89))T(9H6 y_1T? kT)@9*_qT e3)@i{i7!T(@95 @i{i7R#RV@@"T@@((g`7R#RV@(@9i{h)j!T((@9@*(9@(@9h{h(jT@CTq@( qT9 @(9@ uS_%qT7t6H@m@ ) T9h7@h{h7  _=qd @zT)AA97(@9h{h R)r?(jaT@ JR 9@  9@aT@9(4R#RU4@ @9?qT*@8_qT @4 @9_qAT y_1T? KT) @9*_qT e3(@h{hh78g5{FOEWD_CgBoA_ A4 )uCog_ W O { G7(-@@@9))(yh Rе=_(jT@ 5@4 9@ kmT KJ @3 a @y4R@ m@KiT R@9.Ym. q@zTkT C9qS2,@ K) @ q@)_ I a)9)@*%@ @_ kJ1 ]@jJ=@9*(7 ]E97J!J9@7@9*@9797 W@c98R+0I@m@JJKii8R%˚ I )D9? qTbLT @8Nim8z A)I )D9?qTJ5i)+K6+@cRy9 @@c_i88*%@ E*9@KR*jaT)EA9i7 ]@)=@9I(6J6 ]E9?rJ!J@9)J ?qTZS7f7ZS7f7{G7 ]@)=@9I(66 ]E9)7)!)9@ 6 ZG9{waB'c@˘#T@ ]@i)=@9(7]E9r)!)@9I +@cc @ ]@i)=@9i(7]E9r)!)@9I A)9)@)@9 7(R+@c* !x7Rt@ ]@i)=@9)(7]E97!9@7@9-)9)@)@97@9(iw8q@TR)%7 4 *@8z ?T Z7 *7 {G7)9)@)@9I7(R+@c !X8@ Rkt@IE@9@:I@ 9 @) f_(C@Д"@RRRh@@H_  R9nH@H@Rr R *H7@4+@CR+@?qdW# )4RH@I?@9  6 @@)m@  )A@n@ k a_TmH@ @@n@J @\ TJ @\ "Tb h@9{8@ M Ti@9?)q!TɆ@I97)9)@*%@J*%bB4j *%bi@9@+@?qqAThTrTO@4sc4G@4ȦH Th@9qq T4{ R8@^@hT`5qTȦH `Tczq^@^@h=@9(7^E9h7!9@79@@97h96@))3ih8]{(RK@ M T^@^@h=@9(7^E9(7!9@7 9@@97@69H @I@( @m@TH @ T_8)q T5q!T_8)qT5qT!T_85qTHR8 _85qTHR8H @(I@( 9 @(%@ *%@ aB4j *%a m@ aR`6@a@H@I?@9)'7 7l7@4+@CR+@@K@6I@)2Is9 @*%@@ @*%'@ aI@*-AL bTH( H@ @! @ @k@ @ =@ R R?ii) H+@?h A @?qT(QH Ҩ@@)9)@(%Z))-@)@?AT{LOKWJ_IgHoGC_cCDRU/@@m@:7 7 O{CmRR{AO¨_#mog _ W O { C(-@@79 Q?%q/TRR7S=@i ;4ДRPs9R@9 ?)T}qT4zh`7}qATH*(6_\TH8I)*7 !;R)s@99RqT@8R?qTH8@9}q*7 !;Rs9R ;H8@9 ?)T}qT84zh`6_bVT}qATH*6Rr9RyBqq`T H48 >Rލ`R Rq(8@9}qAT7 !;Rr/@89Rq`TqTH9@8V }q!T7 !;Rr@89R*)?)' T}q TRqh*Z7{7=@A<qAT3@w!@9 7/@~_9;5=@ =/@"!@9(6 B|?R`qTqTqT p93q_8?}q)*7 !;Rur@99RqAT@9)TRxTRd[=@m@@x @ T=R}q!Ti6b@T8@8 ?)'TaTY6 @9 ?) R!I*7R !;8r9R@8 ?)'bT;RA B>R/@=@A4RR~`7@))-@)@?ET{MOLWK_JgIoH#Gm_@8 yaqT)RR#)(R.@8}qT !;Rq-R;RR q!TR(R)(R)(R'.@8}q@T RR#RRO'@*+/ o$R y:R?Aq`T9(*Q_qT kj8k `UT7R !;q-R{i9(*Q_qTf;@?aqa T %+@*6=+@#@4 t; lR+@7@4h9 ; lzRh@9 *37#@H!ښ'@O@k O %ښ? T)!)@907Hc1yzRa !, p 1yz `!c(a3RR#w?q@4@9qTRi @9( Yi:RR`7)y?Aq!T_8?}q@ @zT !;RBq@9-RqT@9*JJYi`7)y y?Aq@T(*oE7=@*@8a@_q a1yv l=`l@a6kk=g!`MT!2yv@4)2)yv,#@h`!2yv@4)2)yv*QqT)R(!Ț ) ThR)R kR,R;=q.97))'@9}qT )Y>' != RpA`m  )Y>' != Rpu!9@96`6@ B>Rw6@b B-R7@q/@T !>Rp@cS@A!@9/7 '@~ "''* KJ KJ K)7q! TR+RJ#@7@}q Tq觟  )(@9,yhg6 }S 3  '@%m4}q!T'@ k6qT@+@k!͚k '@  RqT R Qq'@1@!͚ K% l4L7 RL7rL +RQ 19 nR#@77@_qO@@@zTyAqT( *@8+R_q)_qv ,@9%hTRR)-RJR !@< k<6m~ , Qqן 7qן  ,7,@8ѿ)'T}qT RpqhZKS=@ R 9'@?q`T'@? qaT@68R/@@I R R R 9@ 8R/@og_WO{-@@ @8?q?TsTh@9 ?)CT}qTh9 TT+k R-@9mym-jT)JAT _ kT*@9_qT)@9?qTbua}@ziTZ9!T׈+ |џT+O+CRT@2y?Th@9qT(@9%(THsTi@9*_)CT?}qT5RџT9}`T} 5TRn@ R *@dK Rh@ 2@ )-@)@?AT{GOFWE_DgCoB_҈_WO{7@@6@ 49PZa@Y[qR2@ ]@)* ]9@%@R;@ @(%X @ @)0)(@ @(Y@%@@ @)%@(T6PA{COBWA_Ĩ_@)0@ @(YT7_WO{hB@y!qTu@B@yp6@v"R|jf7B@yp7@ 5@@`57h@A@yp6a@ 6f{COBWA_Ĩ_{(@ @ T!T(@ @͎R*r) J @yRJ J) *I4 @Rr) J @yꍌR J(*4R{_(@ @jRmr) J@9R J(*(4R{_@ ]@)2 ]@ ]@)2 ]@qA9(87DRRu R{_ R{_@ ]@)2 ] R{_O{C(@@y!qT @ @-U qAT@! ! (5/h@ )@)@*qA9 R_ j!T)%@)@)@)@* @)yj)@9 7qR"BRi! !  4! !4! !<`4! !$4! ! 5h@ ]@)2 ] Ri@(*h{AO¨_{C@9H5 \l(5 l l ?lg_WO{-@@ -R=U@@4VqaT @i@Y a@:T_T e@? DIaTe@ a@:)T_T+@9*JLyk R,jA T, e@8Mym-j`T#Ҙ !,R7qT !H0 1T C9?)qT !(+@9*JLyk R,jT, i@8Mym-j`T: !4BRCR,~q T@i(1R !`-@( !RCR 289@ @)@)@)) @JeB_1T+ !p@ ]@i)=@9I(7]E9r)!)@9I  %@+ !p ! @()P) k+T@)@97(RI@ ! @()P) kT@k%@j K_qHT*H ! ܸ@8 @97)y 9! ! RUl@y@ )-@)@?TR{GOFWE_DgC_֨/@94(yw07 !X !RxqT@ =@R{@49"Rg}O{CɈR{AO¨_R__(@H_֨A- @)_(@H_֨a- @)_O{qT` RAR{BOA_4{BOA_֨=@C94RR{BOAZ ]hdRR{BOAP  CkO{qT` RR{BOA_4{BOA_֨=@C94RR{BOA* -h4RR{BOA   kO{qT` RaRd{BOA_4{BOA_֨=@C94RR{BOA gRR{BOA  jO{qT` RAR4{BOA_4{BOA_֨=@C94RR{BOAʆ gRR{BOA  j5 RR {C ) jWO{PNs Wւ=@W@(9@ !@qT)c@ !(9@ *9 R (8@qV@YV@Y9‰4@C95 gs@KN{BOAWè_ր5 RR{C Y `j_WO{C-@@q"Tւ=@QE9(42@1 T4qT @3@* ?@cR~@a@9@)@97 ]@i)=@9(7 ]E9 7)!)9@6m@*IT9 7)@*JIyi)6 ]@i)=@9 (7 ]E9?rJ!J@9$J I QE9 @(DqT(qT0qT^@9*JIyi R*r_)jT_aT@94R#RUJWHq@Tq! T@ @)Q @0R@rC@ @)Q 9*Q 9 !@I )8 @ * 26+y1 T_ T@9KqaT*e3I@*JIyi 7/@)@9I7$Ru C#R%R@9˿ @T T9 $RE@9qTqT9 8R9@ QE9 A@ QE9) Q9) 4@ )-@)@? T{EODWC_B_ f@ )-@)@? T !R{EODWC_B|[4@ ]@i\@9q`T@ ]@) @ a@R@ K+ @`K@9qTK@8qaTa e@ a)=@9i(7]E9r)!)@9IjR@)@97R@ )-@)@?T{EODWC_BO  :i5 RR{C  ,iO{5 R!RR71TqT 'f.{BOA_ 9 i5!RARe{C q iWO{)T@97))(yh R*r_(jT*R  T@ T @8+yk_+jTR{BOAWè_87))(yh6@95jh8@T6ւ ) 3(@zh6@9jh8 R@TT9(@6 ? q!Ti? kT@9*_qT&Z5 _ qT? T@9*_qT) 3(@))(yh7 R{BOAWè_ RZ`5{BOAWè_R#RHR{BOAWè_O{-@@  @r@T -)U ?qTi@) @` @ R BR"e@h@ d@ )-@)@?T{BOA_?Cog_ W O { -@@Z=I@;aB8(*]@jK=@9+(7+]E9r!@9tL k9k@k@974R @9<[h R+ q@zT(5@4+9@k-T(a@J @ a(@yH4R(m@ iT R @9[kL, qd@zT)T(C9qS2HH@ K) @ q@)_ I a3@9 ?%T (8K@km@_ TK@9lџ%(T?;TJ+8K@km@_ T3qT( jT?9/h@9h4H@ C9?)q`TR 93@Z )-@)@?hT{LOKWJ_IgHoGC_c#RR/@?9/h@953@@9?qT@8()9)@)@97R5I@!m@)T86 _ q?T? +T @9*_qT) 3(@{h7 {h R)r?(jTR#RG@9 @)?)Tq@TqTH@m@ T@yIGR kT@9H@?qST ]@* @ 3)9)@)%@O m@ T@9{k R+jT 5@4 9@ kT a@8 a @y4 R O m@T4@9 )(ih8(T * R@9[lm- q@zTJT  C9qS2wH@ K) @ q@)_ I a3m@5(R(T@9 ?ybT44Gt4) T(86 _ q!PT? K(T@9*_q'T) 3)@{i7[{h) @6q T3@9h99 *)?%I TyqAT94@icT R? 7?@@ Qi(1Rh93US@h 4! TYa!T 5{h 6 )(ih8j(8H4 q#Tj_T z @A`b?`TBC`b?TDE`b ?T i @8*8T3h@9*)?%TI@)m@ bTi@9K%(T?bT*8J@Jm@ T)qTqT( AT?9 T9@R/@@975 T97@{h62H@ C9?%qT 9@i53@m@h5H@R@9{h R)r?(jT@93@}T aT@9(4R#R F9@93@}T@9{h)R?(j!T@@9H*q#T@9{h R)r?(j TT9 7@{hH64@9 )(ih8)aT@94R#RF93@,@9{l*RM+ 'qUBT 8,@8{lM+ 'qUT7 A4  f(R/c#R%R/@99@%@3@U@n@b T@9{i R_)j T6@4:@_ kTK) @ ˶b@yH4RD y_1!T? T@9*_qAT e3(@{h6R#R -F y_1%T? T@9*_qT e3(@{hh7 W96j  R@9[kL, qd@zAT)TW@7C9qS2U@K @r@?(b93@9oq@Tq!Ta !9@4Rg4[@KRT4  ) oq(е9@4%@7%#gO ! Rg@%U@"@:*: R i)8H@ @) #@5@%@U@n@@9bT{i R*jT^@) @ ˪6@4:@ kM T+#@Rrb@ ˶b@y5C9IR rq|U@K @r@J jb)@9?qT @+@ P?q! T3C9)qT%qaT:@ 4:@H4Rf4/@R5Rq R Rq"R?qД9@3%@7%}@ ! Rf@% #@90  R@9[lm- q@zTJT(3@9?qT6@4:@?k-T@RrK) @ ˶b@y5C9IRq U@K @r@?(b^@ @ 3@O@ %b9H@)R Q9R9HRJ9n@ T R@9[kL, qd@zT)TxV9`5s V 4@9 )(ih8j(8H5o 4dg_WO{Д=@i@ u@ Ti@9zi R?*jTj uK@8zk?+j`T9"8R9@)@9i67@)@9 7i@9)ki8s @)@97 ]@i)=@9(7 ]E9 7:@6m@ITh97@zhH6$aTh@9H4R#RD y_1T? Ti@9*_qAT e3(@zhh6 RU6h@9zh(jTh@9qAT@ ]@i)=@9/7 ]E97:@)R7)Rs @)@96@b@TRQ^@h=@9(7^E9r@9I @@97(Rv@j KJ}@ !x Ryd{FOEWD_CgB_{C-@@97(Rh@9@*JIih8Rk%ɚhI )D9? qT T @8Nim8 z A)I )D9?qT @@ J-@J@_ T~5i)i@ J-@J@_ T{A_R@G@r@ J-@J@_ T,qbT`+R_|qbT+R_qbT+R_qbT@,R_qbT,R_DqbT -R_lqbT.R_qbT@.R_ qbT`.R_/R)/R\q 1_Cog_WO{-@@9=(@a3 ]@i)=@9)(7 ]E9?rJ!J@9$J )9)@)@97$Ru R%R@93@7@ @TT9 $R@9qTqT9 8Rs@:Rn@T+E9qT@9qaT@9qTT@iRIr kTC9o= lRn@T  J R@9Lyl,jT)AT@9q!T@9qT9@%@@ k1-RRp(@ R 9@)%@ @? k)1 I9a&R;b@bA-@?(@4q`Tq!JT3@ )9)@)%@ @? k)1 QE9`(R#5iR I93@ )9)@)%@ @? k)1 QE9@(R!5 I9 a@a)a-)@Jq ? A@T7@JA9z7 q!Tn@T@9qT@8q T^@h=@96(7^E9r)!)@9IjR4R9 RZ}aR 6T@@y`@( =@9) 7]7@R7`7JA94@9qaT@9qTҿ1 <TK"1d@Th @@h@@! !!Rcq(R!) R @z TRcC9 &#RR0~ q 3^@h=@9h(7^E9r)!)@9I @@=@H4@q ! BRCR~(@ ]@i)=@9(7]E9r!@9?HjR R#74@9qT(@ K5 @Z 5@4 9@ k T@Rra @y5C9IR rq(@ K+ @ q@k 닁 aL@9qTJ@9, @ a( @ _qT")9)@)@9)7R~@2R@#[(RC9!RC9o =WR>Z )-@)@?#T{\O[WZ_YgXoWC_^@h=@9 (7^E9r)!)@9I q@ TRj9@@9H7$Rv R%RG@93@@9qT@9?qaT7@!7@"R7`47_qT_q`T_qTqT9@ 9@*uS_%qT_=qT6AA9H6b@@bC9o= RR* @J a( @ RK m@lIT ЭRO@9Yo0 q@zTJT K9@@97RrR @ @) 4Ҷւ @(@RR@w@ ?!@q!T )%Q?qT @ @ 5 @@A@9h?671T @ @4R"1d@T R?(jT@(@RFR9@@97RތRRn(@)9)@)%@ @? k)1 a(R" @@)A@987@qA9rRC9o= ! Rk @hRRf ?`(@TaRY3@(@?(@a@3@(@)9)@)%@ @? k)1 )R I9a @^{ s` !p`^@h=@9((7^E9r)!)@9I 9@@97(R Y`# `T`_WO{ -RW=@ ]@"i)=@9)(7 ]E9i7:@I7h@9 8\@q@ ]@T&)9)@)@97i@9 JIii8m@ 1R-BR#RW@q@ ]@iT* @  Tl_8)q@z!Ti)=@9(7]E9h7:@7`@ ]@,T0)9)@)@9)7I@ ]@,cTi*=@9(7 ]E9j7:@ 7j*J9J@J@97bT+L @9qTL_(T_Tk_IT+i)=@9(7]E9r@9I )9)@)@97(Ri +# 9_Cog_WO{ -@@ւ=@99t:RgRr<Ro@c(@ %@) % cB4I %c(@ %@)Q %@84@c@6@@h@94qTqhTh@9H5b@ _@(@ @aT( @o)@) @j@9_qT4_qT( Th@xiR khRsn_qT_qTi@9?q T.@8i5i@984) TҨ@m@Yh@-yh@h@0?c Th@9( 5h @94h@95!R;@??Ti@9h @94(5h@956i@9?qaTs  Tx@m@)@-ҟy@@@ ]@)@? ]@RR6@_@ @)2 _@ @ @J @) o @qTh@9q,TI96 o@)?KTi@?kTi@9zi)j`T_@ny@_@ @s @@ @(oI9 9 @ ?@ @zTo@@I96R@+sO k _@( @)@) @  o+@k%@qT T(  Rk@9zk_+jTs)ATh@9qT @8?qs8@95h@9qaTh@9qTt R@8Zh?*jT4 RZh?(j`T(@85 !\:{ !,{@ @94RZi)j`T@85R@8zi*jT?qT{z@9"@@9@9#@9 q!Tcq @@9 kT y?5qTh@9q@@z TQ@)a!@ Q( M* 4 @K@9qT! K@9 Q!5@?I T@9 5 !x:u{ b@@ !,m{ ?8@m@ R?"T*@8zj?*j@T9S(}aV@m@BT R @9zj?*jTCT9`B@!(}!Hzo @yUR q@zT@9))@9 *q@@z @z@T@7@4 ;@?kMTc@ )-@)@?Tx(R9SE9 *R A@ QE9) Q9a"R@ )-@)@?T{HOGWF_EgDoCC_@]@@x@ ]@* @ q a* @)@) @I mM9@yj@T@m4 RZh_(j`T(@85(W :] 8;] ;]@t-@cRaxcRb :z]O{CA7@ &y44zRw@{AO¨__WO{i8()}@)z)?e(T.@8 JIyi+R)j!Ti@8 k0T=qa T@6@4:@?kTɢK) @ b@yH4R@9.4= @(IA9 4R6=@3a(m@T k R@9Mym-jTkATv9 T@yLJR k`TQ_q(T"R kI%myjx  \>!R"RcRq@$Tq@$T6q&T#R@*IA9J4 JKYhR+jT+a@k@9Jyk*jTg= @(R(I93aH"R{COBWA_Ĩ_qT(@5(YE9q#TR a{COBWA_Ĩ_(R( (R(I93a@9qAT(a(,R{COBWA_Ĩ_*R{COBWA_Ĩ_n@ T J Rl@9MYlm- q@zTs)TC9qS2@K @r@?(bw@9QqqT )'+ih8J @h@9q`TqTqaTq!Th @9t9  bRxqT &RRRy+@)R I9ah@9q`TqT(RJ9bR9@@97^@h=@9(7^E9H7!9@6n@(iT86? qT kTh@9 ?qT3@ )(yh7yw R)r?(jTT5yw6'RR#R4+@aR#R<h@9q`TqT@)R I9a @%@@*@ k1(?I93a0R{COBWA_Ĩ_%R0#R."R,H$R*%R("R&"R$$R"h$R $RH#R$R(%RH%Rh%R$R$Rh#R%R %R #R(#R($R#R#R@*e@*u(y( HR(I94ah)R{COBWA_Ĩ_֩@3a@` ah@9i@8 kT)=)@*IA9j4*R*I9(ah/R{COBWA_Ĩ_֊J9J@J%@+@_ kJ1*?I9(a/R{COBWA_Ĩ_M5yO{Ch@8 @9 kT)=)@*IA9j4*R*I9(aH/R{AO¨_֔=@*IA94 JKyhR+jT+a@k@9Jyk*j`T@(R(I93a"R{AO¨_֊J9J@J%@+@_ kJ1*?I9(a/R{AO¨_qT(@H5(YE9qTR a{AO¨_R( (R(I93ah@9qT(a(,R{AO¨_*R{AO¨_O{C=@(IA9H4%q!T a@9?I9qaT(C9%qT(9@h5R(9(QE9(  #R A@(QE9(Q9 a@HR2 @8_qT_qT -@8_qT*@5*YE9_qTR* *R*I9(a@9q! T <! R#R@I9#R@ E9i4)9)@)%@ @? k)1 I9 (R(a#R{AO¨_IR I9a#R{AO¨_*@J5*YE9_qTR a{AO¨_ R* *R*I9(a@9qT(a(,R{AO¨_)R{AO¨_)R{AO¨_O{C=@(IA9%q T5 @8_q T*@ 5*YE9_qc TR a{AO¨_ a@9?I9q T(C9%qT(9@h5R(9(QE9(  #R A@(QE9(Q9 a@HRFR(9!RR-@ E94 IA9? qT i@ y@? aTm@j4h@9mqT@ R 9@I9 QE9 R @ QE9 R A@ QE9) Q9)9)@)%@ @? k)1 I9R* *R*I9(a@9qT(a(,R{AO¨_(R(ah"R{AO¨_)R{AO¨_IR I9ah"R{AO¨_ֈ9@ 9@*uSJQ_qT(R*@8_yqaT4JR_)jTAA9 S*@8_yq`T_q j)J=J@K@+5KYE9,@9-RRq kIT+,џ, R R RqH (RHI9Ka(@9qaT( Ha ,R_R*@8_yqT)=)@*@*5*YE9 @9 RRq kT*R* @9_q!T *R*I9(a ,R_@-R_*R*I9(a,R_@aR_ aR_O{C=@(9@ !@qT)R@ !(9@ *9(8@ @) i*R I9 a{AO¨_ֈ9@ 9@luS%qT @9?qT)=*@IIA9?)q$@zTH@H5HYE9%qTR@a_i=q$ @z!T Q_qTJR_+jAT IA9 '7 JR_+jaTAA9h7( R (@9qT = @h RH RJ=J@H .R+RKI9Ia_  RH -R+RKI9Ia_og_WO{ C -@@=@ a@ i@? T:_8 IA999*4R@9qTqT(@ 9@*uS_%qT)_=q$ @z`TAA9H7W7&R IA999*5q@?@T7R@9qT@9q!T@ ; ]@i)=@9(7 ]E9?rJ!J@9$J #4 d>RYRc T.(@ %@)Q % !RZR(@ %@) %@9qT)@)@9 7$Ru #R%RB94 d>R/``T;RT@ yE9?qT}E9qT RSZ@M4_@h=@90(7_E9r)!)@9I q0TRRh@@#`h@( @"Ra@BR;v`@@?qYT(Qw(@%@ @*@ k1(b@RRf@ R 94A6&R@ )-@)@?UT{IOHWG_FgEoD_i@ i@Gb@H@HRRefR9R*`h@9(4h @ @*_%qT @ @ RTX6 @ 0@9?5q@T`@ i@j a@_ T y@_ T u@_ AT IA9_ qT @y kjyjJ _@qT@9 5@'4 9@ kMT ]@J @7 a @yI!4R 7RI9 5@4 9@_ k-T KJ @< a @yi4R= m@*Tk R@9nYm. q@zTJT @9?qT?q T?q T)@)%@ @? k)1 `@") R @9,Yk_,jTq!T`!b@cB@ )-@)@?BT hC9qS2,@ K) @ q@)_ I a@9?qmT?q T?q!T@9_qj *7`@HQ)@*%@@ @_ kJ1 k@ki@* @+J * `@r@ ]@i)=@9i(7 ]E97)!)9@I6)@)9@j@#5w#4*@J@9 7 ]@jJ=@9(7 ]E9J7J!J9@6m@(iT86*_ qT T@9 _qAT(3@)(yh6*@K9@luSqT`@P@ e@ yiR y @5 YE9?qcTiR Y9 R I9a'Ryi R)r?(jT!T 5yi7@9q@Tk=qd @zTJEA96R#R7@9q`T m@*ITk R@9nYm. q@z!TJT $(@@9(7RRފ@ ]@i)=@9(7 ]E9?rJ!J@9)J C9qS2l@ K) @ q@)_ I a ]@< @*@J@97)=@9(7 ]E9 7)!)9@6m@))T9( 7@)(yhH6aT@94R#R`7@9)(yh R)r?(j!Tk@9+4k@*@i@j !?i)@ QE9 h@ @)!H'R&RS@TP@ QE9 A@ QE9) Q9 a7!RD)@)9@7I7ٸ4h@ @)2 h@ @*R) * )@@ @)%@? k)1 I9a' y_1! T? T@9*_q!T e3(@)(yh 6RH6h@94b@d4 5a @^4 5`@`b@cB@ )-@)@?T{IOHWG_FgEoD5!@97@5@@ @9)2 9`@O)@)@9 7)R * !>RX@y9~<Rh@ZH7@9qATh@9H4b@4 5$7R"a @44h@94h@h@ @*) `@@]@ ]@i)=@9(7 ]E97)!)9@i6)@)9@@ ]@) @4 '@?qT @y?q`Tj@ E9?}qT E95 @y JIyi) ?0qT$)@)9@i7I74h@ @)2h@ @)y `@rOqT@ @5 YE9?qcTiR Y9'Rb?q`T?q T y@ i@?  I9U4`@XOO}:p@ ]@i)=@9)(7 ]E9?rJ!J@9)J )@)@97)R@9 k _q+W >UCog_WO{ -@@=@ IA9?qT?q T65 Ayi64 C9?)q`T 9@54a@9?q ;T 5@5R I9 5@ 5 R I9 5@4 9@_ km(T@Rr KJ @3 a @y5C9IRq@ K) @ q@)_ I aҙ99Z#R 'T)@)@97 ]@i)=@9(7 ]E97I;@6m@* T9)6+y1!T_ #T@9Kqa#T*e3I@ {i7@9 {i R*r_)jT!T@9i!5)@ {i!6 ]@i)=@9(7 ]E9?rJ@9$J )@)@9 7$Ru cR%R@9@@9@eT`R`4qTZ]qT QQ?q*RI!ɚ* `) $@aTqT Q?=q*RI!*R) $@zTaqTh_@h=@9H(7h_E9rI@9I qTR(@@97R@9qAT!R"RRҼ"@ @*@I% %P)? k@Ta=@aBRcrRRb Rb@=@@?qCT)Q = 5@ 5@=@Rb Rb@ 5@4 9@_ k-T KJ @6 a @yI4R m@*IT@9 [k, qd@zTJT C9qS2ս@ K) @ q@)_ I a@9?qT*@8_qT 5@4 9@ k-T Kk @T a @yi4R m@ j )T +@9 [k, qd@zT)JTeF@4@ ]@&C9qS2@ K) @ q@)_ I a (|@= 5@5 m@*)T R@9 [lm- q@zATJT R#R4@9?q`T?qT@ I9 5 QE9 @ QE9 I'R A@ QE9) Q9*R1@ IA9J4?qT?qTRKR?qia9H4 P.?qT*RJ!ɚ @ _ !T?qTRKR?qi3a@ @4)Q )R I9,R YE9*4Ra@ )-@)@?T{HOGWF_EgDoCC_ JM@FM. Sn>M S (SO{Cs=i@*y@(i@_ T*u@_T(R(I9(5@5(e(5@4*9@_kTHRr+Kk @T a*@y5)C9JR?qi@(K @*q@_H(a(@( a{AO¨_(m@ Tk R @9nYm. q@zTJTO{Cs=i@(@4Q((5@4*9@_kTHRr+Kk @T a*@y5)C9JR?qi@(K @*q@_H(a@9qaTR RJ9J@J%@+@_ kJ1*(I9(0R a{AO¨_*YE94R a{AO¨_(m@ )Tk R @9nYm. q@zTJTWO{=@ 94 !@J J_8_q!TRa{BOAWè_t t?qMT)Q 9 @)Q C9?%qT RRU@ @)Q C9?%q!T 9@5@9?qT?mq@T?qTi @9?qaTRR 9)9)@)%@ @? k)1 I9!Ra{BOAWè_og_WO{ -@@=@ 9@?qT!@!)K@! IA9?)q T J'Lyixk ` !@ 9K 9?i*8@ @) )R I9a@*R !@ 9K 9kR+i*8@ @) I9m@*T) R@9,yl,jTJAT9b/T)9)@)@9 7 ]@i)=@9(7 ]E9I7)!)9@69I@6*_ q&T*_ TT@9KqSTJ*3I@JIyi%7W i@ y@?  !@ 9l 9Ii+8@ @) 5@4 9@_ k T KJ @5 a @yi4R !@ 9K 9(R(i*8< m@*Tk R@9nYm. q@zTJT C9qS2t@ K) @ q@)_ I a@9 IA9?T_ qT C9?%q!T)R I9 a@ +@_ qT i@ y@_ A%T*Q_qT+Rj!ʚ+ _ Tm@_BT+RL@9 kTqqlJ _#TU@ m@ !T)J R@9Myl-j!T)AT9K@8qT 9 R _"TL@8,yl,j TK@9JIyi R*r_)j`T?q Tm@T@9)+yj,R+j(T_q`T_q!T T@9*yj+R*ja'TT99#Z;RМ  @)@97@9ki8m@ BT @)@97 ]@i)=@9(7 ]E97);@69I@6*_ qaT_ 7T@9KqA7TJ*3I@I{i7@9I{i)jTRB@4@ ]@i)=@9i/7 ]E97*;@)R*7)RqTqT@9*?BZTz9@J@97 ]@jJ=@9(7 ]E97J!J9@j6m@J T)86+ q-T_ T@9KqATJ*3I@AC4@RR@ m@ T*k R @9mym-jTJAT @9?qTE9q&RR#R% qAT@ QE9 I"R A@ QE9) Q9@ !@ 9K 9?i*8@ @) iR I9)9)@)%@  a("RI!Rq @ )-@)@?%T{FOEWD_CgBoA_֩@9?q`T IA9? qT 5@4 9@_ k T@Rr KJ @5 a @y5C9IRq@ K) @ q@)_ I a@9?qaT)R m@)? T@yjR) J @9K RJ J) *5aRϼ@a@ @9?qaT !@9(iR 8@ m@*Tk R@9nYm. q@zaTJT JIyi*R_)jaTTi5JIyii6 ]@i*=@9J (7 ]E9*R 7k!k9@ 7WbT R@9,yl,jTJAT@8T?qT @9?q TR R#R0gY4! \Rl@9?k TT)Rk TT@9 qqVT?sqT "T@9 _qqbVT_kT? q T)Q_k)#T4@J@97@9 kj8m@ bT9#Z;R @J@9J7@9 kj8m@ T@J@9j7i)=@9(7 ]E97);@69I@6*_ qaTJ_ T@9KqTJ*3I@I{i7@9I{i)jTRrA4@ ]@i*=@9/7 ]E97+;@*Rk7*RRaA4@ ]@)RR#R00R#R'0jg_WO{C=@JA9%qTbh@9J9qTC9%qT:@h5R9RE9  #R A@RE9R9b@HR@8aTȞ@(5ZE9)@9 RR?qi?k T(RJ9b(@9qThbR ,RY(RhbT4RԂ9R#R$@ R E94 QE9 @ QE9 R A@ QE9) Q9)9)@)%@ @? k)1 I90-R0b@r@ TRP 49@ @97^@i)=@9(7^E9 7)!)9@6n@))T86 _ qT? T)@9*_q!T) 3)@JIyii70IR I9a !R{EODWC_BgA_Rb))yx R*r_)jT @zTR#Ru/))yx6 %@)Q % !RP@ %@) %9@ 9@*uSJQ_qTJR_)jTAA9(7 R*R k @L@5@9q(R  Rk @L@,5 R)R*Rk @L@,5LYE9m@9.RRq k TI5h RH (RHI9Kah@9qThHa ,R`-RRSa@4@@9qT)=)@*@*5*YE9 @9 RRq k T R* *R*I9(a@9qT (aR( ,R_։)9)@*9@KuSkQqTI R RqH)R) J=J@K@5KR*jaT)AA97 R)R J=J@K@+5KYE9,@9-RRq kiTH (RHI9Ia(@9qT(Ha ,R_֠,R_@-R_ aR_@aR_O{C=@ %L a RR@m@  Tj@9_)qTs)aT{AO¨_O{C@8q@TqaT@9q TRO@ 4h )=)@)m@ T*J k R @9mym-jTJAT @9*Q_1qT k'mij8  @9kkYj,R+j!T?qT*=@ R )R I9.Ra{AO¨_ֈ=@)R I9.Ra{AO¨_?qT?qT @9_qT @9)(yh)R?(jT !RO=@ @I5 YE9?)qTRta{AO¨_I R )R I9-Ra{AO¨_og _ W O { C -@@{=h@ IA9I49i@9Z9#?q!TH-@8qT9R( @9_qT_q T*@9_qT @5 YE9_q".TR *R I9 a)@9?qaBT a ,Rm@Ri@9qTRu@ n@ARi4 @9q!T<@8qT9CR sRGCZqTR9#kbT3@9qTE9?q3R@@96;(R@@97h@ ]@i)=@9(7]E97(;@6T9h7@hyhH7)aT@9H4R#R-k@9qT+ y_1T? +T@9*_qT e3(@hyh6R>k6@9hyh(j T@9qTqT@ 9@*uS_%qT)_=q$ @zTAA9H6h@ ]@i)=@9i(7]E97);@(R)7@@9H6@)@97@9Hkh8@@96s@wC?T59(HRȪr h2R@9qTCRa @4T@@y`@H[ =@9i]7(Rh RRRҎ`d  Lh@ @8R, @9 @qT5 YE9?)qT R *R I9 a-R% @5 YE9?)qT R )R I9aF!Rrh@ ]@i)=@9N(7]E9r)@9Ij!p I98S@7%@Y@KR 9 @9_qj R U@8yu,jTQq,R!˚, k d@O#T} m@sFh@ m@ 렔TC 3# }  뢊TIR yi@ K}QC3m@3@bˡRhBTIR 9j@Jm@ "T @9_)qT_5qT 9 @8_)q @95qT 9j5 YE9_)qTRa9i@(m)]@* @ )@( h9@4@ h9 @) >Cs"`@RRR@@h@ш q7Tq#@aTR/ RR/#@HR/j@HaB HR N+@<4+@@y4hA9@ @ !3@ +@]@5@y 4 @@ @hARhz_@q9# TCI ) 1TR+@)'3R Cg4sbETH@8)qaT+@(aB(a_@GT R(R R  Tk@9yk+jT)_ T DT kh8?)qT! .Rm@ARg`u @@ @z_@q9#TCSh(T +@"(Tg'4@8)qT+@(aB(a R *R I9 a-R l@8MRRqqW)@9):7 ]@i)=@9(7 ]E9i97);@)96m@I9T996 y_1YT? iT@9*_qaiT e3(@`(Rri@*]@,e#@ 5@ @@ @hAR`g '9@i4(@h7@ RE@ @@) @i)8@y] R *ha.@9`5h@E9CZ)QC ]@ L'# -h@] @ mR_@9# t@O@_@^@7@BRnhh@ m@ aaB @(%R 7@ @H_ @(_8)q^T@%i@(]@ @H @(m@ _8)q@TH @ ^h@]@ !6BRCRgi@(]@ @@ @H(m6a@*aBJ*a?)q@  ? T _8?)q T?5q!T _8?)qT?5qT?T _8?5qATIR 8 _8?5qTIR 8h@ m@) m]@ @) @ t@qTn@C?T@9k!Tn@CTf5f`TRK ?TJ+@9yk+jT+? TR  T@9yh(jT7C*f+j58h@]@ J@?q_@7@C@IT)Q ] @ q @ @J @) % e1R+7@#@9#R+7@#@R+7@#@ @@)@9i7R}RRfpRR`pR RWRR@R[h@1 @ 9@*uS_q T_=qTi6AA9( 7DV RRe @RRH#z_@q9#Ti@@=@H4@ ! BRCRfag @(Rri@*]@jJ=@9*(7)]E9?r*@9?JjIR!@J@97bR@}RRpRR[RRoRX ReWRRo[h@1 3@h@^@5@?qC@4T(Q^ @r @@) @ " fbB 7@+7@#@@9#)@9yh)R?(j"T!1T@905@yh!7 aIR(RIBa*e+j989#h@ aB)Q aC7@#@@H "2T&dCh@ aB) a`A AE~``@i)A9i)A9h(@!@7 RAS%(h@9 -qTh@y!-@qaTh*@TAR*`*h@y2hyHae@ @I h@ Y@#@_ T @@J @) m_@ aBO@) q T+@ @ @ @`Gg @ R * kT4~@3R  "RCRe9s?T(@9)qT!T+@e !5!?T(hb8)qTB(CTCReTCRe?T9CRe?T @@ @7@?P+@ B @?qT(Q @ )A+ T! @A @@9h7h@ ]@i)=@9(7]E97(;@H6 @@ @Ғ4@2h@=/@ 3@I9a)Z )-@)@?T{MOLWK_JgIoH_R97@)@97@9Hkh8@@9h7h@ ]@i)=@9(7 ]E97);@I6m@IT97@yh75@9yh)R?(j@T/!T@95@yh6h@ ]@i)=@9i/7 ]E9(R7);@)7 y_1T? KT@9*_qT e3(@yh(7R9@7R#Rq(RC}@Xd3h@O@# }  uT Go[h8@9H4҂RRB_@7@C@oh@C@^ot@[R#R:( Gh@]@@?qT)Q +C ]#@ O@7@*@%h@R$+@+A DGb G 0 G \GO@+@+@Aoh@ @8?q@T?qT @9i)=)@_qT*@5*YE9_qTR* *R*I9(a@9qT(a ,R_i)=)@*@5*YE9_)qT R* *R*I9(a-R_h= @(@5(YE9)qT *aR_H R( (R(I9 a-R_ .R_og_WO{C -@@w9@*%@vւ=@ @_ kJ1 IA9@8%qAT_qATai @9I9?qT C9?%qT 9@i5R 9 QE9 #R A@ QE9) Q9a@IR3_qAT)@97 ]@i)=@9(7 ]E9)7i)!)9@6m@` ) T9(7@)(yhH6<ai@9I9?qT C9?%qT 9@i5R 9 QE9 #R A@ QE9) Q9a@IR)R a *R_)Ri aZh @9)(yh R)r?(jTa 9 X R7c2aT@9(4R#RD'a 9 X R*c@ R 9RR t "R @ E9 4I9 QE9 iR @ QE9 R A@ QE9) Q9IR I9a *R@R 9RR\ "R@ E94o@9 C9?)q`T 9@j4 5@4 9@ kT Kk @T a@yJRKR r?qiq ԯ@ K) @ q@)_ I a IA9? qT i@ y@? 6Tm@t64h@9q`Tmqa5T@R9RG44to@"4T9Ru";Rw m@ T RR@IR I9 m@*Tk Rm@9nYm. q@zTsJT  y_1A T? Ti@9*_qT e3(@)(yh6Z@R(9  !TYc`,5RG,45o@Rrb@+ˡRnb* R@8{i_(jT@J@97*_@jJ=@9(7*_E97jJ!J9@J6)T6(y1!%T_ T@9 _qaT(e3@{h(7/7 6R#RR&@o@B$T@9*{i_*jT _@@:@jM=@9(7 _E97-R7m@9M7ki8 T@9-{i_-jT-R T?`T?T  _T L@8kqTqT?bT*@8_qT4@@9H6h*_% T?!T@9?qT ?B T J +@9+{k `6)JaT@8*_)TT?qT@8)T@@9h6A@@9h7@9kh8@@97_@h=@9(7_E9H7:@6o@IT96 y_1!T? T@9*_qT e3(@T@9(5@({hH7sR64@_@_@h=@9/7_E97:@(RI7(R@@9H6@9({h(jTW U?Tc@RZ@ a*m@  Tl@8uqAT*]@jJ=@9j(7)]E9?r@9)J 1 R)r?(jT[!T 5 6 R#RR @8 [i*jT?qa T@@ ]@i)=@9(7]E9ri)!)@9I q TRR#Ra%4@J@97)RK}@ * !< %@)@9 7R@ ]@i)=@9(7]E9ri)!)@9I 65 @)@9)7(R* ! RyF@K9C9)q`T;@4@zh R?(j!T{@ k@ T@yq@Tt9 l R` (RK9@ QE9 R @ QE9 R A@ QE9) Q9a!RZ )-@)@?AT{YOXWW_VgUoT_ֈqhT(R!Ԛ  @@97_@h=@9(7_E97h!9@h6o@`)T97@zhH7h@9zh R)r?(j`TaT@9h4R#R$@@97@ ]@i)=@9(7 ]E97i)!)9@I6m@)Th9H 7@zh7(h@9zh R)r?(jAT R#R+@RDqiTDqT)R(!Ț)҉  AT 1T aTh@9H4R#R$i@9(%T@)R I9p(QQqT J(KLih8k `h@9Zh RJ _ k`TqT?qT?q`TZ)R(!Ț) ) aT y_1AT? KTi@9*_qT e3(@zh7 y_1T? Ti @9*_qaT e3(@zh75`5h@9%Th@9Zh R* R_ kTqTqT!h@9qTh @9Zh R_)j TqT54@^og_WO{Cu=@ IA9?%qTa @9?qaTI9 C9?%qT 9@i5R 9 QE9 /R A@ QE9) Q9 QE9 #R A@ QE9) Q9a@IRy R 9RR8 "R@ E9 4 C9?)q`T 9@j4 5@4 9@ k T Kk @T a@yJRKR r?qiq @ K) @ q@)_ I a IA9v9? qT i@ y@? !Tm@O4h@9qT@R 9h@92qaTRD4 R@8Zj?+jTx#_qT @9?qT@)@97@*]@jJ=@9(7*]E97 ;@j6"m@ J T)97(@zh7 C9?%qT 9@i5IR E9I9)R aIR I9 m@*Tk Rm@9nYm. q@zTsJT  @9zh)R?(j T9R@Һ{<R@@9h68@)@97@9hkh8@@97@ ]@i)=@9(7 ]E9 7 ;@6m@IT97@zhH6(aT@9H4R#R2# y_1T? T@9*_qAT e3(@zhh6RE46 @9zh(jT@94qT)#Ț)I@ ]@i)=@9I/7]E97 ;@(R 7(R@@962qT@R aT(@94R#R"@I9 QE9 R @ QE9 R A@ QE9) Q9@)%@ @? k)1 I9a"R{EODWC_BgAoƨ_+y1T_ T@9 _qT(e3@zh(7R35 R(@zh7WO{t=@ IA9_)qD@zT+@8qT @)5 YE9j @9 RR_q_ kTi *R I9 ai @9?qTi aR Cj4 i@ u@u9? T*@9k _qh EKT*@kRrJ J+@9,Rk JJ * 4R,@%@@*@ k1(?I9 a{BOAWè,R{BOAWè_qT @J5 YE9_qTRa{BOAWè_JR *R I9 a)@9?qTi a ,R{BOAWè_)R{BOAWè_֪@J@9j7 ]@jJ=@9(7 ]E97jJ!J9@*6m@!JT(97@(@9)(yh)R?(jTaT(@94R#R&" y1T_ T)@9*_qAT e3(@)(yh7R83 5og_WO{vւ=@ IA9*5a@4Te@ae@q@ RG@aRLB4T@i@ a@i)9 T)@kk!k9@ '7k RЭ.R "T@9oyn/jT]@=@9/6/@9o7in8 cT ! RCRH^h@-U qTs @@ ]@))@)@97 ]@i)=@9(7 ]E9 7i)!)9@6m@)T9#7@)(yhH7@9)(yh R)r?(jaTzZ9y9#{МH@@964(RH@@97@ ]@i)=@9(7 ]E9 7);@6m@IT97@h{hh6%aT@9H4R#Rh! y_1T? T@9*_qAT e3(@h{h6R{2@7@9h{h)R?(jT@9?AT@ ]@i)=@9i(7]E97);@(R)7H@@96I@)@97@9kh8H@@9h6@ a@ Ti{i R_)jAT ]@i)=@9)(7]E9r)@9I aT@94R#R!@Th9 @h!k9@ R  ΁P@97io8T@9pyo0jT0]@p>@9p/70]E970R-50R*]@jJ=@9*(7)]E9?rjJ!J@9)J jJ9J@J@97)R  !L|h@-U qTBR-=@ ]@i)=@9i(7]E9ri)!)@9IjRi)9)@)@9I7Rh8 @9)2 9]@a{GOFWE_DgCoB_k RЭ/@97in8 T@9oyn/jT]@o=@9o/7]E9o6.R cT y_1T? +T@9*_qT e3(@)(yh(݇7b25^I@)@97(R ! WO{RRR@t=@R u9 @@I% %P)? k@Ta R?@%@@*@ k1(?I93a{BOAWè%O{ -@@RRRҮ` t=@R R@=@ @-U qT@ @@BRs<@)R* @9lQq,!̚ @Tk7aT@ @?qATi)9 @)@*% )P)_ kTa @R @ @?qTi)9)@)%@ @? k)1 I9a5@ )-@)@?T{BOA_һ^ZO{CRRRH@t=@ R Rh9@%@@*@ k1(?I93a{AO¨ҖO{t=@ @y?qT 5@]@?aTh@9 ?%T# !,R@ R@)R I9a{BOA_WO{t9@%@u=@*@ k1( 2 RRM@ R 9@)%@ @? k)1 I9a{BOAWè__ W O { -@@HQ%qHTi )q(+yhxJ @h=@ IA9? qTa@\ )-@)@?T \ )-@)@?!>T{NOMWL_Kh=@ @)i)8)@94E9qAT \ )-@)@?:TRR{NOMWL_K\ )-@)@?9T{NOMWL_K6\ )-@)@?a7T{NOMWL_K At9@@@@)t9@%@ <'ORRh8@ =@9$ 7)  !"` R?h=@)5Rh@@qA9()7h!:a 1RR  !D#` R>h=@ R R I9a4+Rh=@ R\ )-@)@?,T)R!Rh=@ *R !# R>\ )-@)@?a*T)RRh=@ @5 YE9? q T)R I9a+R !# R>\ )-@)@?!'T)RRR\ )-@)@?%T)R R\ )-@)@?$T)R!!R\ )-@)@?#T)RaR\ )-@)@?"T)RRh=@Rh=@Rwh=@R I9at%R aR"RRqh=@%Rd\ )-@)@?T)Ra&Rsh=@)Rh=@RQ\ )-@)@?aT)R&R`h=@IRCh=@)&R> !@$` R=>&RR#R Rĩ h=@R I9at#RFh=@R%h=@ (R h=@ @5 YE9?%qT R )R I9a-R-\ )-@)@?aT)RA!R R @9h=@?qTR I9a$Rh=@ R\ )-@)@?T)RaRh=@ R %iR % %(R Je% 5% $R\ )-@)@?a T)RRh=@R I9a4%R !$R=h=@R I9a%Rh=@iRh=@Rh! 9@)2 9\ )-@)@?T)RR %R&R"RR h=@a Rh=@iRh=@R I9a$Rh9@%@i)=)@( (R(I93a4$Rh=@)0Rh=@.Rh=@.R{h=@.Rvh=@/Rqh=@.Rlh=@ROh=@ @5 YE9?%qhTI R )R I9a-R\RΨ @9h=@?qTR I9I,Rh=@)R I9+ a e@ u ,R-\ )-@)@?!T)R(RBR6h=@Rh=@IRh=@IRh=@I1R \ )-@)@?aT)RA R !&` R< l9yh=@ R y)R I9a#R h=@)R !t&`R<h=@R I9a%R\ )-@)@?T)R Rh=@)(R\ )-@)@?AT)RRh=@ @5 YE9?%qhT) Rh=@iR JRh=@/RH=@/RjH=@/Re\ )-@)@?!T)R,RH=@,RWH=@,RH=@I0R\ )-@)@?!T)R-RH=@,R?H=@)-RH=@)"R5H=@ )RrH=@(R\ )-@)@?T)RA)R|H=@I-R_\ )-@)@?!T)Ra-RnH=@-RiH=@I/RdH=@ /RH=@)/R\ )-@)@?T)R-RQ\ )-@)@?aT)R-RHH=@-RCH=@ "R\ )-@)@?T)R!R5H9@%@I)=)@( (R(I93a$R,qZ\ )-@)@?T)RH=@)R *R I9a e@ u yh@94)Rq@T&R"RRp H=@a)RN\ )-@)@?T)RRBRH=@ @5 YE9?%qT RH=@RH=@ @5 YE9?qTI)9)@)%@ )R I9a#R\ )-@)@?!T)RRH=@Ro\ )-@)@?aT)Ra RH=@2R )R I9a-R\ )-@)@?T)RRH=@RN\ )-@)@?AT)R(R&R"RR H=@aRH=@R5H=@R0H=@ @5 YE9?%qȟT R=H=@)R!\ )-@)@?롽T)R&Rr\ )-@)@?끼T)Ra!RiH=@)R I9a#ReH=@)RH=@0RH=@iRH=@I"RH=@ @5 YE9?%q(T R )R I9a-RBR5\ )-@)@?롵T)RARBR2 !T(` R;\ )-@)@?TAR{NOMWL_K\ )-@)@?!T)R!'R\ )-@)@?T)R*R \ )-@)@?T)R*R\ )-@)@?T)R!+R\ )-@)@?롭T)R+RH=@ @5 YE9?%qȌTi R )R I9a-R&R"RRF H=@aR$Rh@9qTRI@9qTH=@ R I9a4)RH=@RdR4V9@@97H=@ ]@i)=@9(7 ]E97i)!)9@i6m@)ɒTh97@)(yh(7\ )-@)@?T)Ra'RH=@ @5 YE9? qT R H=@)R+\ )-@)@?T)RR|&RR#RR H=@R I9aT#Rp\ )-@)@?T)RRcH=@ RH=@RH=@ B<\ )-@)@?aT)RRBRHH=@ B<\ )-@)@?!T)RRBR6H=@iR\ )-@)@?AT)RR'R]H=@JJ9 @J@I% -P) kTaI%@RLH=@ =@)@*@_AT?Rt H=@ RI'RR1H9@%@I)=)@*@ k1(?I9 aH=@ R\ )-@)@?T)RRH=@'R}H=@IRDH=@ 'R?H=@ R:\ )-@)@?AT)R R&R"RR"H=@aR QE9?q I9(RH=@RO\ )-@)@?aT)R&R%RH=@ R<H=@ @5 YE9?qcTiR Y9R )R I9a)R\ )-@)@?~T)RR|H=@'R\ )-@)@?!}T)RRnH=@I'R[H=@ @aI)9)@)%@ @? k)1 I9a\ )-@)@?AyT{NOMWL_K_ H=@ B< \ )-@)@?vT)R!RBR;H=@IR\ )-@)@?tT)R R,\ )-@)@?sT)R'R#\ )-@)@?rT)RAR\ )-@)@?qT)R+R\ )-@)@?apT)Ra+R\ )-@)@?AoT)RA+R\ )-@)@?!nT)R RH=@ 0RH=@ .RH=@).R\ )-@)@?!kT)R!)R\ )-@)@?jT)Ra)RH=@I.RvH=@i/RH=@i.Rl\ )-@)@?gT)R!RH=@)R*\ )-@)@?AeT)Ra*R\ )-@)@?!dT)RA*R\ )-@)@?cT)R*R\ )-@)@?aT)R*R\ )-@)@?`T)R!RH=@ R,H=@)*R'\ )-@)@?a^T)R Rx\ )-@)@?A]T)R!RoTД=@ B(.Rݣ@)R I9&R"R#R\ )-@)@?YT)RaRBRT\ )-@)@?XT)RRI\ )-@)@?aWT)RR@\ )-@)@?AVT)RR7H=@RH=@)RH=@i"RH=@R\ )-@)@?RT)RAR\ )-@)@?QT)R&R\ )-@)@?aPT)Ra0R\ )-@)@?AOT)RAR\ )-@)@?!NT)RR\ )-@)@?MT)RaR\ )-@)@?KT)R(RBR\ )-@)@?JT)RRH=@R{H=@'Rv\ )-@)@?AHT)RRH=@RhH=@)RH=@)RH9@%@I)=)@( R(I93aT%R\ )-@)@?CT)R! RH=@RCH=@R>H=@IRH=@R JR4H=@ @5 YE9?q TI)9)@)%@ )R I9aT$R~\ )-@)@?=T)RA&Rq\ )-@)@?a<T)RRh\ )-@)@?A;T)RAR_H=@R *R I9a e@ u yh@94)Rq TRƢ@9i)RqLH=@ @5 YE9?qTI)9)@)%@ )R I9a$R: RM H=@a&R1\ )-@)@?3T)R&R$H=@R *R I9l\ )-@)@?1T)RRH=@I(R\ )-@)@?0T)Ra(RH=@R I9a)R\ )-@)@?-T{NOMWL_K_H! 9@)2 9\ )-@)@?+T)RRH=@ @5 YE9?q TI)9)@)%@ )R I9a%RH=@ @5 YE9?qTI)9)@)%@ )R I9a$R 4R!R"RcRiH=@R I9a e@ u yh@95)R4)RqTR@9i)RqH=@ IA9I 4x@ =#=@KH=@ @5 YE9? qiTR)R )R I9a+R 1RRQR I9av)R I9 ,R a e@ u y@94)Rq!TjҔjRRCH=@@sH!:aea4RVi@9?qT @5 YE9?qTR )R I9ai@9?qTi a4,RBh@9)(yh R)r?(jTW=@ RR. R @8 yj?+jTUU4 &BRQ R96 4q Tq T@9q T[aTh@9hm4R#R\ )-@)@?aT)RR"R{NOMWL_K@@=@H4@jRR@CH=@I)9)@)%@ @? k)1 I9a'RH=@ @5 YE9?qcTiR Y9)R I9a,R)R y_1T? Ti@9*_qT e3(@)(yh(7'5@9qTR5@*]@jH=@9h(7(]E9rKk!k@9K jJ=@9(7)]E9?rJJ!J@9)J @@97(R@J@9J7)RO'S !(' R6OO{CH9@@9h7H=@ ]@i)=@9) (7RS ]E9I)!)9@) q$ @z T @~B)T*)*)qS)}) )!?hT*97 )!@ T 97 @T 9 7@T 9j7@@T 97@T 9*7@T 9 7@`T 9 7*@J T !*A_)T"T 9) 7TR{AO¨`s  @~B)T*)*)qS)}) )!?hT*9 7 )!@ T 9 7 @T 9j7@T 97@@T 9*7@T 97@T 97@`T 9J7*@J!T !*A_)TbT 97T#HCQ <@7R{AO¨7`HCQ +4R{AO¨&`R{AO¨ `WO{U=@E9I)8)@?RJzH8@4 !T2RRR@h2@9%qT BT2RRY]h@ @) h2@9%QqTh @h@RCh @h @@@*@ h @@@ B9J2 94@>Lh @@@RRI 9H9@@9(7@ ]@i)=@9(7 ]E9I7I)!)9@6@ B 1@{BOAWè_og_WO{ -@@X=@ZZ9?(qTH@ 9@*}SJ JQ_q"T9R^@ @6@4:@?k Tb@b@y4Rn@ ITJ R@9MYlm- q@zAT)TC9qS2 @(K @+q@J j*a @ o@ 9I@)@9\М#7 ]@i)=@9(7 ]E97;@6m@)IT9 7@)(yh7 @9)(yh R)r?(j T@9q TqATH@ 9@*uS_%q T)_=q$ @z TAA96^aT@94R#R@9q!T@9q TBq4T~q@4Tjq4T@R I9Ha@ !6"R:>qT@ R_)jT7Rq^@ @6@h5uR@9q;*[6R^@ @6@H5d y_1AT? +T@9*_qT e3(@)(yhh6{Q@ q^@ @6@5H$`6@R I9 ]@i)=@9(7]E9r@9I I@)@9 7$Rv C##R%R@9>qTa@R9ARNqTR/THa@):@ ]@)=@9(6I)a)@* @J2* 5@4 9@_ k-T KJ @6 a @yi4Rm@iTJ Rl@9MYlm- q@zAT{)TC9qS2@ K) @ q@)_ I a>q!TRRE@@ QE9 @ QE9 )@*@9J2*9 QE9 &R A@ QE9) Q9R I9a #R>q T7R@9q;*7RRR @ @J@I% %P)? k@TaI)a5@=@R3RD@ 5@4 9@_ kT@Rr KJ @5 a @y5C9IRqI@ K) @ q@)_ I a@9qTqT@9?qAT>qTqT6q`TqT7@=@RR?@ QE9 @= QE9 I'R A@ QE9) Q96@ QE9 R @ QE9 R A@ QE9) Q9a?q(&R&R.H8@I)a @ !| RTДb@H @BRjC@ ! BRCRN@CRN@ ]@)=@9/7 ! BR59@a?qh&R&R*q @ )-@)@?AT{GOFWE_DgCoB_m@ TJ R@9MYlm- q@zT)Tyk(8@a@ (o1TL )k1 h)h1Ha@ *a1WO{T=@I)9 )@)%@ @? k)1 a e@ yy QE9 4 @ 4{BOAWè_I9i@9?q!TS)R{BOAWè_ YE9?qTiR Y9{BOAWè_ 5@4 9@_ kT@Rr ]@) @u @y5C9IRq`@ K) @ q@)_ I ai@9?qATS)R{BOAWè_ m@*Tk Rm@9nYm. q@zTcJT g_WO{ -@@X=@ 5@4 9@_ k-T KJ @7 a @y4R m@*Tk R@9nYm. q@zTJT C9qS2@ K) @ q@)_ I aY99)@)@9W"7 ]@i)=@9(7 ]E97:@6m@)IT97@)(yhH6,@9)(yh R)r?(j!T#aT@94R#R4@9qT@9qT y_1T? T@9*_qT e3(@)(yhH6y"6@ ]@i)=@9(7 ]E9?r@9$J )@)@9 7$Ru C#%R5@9v4@4KT @jRJr) J @yKGRJ J) *?qR5R 5qAT@ 5@4 9@_ kT@Rr KJ @4 a @y5C9IRqq@ K) @ q@)_ I a)@9?qT)R I9@I91RR>@ QE9 @ QE9 )@*@9J2*9 QE9 A@ QE9) Q9@ )-@)@?AT{FOEWD_CgB_ m@*Tk R-@9nYm. q@zT9JT JC_WO{ -@@˶ւR@8zi ) i4!R9U=TH9@t@ H9 @) 5h@9 Q? qTq`Tq T@ 5@4 9@_ k T@Rr KJ @4 a @y5C9IRqܘ@ K) @ q@)_ I ai@9*Q_ q#T?qT?qTa@LE"uCR:RRd=@ QE9 @ QE9 &R A@ QE9) Q9@ )-@)@?aT{DOCWB_AC_ m@?T * Rji8Zlm- q@zT)_ T -Jg_WO{ -@@U=@ 5@4 9@_ kT@Rr KJ @6 a @y5C9IRqg@ K) @ q@)_ I a@9?qT?qaTRGR8 ]@i)=@9I(7 ]E9?rJJ!J@9$J  m@*Tk R@9nYm. q@zTJT I)9)@)@9i7$Ru C##R%R@9T @?AT@@iRIr kTR4q@ )R I9a@ )-@)@?! T{FOEWD_CgB_ַ@R5^@ @6@4:@?kT@Rrb@b@y5C9IRq@K @r@)_ Ib @n@  TJ R@9MYlm- q@zT)T@9qTRE9R @ QE9 R A@ QE9) Q96]Ig_WO{C -@@U=@ @5 YE9?qiTRW9@)%@ 5@4 9@_ k-T KJ @4 a @y4R m@*Tk Rm@9nYm. q@zTsJT IA9? q`TC9qS2w@ K) @ q@)_ I a IA9? qT@)@97 ]@i)=@9(7 ]E9 7I)!)9@6m@*Ti97)@JIyiI7i@9JIyi R*r_)jT ]@6 @ m@*_ן_Tk@lRLrk Jl @yMGR Jk *K4R aTi@94R#RL_ T@y-R kTl-@8JLyl R,jAT 5@4 9@ km T@Rr a@:a @y5C9IRq@ K) @ q@)_ I a 7@@9( 7@ ]@i)=@9(7 ]E9I7I)!)9@6m@) T9 7@)(yh6@ R#RBR@9q!TB 9+y1T_ Tj@9KqT*e3I@JIyii75@4@}()T R@9MYlm- q@zATT @9)(yh R)r?(jT4@9qTaT@9(4R#R 5@9qTq`TqqAT@]@ @i @)R I9a`$R@ )-@)@? T{EODWC_BgA_ y_1T? +T@9*_qT e3(@)(yh62`6_T@y魎R J @9KR) J *4_CT@iR)r J@9 R) J *44` *-t*_ JT =@8JIyi R_)jTRC ]@8JIyi R_)jaTY@9qaTGg_WO{ -@@h U+i )+?q3?9 H8@9!RRҲ RGX=@E@TB@ 2BY98 @ AR  @BRRK@C@!}}%X:(@*qaT@=@ @-U qT@ @@ T"BRU)@T @9?qTT @9?qaT @9?qT?qT @9?q!T @9?qTB@2BB@2B @@94C?#7@  R kTa ! ,R-@1R @@ )-@)@?aT{FOEWD_CgB_` +R,7GO{ -@@T=@ @?qT5 1@ 19=@= @ ?qaT -)U ?q!Ti@! @ ` @ C9 e9 5y 1@ QQ9 C9 U9R 9*R I9 1`'R@)RCBR( @h@!Xa @?qT(Qh RR9@@'R@ )-@)@?AT{COB_S@F_WO{ -@@6ւ=@ Ayi4a = J=~qK =Bq?}qH?Aq#` /[(IR@y 5@4 9@_ k-T KJ @5 a @y4R m@*Tk Rm@9nYm. q@zTsJT C9qS2@ K) @ q@)_ I a79@)@9i7 ]@i)=@9(7 ]E97I)!)9@)6m@*Ti9i7)@JIyi6O ]@i)=@9 (7 ]E9?rJJ!J@9$J 4i@9JIyi R*r_)j`TaTi@9I4R#R h@9qq T@ 9@JR_)jA"TAA9"(6 !X6R++y1! T_ +Tj@9KqT*e3I@JIyi7@)@97$Ru cC#R%R @9@@TT@ ByjR) J E9K RJ J) *)5\ )-@)@?!T{COBWA_Ĩs@ aARr) J By덌RJ J) * 4"@.T@ *jh*) ʊ2@+hk)J ) (8@z4@O ]@vT*_8_q!T)_8?qT ]@i)=@9 (7]E9rI)!)@9IjRRy^`@@S\ )-@)@?ATAR{COBWA_Ĩ@)@97RR_^@ ]@i)=@9 (7]E9rI)!)@9IjRRL^`@)@97RRB^ @ @qR&^@ ]@i)=@9i(7]E9rI)!)@9IjR@)@97R[@@ab B 0cRb:@ ]@i)=@9i(7]E9rI)!)@9IjR@)@97RcGc@)R I9a\ )-@)@?T#R{COBWA_Ĩ_3E 5J*WO{6ւ=@ IA9? q@Th 1 )0q(` 0&iGR@)R I9 5@4 9@_ k T@Rr KJ @5 a @y5C9IRqZ@ K) @ q@)_ I a@9 ?)TqT@9%HT!R@9qTqT@(5@4*9@_km THRr+Kk @T a*@y5)C9JR?q,@ K) @ q@)_ I a@9qTq@TqT@ QE9 @ QE9 &R A@ QE9) Q9&RR#RR@ {COBWA_m@ TJ R@9MYlm- q@zT)T(m@ ITJ R @9MYlm- q@z!T)Tog_WO{ -@@@9qT@9qATR +4(-@84*RKQqJqj(@8qD@zTJLYh R,jT)(@8Lyh,jT4` 1REa !`1R +6ւ=@m@)TJ R@9Lyl,jT)AT*@8_qbT)˩ k R@9jyjJ _ kT#T R_ k R89 @J@9W"7 ]@jJ=@9(7 ]E97:@669 7)@JIyi6 ]@Zi*=@9(7 ]E9*R 7:@75@9JIyi R*r_)jT?aT)@9i4Z )-@)@?!TR#R{VOUWT_SgRoQR *y_1T*_ KT@9KqT*e3I@JIyi7 @J@9*7@9Jkj8 9;R @J@9j67 @J@9*7@9Jkj8 @J@97i)=@9(7 ]E9)7:@6m@JT9 6+y1T_ kT@9KqT*e3I@aT@9 5)@){ii6 ]@i*=@9/7 ]E97:@*R7*R @J@96@9){i)jTR`4@ ]@ R#R@n@bT  R@9+{k_+jT)AT@9qTRM5^@h=@9(7^E9r@9IjRR\c`4@ ]@ZE@@97RR[@ @4,T#R)CR#9#R`TZ )-@)@?T{VOUWT_SgRoQ_ @(C` 1+(O{CRRR(=@ {AO¨_Zog_WO{ -@@ RRR޲7=@ *J9 @J@I% %P)? k@TaI9=@@ @SRs)@ R)4r qT @ CBR3 @R9R| G3(9@9@ R"i( SRR5 R5 @ @9)[h_)jTk @8)[hL) k7s5 7*R4_)jd@444h @8){iJ) 74)7I5@=@=@9h/7"{4;R @  @8*[hJ* _q$@T5qaT6RR-)qT;Ra !4R@=@=@9(/7R@tcP@=@@?qT)Q =I9n7@a@ )-@)@?T{GOFWE_DgCoB_-O@Ґ3Bg_WO{7=@ 5@4 9@_ k-T KJ @5 a @y4R m@*Tk R@9nYm. q@zTJT @9*_%TRC9qS2X@ K) @ q@)_ I a@9*_%IT?qT@9)?%(T!R@9qA T@9&R"R#R999(@@@98#(7H_@h=@9(7H_E9h7;@(6I9(@7)(yh7:HE9)(yh R)r?(jT1@ ? qTIE9*_qT) 3(@)(yh7!A 4@5RrVCH_@h=@9(7H_E9r @9Ij(@@97W A R#R@9qT` 4RRq@ QE9?q I9a e@ u+R y 5@4 9@_ kT@Rr ]@) @ @y5C9IRq@ ]@) @ q@)_ I a{DOCWB_AgŨ_og_WO{ -@@?9 7=@ !RRR1@@@999(@%@RRR$ @` RR`AR;Rv ֎6@9(4q@TC?#4 @ Z{@96a !6Rq'4 -0[@@2_q`Tu ~7RCRB{Q q(Ta !7RCRB@U@BRC !"RCRB@U@@?qT)Q U(@ MB4kT5R(@ MB4kAT@M@U(@ MB4k@T_q@U@R@ U@)@4) U@)@591)R @@ )-@)@?aT{GOFWE_DgCoB_` \5%=@@=` 5%@C_WO{ -@@5е=@ RRR|@RRRu@RRRRI )0Rs j9KQAqHT R-ik8 R(RrhRRV@9***9@1 @ )-@)@?aT{DOCWB_AC_` 7c%@=@@=` D8[%@@og_WO{V@@9(=@W_@w>@9(7H_E9(7(!9@7 (9@@97i|8?TSB@Q]q(TI )1+ih8J @(@9qT5@ 0R9R5е9@@97w>@9(7H_E9(7(!9@6Bo@H)T46z?1T T@9 ?q!Tf3@)(yh6y|)R?(jT @zTR#RIRy|H7RRcR4v@[` ,c!(=@ ]@i)=@9i(7]E9r))!)@9IjR@)@97RAh@i@2c@2_@@*2)u)2q(@S@2O(@95@q$@ 2F(@95@q2@2<@28@ 24@20@2,(@9H5@q249$@ ?qT @Rq *T9( R4kTqT` .@S` @- AR` . h@h R{FOEWD_CgBoA_WO{5е=@ 5@4 9@_ k T@Rr KJ @6 a @y5C9IRqo@ K) @ q@)_ I a*@8_qi)@9+% TJijj8J+@k)cT+qT}qTqT *@kjyj Rj* _q)$@zT!ӱ@@@@* _qT(qTRr@@ @R *@ m@* Tk Rm@9nYm. q@zTsJT ?q`T?q T5 QE9 @ QE9 &R A@ QE9) Q9{BOAWè_WO{(=@I@?|TR R#8(R38C8TRE( HT K_8)qaT?9(=@ ]@i)=@9(7]E9r))!)@9I * ]@i)=@9)(7]E9))!)@9?r(H*qT?HTR#8384R))9)@)@96))9)@)@97Ѡ095RVRAR?R` L2X#WO{Ҧ6ւ=@m@UX@-=*@(@)R @ ]@)@? ]@RR`@ ]@* @J2* ]@* @+@k @J m @{BOAWè_og_WO{ -@@(=@(@ @v5@@/@@ @ @ARJ?CR?~?@ )-@)@?T{GOFWE_DgCoB_b4` l<"?(<R @WXR3|@7@ @_kT cT @ )ii8qbTAӉ@7 @>@9 7) @ ?T @ @C$RR  , @ @CR%R @@( 9@ @i7  @  )_8 9@ @@ @AR>@@ )-@)@?@Tg=@ @~` p=y"_WO{C6ւ=?qhT*)R(!Ț  T@ I9)6 ]@i)=@9)(7 ]E9?r*J!J@97J ))9)@)@977R?W_a !?R"Sa !xR"@a{EODWC_B__WO{C -@@ @8?qRR\79@(9@ uS_qT _=qd @z T)EA9I 6 0@9?%qT @i)@I @P6)?5qT@*uA9J(7 @I@959@9?qT4=@ @y)9?q@T E9)?iT ]@) @ i@9JIyi R_)jTR@ ]@) @) aIR I9 @) @I *I@94Jk RI@8 4mYi-jT?q@T?qT@9?qTR\ )-@)@?aT{UOTWS_R_c6ւ=@*]@J=@9(6h7$R(]E9r))!)@9I cbC##R%Rs@9 @cRmR5Tc _8?qT _8?qT 8fRr@ ]@i)=@9i(7]E9r))!)@9IjRB@)@97cRU 0@94%qT @*@ 44%QqT@@H@ ]@i)=@9i(7]E9r))!)@9IjR@)@97RcR@@ 5@4 9@_ k T@Rr KJ @4 a @y5C9IRqv@(K @(MJ j*a Th@9qTh@9qTc6RR /@ QE9 @ QE9 )@ R*9)R I9 QE9 &R A@ QE9) Q9ah@9q'R=m@ TJ Rl@9MYlm- q@zaTs)T) @);O{3s=t@@y Q? qTQq(T(!@96@ @9)2 9q`TRV"4 @8*_iT4{BOA_ֈ^@h=@9(7^E9r))!)@9IjRS (9@@97RSh@!RQ"{BOA__WO{8= @ @ @@?qT)Q  @) @52@9@?-qT RRZ2@@@@R/v@@9)29 e@ yR y@HP7@ @ QE9 @)R I9'R&RI QE9 A@ QE9) Q9 @5 YE9?qcTiR Y9`*Ra{COBWA_Ĩ__9 @*A@yJ2*Ay @*@9J2*9&Ra{COBWA_Ĩ_ @?5qaT uA9I(7 @ @R yh A !4 K@u@,RRVCUw4 VR,R@CUU'@@W@I)WsU, 9e@'JXWH@CU@,RRV@CUWT@ KX  )RS@XW@V@,RR:40$ ,;C6S@pOzҒoҲO(R7RW@C6ҏC6ҢC6һC6AG89G@hR 899@!@RG@9@ )!. !3avґҮS@iX HRVX?r  *7 L7;Xp72XXr TWq"TrTKm@ TCDbT蹟T;R TXr T2?[ 5s2)22X2*2X?r j7q-TrTXurT_TQ(R?qHT !*R? jTRK@HRXrT2Xr T2XWXt4W "TW(zT6@ O{CR @9*Q_qhT+ kq8mij8  T{AO¨_@9 0RI K?k藟yS{AO¨_ R{AO¨_ bT{AO¨_Rb2A !$'3񈂟Zq{AO¨_@9q'yS{AO¨_Cg_WO{_TV F'KT@ t'T @8?qHT R ~GaR?kT ? T T  TO+z OOODOO O o= o N74&n844nO oO oNNNfnn46ndž"NNNgn N4&nԄ"NNNtn o NN8NL44%nO oNNun4'n"NNNfnN5NL< o N44%nO oNNun4'n"NNNfnN5NLLaT? T R @8L}SM iy]2_q1l 9]RN 3)q1jl 9 T_9W jt8@9) )<@ 'U{HOGWF_EgDC_g_WO{C9@3i@ 9 @) q (R*hR)Q_=qh Ti )>(M4+ kq9mij8 }8 9#6kj@9@n @({71 @9h {EODWC_BgA_"zw@9( @S @z7`h@h@.qT h@ h@h@ R u3i h@R i@Rr( h6Nh@2hh@R hBhb TIO{C9@  @ 9 @)  @h@y h @2 {AO¨_O{)?}LTh ?"T@9 ii8 + Ta6@` @@y!@q TAR]h @j~BJS*J*JqSJ}j J_ITlm@9im8 k  CTT{BOA_,4K hK!NAG.N} N_  T T j m @9)?qT ?T  i) K@9+ik8l- ˿ 볋J 볌hBAT_T({BOA_( i<a ! i )> yh( i<A !4 R-{BOA_TˌO{CI?ן? TTj87 @9*k T Ly1aT Tk@9lqTs Ke3 @9*k!T'bT T_q*RJZ H{EOD_(5Z{EOD_ {EOD_a6@ @@y!@q! TARQ R?aRh@9 }S  Ry,])2q)1 9I] R R 3_)q19h@9 }S  y+])2q)19I] 3_)q19"9h@9i@9+RJRI )E'* J<'@ 'Sa6@) ))` -h A@y)!@?qTAR( i<a !i )> yh( i<A !4 h >yiA !X R} {EOD_og_WO{CqAT@@y2 @~A) U*)*)qS)}) )! cT*97 )!_ @ TJ97 _ @TJ9J7_ @TJ97_ @@TJ9 7_ @TJ9j7_ @TJ97_ @`TJ9*7*@JT:!*A_)T_bTI9i7ZTHCQ:hKTH @IB)Z*)*)qS)}I )_ bTJ_ TK96Rl ˟ kTkk qTK@8kqTRq*j @=j A=O +@c Nc Nc!ndTAONdTBONdTDONc"Nm<Nif? T)G))} II!MA)T?)TkxJq뗟I )?"T*96Rk  TJJ_ q!T*@8J_qaTX44( p0_"Tle3H  +8T 8k6le1[T @9qT4n ?9(44 qTaREu R{EODWC_BgAoƨ_ bT + L8ql  bT_Ty R+3 9I_8)}S)2 8 R_TI97 8RJ_BTO{h -@@#CR`4@h@i )-@)@?T{COB_֗.O{h -@@ H@94C##R49@hh@  @s@/j38 @@i )-@)@?T{COB_k._WO{7@ @|A T**qS} !T<@9G_ @T @9kGhA(_ @ T @9kGhA(_ @`T@9kGhA(_ @T@9kGhA(_ @T@9kGhA(_ @ T@9kGhA(_ @`TJ@9J *!I!LAGӌ} L_ T? T _!bT K_AT M}, ooN( k oo@ ///ocnB.n!.k!T!NN N^f_ T1K|ooN  oooooo< o/2/1oo/onBn..c.nn!.AT!NcN!NNBNN N^f_ Tj7, ) @8J Th kT  R*3 9 R*3 9 T97 8cT9˨s`{COBWA_Ĩ_g_WO{C7_TRr** iw8 ix8I3 J_aq T *]?cT?T*} S_qT*kw8KqqT+kx8K3h)  h{EODWC_BgA_@ @!wh -I )!q( @ x mR%R$RRog_WO{h -@@_ T9RRR**  Hj<8@j38 @T9(@i6 kh8J'ɚH  )D9? qTT l@8 kl8 z A)  )D9?qT5I)A@#T #CTRҴ@A@TJ }Sj<8j38 @R(%@@(@i )-@)@?AT{GOFWE_DgCoB_,{"Y`FA{_{!@yFA{_{"@nFA{_{Ci)=)I8 @7)9(RH{A_?1T|F2(9R3(9HRH{A_qT}qTqTsR` R 9#9HRH{A_/RR*'@ !{CTi)=)i8 @)7I9(Rh{A_ )&$@I )"% @= `3' ){A_?1T|F2H9R3H9HRh{A_ ?qT?}qT?qTsRhjRHy` RHRh{A_/RR'@ !Zg_WO{CEH{`5KmT @TBDTT@9i)"ih8T~-!G@aT9ˈ{EODWC_BgA_qT)@* @)@9I )y` a6@( A@y)!@?qATAR{a6@ A@y)!@?qTARn h >yi[A !()Rth >yi[A !,*@RkK Kh88Zh7G@R` {CTi)=)i8 @)7I9(Rh{A_ )&$@I )"% Х ƀ<' @,X{A_?1T|F2H9R3H9HRh{A_ ?qT?}qT?qTsRhjRHy` RHRh{A_/RR'@ !{CHTh9i`87H9(R&@H "% - @G ={A_ R 3I9 R 3I9HRh{A_qT|qAT7h9I8@7(9(RH_րwR|F2(9R3(9HRH_7hnR(yHRH`R_ֈRHRr(/R__WO{CH -@@6!@ /@9 )/)@9q @zTTqT}qATV 7h9i8@(79(R=RjT++:+J.7'@H %#E &@H %#% = ƀG  wR|F29R39HRh@I )-@)@?T{EODWC_B_7hnRyHRh`RRhRr/R*g_WO{H -@@6!@ /@94/@9 59 @(77h9i8@(79? kT( qT@9 _qT377 ?qT6 ?}qT@i)9(i8@6~F2h I`8Rk%ʚk  )D9? qCT_"T@@8 i`8`zA)  )D9?qT57'@H %#E W6?+T@y)\R J @9R) J * 4@y靕R J @9R) J *h4@I )-@)@?T{FOEWD_CgB i4CDRҲ @W6&@H %#% = ƀG 76h@ThK9+6k@ ik8J _ CT R 39 R 39)|@qT9(RR39R39HRh@I )-@)@? T{FOEWD_CgB_A !X#@R@9iv8b_q`TR% 4V@8z_ TA !$@R~ӃRHTRhRr/R`R!ThRhR 9蝕Ry`R*Z/@9H5wRW7hnRyHRhvRe)O{I )-@)@ )"3Y`*9I@*6jJKii8R%˚ I +D9 qT,T@8Nii8zA+K kD9 qTK5 BA@I )-@)@?!T{BOA_ 4DR@#){CH -@@ 9(@ 6i)*ih8Rk%ʚl( D9_ qT Th@8-ih8zA** JD9_qT5@J J-@J@_ T{A_ 4DRҦ@@J J-@J@_ T(O{H -@@"@ 9(@ 6i)*ih8Rk%ʚl( D9_ qT Th@8-ih8zA** JD9_qTJ5lBA@I )-@)@?T{BOA_ 4DRb@(O{H -@@!@ 9(@ 6i)*ih8Rk%ʚl( D9_ qT Th@8-ih8zA** JD9_qTJ5-BA@I )-@)@?T{BOA_ 4DR#@j(WO{ւ!@ BH *y`(47@*@) @J@9) )y`  K R{BOAWè_ҟ{BOAWè_K ) )Yh*E@iI )q> Ih8{BOAWè__WO{CH -@@4!@/@94/@9H59 i7(@i)=)i8!@(i79(R=R k T(y1 T@9 _qT(e34 qT }S)29 R 39$ @jJ=Ii8!@79(R?1T(|F2ą/@959 7'|@qT9(RR(39R(39HRh@I )-@)@? T{EODWC_B_7R T)@h ii8RJ%ɚ*K  )D9? qT_T@@8 i`8`zA)  )D9?qT5&@H " @= `3' W4@I )-@)@?AT{EODWC_BG 4CDR1 @`XR#@ ! ?qT?}qT?qATsRz/RxhjRya R\'R@'@ !p @9qTHRhRHy&R_( T@y8R k`T_(Rh R@9__WO{H -@@w?cT@9jh8@ MT *@9_Tjj8) ?CT/@9H 5@R 49@h 6ju8h iu8RJ%ɚK  )D9? qT_TU@8 iu8uzA)  )D9?qT9@9js8V?qTR% )4 S@8z_ T a6@@@y!@qTARs i )> yh! !T+@R; @:(@I )-@)@?AT{FOEWD_C_ )4DRr@ a6@@@y!@qTARE i )> yh !d.@Rl @I )-@)@?T&_WO{CH -@@4!@ /@94 /@9H59 i7(@i)=)i8!@(i79(R=R k T(y1 T@9 _qT(e34 qT }S)29 R 39$ @jJ=Ii8!@79(R?1T(|F21 /@959 7W&|@qT9(RR(39R(39HRh@I )-@)@? T{EODWC_B_7R T)@h ii8RJ%ɚ*K  )D9? qT_T@@8 i`8`zA)  )D9?qT5&@( "%  ƀ<' @,4@I )-@)@?AT{EODWC_B 4CDRҞ @`XR# ! ?qT?}qT?qATsRz/RxhjRya R%R@' ! _WO{CH -@@4!@H /@9h4 /@959h7@i)9!ih8(79(R4R? T y?1AT@9*_qT e3W4  R 39 R 39(@i)9!ih8j\ /@959(7%|@qT9(RR(39R(39HRhR7R? T @h ii8RJ%ɚ*K  )D9? qT_T@@8 i`8`zA)  )D9?qT5&@( "% - @' =w4@I )-@)@?AT{EODWC_B 4CDR @@I )-@)@?T{EODWC_B_%g_WO{@9%qT T@yR k T{DOCWB_AgŨ_ַTR9'zZ T@ykT @>AT@9Hkh8T@9%qTHR8Rhy &R{DOCWB_AgŨ_(R R`9{DOCWB_AgŨ_ R`9(R{DOCWB_AgŨ_@9%q@T( T@yR k T_HRh8RHy &R_(Rh R@9_Cog_WO{H -@@?T7Rx9:R6 ֺ%@9k{8TqT@9kh8To? TqTT@9AqT@@R9 ` 6RA? kTq!T@9 qT @9qT?TqTqaT@9qTqT @9AT@9}QqhT"ȚTh T@9uqT@9=qT @9q!T@9 @9qaT`R 4RRqKTR 4R :R@I )-@)@?!T@{HOGWF_EgDoCC_ a6@@@y!@qTAR` /i )> yh i<! !4 R R@I )-@)@? T#jJ+@8Kik8 HD9?bTqTh5 _qT@9q`T_R=Cog_WO{H -@@N#h@yh T{{<RxR9 9& U@ Th@ @b T9(@i7) kh8J'ɚH  )D9? qTT l@8 kl8 z A)  )D9?qT5I)hT cR@TT76 ?yHT_9_"Ri{h 7qT! !p&BR t7! T%RCRA%@cTA !&bRCR6%` @@I )-@)@?!T{HOGWF_EgDoCC_%#(@)@" @aCog_ W O { @H -@@HR6 )/)@9?q J/J@9_qz? jw 2r (@_@_E Ҋ3_3TT)ZZ@9w777w69h7(R#@9  ?iH1k9k@RHk`8#@L @H4@kk@@C$@Th@9Xkh8@9Jki8 kaTqIzT$`5{9$@aT@Tm @4@9Hkh8(Ry@4@9Hkh8(R@" TTV@kkW@H@9777w69 7(R@9  ?iH1393C$@!T@87(R@4@33C$@T@4Hk`8C$@T@33C$@AT|F239@9 R 379HR3C$@aT@@HTRZI )-@)@?aT{LOKWJ_IgHoGC_@RT @H@H R!O{C!@G#! 1@94{AO¨_ `,ARWO{ a @H 1@9?%qT @@@@@%6!(R R A ! RZ$`U$a ! "RO$ RWO{!!@3P# 1@95 ,aRSH"" !{BOAWè_ 1@94{BOAWè_ `,AR@,"_{(|h! 1@94{_ ,AR{CH#@ z"!# "_WO{u7"T" "JTj58h{COBWA_Ĩ_og_WO{Cx T9k` T+TR "XTr" _8?qqATj  _T K_8qq@T)i K6ˢT`"<RXTR6xˈH7 TG"BT9K R69"h{EODWC_BgAoƨ_!c/"g_WO{hTi ,TAT@9si@9?k@TsbTv_8y9?T(@9kaT(!4?HT{DOCWB_AgŨ_g_WO{CH -@@ @ ?!@qT )-Q ? 1@@z`THX7 R r?(jaTh@@I@9 qTARӞrTh@6 4Rɞa ! "RCRY"@hh@ R  ?qT-U qTBRa ! "RCR@"h@ R  ?qT R)4r qTh@ @t @(KBRQ@h@ ?qTRPh@韙Rr hh !8BRR#@?TR?83@ R^! 1@94Nˠ@  R)?Tqi@ R*i@(9@I )-@)@?T{EODWC_BgA_ )J?T+@9jk8k!Tj+8 `,ARog_WO{H -@@H @ -)U ?qAT @6 @ @ R r?(jT(BRx@@ R r?(jT@ @I)I@9? qTAR`@@9(R_CTV TAT74_8)qRR_T4_TTh@9@9 kT `5Y7;4_8@9 @8 kT_)qT_ kY7;4T_8)qATh@9@9 kT `4h@8@9 kT  5@9 q@9@9k TITh@9k T` @Th@9k Ts T 4@9ka TcH 6AR T Ҋ@S_89A7˚ @9 kh8 "T @9 k Td @9  JqTL_8Mkk8kџ k@TCT*BTh@9kT`H  h@9kT` hT= _8kTs:  d @zT# @4@I )-@)@?AT{FOEWD_CgBoA_֬QQqHT H-I )+ih8J @ T-_ր D7_ր 87__ x-_ `-_ l-_WO{ {BOAWè_{BOAWè_ -!RO{C h38{AO¨ -AR~O{H -@@C/ O @@I )-@)@?T{BOA_:WO{ O @{BOAWè_WO{ 2@qAT Д @{BOAWè_@ -R{BOAWè2/@R[ 1@9q RR `  1@94R RR@5` H )D`{BOAWè_ ,AR `,ARO{H -@@C oO!R]@I )-@)@?T{BOA_ֵWO{OO!R{BOAWè:_WO{B4(@T(@@y!=q T{COBWA_Ĩ_? T(@9H66@B@y"rT@)`wp6@V{COBWA_Ĩ_{COBWA_Ĩ_WO{CH -@@ @X7HP6!6h@ @ a!7 2@qT е @48@R`2 1@9q RR_  2@qT е @@R  1@9 RRF @ -RA.w@ -R:. 1@946R RR.@V4 H )DBR @ @i @(_8)q@T 9@TB@yhp7@ a6@RG(%@h4)@)@)@))#! !.N Дb@ 1@9)%Q?q T @H @ 1@9?=q T@@H A@ @rTP6 @) @ -U qT@ @@ 1@9 4R RR@v 5 H )DBRn:5 .BRg@95 .)qT@) )) 5@ ) )@ T@@6@ )!:  @@@@! !T.N 2@qT! !.BRCRh! !/BRCRb@I )-@)@?T{EODWC_T ,ARq `,ARmWO{ b @ @i4 1@9)%Q?qT @4@t:@987 1@9?%qT @@@@t1{COBWAA!R BR@ R8RÀR$Rը{COBWA_@(g_WO{H -@@ ! )?q@ 3 )36@9 ).dI@zT(R9C#RI3h@@ B6@j(R9AR6 @)R * R%qR B9@ @ RARE@ @ T)@ @)y @@ @ 96(@C #9 @J@H ( @(*@J @ Z6J*@J @   )7*@@  )7)@ `TCH@TR/@ @ @@+@J JC @k@j * @*+@k @K K+@k @J  S R@I )-@)@? TXR@I )-@)@?!T{FOEWD_CgB_(@"Rp{O{CR5R0њ{CC#WO{  @@@tR'@@gҹLRO{C s.`@ @ @(4@97BR`@ARh@@ {AO¨_{AO¨_{CC#{CH@ {` XaR{ a @H 1@9?%qT @@@@@! ! /{ RO{CRT!R6{AO¨_{AO¨aWO{FL!R4!R6{BOAWè_{BOAWè?O{( -@@C\L!R !Ri`7@) )-@)@?T{BOA__{C( -@@ 9@!@ )!.ITCB@) )-@)@?!T{A_ )%. T _)K}S_q TKB? ITLyS ik8k%6+ 9@!@ )!.IaT R_ )%. T _) |Sq IT B? IT xS ij8kJ%6R_WO{ !@ ). `T 9@( )%.!@ @ )!.IT _) B? T xS ij8kk2J%j7 <Sj4JB? T |S ij8,Rl3J% 7 \S 4JB? T |S ij8,Rl3J%7 |S4*JZ? )T |Sij8))2%h6 8@97{BOAWèXK!RF!R6{BOAWè_{BOAWèQ{C( -@@ 9@!@H )!. @T )%. @T _)K}S_q CTKB? ITLyS ik8k%6 8@96Cf@) )-@)@?T{A_d 9@!@H )!. T )%. T _) |Sq T B? IT xS ij8kJ%6 R_ 8@9_R_{C( -@@C+@) )-@)@?T{A_)WO{qJ!R =@C94{BOAWè9R{C( -@@C@) )-@)@?T{A_WO{R_PABRtHNTR{BOAWè_a"R\g_WO{( -@@z@9_q 8@9(57c[7 4t7@_qZyZw?k T~~jxzyj8zw )a @}@"R+@2@95!R*@(  T7RSR@ qT* T@5ywU8 {/a@qAT@RR75t7@Zyh@9qk T_qZsZywq! T /R ,CR64@qT@H5.1!T*@qT@?@!_q`Zh``Zy^7@[@Y@) )-@)@?AT{GOFWE_DgC_֎Y %! !d/KYK`6_q^zy;Zxh@9qk@T44*}S""6@Ґ Ryw( $$O{C}7{AO¨_@q!T /@5R{AO¨_ ,@?Cog_WO{( -@@@9qaT@9q{@9q84 R{@9q5 8@9777c7R4RD67 z/@q! T@RR675z7@Zyh@9qka TqZsqR:R!74t4@qZyZw?k TD~Ӡjxzyj8zw )a @}@"R@2@95!R*@(  4RSR@ q( T* T@x4ywtz7@pyw@) )-@)@?Tcq`Zh``Zy^7@[@Yx 5@) )-@)@? TNqnzyKZwh@9qk@TD 6  @) )-@)@?T{HOGWF_EgDoCC_0yw-qAT /R ,CR6@qT@H51!T@qT@?@@) )-@)@?`TEX % !d/X6@6 R $$@ 0__{( -@@ 1@S#)c#@1ڨ_) )-@)@?T{C_֏{( -@@#ҡ@1ڨ_) )-@)@?T{B_x{( -@@ 1@S#)#_) )-@)@?T{B__yg_WO{C( -@@ a @~@R޴ @0@9qT@!@@?q# T(Q!@qTqT /R 9,R6@qT@H5 1aT@qT(@?1@TR@) )-@)@?T1TU7@4@@) )-@)@?T1 T@) )-@)@?`T@) )-@)@?T{EODWC_BgA_"@?qT(Q_"g_WO{$_AT!@9{DOCWB_AgŨ,!RxTT*@88T@Tҩ*hh8j(8)?lT T*@88TT)@88TzT( TK@88)?Tb@)T, ¬`?b aT  m@88џTTT  . @ A  T   m@88џT @TT  . @ A  T   m@88џT TB TS*@B ¬ ?" kaT T?(TK@88)?T ʂ+`b ¬@?B aT  T?(TK@88)?T ʂ+`b ¬@?B aT T?T)@88T  . @ A  T H*@88TyAʂ+`b ¬@?B aT yA$ TjTh}{DOCWB_AgŨ{DOCWB_AgŨ_=og_WO{C( -@@94R6|@v  1@9H4Z) )-@)@?T{EODWC_BgAoƨ_ A7@ `3546R%@6 TRR  T7ARTRR3@Tk78%W7T4Rh:8R qB9\z*~@` R"kSK@y @qT7!@qT R!Re4R!R`@40W6@U 1@9h4ZR7#7K@y @qT8RR7hHE `,AR )0 J0I k0, -J* 0_r#+ L0WO{6@@ {BOAWè_ 1@9H4{BOAWè_ `,AR_@ _@ >_@_@_ _WO{ A7@F54R$@`{BOAWè_ҁ{C 9@!@H )!. @T )%. T _) ? hT@97{A_ 8@9H6 @ ?!@qT%Q qT@@@ @ ! J-1?qH)*@4# !<1R{A_֨ ! )-1?q( !1R{A_g_WO{ )a6 @ J%Q_q(T @T@)@7A@y"@)B9?qT )9)@i )!@) J!.? T %.?T(_  T(@9H 6R W2R @ ?!@qTE(@A@y"5R 9@!@ )!. T )%. T _)?HT @9h07oR 9@h 8@9 6 s2sR @ ?!@qAT%QqT@@@@@4 -  )8)@9 6R W2R ?!@qTRQI ) * J-mqY1iqTw j2 qTw r ( >YvQ5q' *i )?Zk#g !2&7@ @)B907kg !2{GOFWE_DgC_O{( -@@@=@ha`=@) )-@)@?T{BOA_10R(r $B)RLR_qj kRkՋi -R, ?q-\Rµr-}-ӭeH_Cj9EDf9_ւH H_ R R @8N)TN%T @8N)T_T_}aT7,R 7 Rk  1:H_6  M 65Rq 99<@ 9@(@_(iC s"`.@`RRRk@h.@@ @ @@ R u3 ! !:?R@2A9h4 R;A !$=BRRR@@9h4 R;A !RRR @A953@ qlT}@y; !>RRR?jt8 є?)T}q@T@}@ziTRA9(5WA9q 9{?Rr(R6iT7@qT"TRRќ R ̌R̬r( b h@8}q{Th9}q@TQqVZUq UZ? kITR !>O8RT ;(RR|3RR;8Ri  )ySk‰T 9?}q`TkT)Q? k)}zR Jz T5 ~@:@7@9qT}q@TqTA94h@8qTh@8)TA95%TA9h4tш@8 ?)T}q`TRR qT?}q@9*_)T?}q CzT(RmR3R @ 9 99@A94@ @lTiR4ҩ:3џ(TS4 ?R(A !RRR"? R: !RRR?$@$9aTp(A947@qT@9q TC ct$RERvA !RRR>$@D@(@@ !RK(A !RRR>V:$@ @ш@y  @2 ! !:RRR>h@9q!T` !>7qR{'@) )-@)@?T{JOIWH_GgFoE_  g_WO{H9=4! !:RRw4 9@ 9T @@N:@9 rT R# @@ch@ R r)  qATv @ `TB€Ru&BRq" B,!#R  h@ @) h @i@) @i)8@9%(TC ct$RERRh @h O(iC ".@`RRR[@.@@ @ @@ R u3 ! !:<R|@26@9H6 @A !$=BRRR >` Rz9A !$=BRRR=A !RRR=` Rg9A !RRR= Rr !>RRR=@ @ qT@@AR|@H9 !>RRR=A !RRR=@AR$(A !RRR=! !:RRR=@ @7` ARy|@9+Z_TARd@ @ qT@@@@@ @ш@y  @2 ! !:RRRt={DOCWB_AgŨ_g_WO { ( -@@ @ R r?(jTi@)@)_ H@7H6i@ P6* @_ T rT R @ @6l @ f i@*@ R_ kT BcRk*U @ `O  -U qT6Au @9 1@9)4j58c aR !>R @ ҩۮI:P!g amTRh@(P7 + @) h@@ ! =R@ @ @&ccBR@5 @k `  LH P7 + @) h@@ B ccR*9R +@ qkTQ !4N@9qTeq`TR9T@9-(TR a !d+4 !D 4a ! / 4a !d+R e 1@9H4@) ,h@P6-U qTh@ @w @cBRh@ @7 @   1@94j58  aR@94 !dR[) )-@)@?T{JOIWH_GgF_ 1@9H4j58  aR4R@h@@Y6 B ccR\*  ! <@ @ @@ qkTQR.  H7)_8?qaT*7 ?q5& @   1@94j88 aR7 @?qT(Q  ?T@8qTR9ZHz T"t `,AR! 0:WO{ -@@C "@96 R!z 7@9(6 R!z7 RRz7 9@h @96R!z7@h@9(6R!z7RRz 4 +@9 )+)@q AzT 0 RphB +@(4@B t6" 0 Rg֒ @4  0 R?47*i?T@ )-@)@?AT{COBWA_ L O{C @hX6s @h2@91qT! !:RRR=;@ @1@9-q@T{AO¨_C_WO{ @hX6s @h2@91qT! !:RRR; @ @H 1@9-q TA !RRR ; !R! !:RRR:@ @T RrR@ @ qT@@  !R{DOCWB_AC?$ARqTZ wKT  AR<TR@ @ qT@@ !0bRCR {DOCWB_AC_ Lg_WO{C @hX6s @h2@91qT! !:RRR: @ @ 1@9-q! T! !:RRR:@ @ 1T RrRC@ @ qT@@  -{EODWC_BgA#AR6|@ @qTy6R V AR'|@;?TR@ @ qT@@qlTt Q sBRCRn 1CT{EODWC_BgA_ LzO{C @hX6s @h2@91qT! !:RRR:@ @h1@9-qTA !RRR:@@4@97 !:a{AO¨_! !$=BRRR9 {AO¨GAR{AO¨Q${AO¨ L6g_WO{ @hX6s @h2@91qT! !:RRR9@ @H1@9-qT@X71q@T҈@H_6 @2@91qAT! !:RRR9 @ @1@9-qd @@T5 :RRR9@ @RRR9@ @빲y Rr ARYk裟Z՟qYTRE@ @ qT@@ARBR6@ @ qT@@R(RT4JT-TR{DOCWB_AgŨ_ TR{DOCWB_AgŨ_ RrARV TR@ @ qAT@@VKTZ{DOCWB_AgŨ_ RrARU TR@ @ qAT@@UKT{DOCWB_AgŨ_ LVo _ R_O{ -@@@@9()Ty  #C@q`@ T @@95q)R)!*R) $@zT)))yh R_)jT@ h R1R(  2@8 4)*Q_qhT+ ij8k `222?)qT*_5qT 222222(@*JHyh R_(jTXrTt@ )-@)@?T{COB_   hO{ -@@ R1@TSRK T@4@ )-@)@?T{COB_@@5Һ@ @) jHRr% !R@$ )A6)@j R*r3kIk}KʬRk} k-Kk lVӋ JlRh!  ! @ )-@)@?@Tng_WO{Co .R B7@ <) *44 Rx@8R@8 {i)jT! ! qyS9@9qT@9qF(@9 [h)`6 S }Skh  mShj)8@9 {j`6KSL}SJ  J H*hj)8.@8 {hj`6*?} T ͜ҘݻyҨ@e@cEXhj48TR@8 [i*jTH?q@zT xn@  B.74t> R@t! !" @4 ! 4! ! 4 !  4 !3 `4 !< 4 t;@9qT(R9/R(ɷri@9(xӨi@9 xӨi @9 xӨi@9ȓ ! j@9) (ȓi@9  (ȓi@9  (ȓi@9  (ȓ(R9*SR "r({EODWC_BgA_HR@͜҉ݻj) @cWO{ A7@ A544R@4! !4@9qk@TI ] ! b. s=@8 #T5 *@9 )= J!qI JqI' !#! ! {COBWARkT{COBWA__WO{ "@9H7 9@h @96R!u7@h@9(6R!u7RRu5 +@5 0 ែRc ' R!u@6 +@9 )+)@q AzT{6'@9(6 R!u7 RRu 6 0 ែRcBb 0 ែR?t7*i?T{COBWA_Ĩ_ _WO{@ R 1@94@@ R 2@@~@j48{@@Hw@@Rq@@kT|@k,Ts)1i@@94{COBWA_Ĩ{COBWA_Ĩ_ `,ARg_WO{ -@@C R B6kT(@%@  T(6 sb/2tRu07@*!7@*A3 @rAT! )7*@K+I@ J6J@3I @I 7CӪr T@+!)@_q T*@ˮR˅rJ J+1@FRrk JJ *J 5H 5>SU4@ !@ 6@s qTi~@ @t2  # Ri4@94 9 9 9g RZ R C44! !:b7R.5@ )-@)@?T{GOFWE_DgC_ k T(R76rT/7t 4( Y  2gc L - 6@s @-U qAT@4   @?qT(Q &qT ! BRN( Y  gqT ! 6%og_WO{C a @@@R@@ c.@99< !@9(07@ uA987@@]@h@ ?q$AzTRch@ R *hh@|@]@7#R% R)r jT0BR @?q T(Q h:@9 079 5{EODWC_BgAoƨ_ֻ@z@W#! !>@4 @ @T@2@9%qAT @ @TO`6@@ =@9I6 @(@)=@?qKT@`@<@96@ @i=@1TG@)c|@@9RҢ4@ATu! ! BRCR@@!(@9rR R#? 1lT@294 8@99?1O{C@@ <@97R{AO¨_ @*@)=@?1`T@! @)c|@H@9RW4@{AO¨_R{AO¨_@_#mog_WO{Tu_8aq!T_8aq T_8aqa T_8aq T_8aq T_8aqA TR͜ҖݻH@R *y 0R ;@e@cyHghxh88@e@cmhxh88@e@cbhxh88@e@cWhxh88@e@cLhxh88@e@cAhxh881T@EqATqTR{GOFWE_DgCoB#Am_O{C @ rT*h@X7!qAT{AO¨_s @h2@9!qT{AO¨_*aR }p _C_WO{ еB6@ 7 @+ ( ֢6@+ J XC Q_ 1 T Rr}(@ @  qT@qT@ @ @ qT@@ Kq(R7BR^qhT Kq(R AR Kq(R@6!2 9@Si@  9 @)  `hBh  < @~@@!{DOCWB_AC_ !0ыO{ -@@C C @-U qT@A@##BRh@ E@ )-@)@?T{COB_C_WO{ еB6 7@ @+  ֢6)@ J J}}_! T7}@ @5M qAT@@ a6@ @9i6 )6)@ @3yh55AR a6@ @97$&4&q a.@9qTh@R)0r  ?qAT R *ha @@!{DOCWB_AC_% !x?g_WO{C B6@ 7 @+ ) 6@ J YC*Q_ 1 T Rr8}  @ @) ?qT @3@AR'@ @ @  qT@?q#T@ @ @ qT@@ BRE?q"TRAR 9@Si@  9 @)  `hBh  , @5m@@!{EODWC_BgA_ !{ A6 @ )7+@l,i k6k@i J _}}T {_ !-g_WO{ еB6@ 7 @+ ) ֢6@ J YC*Q_ 1TRr7}  @ @) ?qaT@BR@ @ @  Q qT@@?qT@ @ @ qaT@ ARx?qbT BBR$R7]-@@!{DOCWB_AgŨ_ !HWO{ sB6h@ )7*@K+U Д6@)  }}AT EAR@} @ !h{BOAWè_ !- WO{ -@@ B& !7 x!7 ! 7 P! 7 !7 4!%7 -ҋ  A7@ )54Rz@ݰ@ _? jR`~@ ( @ )-@)@?T{COBWA_3{@(@ @A {@ =@m@ {@ =@m@  @  @ @ @ @ @ "@ &@ *@ >@ B@ F@ J@ N@ R@ V@ Z@ ^@ b@ f@ j@ n@ r@ v@ z@ ~@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A  A A A A A A "A &A *A .A 2A 6A :A >A BA FA JA NA RA VA ZA ^A bA fA jA nA rA vA zA ~A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A B B  B B B B B B "B &B *B .B 2B 6B :B >B BB FB JB NB RB VB ZB ^B bB fB jB nB rB vB zB ~B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B C C  C C C C C C "C &C *C .C 2C 6C :C >C BC FC JC NC RC VC ZC ^C bC fC jC nC rC vC zC ~C C C C C C C C C C C C C C C####9++#######################E################################J#####################################################################+#################W#######################################################9911- > Q1;*********** 5]]]]]]]]]]]5]]]]]]]]]]]]]]b]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]JA222222222222222222222222222222222222'2222)'gkukxkk**kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkmkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk kkkkkkkkkk*kkkkkkkkk*k<kkkkkkkkkkkkMMkbbkkkkkkkkkkkk866k688kkk8kkkkkkkkkkkkb8b8kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkEk68kkkkkkkkkkkkkkkk8kkkkkkkkkkkkkkqqf    ^ ^ DD?~~|~|y zzzzzz6z#1zz`z?AllllllllllllMlllllllllllllllllllllllllllllll>))FM # #..LLQQ%```````````````````` `````````````````````````````C````````````` >ATSSSSSSSS9 hd`\XTPLHD@<840,(#  -BOy kSUWY[ kk k%;s)))))T) ''''''''' !?6W+7EJP1Evvv vvvvvvvvvvvvvvvvvvvvvYvvvvvvvvvvvvvvvvvvvvvvvvvvvc1EvvvvvvvvvvvvvvvvvvvvvvvvYvvvvvvvvvvvvvvvvvvvvvvvvvvvvdmm3mmmmm@BDFHJLNPRTVXZ\^`bdfhjQ09;000000000000000000000000000=000?G--")Eg#{E[ [ [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[cc3Q2PY[r2P 27?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_isa  !"#$%&'()*+,-./0123456789:;<=>?   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ HAS_TIMES PERLIO_LAYERS PERL_HASH_FUNC_SIPHASH13 PERL_HASH_USE_SBOX32 USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE_COLLATE USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIODDDD@@@DD@! " ++dDdD, , >>> ">>&&&&&&.>   HD6@0@1244@;H;;@KHKKHBDDD $B"$$444 $TTTTA! $ $  @ @ $   D  @@@@@@@ d)d k d Et!{D{DK d d d d d  d d dd d dddddd d dddkklllllllllllllllllllllllllll$$$$ dk kdkk $            ě@@ {@@@@D@ @@ D$MOD+1-AMPERANONHASHAPPENDASSIGNAVBAREBKWARDBOOLBOOL?BYTESCAN_FORCE_UTF8COMPLCOM_AGGCOM_RC1COM_SCALARCONSTCOPHHCVCV2GVDBGDEFDELDELETEDEREF1DEREF2DESCDOLISTDREFAVDREFHVDREFSVEARLYCVELEMENTEREDEVALSVEXISTSFAKEFILEFINALLYFTACCESSFTAFTERtFTSTACKEDFTSTACKINGGROWSGUESSEDHAS_HHHUSHHVIDENTIF_FALSEIF_UNDEFIMPLIMINARGSINBININCRINDEXEDINITFIELDSINITFIELD_AVINITFIELD_HVINPLACEINTITERKEEP_PVKEYSKVSLICELEXLINELINENUMLVLVDEFERLVINTROLVSUBMARKNEGNESTEDNO()NOINITNOVERNO_BAREWORD_IONUMONLY_UTF8_INVARIANTSOURINTROUTBINOUTCRPACKAGEREFCREPARSEREPL1STREVREVERSEDSHORTSLICESLICEWARNSQUASHSTATESTRICTSTRINGIFYSUBSVTARGTARGMYTOKENTRANSUNIUSEINTUSE_SVOPUTFkeyoffsetrange*G*'D'DT  ',.5898>??EHNNPUXXXXXXXZXXXX\_egg iiigggiiiNNigN eNNeeNNNNNNNjmprtt88NNex,,,888 888ee 88888888888888888888888888e888888888888eNeeeeeeeN88eeeeeeee8e88888888888888888 5   =<9.4& )2$ 8-# ,  $6HZl~$$$$$$666666HHHHHH$$666HHHHZZZZZ &Lr9_&&&&&&&&&&&&  ?@@@@DEFGHIIIIIIIIIISTTTTTYZ[\T^_`abbbeeeeeek<no88ZZZZCCDDDDDDDDDD((BBBBUU@@@@iigghhjjkkII'(>?@ABCDIJKLMNOPQRTWX !"#$%&o3SV,,Y,hd`\XTPLHD@<840,(#  8&{{{E{{{{{{{{{{{{S{{{{{{{{{{ar5CkNYwy$$ )$$$$$$$$$6EQS+>]]]],3:AHOZ @ A( (!0 `  0000PP(( hhhhn  ((AUTOLOADgv.chd`\XTPLHD@<840,(#  MOQ JCannot modify shared string table in hv_%s@ A( (!0 `  0000PP(( hhhhn  (( p0Ml_=%@[v,Hbz:Qf}#         (        :gs%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%%%%5I%%^%p%     (1:"3DSbsRR*RRR6RRRBRNRZ'5EQ]m{` ` ` ` ` ` ` ` ` <` E` ` N      888888888888888888888888888% 82 ? H S 8\ e 88p y 8 8 HHHHHHTTTTTTTT  ' #( &; M\qH]%I/^z%*-07C5i:QStrings with code points over 0xFF may not be mapped into in-memory file handles aJrlLytNttP_p|.AG4NXRah{at~tr|ttrtttt+tttttrr##ttttttttrtryFytt'17=H[''att rtvy.}DGyyyyyMyFyyyTZaj~**tttt8<@    @ !#ttt+9>.8<rt3=HtttttRGtMtttttttOTXX]_tdthtlBB  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~cB !t t t tt  tt?  t W * 0,:Gh C4CXyz  WW  !QNN z   h J  - NNNG j /; U ]]s N+.EPc YvR%   ] 8 NE8 _ _ _ v v 8ENNl 4Z :a&09> !k xtK   zF p i !  %$  0    ,h h h     ;Q   A;9   ]  :  1 62F   ng ,iX"#o 4 14 0123]^_`   4 <]] "#   13"#e pU8U13=|*;]^_`  UuU]`y8y=Uoop.mn8 =Vm]^_`]^_`]^_` 8  =88 %&_`9 #$%&!") 5]^_`6MR j ' 4.]^_`4"gU;]^_`U]^_`4X { >]^_`CK  8U]^_`]^_`8ym}~mno8kl]^_`s}~,]^_`OP;]^_`Om]^_`=O;]^_`43Ytu  z }~u z}~z}~ ! ]^_`'-. ;#$%&b)]^_`8bb NOP T3 a ]^_`hi]^_`]^_`58 34 Y%& B]^_`EFK-W\`^LM]^_`]^_`mno GgV }~LuS${V),0789:; V #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMNRSTZavwy{|  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMNRSTZavwy{|  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMNRSTZaGOPQvwy{|\bcdefghijklmnopqrstuz}~  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMNRSTZavwy{|  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMNRSTZavwy{|  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMNRSTZavwy{|  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMNRSTZavwy{|  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMNRSTZavwy{|  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMNRSTWZavwy{|  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMNRSTZavwy{|  #$%&()*+./0123456789:;<>?@ABCDFHIJKLMNRSTZ a vwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<=>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRST avwy{|/045789:;<>?@ABCFIJKLMNRSTaGOPQvwy\{|bcdfghijklmnopqrstuzG}~OPQ\bcdfghijklmnopqrstuzG}~OPQbcdfghijklmnopqrstuzG}~OPQdfghijklmnopqrstuzG}~OPQfghijklmnopqrstuOPQz}~OPQijklmnopqrstuz}~klmnopqrstuOPQz}~OPQlmnopqrstuOPQz}~mnopqrstuOPQz}~opqrstuOPQz}~qrstuOPQz}~qrstuOPQz}~rstuz}~stuz}~ kklk! 67 QLmj$j R ! SVUTFGIHL#(*) 45Jno+-,4J.jK*j\CIH#"wzyw%'v"qptrPNRhi/01DEBC?@Ac&(]SPTWVeUXx~{$&us   K%,.2f:abgR=d+|8D->=7``A}9F3;c23)Y01<@^/'EZ8<65BG:?`_NM>;O[9=}W=2e3>qP>CB=V>VD  ~&'?@V-00<=)==86;>>~%*EFGHJKMjklmnop>IJwxyz{|}~q abuZlr=  0!=|* ,4/>57As9jC60VU =EFK>QR 1-0mno>q= !(%$'z;+}~,>-W0350.:<?_Acc@GH XN&M[^]ughiyr{v   fv  kCp 4 9s $cXVYZ[\]^_`abcdefghijk !"#$%&'()*+lu,m-./012345#n6789:;<INOPQRSTUVWXYZ[\]^_`abcdefghXiVYZ[\]^_`abcdefghijk !"#$%&'()*+lu,m-./012345n6X789:;V<YZ[\]^_`abcdefghijk !"#$%&'()*+lu,m-./012345n6789:;<X78V/YZ[\]^_`abDcdefghijk !"#$%&'()*+lu,m-./012345n6X789:;Vt<YZ[\]^_`abcdefghijk !"#$%&'()*+lu,m-./012345n6X789:;Vx<YZ[\]^_`abcdefghijk !"#$%&'()*+lu,m-./012345n6X789:;V<YZ[\]^_`abcdefghijk !"#$%&'()*+lu,m-./012345n6X789:;V<YZ[\]^_`abcdefghijk !"#$%&'()*+lu,m-./012345n6X789:;V<YZ[\]^_`abcdefghijk !"#$%&'()*+lu,m-./012345n6X789:;V<YZ[\]^_`abcdefghijk !"#$%&'()*+lu,m-./012345n6X789:;V<YZ[\]^_`abcdefghijk !"#$%&'()*+l,m-./012345Xn6789:;< !"#$%&'()*+,-./012X3456789:;< !"#$%&'()*+,-./012345V6789:;< "#$%&'()*+,-./012345V6789:;< !"#$%&'()*+,-./0123456789:;< !"#$%&'()*+,-./0123456789:;< !"#$%&'()*+,-./0123456789:;(< !"#$%&'()*+,-./0123456789:;:< !"#$%&'()*+,-./0123456789:;L< !"#$%&'()*+,-./0123456789:;v< !"#$%&'()*+,-./0123456789:;< !"#$%&'()*+,-./0123456789:;< !"#$%&'()*+,-./0123456789:;< !"#$%&'()*+,-./0123456789:;"   \e s)ItXe6 qv(= opy2SzwwxL)TB`rd O.1+ {|Y\s?@tABCDEFGHIJKtL "#MNOPQRSTU /045789:;<>?@ABCFIJKLMNRSTavwy{|  #$%&()*+.1236DHZEƗ8=yڎڵ ڵڃX88=ڂ]^_` opomnmGOPQ\bcdfghijklmnopqrstuz}~ 88y샃 ' #$%&)U;UX̂ ̂ 9R̗888Uߑy,̨̨=̻;;ςY ẽ  ;ḇ샏葰̱8ȝbbȃĂ ڃ ႂ샑 8 Y ڒ⺗ʂ˂W!"샂 - ; VWMOQ);}EP_037 X\`o{j*=lllllllll#,@ A( (!0 `  0000PP(( hhhhn  (( .+I !*2;Naw K2K!Hc&*bqMOQ@ A( (!0 `  0000PP(( hhhhn  ((&*birv1 MOQan ARRAYa HASH@ A( (!0 `  0000PP(( hhhhn  ((w j m ; 7d 5 5  5r m m $ hU     7    / h K    xk_TX}7U[ gXM&@ _b } M@K7sssIs3ssAAjh'/7+2^elsz  0 but true@ A( (!0 `  0000PP(( hhhhn  ((OozScbfdpugkFY   MOQ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ U^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ d^ u^ ^ z}j cw&]2, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , K, S, , ^, H, , ?_B, , , , , ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\.;;;;z;;v;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;x////t//p/////////////////////////////////////////////////rD D "D .J$$$$$$$$$ ^F9P 1_ ssss ssssss sss      E           I   o   # XXXXTXXX=XXXXXG1Bnx1111-11111111 11111111111 O$-=4z=FOXh++"0}RRR-RRR RRRRW`ir{NN#RRR-RRR RRRR4444444444444444F O2uuuuuuuu))))))))))))I))){))))))x))N))P})))))))))x))))))Kx))'RNZfr~8=C!D  eZ Z ,#+> ~ ^ ?  * <w %   $UYfl  u %CyhX+\ C3  ) Z T>  j  8 ARg [!  ! )/pwQ> ;*nf, v fGZ 6> TC;wS  *l v|$ G1xTj e !. A. ;5f5Z #  C  AwV Z  , zz $ gf> AC 6i .  uAw f S :n0w i -Z zw f $j w  f]jC!#A% C=N  Hq /^\R=4 ZfJ eoN 4u R ZA   *  <*H j OZ[   3/NuN  ARcR>   ^ %!  f7 2] nw RC 6 e@ fimC} WfxZ Z IWr  sCwuP  )CK e) [8}-tqR-ff   . Wf4 _Ahf , R]rj u  ~"iT, ] %C! `n  Rf80I u UYZ 9"!C .   +:Cu  S #8R3:X ) 8 K;Znyenfn 0f^\R_ Kf _ ,|;  $ fAz.  Djt -! uf>A :' ?Z vwZ  n0 I Z|;f P$vf t  GZEZ >e \ A) T( g;! I5 ICt MO   ;   M/1f,fr|r.C  @*R .fC w f#w C 3 w  ]! S1cmIv u'!Z , ?!$MuOR  w ] ' !C6Z  t $o MZ } Cf Z 4!!'    9  `- Z"Z u    <* C 6f-Z 2Z m_ d  &3ReC3puQIl, sR f6  >ftn\ ZWuf ZW wj   $ ) &:  Rh  #C t Z  nR~\ fZ   f u  @# .   R fK ! f  h ' 8u  4S :C uA &  C.! M* Z  ? * 9" j Oi/  5 %  Rm /  +u w  9f{ c^ C?C^\fb5" + </9uzD2` yC% 32Z\c=yqdA *  O t CF*  w  Z K f. % 7j 1B & a) )@ eh !u EZ  C j7?*) 2f4!     u C)Jf/abJ V >;]  % 3w ]   w *CfZ u e w f QR^F.q  5  j' RI  5! 'p  Z  f8w3+;]   * p. f  ] uRhk C t G nl  4 ff|A!#C_ I YM.v   m [p h xZ y g u f   o Z m! j x K" ^ <\ N  j  R ) d>cZ i% C  pbJfUD u<  6uj R (f: Sr  ! X+. 1 9\ ZTQZ  ] _ 1  @ ?f AE w'Q" B  1 @ T $W:^ ? z! C]w ? G+R|3f;Z )S  ]*9"pt Q@ H :e R,/f v 4 [ MOj   B" R 64 _ C| - 3  X . uCC f&t= Pf?@wf/ x %4  H A 2 j 5 n     :4 j ]fn R f RZ yh R QZ \( wD "' R Rn D] C Qf]C+ wf]Z  ^\   RRU) AJ2Z , qgR> g& Z  %(  !f 0-` C"* Z f# @ ?A, |b5<R> ;w Vs]j  MC^8 a! rf  e L tf*) ^< +   < f|R/Mj "! yPO"m "!@fX+Z IhC_wCIuC$08 )Z 3  qCh /Z  Cf3b :wG8  wm C4Z  y    $ R ?N*_ 1Z % 3b2 4 f;Z ?r 8yf p w R   C- '  *PV"4 &ax  , 5 u   - R 8 f  ) R#89"R- m*: E4 $   RZW h R%(  C lAp!Z" $ZWq ]j6 >{ fc/  ecA  f.  Z Z   *fu wJ !Z Z?4j T fle L Yh<!j 4 R ]Zl   s! U$ (r  [  j  fZ NA3  !S : . fp' <hf j kAZkCl Nygr   @ A[  j l4!  (2%    )R7 t@Zf )  9G   l9rt T  K   % /fewf[%.  . !J    D <j p*mfFw  j     )??   /  uIpt! ^ ; R^\fl f   U  =4 F  AXy Ej 1f uAC C7i f/f Al & 5  w  ud Ruz  p.R# Z 5T r t -     zZ w" 5>"  * +B<  C  >    Z 7i 6 ]#: ! `  zf l: 8u'lu   IT P t" dnP S : 4 ?*BuZ tZ q   uZ Z jC  yTf[  C~!Z"uSuYuEC_fCT "% R4C 2 !' m Z ! 9|j+~CH 6X_* 3  C ,;f  fZ(% /J!RZ5iff \RzCjZ V<> .^ $j R nV&  f]*qh :8RNf RVs (f=Z  "  /vRuzm Z tZ Z Wru 5  A   fw "fF_A f +  WI )Rfn m eIWq fu7  6P" X )C @ "I-w4"" A}%?$   uS :Y  KI!d w Z  W" X&"* v  n vp0I  e+RR >! Cu r   D:j y6T# u %RNy{  Z ZCD+H" W2l?~"{+3n]  R4Y+6'  `c; @  ktn @Z "*   & .  : R@: Z T5 % x fR n g  !xRH f *Z CX" LC  ;  o l  f"C: '^fh ! X $ .uf*Z Z .h M+rf)J >RC6 e kR6!R|38 f7 x" a =f4- t " R]`bZ ;5fB? 7 t4 J l9`c[ 1   4!#) 2c4!!'GR yr t jU!fz *^%CN `c  Z 80ViA SR Amw   Z |j67( R?5I :  c~jZ _Aff Pf^" %   Z !#  IZ @RfhB<i ZkB  w]' f`cu) *#  Hc NA  F6 y -WNA0.  Z = =C2# IwyK S-H1a^ @ f\ Bu (N) ! 4 R$ 2 Z >   N_Ak)wm .   2. w mB] 4  Q R:OrXyZ Z Z MwO) R/*RbV | `c q H f Q/ C VGuufP3Af' C^\R+0wRK|m* " Z-!3<w =& $ w]`c \ $  u "  .7  Cw  W Z  D6T2f4|wf\ Z 3 . /uN!7 !Z $Z V A.C8d$$ A 5 w   ' *h Z XZ  a([! C " 6 " S8  * Z  / 88uB I* j  -=R  6j  Rp^ Z  }"  5 Ro :i3) q ) ?'2$f67  Z j C  1R)Rr{" d >-  fWf  u [LDZRm1 |w] c Z6;   @ .*#R)f [1]C + T| @ w| uR A+ s+2|!  B 6vffw #wRw :S  v t_u   ' + s Rr+ tZUN [CRNS.p  +C Z  f#{l  1 C<80  9Ck  1cm^ %4 x   'ZWru RR     C u g @t!  m =Z !RR9(o7]m Z  -  ko fE2 |Z tyj  , !8? ZI[4 UA  duf ) 7v t4 Ye  T  k    j#8 "  $  um f   !  Z (Z ef><3 2  T Rw    ~Izq  R f7.  A.R _   *f z fe  wA"}5 5:j  x' _!) R+$hmlluXbBf    _ K "b ! \ N q+$ - Ce  +zE ;Z  |*^X")Lf &R2 j ) [/u < j  K p&h A,`CGfbJf45 u f   , ewfVw =S v  Zz 3b   A eR;[ L mw*  u bda94 \_B<D t < Vq3ul   !m lw r9Rqt   WIOu ? * l 1  V Af5 w  $ (5#? ] ' Y o   4   X & j 5  !!(+r ^ [U R *lZ  u Z  ,f#{tbRj  w?i Z ]Z $   w N kR2 Gu vh Af$wj C=] R"bR@1   l   H  j "u0h 9"Z /R7  U*J  D v <  o !!(+ e @ S  3fZ  MuO  dZ    6E*, fPCC yaAx ^ b '&8 l ;J "!CzCJ0uZ f5 Z  Z Y f0n   {} t- ){ j  C) ,du  CR4  g:Q) R/*yZ   Z I  YR! A fCuZ  ff`c N f  !  5' B|u f|Z ;  Q(; , f :  =fh, u S  C   H ATp Oj 19 Wf$  8 3 f . C^)! RT.e~0st { :<u5f7 2  n ,Z  j'4!!' / | Zw Mb >fC f-=  ,fC8f/f Y8*{""     _ ew Ln] B  = At! 4 Vf%CPLh" %   4 A  PII'uj 8   6'[" kAE s 3b A"~{j k  3 !C+ !#R\ AC  6'9 d  &  QR^"!DCw _f e up0!f2lI0t[ X2!#'  Z ' % l .wNZ RIp Z V r  R^\XfZ } p ? |[ V w4 j u    G 4 `  6 <) T(  8uwK"  :5m Cj/f   Q  w~  R( 4 ! R  0]j8e Lfz_ *  '' 7 T 3 R$D, ! f +Z X  NC  m'I fP{j$ D * "   ZIWf Q. f QZ!d"fWr" s .A o Cb(#(2i_ H F{WA j {j Oj &  .C"k C^ 6D+ZTR ) L+2 I @+C B4  lw" 4  Wu uZ   uf+ iPf+^!"= ;wm =Rf68/Rw ") 1j !  Z 9"  *  )] %  'Q u  .q Re T c^ ; %t) % RCI4 7  FU"Ri?  D S   =*  6  y'  6 R  C ` O k)PVDv $hRv  euf_w #ppQG" .0uP< s r  IV   9  sjWu T' . c(fRw ^C  g\ u 0Cp ff6@R FD J !675  j%  8uBZ D+j 6Z J 2  g 7 Iw ] 0 f f > j +^=  N  !!  j '\ A )*u ! Z >  =  5  U " 0)fu qf6j |   iWM( Z A  8)fR9f"lw8t$S  (A C3 |,   ; h uRA$ cwqZ  " ? Rl CV"6Q nRl$ 73 fe  TZ0sZ   " T$CZ RC~ G8N3T 3#  $ 7 T `        f/-0R67.t_ Tp    w Q;P  ! I% f"wC C wZ T2j 4 .cD w< R>u .FX"|^ R)V"Z Z  M .]   6 ! C3 +0p! !B II u}-3 ! Z  ,/2X t C 4 7?@#q  "i R^ b 8f 3jA$ V2S O fmlC7v>'tnit~] MO k CT tC!ZXop"nraf [u !Ro h  @" {: w \Z  s#{V& ,ff#$Ws% 3  7i 3S  "f w w,   q j /2o 'C(jmb % mf/  +_v % Cg  Z  C> fR 4  hA z l  χ] )uRC kC*9 Z CRV wd : 8Z V"T2 ZvCjG7Z e  T"Ws"  4nA l_   C!f   )p}T)  4 4<!t Xn 3 A2c2  =<u>RD% C>   `_^ V@fz] A  dJ0c w/at! n_^ R df^\ / Nvu } p AuC "b!   Ri, f(3RQ7Z  !AJ   lD t < f2" R 'O ffH8)4 s  b#um g Z n  V )JX"K,wN;  C|jfg  S GB! fnR]J   C M j fJ0R: .   t!S!RP{ fX  q 4* 4 O R4 A0b  h )`2f  ! X  p.   6*u J7G8T 2! 'f  f> 3 T 3 ) 5 *A,   - j @Cf%" i &Z     :  uC^- Z "  e0C1F<u :pQZw N    vR/m $ AWj w  B ` !  4 )Ww'R7hq"n  R|Z  o   ROuA Nct#u jyCO+  ,fr@  @Z  2t0o $ c IXof> ;"XZ   *Z  C4  dK|RTX"- O  f78=; .v !#h   O] m  C   X" ,!"Z  w  R0uRC C. M '  "n8w 1 J!2Th ?qF VAZ  R M@ ?"[ : 8!- ' Am@1 ^   ) q 1 9" {""%.2%6j   L Qf+Z _ wLj  `fN>  ZqA" 3u_$ FRT 3  f 9Z  _r  [K dB?( "n  o  AC CnRp xFf/+* =fyawHfu R]j #Z  :"!   C+Z ]r:Ox 5xp Cg f[a' Vp4      ZTR)J * @u 3AC 6f#Cvvw F C  Z ' uj  $ 4 MC  8?C>.:" #C, BC;!eu L Vi+fP.C*wC  %Z !DZ [m Cjv Z qR} %fJ! fTpWZ ,$ f/ lR  2j |  ^ ?,) _j   f\ A ' Z R fgZ  kC# xX RA /pwQf6t!f5i"|u|R-  5Cu% nn!> Z ^  %+ fKZ5{ d  &  guCR+ D " L': A    e 3KX  6U   * '  e@   MwOj C 1* Z 80@  S 8 2 $4 Z   uu*4bNSg RfC U!vWT;  e  ' 4FC$z ] $ TX!LD fB6 *|^ 4 3f#8  l I,x - C"+  <Z  I :Z  $ 7 "#B X }" uAC.t kCw  Cj W[0wkWC8R 2SZ xT.w  ?daww# {2  zG ? # Z   R cftR $f@2rW wV  5+ o7Re) (D  Cj   -:) R' "  =b% 3R i, R =!  Z l Z j 1h," [ 8Q C l9"j r  Z '  Z  Bm' C5 eZ +}&fZ T 5= TR1 UJX*  "*C"9fEIa7*wZ ^\#+   4 f.qc7hCCfGZ +  +,u% Q9G_v  .C |A1 2P AN  wZ   A @  6 of+0i"  r ^ [)qdu fl|u )T@ ? H aukBlF | ru ZzR_ Kp>*j %i2%!  >At8   $#RN  ) ] % 3 i u MC@   L Z |OQ . h Bu+--  *  Z $6  j Z .    ) X) $  ko@uj T&  4CusRJsK.^ U] u a> B  p~fz  %Zj?F !|pwQ ?'&f(Z 6  ?Z w f.J  2CURH ^\v ~  ?f4W*! Z ;X"r K  ~ j qC ^v" *'u<>+8 u S R7  ^ ,R  c 5~[0" ~ ?J2! mlw  qJ !+N $ 2<w>CMf c *]fIZ s XfAZ R)J  }C!Bf"bf+ s] C ^   'u' P  Z l  X YyC  e "  '1] l *S  RC  Tn j  2 [ p x*4Z !  ?O, u5 %4 ^ " + ZC    # /"  1 Z  Z : +f RXt4^ \ ' +jZv Z M@R/1R  qf  Z \A ) _W " 5D v <u) BR0 w_ 1 .  '6 !f R~  ^\ f1C7  TT OFR3 ki  ^ f5{r4#'6 Fw+   /2b *8)  Nuj "*" #/H T7/  uuZ 3Z `C]rw  +lRsuMO S flX] U!02] "j  }  QMuO!["f {  Lk f R 3  j VUZp]f: U Cs. e jmRV"ff . fCZ  R  @) X3wNafsRo"Sr!C)  f> !A  Z p 8 !D{""2 z   C[+) ~  ?X"  * 8)R[!dI DR5  !/+)R/mf b+ + fmw  X$ (p, |4 e3REC 6 I7 Cy2@2Z0t[/u(R % @o   -Wh" 4 >,!   R<Z ^R. 4 Z^({Z 6i *t f   Z  V; f/ C_j l]  C =.nP"Z =J3  !O&D{ tj   f C|+pi RV   8 DRS % ^  Z |  / LAhC R ,   Z }+q7_Ad  &b5+ HuRe kRIda | C  ", { Z \  9 Z5 !fZ4 Dfb>hwcv  #.wfPI t! f_ 1> yE W* Af- ]Z C b .A#{pW o w puQ R  CR>; v $ = -   % Rw "j  @f% [ t > " )6 cq? OK  0_ * W$.t fkZ "I IywD w<( ud%8 f"}4  <R j  c*U!B_% 7/v$ RW 5   RC puQAh Cs  #% yh]  P Z z A    C [4 NtZ ]  "!ZS\? f/ pm Tf} o fhZ ww! 5 %R.r v  $  S*F:   FAlC C RP{o  _t5  m h{ `xa:5x2k$ ctR  2G     k(  u I %7;u A , WbR =RJ7{. ?f  nwP@Z AS R Ci 2?)   6>  6G/a# 8Z  ]  CF :R <u>V"Z P 3  !EH  Z 3  w)R-0[+:  "RLuEvI u   @  jRW" #'  <6- 2 !D_A$C! <4 (  % f] 3 j #Q [  f/B?Z % 3koA\ ) 5> [+ \Z  mXh u*Z-S!b ;C2 Z R\ -CV !f@ ?   M  ' AC v 6]w Z  CtCo =&   "a  >;\ A205(a yC  c f_ 1Z Z e u E  "+ *f') 9 C  WQfZkj  v$I   pA#R|  AC| Z  -  *   "   z IS:j 0 ? eR'Q Q %UZf6:fjj > e  +*uP? JfZ ! l  Z  .   w  B4      l ;  # + b  )T f:  u P  fj  mSD   2TR  d A|C/JaRdM  hF   $Ci& X!.7 >]R[u qI5iu  u BJ !'-  ~  u! A t" <#\ 't2ffNf" NZ - 2s!dww !- >J <kDI5{NRC6Z  1   *" ; AR="  ? ]  n Al (d fAC ]#{6 '(  wj   ,  9R(f Z 4  C {2 C5c]u *4 > TI   'C5;5')Q $vZ ~ j^    Rn@ B4 ? C_u D- )ff w[ p_ ?.Hjv *=j  !!(  *R * w*  " R /O _p%\ M l 1   z> ; ?fyawP 0 . u"+f2Ub4 j U* Bwg   ' .F q6 w j  =uR9j  @yT   wW-`fT 3m Yy 0 3"  8 <Z (7UX2eJ kfUA   ?x Y "'R 4) a=S fu x K!eu(  H : 8 L A; af :RG  f4 :  UZ  u I"bC  [   Rq;h syRZRJZ$f3RJaT Cqf  "fH t wZ   n #f!B fI  % n @X-=R4CV"R <," [ ,  tH !< d  &V*'Z    @ CR5fXyC l: '" "h 9w ^C.uMwOi3io_"^ @AXhJ 4 KB u?6!w jo u&AR  *G3w>u " *~f ffg45Z Y_ C v  bJ !!(QZ  @HR8j bj d!u PZ -htq  %RJj  m B(P4 1fOfko!S uf' Gw| J YR0     f " V R ]| +w SZ  pR P<nZ  @RH) W"B 8y) *] /RP _ 1'-CS#  9  uq Rno u>  R37 Iqz1"Z    Z  j  tfp+v@I v  Z  ! |;r B &wRN4 Df 0wf Z X5,JY" 7Z H"Tf- Z I AR  F ; . ( I^j eFZ D? f4LuE j  XR,"0z.   !!j ^ 7+  !Ubo w2 R7q  [Xd N Cr v N H  C N2R*  . 0fA +g )#C`   I I R;' !f 0.LT\ N{s6  o 2%Z i |* &TRuj ?})    !R   % % (*JZ * 0f-> ?x5 fViR7 ITQ _" w/ 4 K  dn   vR_A(%PA  26'R C$Z ^\ h   SG@?d$ ?pnwP% o C wZ Ydwa 8w ?- )f  [/ R}W!o.~w" 1A  <w> R M r5Z  4 6 u*% R#Q (!BR  7?AI A, NAM (^\* 8@ 2$gAC #   y^ ! ) .-w" R4 LQ %w #Z `b:Xi  uf0- QZ  Z  " I I  | w Z  C>p Z   7 d mD < ,&WAv= fRIN $ 7Cu(  5 %6 <CD+Cmm f9 @ f3  ; R T 3l / ~Rpxf %w #l!  P{ 2uk $1qaZ N C|r _tC"!RBZ \ d C   6R\"  ,A RRnt!v  2Si,hk MC.  R[. 2n1 w A.Z  C\ Ajt q Ag&gIO] Z !B"j | k Z  fV C80ZVy wR{t*!"B7u w 7!Z y  ,u+x  F j R5 2.@C!- k U.2 2Ok!Ct8A`+Rz!D)   $ PR @w^\4  f % -  j _  f7fu)^B ^F !;!$"  ;45R~S  Cj 1 FQ "4 R5!fh   /  FJ Z ],T *yM |;Rg|W:9  Gw!n 'j >  J0f v eP" =  ;Z C{WuEf$ R} nm" $ 0 1f.! Vj  fl )ej ; fRw j!f6  !B   W ,oeu LytR] eb ? Z W: [+l^6  7R!  zZ # s ff] D u<$ "z^\+  W: ` y ]H(^\Fu2," 03 _ 1"n0+C F q^GO >uCD fJ _"Bw ^u)w- J(Z  1 :Bw  _w"TI S5Ruj4J!  M R$"  M2!  (R+ q  M Q] r K !vRCp :R;GD fT &I&  (" l1  B8uf.|PHx   ZO]!  Z '  @^)!G8G wdp CI j9"!C @I1R B? wN   *C'Z H 2jw Sf. cpZ  D  L=A!J!l  &1 f" .(*n 'Y vN ,f CV 4x  ]bXn<w@A, RK !f >;y*f$vC p .) ;6<\ ;  fR   Cwf <R:C~I /  w' 19J Z ~w 6 j MZ 9R_F fV&Z _=) )7 A Puf G 6$ WD  wZ nPRLf+"  2  6jt hZ'u<R? _ *uR 'pf~u 5xZ 7Z   ..RbJRZ"wP7 i _#  =>' R}!  { LZ jm@f[F GRICV: N <!CRB?fC 6CXyd2X}Z J2 %pTC Z  6 F Aeu-u A  !7GhHC f  R( R= lL ` h u Om') [, > fk8D =$ wp AnAB_  W    u'C2 |3Ce M/C] C !D  S   X C ;[R k", HZywBf  7 Z a:A:RvXC+<a7 Zk @$" 91^ R.  " T (C[Q B V"E  ZY{ @  $C 3tC+i.uWZ {""R Yfp _   Af 5R#D Z 1"  e f_ 1 0 )4 I3b V  U 4 TEJ "f s!C} }CH4 !S +S *Q Z -067 '] R`f]  -u  ]) _R8- j *A " c5 ,"  3iq^j Iw^]rC 3* ^  iu^\'Q MuOb #Iz " ]! w% 2+ b: b # @Z  HIRZ > R D  <RR nD R I X [/Rr]  j  ?ZOuAt?) V f  <&  pT"  &e@Z !A+Z  CRZaC} R3b'/ 82R >  R qIUAITRiCz$;!IL] Aw  f  3w  =&+;h w "fNfw "#,"fuCH 5 % R ]#8~  ,Z "4 !'o f '  %(*t! ;5P9S2 [vZ ] UCnr t K 3  !A! % CY BwFR Y !uE^.qQC> R ?Bl A =&&) V% X u? "",b5^FA" | ! ) R6dau.">   r !tRu4 :" Z %! uL ){$ % 0 I2  ^\^uPB S >| !) f""Z ""j +[CC Hpt/N  &{ l9A "R4 XZ  RF"  $ Z  pe@ RSu+y  5 f9wY  n| CV j x6J5  #F|A O*^%b@RZE $IY{Z Q  t vw Z m  i $Z "fu  *TZ !)"C u /;2mhf  8ATY+4Ff-x nuP(2/N#o 9l l  v u"6 9Z p ! nuPp u B< pQY   P]""AW5 % 7\(C M W 2) C  K*9"!" Q C\+iRl{Z  _u F C Z T ERC~f&RVAg@ NQ ; S;u   Rb # '    ZP&3  @'f' q At %f'Q  _uqR; p   W e<T 7 ,R w 9<j 1" ) R M^ +w't"A  UuN*`a  $ 7 {B/C  @ .fpq _ CVsw!@C !w!!m2X~\dR "C w R' mvR[0  =  LRC  X"x  ?R+ ,CC  , R/fhf  C  e IZ _ R  >aZ Z U C;5@8!G  5 > N  C]_t(Rz B .A/f  j   Z( 5 cv  Ufb5 7 Z  ]j^)KC- e : `8 "! , I 9|  '0C7?A /  f"+.Ng [R+{uZ 9" !1R$   f4 C 4" S -fWwH"] m - R2P  #W CC>) RNf Aj Cj O S  9] oD ^ &{Cf>;tf!B !"Q  BQAz )e ]%)' q ) Z%]  @j fg f t~u X" ;84 U  R\, fkjmt! 0 HlI0sCf" |C '7[f>H4 xY Z  5CR  # Ab< w'C  8w/ `2W*Z T   YIRm" ;D+FD *  0  $CI5  2h x +Qj  R Ijx O@X ]rj `"" R,RVDv t j w"w Agj [ uRiP4 :R'6 = X fZ Z })*  D vu 3w ~ j " 93)P{ $ j H + '   + ,@S Z w Ce  TR=C zj D$u Vyw  $x>0 u CAWw !!(*C @  %wZ =+Z BtRw%v=Z H x  %A  Y  o  @DK  Ji3   RZv4 {wArf6 ?5 &2T`] ] fR#C A f> ;CZ(fi3R 4:% !w R3  !uf O6 _! puQwwwS<uj fC   "!  7L Ff =C   t% Z u Q Fu 5% Dj %  ) U0l    f & qgG B6f_AC,@CJ S  D < W  -RWrR^vfJ !  Z Ik  M4!? &a/ i3u fFvffB" R + Jn '   5CCZ #|3$CT2 u B[t f> ;~ 2) Vi <  Jw $%   VF0Z    %uN  _+[+ uw "Z [+]  =  Z +Z / R xm 0- 3 nf8ctBu2CiW" V %"R`M]R`22  +Cq+k$ (1 !B X  . Z f}uC Z ftw S  $8"b`c" X. % (nA  RZ eh Z  U P&w{iRy1A4 [/AxZ >  @ S $  u RR@An  QR\ $ (B@* Z !"cCRG -  RJ!7Z @  8fvj ;<" @'. O " U 0  Z  fA i   ($ 2  P?Z,x" c*7W>  .M4 A OmlRBk  ;6 *'  82&Rp f3 !Z N*-f px LZ .Ri,R4  UCZ CC' Z "+ / Ci  @ ) ,, 3 KIf C MJ!C|f  4t~C wS'fwm *$V]Z(Z j4  G\j 6 wN(A AMquA] Y9"!f$ HR aA}4 ~  R@ ?jRn gCaRb5$4uzB +pj^ ;  hkE  J     )JJ CF K  nRQ  'bu."5  d) % 2 qt $^nTp ft" yC /2 S  8f67V  *BZ   fw " ; "qP 'X ; jw "-t$Rp:.  , " uS ' nZ V"+RU"CZ  VpwQ Z >Zk  C~ 92X p HX#Z ].5^\Iv;w Z C @ f5xw *  )X] H*  % 7, (4 V     <C + " g7g 3" X 3 f!`2 {".5:O5~  :  > T Q 0 [iw   ep /aR Z  M d,4    CC_  14RLZ n ; f u <\ ? C  js j * C`b0RD+9[ w R.Z 6  A$v0eC_ K )pzZ |rIZ cw#C%) S- $F uL/98$j u  FH2  d O  w t=Z S!  uK-=C sf Z _mt*!   8f  wL  w  Z , 1  e' -w^"!  ft!  f^) wZ(w 0{ARD[0 X      d"pb Z  pRC M%+^  WrCT~" +f^Y <f(MwO<2 9 UuCF@wC mf"RvRCw   s b  =D [wj ]" T ([w m t !  % )GZ D C    ~  ' C'R  5  R`2f{ uN * C uj C v t  +f3A {j Kp/    t @  2f"[ 5f]:!   e f|"A  n  <fhD R 5f~A, wW  j 6 ;p  w   MFE X RJsR wGV&fPCT Rl&cwlmcmocradlmaghbahexahomarmiavstbatkbhksbuhdcakmcanschamchrscpmncprtcwucyrldsrtgonggrekgujrgukhhluwhmngzljtkawikitskndakrailaoolatnlisumedfmteimymrnarbnewaoryaosgeougrpcmphlpphnxqaacrjngrunrsamrsgnwtagstamltavttfngtglgtibttodrtutgwchoxpeoxsuxyiiizanbzyyyzzzzcntrlcwcfcwkcfcwtgarayzpgcb=h2vfjlxxnushu3040nv=90oriyapatwsprintqmarktailetakrivssupfsipdfcarianccc=12318491vre=yeschakmacwcmsmlsqrgothicgrexthyphen3.26.3415161miaototoarmndiakgonmhanokhmrlinamroonkooogamolckonaoorkhphliplrdprtiqaairohgshawsogotnsavaiibehgafhahrehbunkhojkilydiannfdqcnv=3//5nv=7olonalpatsynrejangsb=stangsatodhriebg2.13.04.06.07.08.09.052avestanccc=22e=truedeseretdt=nonewideelbasanelymaicextpictgrbashanunoohst=lvtadlambuhiddogralimbuoghamosagerunicbatakeemnoonseenshinzainkannadakayahlilinearamandaicmarchennfkcqc-1/2/645/217/2olchikiosmanyahmnpkalilananbatsarbshrdsyrczinhsharadashavianstermuaatagalogtaithamtaiviettibetanuideounknownage=10.0age=v1armenianbalinesebassavahbpt=opene=falsecompexduployanextendergujaratigurmukhihiraganahatrankaithilepchalycianteluguwanchoyezidijamoextbgamalkhaphkiratraimahajaninfkdqcnv=1/31/12erlwordlinbmercnshuscx=talupecialstagbanwatifinaghugariticvithkuqipfabhaiksuki2435nuktacirclemedialea=narrowmoticonsbengaliincbincjkexgranthainheritedinkanamakasarmultaninoblockphagspasiddhamsoyombosunuwaruabtirhutaiscjkexlamadhkhudawadinabataeannewtailue1600032000olditalicoldpermicoldturkicolduyghurpalmyrenepaucinhausamaritanthaanawb=mixidstartbasiclatinboxdrawingccc=ccc1chorasmianstrokesdeprecateddivesakuruorizspacebugineseingeorgiajamoextajavanesebinduiskanathinyehkharoshthiiscarrowsnagmundarioldpersianphoeniciansaurashtraolettermallformssoftdottedwarangcitialetternewlineerlspaceblk=cjkextdoverlaycyprominoandominotilesfractionisolatedgurungkhemapfb=linkerisarabicisspaceisvertfarsiyehswashkafkehnomirrorlinefeednextlinemedefaidrinnfcqc=maybepahawhhmongkthiscript=mlymsorasompengerandsubsylotinagriebasegazyisyllablesbidicontrolbidimirroredblk=kanaucasextahesssymbolsambiguousgraphemebasegunjalagondiompatjamooldsogdianvisargayiradicalsisposixsyriacwawjoiningtypekehnorotatebothh3jvmasaramgondiathalphanummendekikakui1.0.111e-01.250e-01.429e-01.500e+00.562e-02.563e-02.667e-01.875e-01nv=2.500e-013.125e-02.333e-01.750e-01nv=4.167e-01.688e-02.000e-02nv=5.833e-01nv=6.250e-02nv=8.333e-02oldhungarianphaistosdiscplayingcardspresentin=14tulutigalariwsegspacexidcontinueegeannumbersblock=cjkexblockelementscaseignorablunassignedreekextendedvoweljamoincyrillicinethiopickatakanaextiscsymbolsinmyanmarnandinagariavagrahatonemarkipaextensionsiscasedletterisgeorgiajoincontrolismyanmarisotheisxposixblankjg=africanfehdalathrishknottedhehreversedpe=nonjoininglb=breaknonstarterwordjoinerowsurrogatesayannumeralsisctechnical-5.000e-01patternsyntax5.26.1verticalformsncientsymbolsbc=righttoleftblk=arabichanreadingemojicomponentgc=othereekandcoptichighsurrogateslphabeticpfkhmersymbolsnonjoineriscyrillicisethiopicmahjongtileskashmiriyehrohingyayehstraightwawyehwithtail=dualjoining=joincausing=leftjoining=transparentbeforeexclamationinseparableinseperableviramafinalnfcquickchecknumerictype=epresentin=v1psalterpahlaviquotationmarkdoublequotesinglequoteany_foldsquotemetaasciihexdigitarabicletterotherneutralblk=georgianblk=myanmardoubleabovekanavoicingontrolpictureseastasianwidth=letternumbergraphemeextendeadingjamoimperialaramaicoverstruckpurekillerdecimalnumberenclosingmarkfinalsemkathverticaltail=rightjoininghebrewletterinfixnumericmeroiticcursiveiscpictographsnfdquickcheck36numericvalue=4oldnortharabianoldsoutharabian=extendnumletglueafterzwjzanabazarsquareblk=cyrillicblk=ethiopicblock=arabicnotreorderedcypriotsyllabarylineseparatorhalfandfullformshighpusurrogatestrailingjamoidsunaryoperatorcompatformsgxiradicalsinlatinextendeddphoneticextsupdevanagariextaislatinextendedisusupplementnonspacingmarklllajg=malayalamnnnamemtawktoviknumeralsaksaraprebaseprefixnumericinearbideogramsiscmathsymbolsanfkcquickchecknumericvalue=1/numericvalue=5/8numericvalue=70numericvalue=80numericvalue=9sentenceterminaltangutcomponentseuropeannumberanadiansyllabicscaucasianalbanianiotasubscriptemojipresentationgmodifiersymbolspaceseparatornotapplicableidcompatmathstartidsbinaryoperatorbraillepatternscurrencysymbolsindicsiyaqnumbersleftandrightnumberjoinervedicextensionsdashpunctuationdiacriticalsexthangulsyllableslowercaseletteropenpunctuationhamzaonhehgoalbethfivehethjg=manichaeankaphqophreshyodhqaphtethkhitansmallscriptcarriagereturncomplexcontextmandatorybreakpostfixnumericetterlikesymbolszwspacenfkdquickchecknumericvalue=3/2regionalindicatorscriptextensions=mallformvariantsttonsignwritingboundaryneutralcommonseparatorblk=latinextendedblock=cyrillicextcopticepactnumberstitlecaseletter=uppercaseletteridstrinaryoperatorinitialpunctuationlinearbsyllabaryiscmathsymbolsbbopomofoextendedclosepunctuationfinalpunctuation1supplementyriacsupplementalephgimelsadhezayinlaphzhainadditionalcontingentbreaknumericvalue=6ornamentaldingbatsparagraphseparatorpatternwhitespaceruminumeralsymbolssegmentseparatorbamumsupplementdiacriticalssuptamilsupplementblock=kanaemojimodifierbaselchemicalsymbolsindicconjunctbreakgeminationmarkvoweldependenthanifirohingyapadalethlamedhsamekhtwentyyudhhe=closeparenthesisodifiertonelettersottomansiyaqnumbersatermarrowsawordbreak=mi_perl_charname_beanatolianhieroglyphstangutsupplementblock=latinextendedconnectorpunctuationextendedpictographicombininghalfmarksneralpunctuationvisualorderleftmodifyingletterregistershifterinscriptionalpahlavitaixuanjingsymbolscherokeesupplementmallkanaextensiondhamedhhundred0000000000000000nyiakengpuachuehmongterminalpunctuationverticalorientation=europeanterminatorfirststrongisolateattachedbelowleftchangeswhencasefoldedchangeswhencasemappedchangeswhenlowercasedchangeswhentitlecasedchangeswhenuppercasedgraphemeclusterbreak=identifiertype=notncientgreeknumbersountingrodnumeralsmeroitichieroglyphsantillationmarkinvisiblestackerreorderingkillersyllablemodifiervowelindependentinscriptionalparthianinsupplementalarrowsbnclosedalphanumsuphanguljamoextendedamongoliansupplementsundanesesupplementissupplementalarrowscaksarastartlogicalorderexceptionnoncharactercodepointsinhalaarchaicnumbersvo=transformedrotatedyijinghexagramsymbolsoverridearabicnumberbidipairedbrackettypeblock=ethiopicblock=georgiablock=myanmarmathoperatorsfontdiacriticalsforsymbolsarlydynasticcuneiformidcompatmathcontinueinsc=consonantprefixedglagoliticsupplementburushaskiyehbarreelinebreak=breakmodifiercombiningmarknumericvalue=2.5.125e-03.750e-02.250e-03bc=lefttorightembeddingpopdirectionalformatblhanguljamoextendedbhangulcompatibilityjamoobsoletecompatibilityformsradicalssupplementsubjoinedjoininggroup=africanqafsentencebreak=shorthandformatcontrolsznamennymusicalnotationhighprivateusesurrogatesstatus=allowedinclusioncompatideographssupommonindicnumberformsiscellaneoustechnicalinpc=topandbottomandleftbrahmijoiningnumberheadletterpacingmodifierletterstransportandmapsymbolshanifirohingyakinnayajoininggroup=malayalamfolds_to_multi_charmeeteimayekextensionsdevanagariextendedachangeswhennfkccasefoldeddefaultignorablecodepointfullcompositionexclusionlimitedusebyzantinemusicalsymbolsgyptianhieroglyphsextaplaceholderwithstackerometricshapesextendedsuperscriptsandsubscriptscanonicalcombiningclass=27halfwidthandfullwidthformsrecommendeduncommonuseinarabicpresentationformsbombiningmarksforsymbolsprependedconcatenationmarkis_in_multi_char_foldeuropeanseparatorblk=supplementalcanonicalcombiningclass=128nclosedcjklettersandmonthsstatus=restrictedymbolsandpictographsextanojoininggrouptehmarbutagoalopticalcharacterrecognitionbidiclass=lefttorightbidiclass=righttoleftatarprecedingrephatakanaphoneticextensionssupplementaryprivateuseareaacanonicalcombiningclass=ccc1succeedingrephalphabeticpresentationformsancientgreekmusicalnotationconditionaljapanesestarteriscellaneoussymbolsandarrowsdecompositiontype=nonhangulsyllabletype=lvtinitialpostfixedryprivateuseareabegyptianhieroglyphsextendedavariationselectorssupplementjoininggroup=manichaeanthamedhpopdirectionalisolatenclosedideographicsupplementathematicalalphanumericsymbolsgeneralcategory=otheideographicdescriptioncharactersincjkunifiedideographsextensnclosedalphanumericsupplementiscjkunifiedideographsextensuneiformnumbersandpunctuationymbolsandpictographsextendedaaboveleftiscellaneousmathematicalsymbolsablk=cjkunifiedideographsextensbelowrightideographicsymbolsandpunctuationmathematicalalphabeticsymbolsdoublebelowombiningdiacriticalmarksextendedindicpositionalcategory=topandinmiscellaneousmathematicalsymbolsbgyptianhieroglyphformatcontrolsblock=cjkunifiedideographsextensindicsyllabiccategory=consonantiscellaneoussymbolsandpictographsombiningdiacriticalmarksforsymbolsymbolsforlegacycomputingsupplement_perl_problematic_locale_foldeds_compatibilityideographssupplement=bottomandrighttransformeduprightombiningdiacriticalmarkssupplementblock=supplementalmathematicaloperatorsattachedaboverightisunifiedcanadianaboriginalsyllabicsextendeda}  pK`pq0K$%().Y\   : ; < = > A I M N P Q X ` b d x    < = > A C G I K N Q R p r u v     ) * 1 2 4 5 : < = > @ A E G I K M N U X \ ^ _ ` b d q r     ) * : < = > A E F I J M N U W X [ b d    ; = > ? A E F I J M N O W X b d 1234;GO56789:>@q-1289;=?VXZ^aqu`]`25RTrt  #'),0239<UVWX_`abcems}4>BEkt$,468   ( / < = I J ` p "!#!9!:!!!!!##(#)#########$$%%%%%%%%&&&&&&&'''''''''!'"'(')'3'5'D'E'G'H'L'M'N'O'S'V'W'X'c'h'''''''''4)6)++++P+Q+U+V+,,---.*00010=0>0002222ost~ #%'(,-Ĩƨ&.GRST`})/1357CDLMN|}ª89TUpqĬŬ45PQlmܭݭ01LMhiخٮ,-HIdeԯկ ()DE`a|}аѰ $%@A\]xy̱ͱ !<=XYtuȲɲ89TUpqijų45PQlmܴݴ01LMhiصٵ,-HIdeԶն ()DE`a|}зѷ $%@A\]xy̸͸ !<=XYtuȹɹ89TUpqĺź45PQlmܻݻ01LMhiؼټ,-HIdeԽս ()DE`a|}оѾ $%@A\]xy̿Ϳ !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm 0v{      8 ; ? @   $ ( i n FQ8Gpqsu',-5EGst,/248>?AB;=>?@AEGIKMNWXbdfmpu58@BEFG^_03;=>?A "&',,/89;01679;?@ABCD 39:;?GHQWY\/078>?@17:;<>?FGH46;>@CZ[04@4A4G4V4a*a-a0ajj0k7kcmdmgmkmOoPoQoooooooo.0Gejms{BE7;muv"#%&+07DK /0lr~/02;<@I>FPt HPZ` ;<FG    !"#'*,./0:<?@A[\]^a{|}~      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOpqrstuvwxz~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01WYZ]^`  K`jkmnpq0KM$%().789:=?@Y\`kp : = > P Q X b d f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f p r u v       ) * 1 2 4 5 : < = > E G I K N U X \ ^ _ b d f p q r     ) * : < = > E F I J N U W X [ ] ^ ` b d f p     ; = > E F I J N O T W X _ b d f p z 124;@GOPZ *56789:>@HImq+?@JLPVZ^abegnquIJNPWXYZ^`[]`bcgimno257@RT`mnqrt    y ,0<DFPnpu U_`}4EMNPZ\^`kt}$8;=@JMPZ~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FHNPXYZ[\]^_`hp~      $ % ( * / 0 9 ; < > E G J _ ` e f p q r }  !!!! ! !!!!!!!!!$!%!&!'!(!)!*!.!/!0!4!5!9!:!!@!E!F!J!N!O!`!p!!!!!!# #)#+#$$$['a'h'v''''')))))),0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-0-h-o-p---------------------.... .*.../.0.<.=.B.C.S.U.].0000000000 0!0*000106080=0A000000000110111111124MNФ  *,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnost~ "#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧ͧΧЧѧҧӧԧէ֧קا٧ڧۧܧݧ #(,-@tvxƨΨШڨ &./0GT`}ȩʩϩЩک)7@CDLNPZ]`wz{~ªê۪ު  '(/0[\jpnp)*78=>?@BCEF>@P 0135EGIPRSTVXY_cdpuv  !;<=>A[\]^_abdef  '(;<>?NP^@u -KPv{(P(0dp{|7@V`h  679<=?V`w   :                6 8 ; ? @ V X ` }         6 @ V ` s    I      $ ( 0 : @ J P f i n o p  '(0FQUZp8GIfpqsuv'56@ADEGHPstvw,8:;=>?AB )*1245:;=>EGIKNPQWX]bdfmpu5GKMPZ^_b0ACDEPZ,0:<?@G,;   0679;?@ABDEFGPZ 3:;?BDGHPQ\  /78@ACPZr  17:;<>?FGHPZ`fgij4;>CEPZ[ #$o$$D%//004@4A4G4V4`4CDGFaa0a:ah9j@j_j`jjjnjpjjjjjjjjjk0k7k9k@kDkEkPkZkckxk}kk@mmmnmpmzm@n`nnnnoKoOoPoQoooooooooooop֌ #23PSUVdhpkp}.0Gejms{BE4NUVh  8:;?@EFGJQRl"<Vp56OPVop7;muv  %+"#%&+0n-07>@JNO"DKLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjpvy:@ ^KP#   !"#'(,-./0:;<A[_`a{puvxz~01WY]^_`  K`jklmnpq0KM$%().@Y\`kp : = > P Q X b d f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f p r u v       ) * 1 2 4 5 : < = > E G I K N U X \ ^ _ b d f p q r     ) * : < = > E F I J N U W X [ ] ^ ` b d f p     ; = > E F I J N O T W X _ b d f p z 124;GOPZ *56789:>@HImq+?@JVZ^abegnquIJNPWXYZ^`[]`mo25@RT`mnqrt  y ,0<FPU_`}4EMPZkt$8@JMPZ~ FHNPXYZ[\]^_~     $ % ' ( * / 0 < = ? A D E I J T U _ ` e f p q r  !!!! !!!!!!"!#!$!%!&!'!(!)!*!.!/!9!:!0000000110111111122222223X3Ф  *,@ost~ΧЧҧӧԧէݧ #(,-@tƨШڨ &.0GT`}ϩЩک)7@CDLNPZ{~ª  '(/0jp)*78=>?@BCEFP>P 035MPQRSTUVpuv !;?@A[f  '(;<>?NP^@u -KPv{(0dp{|7@V`h  679<=?V`w   :                6 8 ; ? @ ` }         6 @ V ` s    I      $ ( 0 : @ J f i n o  '(0FQp8Gfpqsuv'56@DEGHPstvw,8>?AB )*1245:;=>EGIKNPQWX]bdfmpu5GKPZ^_b0ADEPZ,0:,;   0679;?@ABDPZ 3:;?GHPQ\  /78@APZr  17:;<>?FGHPZ`fgij4;>CPZ[ #$o$$D%//004@4A4G4V4`4CDGFaa0a:ah9j@j_j`jjjpjjjjjjjjk0k7k@kDkPkZkckxk}kk@mmmpmzm@nnoKoOoPoQoooooooooooo #UVdhkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-07>@JNODKLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0JPjlpr~/02;<@I>FPt HPZ` ;<FG 3   !"#$%&'()*+,-./0:<?@[\]^{|}~OP\cp~   K`jkmpq0K$%().Y\ : = > P Q X b d f p   < = > C G I K N Q R f p r u v   < = > E G I K N U X b d f p  < = > E F I J N U W b d f p w x  ; = > E F I J N W X b d f p y z 124;?@GOPZ\     *456789:;<=>@q+?@JLVZ^abegnqu`]`ab257RTrt   ,0<DFPU_`}4DEMNPZ\]akt}$8;@JPZ~                $ ' ( * / 0 8 9 : ; < = > D E F G I J V W X \ ] ` a f p } ~  !! ! !!!"!#!9!:!!!!!""""# # # # ###(#)#*#+#############$$%%%%%%%%%%%&&&&&&&&&&&& &0&8&9&<&H&T&h&i&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''' ' '''''''''!'"'(')'3'5'D'E'G'H'L'M'N'O'S'V'W'X'['a'b'c'd'e'h'i'j'k'l'm'n'o'p'q'r's't'u'v'''''''''''''''''''''''4)6))))))))))))))))))))))))))))))))++++P+Q+U+V+,,,,,,,-p-q----...... . . . . .......... .!.".#.$.%.&.'.(.).*.../.0.2.3.5.:.<.?.@.B.C.K.L.M.N.P.S.U.V.W.X.Y.Z.[.\.].^.....///000000 0 0 0 0 00000000000000000 0*000105060;0=0>0?0@0A0B0C0D0E0F0G0H0I0J0c0d000000000000000000000000000000000000001101111111122 2H2P22222MNǤ  *ost~ #(,-89tvxƨΨШڨ &.0GT`}ǩʩΩϩЩکީ)7@CDLNPZ\]`{~ª89TUpqĬŬ45PQlmܭݭ01LMhiخٮ,-HIdeԯկ ()DE`a|}аѰ $%@A\]xy̱ͱ !<=XYtuȲɲ89TUpqijų45PQlmܴݴ01LMhiصٵ,-HIdeԶն ()DE`a|}зѷ $%@A\]xy̸͸ !<=XYtuȹɹ89TUpqĺź45PQlmܻݻ01LMhiؼټ,-HIdeԽս ()DE`a|}оѾ $%@A\]xy̿Ϳ !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm)*78=>?@BCEFP>?@ !"#$%&()*+,-/056789:;<=>?@ABCDEGHIPQRSTVXYZ[\]^_ghijkl  ;<=>[\]^_`bcefgqv{WX        8 ; ? @ P X      9 @ $ ( 0 : @ J i n o FQ8FGINRfpqsuv'56@DEGstuv,8:;=>?AB )*1245:;=>EGIKMNPQWX]^`bdfmpu5GKOPZ\^_0ACPZ`m,0:<?,;   0679;>?@ABDGPZ 3:;?@AEFGHQ\ /78@AFPZpqr17:;<>?FGHPZ4;>BCEPZ[ p$u$X2[2^22222222y3z3|3/404748494<4=4>4?4@4A4G4V4EEEaa0a:a`jjjnjpjjjjjj0k7k:kDkEkPkZknmpmzmnnOoPoQooooooooop֌ #23PSUVdhp.0GejmBEW`w7;muv"#%&+07@JDKPZ^`,0 /0lr~/02;<@IPR`f!-67}~?@ABDFQfy|}%2>FJKOPhtvz{EHKPvy|tw{ HPZ`   &'0:;<?FGwxT`np} PA[a{      !#$%&-./012BCEFXY^_cptvxz~01WY   @AKV`jpqKMP.0?@\^_`kp Q R S U d e f p       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f p w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?@\HImq@JIJNPWXYZ^`[]} 57@T`mnqrt y ,0<@ADPnpu _`}MN8;JMP&+,]bfkxy FHNPXYZ[\]^_~  / 0 O P Z [ ] ^ e f q r t  !&!'!*!,!2!3!N!O!`!!!!*$@$K$`$()t+v+++,`,,,,-&-'-(---.-0-h-o-q---------------------...0.1.2.<.=.A.B.C.D.^.....///0000000 0 00000 0!0*0.00010607080<0>0@0A000000000110111111111122 2H2`222222223X3q3{33334MNǤФ,@op"ΧЧҧӧԧէݧ-03689:@xƨΨڨ./0T_`}ΩϩЩکީ7@NPZ\`ê۪  '(/0[\efjlpnp78=>?@BCEFP>@ .0EGSTghlpuv!;A[afpq  '(;<>?NP^47@$-0KP{P(0dop{|7@V`h  679<=?@VW`    : ? @                6 8 ; ? I P Y `          6 9 @ V X ` s x        I       ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;=EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[ #$o$p$u$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjpjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOooooooooooop֌  #23PSUVdhpkp}.0GP')gj{FW`ryUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP# a{      !"#$%&'()*+,-./012345678:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      #$%&'()*+,-./01234<=?ABCGHIJKLMNOPQRSTUVXYZ[\]`abcdefghijklmopqrsuv}~EFqrstwx{~0P`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0ayz}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPQRSTUVWX`hprvxz|~N!O!p!!!!$$0,`,a,b,e,f,g,h,i,j,k,l,m,s,t,v,w,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopz{|}§çħȧɧʧ˧ͧΧѧҧקا٧ڧۧܧSTpA[(P  p  `nn"D A[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123:;<=>?ABCDEFGHIJKLMNOpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp&!'!*!+!,!2!3!`!p!!!$$,0,`,a,b,c,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}~§çħŧƧǧȧɧʧ˧̧ͧЧѧ֧קا٧ڧۧܧݧ!;(p{|  P f @n`n"Ua{      !"#$%&'()*+,-./012345678:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      #$%&'()*+,-./01234<=?ABCGHIJKLMNOPQRSTUVXYZ[\]`abcdefghijklmopqrsuv}~EFqrstwx{~0P`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0ayz}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPQRSTUVWX`hprvxz|~N!O!p!!!!$$0,`,a,b,e,f,g,h,i,j,k,l,m,s,t,v,w,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopz{|}§çħȧɧʧ˧ͧΧѧҧקا٧ڧۧܧSTpA[(P  p  `nn"DA[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123:;<=>?ABCDEFGHIJKLMNOEFpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNPQRSTUVWYZ[\]^_`hp&!'!*!+!,!2!3!`!p!!!$$,0,`,a,b,c,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}~§çħŧƧǧȧɧʧ˧̧ͧЧѧ֧קا٧ڧۧܧݧp!;(p{|  P f @n`n"+A[      !"#$%&'()*+,-./2345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123:;<=>?ABCDEFGHIJKLMNOEFpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp&!'!*!+!,!2!3!`!p!!!$$,0,`,a,b,c,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}~§çħŧƧǧȧɧʧ˧̧ͧЧѧ֧קا٧ڧۧܧݧp!;(p{|  P f @n`n"?aklst{      !"#$%&'()*+,-./0345678:;<=>?@ABCDEFGHIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      #$%&'()*+,-./01234<=?ABCGHIJKLMNOPQRSTUVXYZ[\]`abcdefghijklmopqrsuv}~qrstwx{~02345>?ABCJKP`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0ayz}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FQRSTUVWX`hprvxz|~N!O!p!!!!$$0,`,a,b,e,f,g,h,i,j,k,l,m,s,t,v,w,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopz{|}§çħȧɧʧ˧ͧΧѧҧקا٧ڧۧܧSTA[(P  p  `nn"D=EFGJMOSWX[\cKSUW\]_`pq12457:;=>?BCDEFGHIY\< = M N R S < = M N < = M N < = M N U W ; = M N 8;HL56789:qstuz~789;459:;<`a45DElm78 --*00000,-ĨŨ+.ST'.  9 ; ? @   FHKLMQFGpq35st57;=MNBCFG?@+,9;=?CD45GH?@BCDFAC/a0ajjooejms{JK@ A( (!0 `  0000PP(( hhhhn  ((=!aA<,>Bbtalnumalphaasciiblankcntrldigitgraphlowerprintpunctspaceupperwordxdigit @AO P A.B.LPZ^`@Q`k  ; =  #$++E.J..1/1֟-0HP  7:;<>?HPZoop`f  (013LM_lw`a v w   xy++++++J.O./1014 6 H I  ( 0 : (0ZDG;<^_<`fgij@nnryq/0MPlqswz{|`nyw x +++,O.P.§ǧfh_` 0494EoKoOoPoooooPSdh-0>@JNPKL>lm ?@qr{|Tptx{23wU V   ++P.S.11MMǧ˧,-hlGHZ[`b   679;GPZoooo֌  mp  rswytuצަKp< = ] ^  LM} /,0,_,`,S.^.§Чҧӧԧէڧ@Pp{|ppv@G//pjjjj#.0GPyz{}ަ59A ?B ;>Z/40494V423UV%+0ntw{ux9:P#/011^_NP'$*$11˧Χڧݧ@ f i    Z[`4Ca:a@mzm;HIjq    "4FObc PQ]^SV-0K jk"#()+,36:@ZGHIJNPWXYZ^` GH[a}w x/ 0 H N 9!;!!!!!##{#|#}##%$'$%%&&p&r&()....////80;0>0?0114M¤ŤƤǤI $0K&(N'*UV  :;?@EFGJQRצ w !OPcpnp  7@T`mnqrtG H N S W X _ d q r =!L!!""#|#}###$$%%%&&&r&~&&&h'v''''()+;0>000000112Q2`222¤ŤƤ0kEGst_a!"47PX]` VY-0MP      5 6 q r  ,0<@ADnpulS U ;!?NP^47@&(N  679<=?@W7BX]  Y_Pn} ~ GH GH_a lU W X _ X Z b d x = > D E b d p v y km"#()+,36:@Z8;JMd e O!P!!!&&&&&&''''+ +$+M+P+U+m,p,q,t,x,~,-....1.-1.111ğ,@`bt| "ŨΨڨT_`7@NPZ\`$' : ? @ )*,0$&.0?  N O U V y { Z_w _`} P!S!!!##&&&&&&&&&&&'W'X'U+Z+p,q,~,,,,1.2.D2P2ğ̟Ф0:`}Ωϩکީ`|ê۪kn@VW`  `   6 9 V X s x   I `0/4 /12=>?@BCFGJOWX_`yz{}2@I5&( !_`@\^_: < O P V X s x r x ) * : ; N O ]_ ##&&&&&&'' ' '(')'L'M'N'O'S'V'_'a'''''''''p-q---11`b  '(/NRph9j012=>?@BCFGJOWX_`jpyz{}2;PR!067}?@AB>Ph &(,-.045AEPt@ '''',,'-(---.-f-h-2.<.̟͟t|.0    56DoEoPoooo !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~jl@D &(,-.045 f j (0 x y  4 5    ##''M+P+Z+t+v++++++++<.C.|0`df'. P{(0dop7@V`h`            Pw> )*1245:<EGIKNWX]dfmpuEPZo##c$o$t$u$@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kkkp}  !-67}~?@AB>@DKhz{ACP HPZ`w Z [ _ `  !!++֟͟`dp.0             PQ,0@##$D%DGF-0~KPCE i O P T W X _ v y ##C.E.Ũƨ>?Z[\]^`m  78FPmpoop"#%&+KPZ^`;<z{ (013?@LP_ 12^_0dop,0GPP@oPp O P A.B.Ppuv` !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ pPpP@VW`  1WY!"xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MN8;JM FHNPXYZ[\]^_~ e f r t !!!*$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///@0A00011011111112 2ǤФ,@ΧЧҧӧԧէݧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[#$o$p$u$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP#  0.2. 6 9 @ MNh9jh@jjjjj;    Kmpq0K`P>Pp $ ( 0 : @ 0FQppP`jkm0 : @ J `  ) * @   ` f j p s{ ,-.0:;  / 0 D E PQRSUV 0:p q t z $$ +,-.z | "")*bd 1#&  jk ?@0 5 .!/!""8:_`ikh i A[a{ptv~ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d x   ; = A E M N b d 124;?@GO56789>q-1289;=?XZ^aqu]`24RTrt #')239<@ADFVWX_`abcems}456;<=BCkt,468   q t  !!!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?AB;=@Afmpu8@BEFG^_3;=>?A`m "&',/89;;=>?CD  39;?GHQWY\078>17:;<>?FGH6;@ABCZ[@4A4G4V4a*a-a0ajj0k7kOoPooooooo.0GgjsFW56OPop7;muv"#%&+07,0/0jp`fw{ HPZ`T`np} * + f g - . pK`pq0K$%().Y\ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d  ; = A E M N b d 124;GO56789:q-1289;=?XZ^aqu]`24RTrt  #')239<VWX_`abcems}456;<=BCkt,468 ,,---.*0.000ost~ %',-Ĩƨ&.GR)/1357CDLM|}ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu',-5st/24568>?AB;=@Afmpu8@BEFG^_3;=>?A "&',/89;;=>?CD  39;?GHQWY\078>17:;<>?FGH6;@ABCZ[@4A4G4V4a*a-a0ajj0k7kOoPooooo.0Ggj{BE7;muv"#%&+07DK!#&+;A[a{tv~ x  :> @ADF ( 5 D E _ |  !!!!! !!!!!!$!%!&!'!(!)!*!:!P0PQRTUV_`bdghikl !;A[f@  9 @ n o Rf`mooBEFW56OPop,0 /0jp`fw{ HPZ`T`np}, - i j S$%().Y\`  )*P        8 ; ? @   9 @  J i o `0pDKpP+ , g h . /    ! ( ) _ ` 007Q S d f    78FPm   * / f j (*<=>?[\]^{|}~:>9 ; E G }  @!A!"""""""""""#"$"%"&"'"+"4"9":";"M"R"V"_"a"b"c"d"l"m"""""""""""""""""""## # #"#)#+#h'v''''''''''''''')))))))))))))))))))))))))))) ***"*$*%*&*'*)***+*/*4*6*<*?*W*Y*d*f*j*n*o*q*s*u*y********************++.. . . .... .*.U.].0000Y_df ;<=>[\]^_abdOP%%00000 0*0.0001070800010111EGaf11%%)*]^}~;<=>F G ~  # # # #*#+#i'j'k'l'm'n'o'p'q'r's't'u'v'''''''''''''))))))))))))))))))))))))))))#.$.%.&.'.(.).*.V.W.X.Y.Z.[.\.]. 0 0 0 0 00000000000000Z[\]^_ =>]^`acd=(*[\]^{|}~:>E G }  # #)#+#h'v'''''))))))".*.U.].0000Y_ ;<=>[\]^_abd()[\{|:;<=E F } ~ # # # #)#*#h'i'j'k'l'm'n'o'p'q'r's't'u'''''''''''''))))))))))))))))))))))))))))".#.$.%.&.'.(.).U.V.W.X.Y.Z.[.\.0 0 0 0 0 0000000000000YZ[\]^ ;<[\_`bcNRv() ϩЩ57@T xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MN8;JM FHNPXYZ[\]^_~  * / ` p r t !!!*$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///@0A00011011111112 2ǤФ,@ΧЧҧӧԧէݧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[#$o$p$u$$D%//004@4V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')s{FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP#  @J56H Z [ ] ^ 1.2.?A[a{EFptvxz~01W` FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!5!9!:!?BCDEFGHIK$%(). Q R S U ]`:;u}klmt ,,-.opt~ª '.0v{  8 9   $ ( i n HKLMfmpu^_0k7kBE"#%&+07DJ +0,0 XY,0-0!#')49=GJMOSWY[UW\]_`12457:;=>?BCDEFGHIY\R S 5678;<lm +.'.  : ;   FHKLMQ{*0+0 9:-0.0]_`b \]_`bcEF.000mnCX ` 3 4 6 7 Y \ ^ _ \ ^ CDMNRSWX\]ijvwxy** *78=>?@BCEFO^e+  * / ` e f p 04@4s{  7@NPZ\`  #%02ppp'(./:;^_`aptvz{YZ_`@AK`pq0K.Y\ : ; < = A I M N Q X b d q r   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d  ; = A E M N b d 124;FO56789:q-1289;=?XZ^aqu]`24RTrt CD #')239<VWX_`abcems}456;<=BCkt,468x~,kxy    $ % ' ( * / ` e f p q r  |,~,,,o-p----./.0.00*0.01060;0<00000 ost~"pq %',-Ĩƨ&.GRϩЩ)/1357CDLMpq|}ªݪު[`il 0RSUV>?@Apqv{      8 ; ? @   $ ( N O i n o p FQ8Gpqsu',-5st/24568>?AB;=@Afmpu8@BEFG^_3;=>?A "&',/89;;=>?CD 39;?GHQWY\078>?@17:;<>?FGH6;@ABCZ[04A4G4V4a*a-a0ajj0k7k@kDk@mCmkmmmOoPooooooo.0GgjsBE7;muv"#%&+0n0>DL N340P 4M@@  PP#`./110@0xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MN8;JM FHNPXYZ[\]^_~ e f r t !!!*$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///@0A00011011111112 2ǤФ,@ΧЧҧӧԧէݧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[#$o$p$u$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP# 011@BCEtu~X ` 3 4 6 7 Y \ ^ _ \ ^ CDMNRSWX\]ijstuwxyqrstuvwxyz{|}~  &!'!*!,!)#+#** !"#%'*np *78=>?@BCEFO^e$@$tv,,,-..`//47@  679<=?@$$ A[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOEFpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp&!'!*!,!2!3!`!p!!!$$,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧ͧЧѧ֧קا٧ڧۧܧݧp!;(p{|  P f @n`n"A[a{89!"4:UVXYZ[]`bcghmopqsuv}~EFptvx{~01Wayz}~ FHNPXYZ[\]^_~&!'!*!,!2!3!N!O!`!!!!$$,q,r,t,u,w,~,,,,,,-&-'-(---.-@n"02pyΧЧҧ֧ݧSTp!;A[Pp{|    P f p  @nnDA[      !"#$%&'()*+,-./0125679:;<=>?BCDEFGHIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNO@BCFOPpqrstuvwz{~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1WuyX ` 3 4 6 7 Y \ ^ _ \ ^ 34  CDMNRSWX\]ijstuz_a ,/0;<NOkxy      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hpqrstuvwxyz{|}~      $ ' * 0 3 5 6 8 < = > ? G J W X _ r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!:!;!A!E!J!P!!!!!!,"."/"1")#+#`$$ * *t*w***,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,o-p-....//00607080;00000011111122 2H2P2224@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqyz{|}§çħȧɧʧ˧ͧЧѧ֧קا٧ڧۧܧݧ\`ijp !"#%'*np78=>?@BCEF>P0EGSTghlpstuv(p{|  P f @n`n^es{UV  :;?@EFGJQR0n" !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPRA[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp&!'!*!,!2!3!`!p!!!$$,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧ͧЧѧ֧קا٧ڧۧܧݧ!;(p{|  P f @n`n"a{      !"#$%&'()*+,-./012345678:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      #$%&'()*+,-./01234<=?ABCGHIJKLMNOUVXYZ[]`bcghmopqsuv}~EFqrstwx{~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0ayz}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPX`hp~N!O!p!!!!$$0,`,a,b,e,g,h,i,j,k,l,m,s,t,v,w,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopz{|}§çħȧɧʧ˧ͧΧѧҧקا٧ڧۧܧSTpA[(P  p  `nn"Da{      !"#$%&'()*+,-./012345678:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      #$%&'()*+,-./01234<=?ABCGHIJKLMNOUVXYZ[]`bcghmopqsuv}~EFqrstwx{~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0ayz}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPX`hp~N!O!p!!!!$$0,`,a,b,e,g,h,i,j,k,l,m,s,t,v,w,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopz{|}§çħȧɧʧ˧ͧΧѧҧקا٧ڧۧܧSTpA[(P  p  `nn"D@-.@00%   0+,xy-.C.D.@.00n1-.  S T { | ""....:.<.@.A.].^.0000100013XYcd n o IJstwxyzj p )#+# S U  0: `#OP_a   * / ` p d1e1s{^_`aOPX]ctvz{YZKSWY0K< = M N Q U q r < = M N < = M N U V < = M N ; = M N :;GMNO56789:>@789;cein]`459<`au}45DEkt68x~,k,,/.0.*0000000op|~",-ĨŨ+/ST{~ê[`il 0>?@Apq8 ; ? @   " ( N O i n FQFGpq35st57;=MNfmpuBCFG?@+,9;=?CD45GH?@BCDFACZ[G4V4/a0ajj0k7kkmmmoooo.0Ggjms{0n07DGHKp !   679;GPZ''d p 0:<0P&(1489?CILRTfh &4@BCEtu~ 9:PRSTWX\_vx"') * 1 2 4 5 X ` 3 4 6 7 Y \ ^ _ H I K M \ ^ H I J M CDMNRSWX\]ijstuwxy&'     ;<=>@BCD FHNPXYZ[\]^_~  &!'!*!,!!!!!!!"" " " " "$"%"&"'"A"B"D"E"G"H"I"J"`"a"b"c"m"r"t"v"x"z""""""""""""")#+#**L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0e0f0g0h0i0j0p0r0s0u0v0x0y0{0|0~000000000000000000000000000000000000000000000000000 !"#%'*np *78=>?@BCEFO.0KM89!a)ahmkm^e24?AIJz{uy34wxyz     $ ' 3 5 6 8 < = > ? G J W X _ ` !!!!!! ! !!!!!"!5!9!;!pqrstuvwxyz{|}~mUVYZ]^abefijmnqruvyz}~4<qrwxyz{|}~ a       / 0 24?AIJz{uy34  wxyz,/0;<NOkxy     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!(!)!,!.!/!2!3!:!;!A!E!J!P!!!!,"."/"1"`$$ * *t*w*|,~,o-p-....//00607080;00000011111122 2H2P2224pq\`ij *O>P0EGSTghlpstuvUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPR1&(1289ACJLRTfh &4@BCEtuz{~ 9:PRSTWX\_vx"'uy) * 1 2 4 5 X ` 3 4 6 7 Y \ ^ _ H I K M \ ^ H I J M 34  CDMNRSWX\]ijstuz&'     ;<=>@BCD,/0;<NOkxy FHNPXYZ[\]^_~     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!2!3!:!;!A!E!J!P!!!!!!!!!!"" " " " "$"%"&"'","."/"1"A"B"D"E"G"H"I"J"`"a"b"c"m"r"t"v"x"z""""""""""""")#+#`$$ * *t*w***|,~,o-p-....//00607080;0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0e0f0g0h0i0j0p0r0s0u0v0x0y0{0|0~000000000000000000000000000000000000000000000000000011111122 2H2P2224pq\`ij !"#%'*np78=>?@BCEF>P0EGSTghlpstuv.0KM89!a)ahmkm^eUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPRPSTghlP2Q2222X3q33340P< bk |,},Qk?,/0;<NObxyp r t !!!"!#!},~,o-p-11pq\`ij0Qknjm 00010EGI   #%<.=.kp}$P%g&(+,1489?CDEHLMNRTfhklQRabpPQR        # $ ( 0 1 2 4 5 6 ; < > ? t u  !!!! ! !!!!!!!#!&!'!+!,!S!U![!_!`!l!p!z!!!!!!!!!!!!!""""" " " """"""""""!"#"$"%"&"'"-"."/"4"8"<">"H"I"L"M"R"S"`"b"d"h"j"l"n"p"""""""""""""##`$$$L%P%t%%%%%%%%%%%%%%%%%%%%%%%%%%%&& & &&&&&&&@&A&B&C&`&b&c&f&g&k&l&n&o&p&&&&&&&&&&&&&&&&&&&&&&&&'='>'v''V+Z+H2P2 .0jp00a a5 &(+,1489?CDEHLMNRTfhklQRabpPQR`        # $ ( 0 1 2 4 5 6 ; < > ? t u  !!!! ! !!!!!!!#!&!'!+!,!S!U![!_!`!l!p!z!!!!!!!!!!!!!""""" " " """"""""""!"#"$"%"&"'"-"."/"4"8"<">"H"I"L"M"R"S"`"b"d"h"j"l"n"p"""""""""""""####)#+#######`$$$L%P%t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&& & &&&&&&&&&0&8&@&A&B&C&H&T&`&b&c&f&g&k&l&n&o&p&&&&&&&&&&&&&&&&&&&&''' ' '(')'='>'L'M'N'O'S'V'W'X'v''''''''''))++P+Q+U+Z+....///?0A00011011111112 2Ǥ`}0STghloooop֌ #23PSUVdhpW`w .0jp<@IPR`f!-67}~?@AB>KOPhz{P ;<FGp} ''))`##)#+#######%%&&0&8&H&T&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'' ' '(')'L'M'N'O'S'V'W'X'''''''++P+Q+U+V+....///00?0A00011011111112 2H2P2Ǥ`}0STghloooop֌ #23PSUVdhpW`w<@IPR`f!-67}~?@AB>KOPhz{P ;<FGp}Q&&&& ''BDFQfy|}tvz{EHKP   &'0:<?wx#$*+0:   0V4`4C04`4`4D(-#$*+0:< = I J "!#!9!:!!!!!##(#)#######$$%%%%%%%%&&&&&&&&&&&& &!&"&$&&&'&*&+&.&0&8&;&@&A&B&C&H&T&_&a&c&d&e&g&h&i&{&|&~&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''!'"'(')'3'5'D'E'G'H'L'M'N'O'S'V'W'X'c'e'''''''''4)6)++++P+Q+U+V+0010=0>02222pr~/02;PR"$>IOPhoqs{P ;<FGp}P`$%23########%%&&H&T&&&&&&&&&&&&&&&&&&&&&&&&&&&'' ' '(')'L'M'N'O'S'V'W'X'''''''++P+Q+U+V+/0278;PR!-67}~?@AB>KOPhz{P ;<FGp}KIJNPWXYZ^`[]}------------------  '(/--0S@Aq r U V FG  CD67{|0010600000 ϩЩpqݪުpqN O j k o p 78]^BkDkoooo<>DG< = I J "!#!9!:!!!!!##(#)#########$$%%%%%%%%&&&&&&&'''''''''!'"'(')'3'5'D'E'G'H'L'M'N'O'S'V'W'X'c'h'''''''''4)6)++++P+Q+U+V+0010=0>02222 /0lr~/02;<@I>FPt HPZ` ;<FG    @ f i    &     ( / ` p 04@4s{ pK`pq0K$%().Y\ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = > @ A E M N U X b d    < = > A F I J N U W b d  ; = > ? A E M N W X b d 124;GO56789:q-1289;=?XZ^aqu]`25RTrt  #')239<VWX_`abcems}4>BEkt,468 ,,---.*00000ost~ %',-Ĩƨ&.GRST)/1357CDLM|}ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu',-5st/248>?AB;=>?@AMNWXfmpu8@BEFG^_3;=>?A "&',/89;01;?CD 39;?GHQWY\078>?@17:;<>?FGH6;@CZ[@4A4G4V4a*a-a0ajj0k7kOoPooooooo.0Gejms{BE7;muv"#%&+07DK ``}!N O ?@AB:;FG7  ; < > A I M N P   > A   @ A G I K M   A E   ? A F I J M 34>@12;=VX#'),0239UVWXms>B$,46#%'(ĨRS/135MN,-EG,/24?@AEGIKMbd58@BEF03;=>?&',/891679@ABC9:WY/0>?46>@*a-aQoo `cmdmgmkm pK`pq0K$%().Y\ : = > P Q X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J O W X b d 123;GO56789:>@q-89?VZ^aqu]`25RTrt  ,0<U_`abce}4Ekt$8  ( / ` p ,,---.*00000ost~ #(,-ƨ&.GT`})7CDLN|}ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu'5EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A ",,;0679;D 3?GHQ\/78@17:;<>?H4;>CZ[04A4G4V4a0ajj0k7kcmdmgmkmOoPoQoooooooo.0GejmBE7;muv"#%&+07DK%&Z [ -&-'-(---.-1.2.-0-!Z [ ,`,C.D.op"#%&+0d f `fgijd f   7:;<>?HPZ  120K3Q S d f   )*1245:;EGIKNPQWX]dfmpu pxz01WYK`pq0M$%()0?@Y^_`kp : ; < = A I M N Q X b d       ) * 1 2 4 5 7 8 : > A Y ] ^ _ f p r u v w       ) * 1 2 4 5 : = > @ A G I K M \ ^ _ b f x       ) * : = > A E X [ ] ^ ` b f p w     ; = > ? A F I J M N P T W X b f 124?GO\56789:HIm-1289;=?XZ^aquIJNPWXYZ^`[`}257@R`mnq  y#'),0239@ADnpuVWXabcems4>BEMNkt,46;JM FHNPXYZ[\]^_~  ( / ` p r t !!!*$@$K$`$t+v+++,,,,&-'-(---.-0-h-o-q-------------------.^.....///*000@0A00011011111112 2ǤФ,@ost~ΧЧҧӧԧէݧ %',0:@xĨΨڨ&.GRS_}Ωϩکީ)/135@CDLMNPZ\|}ªê۪  '(/0lpnp78=>?@BCEF0STghlpuv  '(;<>?NP^47$-KPv(0do{|7@V`h  679<=?VW  : ? @            6 @ I P Y `       6 9 V X s x       I      $ 0 : @ f n    `(0FQZp8GNRpqsuv',-6HPstw/248>?A )*1245:=>?@AEGIKMPQ]d8@BEFG\]^_b3;=>?AEPZ`m "&'0G/89;<   01679?CDGPZ 39;?GPQWY\   0>?@FPmp  1FGPZ`fgij6>@CZ#$o$p$u$$D%//004A4G4`4CDGFaa*a-a0a:ah9j@j_j`jjjnjjjjjjjjk0k7kFkPkZk[kbkckxk}kk@mzm@nnoKoPoooooop֌ #23PSUVdhpkp}P')ejmBEFW`yUV  :;?@EFGJQR7;muv%+0n-7>@JNPDKLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP# Y BCEFpxz~&+]bfk FHNPXYZ[\]^_~] ^ &!'!ef@FpK`pq0K$%().Y\ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = > @ A E M N U X b d    < = > A F I J N U W b d  ; = > ? A E M N W X b d 124;GO56789:q-1289;=?XZ^aqu]`25RTrt  #')239<VWX_`abcems}4>BEkt,468 ,,---.*00000ost~ %',-Ĩƨ&.GRST)/1357CDLM|}ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu',-5st/248>?AB;=>?@AMNWXfmpu8@BEFG^_3;=>?A "&',/89;01;?CD 39;?GHQWY\078>?@17:;<>?FGH6;@CZ[@4A4G4V4a*a-a0ajj0k7kOoPooooooo.0Gejms{BE7;muv"#%&+07DK #Q S d f 0:e f a:a'Q S d f       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w 0: 0U....///000000 0!0.0001070@000111111 2H2222223X3q3{33334MNnpEGafoooo`rPR:@ ^KP#+00000 0.01070800011122`22`}EGaf 7  78=>?@BCEFP#00000 000607080<0>0A000000EGafpq 23PSDGF kFkPkZk[kbkckxk}kk -0>@JNP `}`Z [ ] ^ 1.2.A.B.      -.  ..00cd ef30:A[_`a{uvxz~01WYZ` jnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789:>HImqJPIJNPWXYZ^`[]`irmo5@T`mnqrt  y ,0<Fnpu _`}MPZkt8@JM~ FHNPXYZ[\]^_~  ? A T U q r  !!!! !!!!!!$!%!&!'!(!)!*!:!?@BCEF>P 035MPpuv!;?@A[e  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : @ f i n o  '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:@G;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CP[ #$o$$D%//004@4V4`4CDGFa:ah9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@mmmpmzm@nnoKoOoooooooooop֌ #23PSUVdhpkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#%p q t  """"""56OPop""""""56OPop'(-/0;A[_`a{24?AIJ &4YZ #)-/02568:BCEFuv{~`*.01WYZa @AV`jpstuyPp N O Q V X ` d f p q x y       ) * 1 2 3 5 6 8 : < = > C G I K N \ ] f u       ) * 1 2 4 5 : < D G I K N U X _ b f p q r     ) * 4 5 : < E F I J N U W ] ^ ` b f p        ; = D F I J O T X ` b f p z 34;@OPZ   *5678>CDHIMNRSWX\]ijmqstuzJPIJNPWXYZ^`[]` FHNPXYZ[\]^_qrstuvwxyz{|}    ' ( '-(---.-------------------00A000000001.1/101114MN ˧Чҧӧԧէڧ`wz  '(/fh !"#%'*;=oo#23PSUVdh%+:@ ^KP#'(-/0;A[_`a{24?AIJ &4YZ #)-/02568:BCEFuv{~`*.01WYZa @AV`jpstuyPp N O Q V X ` d f p q x y       ) * 1 2 3 5 6 8 : < = > C G I K N \ ] f u       ) * 1 2 4 5 : < D G I K N U X _ b f p q r     ) * 4 5 : < E F I J N U W ] ^ ` b f p        ; = D F I J O T X ` b f p z 34;@OPZ   *5678>CDHIMNRSWX\]ijmqstuzJPIJNPWXYZ^`[]` FHNPXYZ[\]^_qrstuvwxyz{|}    ' ( '-(---.-------------------00A000000001.1/101114MN ˧Чҧӧԧէڧ`wz  '(/fh !"#%'*;=oo#23PSUVdh%+:@ ^KP#%OP_a   * / ` e f j d1e1s{ .0?7@T`mnqrt  y ,`,,,,-0.1.<.=.@x0T_`  '(;<>?NP^47@$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I       @ f i    (0ZpNRvPwB )*1245:=EGIKNPQWX]dfmpuEPZ`m,0G<   679;GPZHP  78FPmp  7:;<>?HPZ;>[ #$o$p$u$$D%//0V4`4CDGFa:a@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoooop֌ pkp}"#%&+'(-/:;uv      ' ( 0000KMP@\^_`k ,0<@ADnpu _`}MN8;JM0-h-p-q---ǤФ,-ƨΨڨ./0Ωϩکީ7@NPZ\`ê۪p ( 0 : 56H\]b`fgijh9joKoOoooo-0>@JNPLPZ^`  xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MN8;JM FHNPXYZ[\]^_~ e f r t !!!*$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///@0A00011011111112 2ǤФ,@ΧЧҧӧԧէݧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[#$o$p$u$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP# 24?A@BCEtuz{~uyX ` 3 4 6 7 Y \ ^ _ \ ^ 34  CDMNRSWX\]ijstuwxy,/0;<NOkxyqrstuvwxyz{|}~     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!2!3!:!;!A!E!J!P!!!!,"."/"1"`$$ * *t*w***|,~,o-p-....//00607080;000000111d1e111122 2H2P2224pq\`ij !"#%'*np78=>?@BCEF>P0EGSTghlpstuv^eUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPR  '(-/0;A[_`a{Z` jn0?^_d f p q v w p q r x w O P X _ p z ?@OPZ\   *56789:>JP`ir}mo57 @ADF NPZkt;@~     $ ( * 0 3 5 6 8 < = > A G J T U W X _ !!! !!!!!! !#!$!%!&!'!(!)!*!:!;!A!E!J!N!O!P!!!!,"."/"1")#+#*$@$K$$ * *t*w***t+v+++,,,,-p-q-.^......./0000!000107080=0@0111111H2P222MNǤ pt~ "(,0:txΨШ.0_`Ωީ\`wzު[\jl>PEG47@u $opW`w     ? @       @ I P Y }        9 @ X ` x        n o   `'QZGNRf@Dtv8>KPZ\]^AD`m:@;<DG?G AFZmprCP p$u$//04@4njpjjj7k@kDkFk[kbkmmpmnnooP')^jmBEFW`y7;muvOP^`q>,0 /0Pjm`fw{ HPZ`T`np}wx|}ctvx`*.@AnpN O Q S x y  4 5 X Z     ; = _ ` _airV W X _ '!(!2!3!N!P!!!m,w,~,,-&--.*.0.1.3.5.6.9.:.00.000.1/112*,@op|"pq`}0[df@uooF0:A[_`a{24?AIJ &4YZ #)-/02568:BCEF{~`*.01WYZa @AV`jpstuyPp N O Q V X ` d f p q x y       ) * 1 2 3 5 6 8 : < = > C G I K N \ ] f u       ) * 1 2 4 5 : < D G I K N U X _ b f p q r     ) * 4 5 : < E F I J N U W ] ^ ` b f p        ; = D F I J O T X ` b f p z 34;@OPZ *5678>CDHIMNRSWX\]ijmqstuzJPIJNPWXYZ^`[]` FHNPXYZ[\]^_qrstuvwxyz{|}'-(---.-------------------00A00000000001.1/101114MN ˧Чҧӧԧէڧ`wz  '(/fh !"#%'*;=oo#23PSUVdh%+:@ ^KP#47PYZ!)-/03478:@FOPXYc`a@KS U   kt,/0;<NOkxy? A !!.!/!!!$%()`,h,w,|,,,..!0001060;0=022MN"0hi>P 0EGst.0GP')^es{BEW &7PSUVX[\cdhjrs !#234567XYV` U V Q R u v D E b d Z [ b d D E b d 9:T U !!++h,m,op|~˧ΧڧݧϩЩ`d.0@j_j`jjjOP+00!0*080;04MNnpoop֌ p:@ ^KP#opKA[a{puvxz~01WYZ` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 124@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!:!?@BCEF>Ppuv!;A[f  '(;<>?NP^@u -KPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ J f o  '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$o$$D%//004A4G4`4CDGFaah9j@j_jpjjjjk0k@kDkckxk}kk@mmm@nnoKoPoQooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#////11///0`PDF0 @ jk p101 @`0p5 : X ` x  ) * 1 2 4 5 : \ ^ _ ` q r  ) * : X [  ; pK`pq0K$%().Y\ : ; < = A I Q X b d   < = A C G I K N Q R p r u v   < = > @ A E U X b d    < = > A F I J M U W b d  ; = > ? A E W X b d 124;GO56789:q-1289;=?XZ^aqu]`25RTrt  #')239<VWX_`abcems}4>BEkt,468  ,,---.*00000ost~ %',-Ĩƨ&.GRST)/1357CDLM|}ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu',-5st/248>?AB;=>?@AMNWXfmpu8@BEFG^_3;=>?A "&',/89;01;?CD 39;?GHQWY\078>?@17:;<>?FGH6;@CZ[@4A4G4V4a*a-a0ajj0k7kOoPooooooo.0Gejms{BE7;muv"#%&+07DK  M N M N M N M N pK`pq0K$%().Y\  ; < = A I M N Q ` b d x   < = A C G I K N Q R p r u v    ) * 1 2 4 5 : < = > @ A E M N U X \ ^ _ ` b d q r     ) * : < = > A F I J N U W X [ b d   = > ? A E M N W X b d 124;GO56789:q-1289;=?XZ^aqu]`25RTrt  #')239<VWX_`abcems}4>BEkt,468  ,,---.*00000ost~ %',-Ĩƨ&.GRST)/1357CDLM|}ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu',-5st/248>?AB;=>?@AMNWXfmpu8@BEFG^_3;=>?A "&',/89;01;?CD 39;?GHQWY\078>?@17:;<>?FGH6;@CZ[@4A4G4V4a*a-a0ajj0k7kOoPooooooo.0Gejms{BE7;muv"#%&+07DK P`,- $/0 0@p`P0040@  ,`,0Pp ` a@a @  @ @00/0@``  @ `  01` ` P@mmPPФ @ P @`  p`@nn  oo`@jpjpP  0P0 P p kk/< = A E M N R S V X b d < = A C M N Q R u v < = A E M N b d < = V W b d A E b d 8;5678qrtv/178=?XZ^a34STst"#239:;<VW[_iklm8;lm,-78%&,-ĨŨ+.GJKO-.2357    9 ; <B*,13st/0AB;=8>BCFG39?@$&()/39;CD  35;?RTY\27?@67BCDEGH8;.a0a ;<BCg? @ N O ? @ G H F I ?@12UVns>@')46/145,-GI67&'-.5678>@*a,a K L J M @BKM89  : = > P Q S U X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J O W X b d 0;@FGO56789:>@q+9:?VZ^abegnqu25RTrt ,0<U_a}4Ekt$8  #(,-ƨ&.GT)7CDLN{~ª      8 ; 8Gpqsu'345EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A,,;0679;>?D 3?Q\/78@17:;<>?EFH4;>BZ[a0a@mCmcmmm     c  ; < > ? @ A I M O P   > ? @ A   > ? @ A   A E   > A W X 0124EF>?+-89;<VXbegn45#%),0239WXabcemn56DE$'*,#%'(ĨRT34MN{|}~EG,/56>@AEMNWXbd5678@BEF03;=>? ",-./8905=>@A9:WY/0>?FG46AB,a-a@mCmcmmm  : ; E I Q R U V   G I K M p r   ? @ U W    > A F H J N U V  ; = M O 1248GO9:rsz-/27:;qu23RSrs "'):;X[bceikls}4568BCklmt-467  &'Ũƨ&+JKOR)-./12CDLM|}ª    8 9 8<BGpqsu'*-.0145024568>?@Afmpu>@CE^_9;=>@A "$'(),38;=?@AB 59:;QRTW028>16:;<>?BCD68@AZ[a*a-a.a H I stvz<=.0<==> H I )* L M  W X %'CD24@     p 0`@%= > = > = > = > =>GH@A}    p q         MN~6723tu46 stŨƨ  45^`CE_`=>78;=59<>@A-a.a@mBmRfQ S Q R  >?fmpuA : X ` x  ) * 1 2 4 5 7 8 : Y ] ^ _  ) * 1 2 4 5 : \ ^ _ ` q r  ) * : X [  ; /@HIm!?@PRZ^abegnqu #2CRcmnqPc MSU4EM$MP #@^bfiqrs "0G)`pqtz{~ΫЫѫҫ۫       6 8uv'DEGHUs,?@)*1245:50@G , 0 3\/r 1l4aaCmcm  ] ^ T W z 023:XZ-4OS@N۫Z[LM!u v ;?^aUW37 @ABC;?GH*a-a.a/a-. r t KLNO  %%tw?@EF N O ABFG ?@:;),WX[_$&giqr  `b q r 789:`a? @ 34>?GHEFBC  9< = < = < = < = 9:45788 ; st67;=FG:;CDBCZ[c0:f p f p f p f p f p PZ 4@JFPPZ@JШڨ ЩکPZ@ I fp6@PZPZ0<PZPmPZPZ0a:apmzm-.0: P Q S U d f p r       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f t u v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z /0;@FGOPZ 456789:@HImqJKLNOP5@T`mnqrt ,0<Fnpu _`}MPZ8@JMP    t u %%(,-@tƨШڨ.0TЩک7@NPZ`pqwzê         6 8 ; ? I GRv56@DHPt8>B )*1245:;EGIKNWX^dfmpuHPZ^bAPZ,0<@G;   679;DPZ@EFGHP  78APmr  7:;<>?HPZ`fgij;>CP[a:a@mmmpmzm3; = :;NO:;45z{,-STpq45+,=>45DEAB/a0akmmm) 5678;<{}67t u ^_34puªêHL78ceinuz+.{~ª7M N M N M N M N M N DEĨŨFG56MNBC?@9:?@M          89  EF>?899:>?ABBmCm cn^bfg"+PU: < > M N P U X b d > C G I K M > E G I K M U X b d > E F I J M U W b d > E F I J M W X b d 0:@FGHq~+6VZbcgiqu24RTrt ):;at5D&-#(ĨGO)3      8Fsu'3EG,4AB>EGIKMWXbd5B0=@A +,70679 Q\/78<17:;<>?@CD4;>Aa*acmkm  ` b r x           ` b      ` b      _ b !+RV #@C`cMSΫЫѫҫqs@A `b   PQ     `fgijlaa 0pP0P `P  pjjp 0--@pP&xz01WY`aKM.0?@\^_`k       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x      ) * : = E F I J N U W X [ ` d f p x      E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v++++++++++,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------J.....////0@0A00011/1111111112 223MMǤФ,@,0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0fpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$-KP{(0dop7@V`h  679<=?VW  : ? @              4 8 ; ? H P Y `       6 9 V X s x       I       `NRp56DPw? )*1245:<EGIKNPQWX]dfmpuZ[\]^EPZ`m,0@HP  78FPmp  7:;<>?HPZ #$o$p$u$$D%0/4DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kkoEoPooooooppkp}')FW`rUV  :;?@EFGJQR"#%&+KPZ^` !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp<@IPR`ft HPZ` ?@MPlצ5@   8xz01WYKM.0?@\^_`k       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x    ) * : = E F I J N U W X [ ` d f p x      E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt y ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v++++++,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------O.....////0@0A0001101111111112 223MMǤФ,@,0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0fpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$-KP{(0dop7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZNRp56GPw? )*1245:;EGIKNPQWX]dfmpuZ[\]_EPZ`m,0@<HP  78FPmp  7:;<>?HPZ`fgij #$o$p$u$$D%0/4DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kk@nnoEoPooooooppkp}')FW`yUV  :;?@EFGJQR"#%&+KPZ^`q !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 lp<@IPR`ft HPZ` ?@qswz{|`nצ5@   Jxz01WYKM.0?@\^_`k       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x    ) * : = E F I J N U W X [ ` d f p w      E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt y ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++/,0,_,`,,,&-'-(---.-0-h-o-q--------------------P.....////0@0A0001101111111112 223MMǤФ,@§ǧ,0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0hpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$-KP{(0dop7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZNRp56GPw? )*1245:;EGIKNPQWX]dfmpuZ[\]`EPZ`m,0@<HP  78FPmp  7:;<>?HPZ`fgij#$o$p$u$$D%0/40494DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooopPSdhpkp}')FW`yUV  :;?@EFGJQR"#%&+-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 mp<@IPR`ft HPZ`  rswzT`nptx{צ5@   Hxz01WYKM.0?@\^_`k       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x    ) * : = E F I J N U W X [ ` d f p w      E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt y ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++/,0,_,`,,,&-'-(---.-0-h-o-q--------------------P.....////0@0A0001101111111112 2MMǤФ,@§ǧ,0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0hpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$-KP{(0dop7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZNRp56GPw? )*1245:;EGIKNPQWX]dfmpuZ[\]`EPZ`m,0@<HP  78FPmp  7:;<>?HPZ`fgij#$o$p$u$$D%0/40494DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooopPSdhpkp}')FW`yUV  :;?@EFGJQR"#%&+-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 mp<@IPR`ft HPZ`  rswzT`nptx{צ5@   \xz01WYKM.0?@\^_`k       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : = E F I J N U W X [ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt y ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++/,0,_,`,,,&-'-(---.-0-h-o-q--------------------S.....////0@0A00011011111112 2ǤФ,@§˧-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$-KP{(0dop7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZNRp56HPw? )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0@<   679;GPZHP  78FPmp  7:;<>?HPZ`fgij#$o$p$u$$D%0/40494DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ PSdhpkp}')FW`yUV  :;?@EFGJQR"#%&+-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`ft HPZ`yzT`npux{ަ5@ K  xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPw? )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP  78FPmp  7:;<>?HPZ`fgij#$o$p$u$$D%//0/40494DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #PSdhpkp}.0GP')FW`yUV  :;?@EFGJQR"#%&+-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`ft HPZ`T`npux}9@ K  xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP#  xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP#  xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MN8;JM FHNPXYZ[\]^_~ e f r t !!!*$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///@0A00011011111112 2ǤФ,@ΧЧҧӧԧէݧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[#$o$p$u$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP#  @PF`btvz{~ PQ]^1WY`a   !;@S`np   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\Z_ FHNPXYZ[\]^_~ / 0 G j q t !9!S!!!!""###{#$%$@$K$`$$%%%%&&&p&''' ' '(')'L'M'N'O'S'V'W'X'_'a'h'v''''''080?0@0A0000001-11111122 2D2`2|22222223w3{3333N.78=>?@BCEF@P $0EISTghlpstuv_apPF`btvz{~ PQ]^1WY`a   !;@S`np   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIjqZ_ FHNPXYZ[\]^_~ / 0 G j q t !9!S!!!!""###{#$%$@$K$`$$%%%%&&&p&''' ' '(')'L'M'N'O'S'V'W'X'_'a'h'v''''''080?0@0A0000001-11111122 2D2`2|22222223w3{3333N.78=>?@BCEF@P $0EISTghlpstuv_a pPF`btvz{~ PQ]^1WY`a   !;@S`np   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIjqZ_ FHNPXYZ[\]^_~ / 0 G j q t !9!S!!!!""###{#$%$@$K$`$$%%%%&&&p&''' ' '(')'L'M'N'O'S'V'W'X'_'a'h'v''''''080?0@0A0000001-11111122 2D2`2|22222223w3{3333N.78=>?@BCEF@P $0EISTghlpstuv_a  "4PO`ctvz{~1WY`a   !;@V`np-0K   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_GHIJNPWXYZ^` GH[a}w x FHNPXYZ[\]^_~ G H N j q t !;!S!!!!""#|#}##$'$@$K$`$$%%%%&&&r&''' ' '(')'L'M'N'O'S'V'W'X'_'a'h'v''''''()....////0;0>0@0A0000001-11111122 2D2`2|22222223w3{33334MN¤ŤƤǤ.78=>?@BCEF@P $0EISTghlpstuv_a $ "4PO`ctvz{~1WY`a   !;@V`np-0K   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_GHIJNPWXYZ^` GH[a}w x FHNPXYZ[\]^_~ G H N j q t !;!S!!!!""#|#}##$'$@$K$`$$%%%%&&&r&''' ' '(')'L'M'N'O'S'V'W'X'_'a'h'v''''''()....////0;0>0@0A0000001-11111122 2D2`2|22222223w3{33334MN¤ŤƤǤ.78=>?@BCEF@P $0EISTghlpstuv_a $0K&(N'*UV  :;?@EFGJQRצ  !"4PP`ptvz{~1WY`a   !;@V`-0K   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_GHIJNPWXYZ^` GH[a}w  7@T`mnqrt x FHNPXYZ[\]^_~ S W X _ d j r t !;!=!L!S!!!#$'$@$K$`$$%&&&&~&&&''' ' '(')'L'M'N'O'S'V'W'X'_'a'''''''''+....////0@0A00011-11111112 2D2Q2|222223w3{33334MNǤ.0k78=>?@BCEF@P $0GISTghlpuv $0K&(N'*UV  :;?@EFGJQRצ  87PX]ptvz{~1WY`a  !;@Y`KMP : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 5 : < D G I K N V X \ ^ _ b f r       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_GHIJNPWXYZ^` GH[a}w  7@T`mnqrt x ,0<@ADnpul FHNPXYZ[\]^_~ U W X _ d j r t !?@BCEF@P $0STghlpuv  '(;<>?NP^47@ $0K  679<=?@'*WUV  :;?@EFGJQRצ  \BPptvz{~1WY`a  !;@_`KMn : < N P U X q } ~       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 5 : < D G I K N V X \ ^ _ b f r       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_IJNPWXYZ^`[_}w  7@T`mnqrt x ,0<@ADnpu  FHNPXYZ[\]^_~ d j r t !M!S!!!#$'$@$K$`$&&&''' ' '(')'L'M'N'O'S'V'W'X'_'a'''''''''''+,/,0,_,,,,&-0-f-o-p-------------------........////0@0A00011-1111111112 2D2P223MMǤ,.0kp78=>?@BCEF@P $0STghlpuv  '(;<>?NP^47 $0K  679<=?@         4 8 ; ? H P Y '*FWUV  :;?@EFGJQRצ  pptvz1WY`a  !;@_`KMn : < N P U X q {       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 5 : < D G I K N V X \ ^ _ b f r       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_IJNPWXYZ^`[_}w  7@T`mnqrt x ,0<@ADnpu LP} FHNPXYZ[\]^_~ d j r t !O!S!!!#$'$@$K$`$&&&''' ' '(')'L'M'N'O'S'V'W'X'_'a'''''''''''+ +$+,/,0,_,`,m,t,x,,,,&-0-f-o-p-------------------........////0@0A00011-1111111112 2D2P223MMǤ ",@x.0kp78=>?@BCEF@P $0STghlpuv  '(;<>?NP^47 $0K  679<=?@             4 8 ; ? H P Y  o#$c$p$t$'*FW`rUV  :;?@EFGJQRצ  xz$1WY`a !_`KM : < N P U X s {       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f r       ) * 4 5 : = E F I J N U W X Z ` d f p x       ) * : = E F I J N W X ` d f v y ;?\HImqZ_IJNPWXYZ^`[_}w  7@T`mnqrt x ,0<@ADnpu LP}8;JM FHNPXYZ[\]^_~ e j r t !P!S!!!#$'$@$K$`$&&&&&''' ' '(')'L'M'N'O'S'V'W'X'_'a'''''''''''M+P+U+,/,0,_,`,p,q,~,,,,&-0-f-o-p--------------------1.....////0@0A00011.1111111112 2D2P223MMğǤ,@`bt|,@xŨΨڨT_`7@NPZ\`.0kp78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?@   : ? @          4 8 ; ? H P Y  o#$c$p$t$')FW`rUV  :;?@EFGJQR,0צ  xz&1WY`a !_`KM.0? : < O P V X s y       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f r       ) * 4 5 : = E F I J N U W X Z ` d f p x       ) * : = E F I J N W X ` d f v y ;?\HImqIJNPWXYZ^`[_}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e j r t !!!#$'$@$K$`$&&&&&&'''' ' '(')'L'M'N'O'S'V'_'a'''''''''''M+P+Z+,/,0,_,`,,,&-0-f-o-p--------------------2.....////0@0A00011.1111111112 223MM̟ǤФ,@`bt|,0:@xŨΨڨT_}Ωϩکީ7@NPZ\|ê۪.0np78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?VW`   : ? @          4 8 ; ? H P Y `   6 9 V X s x   I ` o#$c$p$t$0/4')FW`rUV  :;?@EFGJQR,0 /12=>?@BCFGJOWX_`yz{}2@Iצ5  xz(1WY`aKM.0?@\^_ x y       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x       ) * 4 5 : = E F I J N U W X Z ` d f p x       ; = E F I J O W X ` d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e j r t !!!#$'$@$K$`$''''''M+P+Z+,/,0,_,`,,,&-0-f-o-q--------------------2.....////0@0A00011.1111111112 223MM̟ǤФ,@t|,0:@xŨΨڨT_}Ωϩکީ7@NPZ\|ê۪  '(/.0np78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?VW`   : ? @          4 8 ; ? H P Y `   6 9 V X s x   I `NRp o#$c$p$t$0/4h9j')FW`rUV  :;?@EFGJQR,0 /0jp;@IPR!067}?@AB>Ph &(,-.045AEPtצ5@  Jxz(1WY`aKM.0?@\^_ x y       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x       ) * 4 5 : = E F I J N U W X Z ` d f p x       ; = E F I J O W X ` d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e j r t !!!#$'$@$K$`$''M+P+Z+,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------<.....////0@0A00011.1111111112 223MM͟ǤФ,@,0:@xŨΨڨT_}Ωϩکީ7@NPZ\|ê۪  '(/np78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?VW`   : ? @              4 8 ; ? H P Y `   6 9 V X s x   I `NRp56D o#$c$p$t$0/4h9joEoPoooo')FW`rUV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp;@IPR!067}?@AB>@DPhAEPtצ5@  Jxz(1WY`aKM.0?@\^_ x y       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x       ) * 4 5 : = E F I J N U W X Z ` d f p x       ; = E F I J O W X ` d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e j r t !!!#$'$@$K$`$''M+P+Z+,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------<.....////0@0A00011.1111111112 223MM͟ǤФ,@,0:@xŨΨڨT_}Ωϩکީ7@NPZ\|ê۪  '(/np78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?VW`   : ? @              4 8 ; ? H P Y `   6 9 V X s x   I `NRp56D o#$c$p$t$0/4h9joEoPoooo')FW`rUV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp;@IPR!067}?@AB>@DPhAEPtצ5@  Jxz(1WY`aKM.0?@\^_ x y       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x       ) * 4 5 : = E F I J N U W X Z ` d f p x       ; = E F I J O W X ` d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!#$'$@$K$`$''M+P+Z+,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------<.....////0@0A00011.1111111112 223MM͟ǤФ,@,0:@xŨΨڨT_}Ωϩکީ7@NPZ\|ê۪  '(/np78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?VW`   : ? @              4 8 ; ? H P Y `   6 9 V X s x   I `NRp56D o#$c$p$t$0/4h9joEoPoooo')FW`rUV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp;@IPR!067}?@AB>@DPhAEPtצ5@  xz01WY`aKM.0?@\^_       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x      ) * : = E F I J N U W X Z ` d f p x       ; = E F I J O W X ` d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!#$'$@$K$`$t+v++++++++,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------C.....////0@0A00011.1111111112 223MM͟ǤФ,@,0:@xŨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0`dfnp78=>?@BCEF@P .0STghlpuv  '(;<>?NP^47$0KP{(0dop7@V`h  679<=?VW   : ? @              4 8 ; ? H P Y `       6 9 V X s x       I `NRp56DPw> )*1245:<EGIKNWX]dfmpuEPZ #$o$p$u$0/4h9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kkoEoPooookp}')FW`rUV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp;@IPR-0~KPz{CEt HPZ`צ5@  xz01WY`aKM.0?@\^_       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x      ) * : = E F I J N U W X [ ` d f p x       ; = E F I J O W X _ d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!#$'$@$K$`$t+v++++++++++,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------C.....////0@0A00011.1111111112 223MM֟ǤФ,@,0:@xŨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0fpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$0KP{(0dop7@V`h  679<=?VW  : ? @              4 8 ; ? H P Y `       6 9 V X s x       I       `NRp56DPw> )*1245:<EGIKNPQWX]dfmpuEPZ,0@ #$o$p$u$$D%0/4DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kkoEoPooookp}')FW`rUV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp;@IPRz{t HPZ`צ5@   xz01WY`aKM.0?@\^_       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x      ) * : = E F I J N U W X [ ` d f p x       ; = E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!#$'$@$K$`$t+v++++++++++,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------E.....////0@0A00011.1111111112 223MM֟ǤФ,@,0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0fpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$0KP{(0dop7@V`h  679<=?VW  : ? @              4 8 ; ? H P Y `       6 9 V X s x       I       `NRp56DPw? )*1245:<EGIKNPQWX]dfmpuZ[\]^EPZ`m,0@  78FPmp #$o$p$u$$D%0/4DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kkoEoPoooooopkp}')FW`rUV  :;?@EFGJQR"#%&+KPZ^` !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp<@IPRt HPZ` (013?@LP_צ5@   xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MN8;JM FHNPXYZ[\]^_~ e f r t !!!*$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///@0A00011011111112 2ǤФ,@ΧЧҧӧԧէݧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[#$o$p$u$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP#  P$-0`Ωϩکީ 9;]`"$%&'(qtuvsup()*,noyPW-.z| /1Y[*+/0%& =@uwOP AB`b$%;=be./,/WYnprs|}      ! # $       GH CD  !NO DEjk !fgabhiij`adeefbcghjkcd                                                      EFeg!"C !"@AKnpqtu0M`kp                       ! # $  FGgj"#&' BCop)*13[\kmqr'( 57()35\]mnpq}#$+, 79,-)*$%HIvxxz&'IKxywxMN  @A     !&'()*/3@AHIKnpx()*+,-/NY\kmqrsuxzAFHIJTUV`abfhi y@r                         " # $ 034EQTptvD rs      "&'()*/3HIqtux()*+,-/0MNY\kmqrsuxz@AFHIJTUVYghikp                              " # 34TUtvpK`pq0K$%().Y\ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d  ; = A E M N b d 124;GO56789:q-1289;=?XZ^aqu]`24RTrt  #')239<VWX_`abcems}456;<=BCkt,468   * / ` e j p ,,---.*0.000ost~ %',-Ĩƨ&.GR)/1357CDLM|}ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu',-5st/24568>?AB;=@Afmpu8@BEFG^_3;=>?A "&',/89;;=>?CD 39;?GHQWY\078>?@17:;<>?FGH6;@ABCZ[04A4G4V4a*a-a0ajj0k7kOoPooooo.0GgjsBE7;muv"#%&+07DL p !"`ntuKM$%().@\`abfgkp : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d  ; = A E M N b d 124;GO56789:q-1289;=?XZ^aqu]`24RTrt  y #')239<VWX_`abcems}456;<=BCkt,468  * / ` e j p ,,---.*0.000ost~ %',-@sĨƨ&.GR)/1357CDLM|}ª 0v{      8 ; ? @                  ( i n 0EFUp8Gpqsu',-5st/24568>?AB;=@Afmpu8@BEFG^_3;=>?A "&',/89;;=>?CD 39;?GHQWY\078>?@17:;<>?FGH6;@ABCZ[04A4G4V4a*a-a0ajj0k7kOoPooooo.0GgjsBE7;muv"#%&+07L 0-#$00000 000607080<0>0000112223X3EGa #UVdh011//12;>[ 00000000I!0"0?0@0000011211111}2~22222223 3U3V3a3b3q3s344*4,4444444H9I9J9K9::::;;>>>>r?t?@ @@@AA^B_BCCCCCCCC         6 8 ; ? I P Y    0:Boo֌+Q S d f 06@mzm f p 1.2.0:KA[a{puvxz~01WYZ` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 124@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF>Ppuv!;A[f  '(;<>?NP^ -ABJPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ J f o  '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$D%//004A4G4`4CDGFaah9j@j_jpjjjjk0k@kDkckxk}kk@mmm@nnoKoPoQooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#  _`}P`,, 0pA[a{ !#&-/02XY^_cpQ S &,]bfkxy/ 0 q r  *!,!2!3!N!O!`!!`,,.."ΧЧҧӧԧէݧ./0[\efj!;A[%+  " ; < t u  !!!!!!#!+!,!P!_!`!l!p!z!!!!!!!!!""""" " " """"""""""!"#"$"%"&"'"-"."/"4"8"<">"H"I"L"M"R"S"`"b"d"h"j"l"n"p"""""""""""""##`$$%L%P%u%%%%%%%%%%%%%%%%%%%%%%%%%%%&& & &&&&&@&A&B&C&`&b&c&f&g&h&i&k&l&n&o&p&&&&&&&&&&&&&&&&&&&&&&&W'X'v''U+Z+H2P2 .0jp+4EM8qsuv )*1245:`b   04#$&'*+<?@[^{~pxz~01WY  Kmpq0M$%()0?@Y^_`kp : = > P Q X b p     ) * 1 2 4 5 7 8 : Y ] ^ _ r u v w     ) * 1 2 4 5 : = > \ ^ _ b p x     ) * : = > X [ ] ^ ` b x     ; = > N P T W X b p y z OP *46789@HImLPIJNPWXYZ^`[`ab}2@R`mnq   y@A $MPZ~ FHNPXYZ[\]^_~  " $ 8 9 > D J V \ ] a e p r u } !!!!! ! !!!!!!!#!+!,!P!_!`!l!p!z!!!!!!!!!""""" " " """"""""""!"#"$"%"&"'"-"."/"4"8"<">"H"I"L"M"R"S"`"b"d"h"j"l"n"p"""""""""""""""# #####)#+###*$@$K$$%L%P%u%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&& & &&&&&& &9&<&@&A&B&C&`&b&c&f&g&k&l&n&o&p&&&&&&&&&&&&'''W'X'['a'b'e'h''''''))))))U+Z+t+v+++,,,,,-&-'-(---.-0-h-o-p-------------------..... ./.0.2.3.5.:.?.@.K.L.M.N.P.S.MNФ  *,@ost~ΧЧҧӧԧէݧ #(,089:@t &0G_`  '(/0lp)*P>@puv  '(;<>?NP^47$-KPv(0do{|7@V`h  679<=?VX  : ? @            6 @ I X Y `       6 @ V X s x       I      $ J f o    `(0FQZp'DEGHPstuvw,:;=>?A5GKOP]^_b0CE,;< 3:;@AFGPQ\  /@AZmr  1FG`fgij #$o$$D%//0X2^22222y3|3/4A4G4`4CDEEGFh9j@j_jpjjjjk0k:kDkEkFk[kbkckxk}kk@mnm@nnnnoKoPoQooo֌kp}P')ejmBEFW`yUV  :;?@EFGJQR7;muv%+0n-7>NPDKLq> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ .0jp%2JPv|t HPZ` T ?@AB#PZЩک)PZfpPQ^`PZPZaa0a:a  :.<. |}d f Z\  45JLab57NPZ\]a};@~       ' ( V W X \ ] ` ,,,-p-q-......*...0.2.3.5.<.?.@.B.C.K.L.M.N.P.].^.00 ΨШ.0ǩʩϩЩ@CDL]`WX  P X   9 @ n o GI@D8:;==>]^KOZ\AC<?DGAEAFCE p$u$njpjjj7k:kDkEknmpmnn3w x   tvuv`m?@EF pq ( * ;A0B0C0D0E0F0G0H0I0J0c0d0000000000000000000000000000000000012gq23PSUVdh}~;<=>F G ~  # # # #*#+#i'j'k'l'm'n'o'p'q'r's't'u'v'''''''''''''))))))))))))))))))))))))))))#.$.%.&.'.(.).*.00 0 0 0 0 000000000000000 0>?6789:;<=>?@ABCDEHIPQRSZ[\]^_ =>]^`bce[2^2222222z3|38494=4>4?4@4EEz  OP\cpK`pq0K$%().Y\ : = > P Q X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J N W X b d 56789:>@q]`25RTrt  ,0<4Dkt$8   * / f p ,,---.*000506000ost~ #(,-ƨ&.GT)7CDLN!"#$%&()*+,-/0v{      8 ; ? @   $ ( i n FQ8Fpqsu'5EGst,8>?AB;=>EGIKMWXbdfmpu5G^_0A,;0679;>@ABD 3:;?GHQ\/78@17:;<>?FGH4;>BZ[@4A4G4V4a0ajj0k7kOoPoQoooooo.0GejmBE7;muv"#%&+07DK  )*]^V.W.X.Y.Z.[.\.]. 3!"?@   DFb'd',,,,../.S.U.vxVX qr1OP\c       / 0 !"#$%&()*+,-/047494<4oo89TUpqĬŬ45PQlmܭݭ01LMhiخٮ,-HIdeԯկ ()DE`a|}аѰ $%@A\]xy̱ͱ !<=XYtuȲɲ89TUpqijų45PQlmܴݴ01LMhiصٵ,-HIdeԶն ()DE`a|}зѷ $%@A\]xy̸͸ !<=XYtuȹɹ89TUpqĺź45PQlmܻݻ01LMhiؼټ,-HIdeԽս ()DE`a|}оѾ $%@A\]xy̿Ϳ !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm89TUpqĬŬ45PQlmܭݭ01LMhiخٮ,-HIdeԯկ ()DE`a|}аѰ $%@A\]xy̱ͱ !<=XYtuȲɲ89TUpqijų45PQlmܴݴ01LMhiصٵ,-HIdeԶն ()DE`a|}зѷ $%@A\]xy̸͸ !<=XYtuȹɹ89TUpqĺź45PQlmܻݻ01LMhiؼټ,-HIdeԽս ()DE`a|}оѾ $%@A\]xy̿Ϳ !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm)*78=>?@BCEFP-.]\]akt}####&&&&&&&&& &9&<&h&i&&&&&&&&&&&&&&&&&&&&&&&&&&'' 'd'e'....///0000000 0*0005060;0=0@0B0C0D0E0F0G0H0I0J0c0d000000000000000000000000000000000001101111111122 2H2P2MNǤǩʩΩީ\]05EGIPQRXY_ghikl  ;<=>[\]^_fgqINRfEPp #pBDFQfy|}%2Jtvz{EHKt  &'0:<?wxT $ ' ""  ,-./:<~ D E  %< > G J 0000;0=000000000TVefooy|0:`jkmf p f p f p f p f p PZ *@JFP@JPZ *Шڨ 0 : @ J 6@PZPZ0:PZPZ`jjjjjPkZkpmzm@JPZ()[\{|:;<=    E F } ~ # # # #)#*#h'i'j'k'l'm'n'o'p'q'r's't'u'''''''''''''))))))))))))))))))))))))))))..".#.$.%.&.'.(.).B.C.U.V.W.X.Y.Z.[.\.0 0 0 0 0 000000000000000?@56789:;<=>?@ABCDGHYZ[\]^ ;<[\_`bcX2[22222y3z3/4047484<4=4>4?4EE^`3%&  jk y z 0 8 W X !! ! !89jk3$%+,\] ?@ !!""ij"#'(     9 ; ['a'.... .".vyE;@O@PPnpu _`}`ê۪,:<?G !/0DEFGMN>?BC` a lxz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MN8;JM FHNPXYZ[\]^_~ e f r t !!!*$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///@0A00011011111112 2ǤФ,@ΧЧҧӧԧէݧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[#$o$p$u$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ HPZ`    8;JMP!P! e f  ,0<@ADP 47@V`h  '(;<>?NP^47@  0 0Фtuz{YZ@A$%()q r FGCDx~,kxyq r  |,~,o-p-/.0.001060;0<00000  pqϩЩpqݪު\`ijpqN O o p @kDk@mCmkmmmoooooo0n7>KL! @AKnpq0M@Y`kp : = > P Q X b r     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 124@F@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq CDyPnpu U4EM$MPZx5!9!0-h-------------------00<0=0A0000000110111111124MNФ  *,no #@t &0G`})@CDL`pqwz{~ªê۪ݪ  '(/np)*78=>?@BCEF>Ppuvfpq  '(;<>?NP^ -ABJPvP(0d7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I  $ J N O P '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$D%//004A4G4`4CDGFaah9j@j_jpjjjjk0kckxk}kkCmkmoKoPoQop֌ #23PSUVdhpkp}  -NO !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#@E-a{      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOqrstwx{~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0`,kxy      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPX`hp~ ! !!!!!/!0!4!5!9!:!!F!J!N!O!!!0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqyz{|}§çħȧɧʧ˧ͧΧѧҧӧԧէ֧קا٧ڧۧܧ0[`ipA[(P  p  `nn4NUVh8Rl"<Vp6OPVp  %+"DZ [  1.2. : ? @ pK`pq0K$%().Y\ : = > P Q X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J N W X b d 124;GO56789:>@q+?VZ^abegnqu]`25RTrt  ,0<U_`}4Ekt$8 ,,---.*00000ost~ #(,-ƨ&.GT)7CDLN{~ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu'5EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A,,;0679;?@ABD 3:;?GHQ\/78@17:;<>?FGH4;>CZ[@4A4G4V4a0ajj0k7kOoPoQoooooooo.0Gejms{BE7;muv"#%&+07DK d p 0:Pw0@A@\^_@A    p+,<?^_|}~   2 5 @ A D E R S a e z  !!!! !!!!!!$!%!(!*!,!.!/!2!3!9!?\]^_  UV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~"#}  ; < > A I M N P   > A   > ? @ A G I K M W X   A E   > A F I J M W X >@+-1289;=VXbegn45#'),0239UVWXabcems56;<=BCE$,46.000#%'(ĨRT/135MN{|}~,-EG,/2456>@AEGIKNWXbd58@BEF03;=>? "&',/890679=>@ABC9:WY/0>?46>@AB*a-aQooooegmsTVXY  ps@nn      ] ^  oKoOoooo+,'')*&'#$Q S d f    E F I J P T d f 03pK`pq0K$%().Y\ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d  ; = A E M N b d 124;GO56789:q-1289;=?XZ^aqu]`24RTrt  #')239<VWX_`abcems}456;<=BCkt,468 ,,---.*0.000opt~ %',-Ĩƨ&.GR)/1357CDLM|}ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu',-5st/24568>?AB;=@Afmpu8@BEFG^_3;=>?A "&',/89;;=>?CD 39;?GHQWY\078>?@17:;<>?FGH6;@ABCZ[@4A4G4V4a*a-a0ajj0k7kOoPooooo.0Ggj{BE7;muv"#%&+07DK0:EPZ  y/ 0 000 0`m`@j_j`jjjnjpj f p ` ./`!0:`jf p f p f p r x f p x  X _ f y PZ 4@Ji}FPPZ@JPZp q t z P!!!!`$$$%v'',,00!0*080;011 2*2H2P2Q2`22222 *06Шڨ ЩکPZ4@y $ABJKX`y         @ I }      X ` x      0 : @ J `'QURp6@PZPZ0<PZPmPZPZ$o$0a:a`jjjjjPkZk[kbkpmzmnn`y@JPZq./> d f 06  h//@      P   `PPP```P%/Fa@ahk@mm@nnoooPP`pP` #\]bc #)-/0289BCEFSV< = > ? V X V W > ? W X ./av5600'(>?WX01a*agmim #)-/0289@Ftu~SV< = X ` 3 4 6 7 Y \ ^ _ > ? V X \ ^ V W > ? W X CDMNRSWX\]ijstuwxy./av56qrstuvwxyz{|}~  &!'!*!,!)#+#**00 !"#%'*np *78=>?@BCEFO'(>?WX01a*agmim^e&(1489?CILRTfh &4@BCEtu~ 9:PRSTWX\_vx"') * 1 2 4 5 X ` 3 4 6 7 Y \ ^ _ H I K M \ ^ H I J M CDMNRSWX\]ijstuwxy&'     ;<=>@BCD FHNPXYZ[\]^_~  &!'!*!,!!!!!!!"" " " " "$"%"&"'"A"B"D"E"G"H"I"J"`"a"b"c"m"r"t"v"x"z""""""""""""")#+#**L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0e0f0g0h0i0j0p0r0s0u0v0x0y0{0|0~000000000000000000000000000000000000000000000000000 !"#%'*np *78=>?@BCEFO.0KM89!a)ahmkm^e24?AIJ@BCEtuz{~uyX ` 3 4 6 7 Y \ ^ _ \ ^ 34  CDMNRSWX\]ijstuz,/0;<NOkxyqrstuvwxyz{|}~     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!2!3!:!;!A!E!J!P!!!!,"."/"1")#+#`$$ * *t*w***|,~,o-p-....//00607080;00000011111122 2H2P2224pq\`ij !"#%'*np78=>?@BCEF>P0EGSTghlpstuv^eUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPR[24?AIJ #)-/0289@Ftuz{~SVuy< = X ` 3 4 6 7 Y \ ^ _ > ? V X \ ^ V W > ? W X 34  CDMNRSWX\]ijstuz./av56,/0;<NOkxyqrstuvwxyz{|}~     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!2!3!:!;!A!E!J!P!!!!,"."/"1")#+#`$$ * *t*w***|,~,o-p-....//00607080;00000011111122 2H2P2224pq\`ij !"#%'*np78=>?@BCEF>P0EGSTghlpstuv'(>?WX01a*agmim^eUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPR1&(1289ACJLRTfh &4@BCEtuz{~ 9:PRSTWX\_vx"'uy) * 1 2 4 5 X ` 3 4 6 7 Y \ ^ _ H I K M \ ^ H I J M 34  CDMNRSWX\]ijstuz&'     ;<=>@BCD,/0;<NOkxy FHNPXYZ[\]^_~     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!2!3!:!;!A!E!J!P!!!!!!!!!!"" " " " "$"%"&"'","."/"1"A"B"D"E"G"H"I"J"`"a"b"c"m"r"t"v"x"z""""""""""""")#+#`$$ * *t*w***|,~,o-p-....//00607080;0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0e0f0g0h0i0j0p0r0s0u0v0x0y0{0|0~000000000000000000000000000000000000000000000000000011111122 2H2P2224pq\`ij !"#%'*np78=>?@BCEF>P0EGSTghlpstuv.0KM89!a)ahmkm^eUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPR    >@`!!!!00!0*080;0@uABJK$o$ r x x  X _ p y *4i}p q t z P!`!!!`$$$%v'',,11 2*2H2P2Q2`22222064uy $X`y         @ I }      X ` x      `'QURf:<Zm[kbknn`yq./> oop)irp q t z `$i$t$}$$$$$$$$%v''''''@ D `iR[ E r x x  X _ p y *4r}P!!!!i$t$}$$$$$$$$'''''',,00!0*080;011 2*2H2P2Q2`222224444*8+8M;N;NNNNNN N N$N%N]N^NNNNNNNNNNNNNNN OOpOqOOOPPQQFQGQiQjQkQlQmQnQASBSCSFSLSMSSSVVXXXXz^{^^_ ____bbbbLcMcggmmooss~vvvvyy,-01!"FGLMxy06klstxy4@y $ABJKX`y         D I }      X ` x      i'QU[f:<Zm$o$[kbknn`yq./>  de!"* +             ##));;mbnbP!!01`af g f g f g f g x y f g PQ !@AFGPQ@APQp q !!$$$%00mm !ШѨЩѩPQ0 1 @ A fg67PQPQ01PQPQPQPQ0a1a`jajjjPkQkpmqmnn@APQ  +12abg h g h g h g h y z | } g h QR!"ABijGHQRABQR _!a!p!q!`$a$t$u$$$$$v'w'''''!0"011 2!222NNXXXXz^{^ _ _!"ѨҨѩҩQRBCX[ !XYyz    @ A } ~     X Y x y     1 2 A B `aQRRSgh78QRQR12QRQRZ[QRQR$$$$,$-$4$5$O$P$X$Y$1a2aajbjjjQkRkqmrmnnnn`arswxABQRqr* + w p q rsi!j!y!z!i$j$}$~$$$$$''''''8090)2*2H2I222NNASBSbbstIJPQWX`e"#[\~    D E     \ ] | }     ij"#RS[\:;cd[k\knnijz{  78G q r {|m!n!}!~!pOqO~vvLMKLRSjk]^     F G   ^ _ ~      rs%&TUdelm\k]k+ r s o!p!!!NNCSDS!""#MNTUqr^_  G H _ `     ef|}!!NN,-+,UV_`  ]k^k%&;< !!  FQGQ^k_kNNQQ_k`kyy`kakakbkNNj!k!z!{!j$k$~$$$$$$nn  /0k!l!{!|!k$l$$$$$$$nnl$m$$$$$$$nn01m$n$$$$$$$nnn$o$$$$$$$nn12 o$p$$$$$$$nnp$q$$$$$$$nn23q$r$$$$$$$nnr$s$$$$$$$nn\ ] R!S!    u v v w 34X Y #s t t u *+,,12ABuw    H I {|&'d$e$<=[ \  S!T!  }~Z$[$]$^$e$f$ r s s t 01@A  |}`$a$b$d$Y Z ^ _ U!V! Y!Z!  a$b$=>P!Q! v w w x [!\!45_$`$Q!R!/23bch i h i h i h i z { } ~ h i RS"#BCjkHIRSBCRS a!b!q!r!a$b$u$v$$$$$w'x'''''"0#011!2"22244$N%NNNOOPPiQjQ ____01"#ҨӨҩөRSxy [_YZz{    A B Y Z y z   2 3 B C abSThi89RSRS23RSRS[\RSRS$$$$$ $#$$$-$.$5$6$J$K$P$Q$V$W$Y$Z$2a3abjcjjjRkSkrmsmnnnnabstBCRSrs/0##Ists$t$$$$$$$90:0I2J2DSES^_\]    E F     ] ^ } ~   jk#$ST\];<dejk{|  vv  st #$  :; ,-  &'  Q2R22$3$R2S2S2T2T2U2U2V2V2W2W2X2X2Y2Y2Z2T!U!wx  ~[$\$^$_$f$g$V!W!#34cdi j i j i j i j { | ~  i j ST#$CDklIJSTCDST b!c!r!s!b$c$v$w$$$$$x'y'''''#0$011"2#222 N NNNSS__#$ӨԨөԩSTkl  Z[{|    B C Z [ z {   3 4 C D bc TUij9:STST34STST\]STST$$$ $$$ $!$$$&$.$0$6$8$:$<$K$L$Q$R$W$X$3a4acjdjjjSkTksmtmnnnnbctuCDSTst01    ));;'tu:0;0J2K2Z2[2ESFSef  kl$%]^efkl|}    kl  tu $%   -.  '(  [2\2\2]2]2^2^2_2_2`222222222  w x x y 56+,] ^  t u u v 23xy  W!X!\!]!Z [ 45dej k j k j k j k j k TU$%DElmJKTUDETUt u c!d!s!t!c$d$w$x$$$$$y'z'''''$0%011#2$222NNVV$%ԨըԩթTU  |}  C D [ \ { |   4 5 D E cd !UVjk:;TUTU45TUTU]^TUTU$$ $ $$$$$!$"$&$'$0$1$8$9$<$@$L$M$R$T$i$j$4a5adjejjjTkUktmumnncduvDETUtu12dembnb%uvK2L222LSMS  lm^_fgg$h$lm}~       uv89 %&    ./  ()  2222223$4$222222222222X!Y!56efk l k l k l k l k l UV%&EFmnKLUVEFUVu v d!e!t!u!d$e$x$y$$$$$z'{'''''%0&0$2%22244*8+8NN OO%&ը֨թ֩UV  CDHIOP_`st!"}~      5 6 E F de!"VWkl;<UVUV56UVUV^_UVUV$$ $ $$$$$"$#$'$($1$2$9$:$M$N$T$V$j$k$5a6aejfjjjUkVkumvmnndevwxyEFUVuv23!"5vwl!m!|!}!!!L2M222DEJKQRfjtu#$  ~    mn_`ghh$i$mn~n!o!~!!EFLMSTlq  vw!!&'FGNOrs   !!!/0GHVW  )*    ,-Z![!  \$]$]!^!67fgl m l m l m l m l m VW&'FGnoLMVWFGVWv w e!f!u!v!!!e$f$y$z$$$$${'|'''''&0'0%2&222mQnQFGxy&'֨ר֩שVW    6 7 F G efWXlm<=VWVW67VWVW_`VWVW$$ $ $$$$$($)$@$A$N$O$k$l$6a7afjgjjjVkWkvmwmnnefFGVWvw34  wxM2N2  no`ahino  wx9: '(  !" 01  *+  78ghm n m n m n m n m n WX'(GHopMNWXGHWXw x f!g!v!w!f$g$z${$$$$$|'}''''''0(0&2'222M;N;NNbbggoo'(רبשةWX   7 8 G H fgXYmn=>WXWX78WXWX`aWXWX$$ $ $$$$$)$*$A$D$l$m$7a8agjhjjjWkXkwmxmnnfgGHWXwx45 xyN2O2  opabijop    xy ()  "# 12  +,    -.^!_!89hin o n o n o n o n o XY()HIpqNOXYHIXYx y g!h!w!x!g$h${$|$$$$$}'~'''''(0)0'2(222kQlQLcMc()ب٨ ة٩XY  8 9 H I ghYZno>?XYXY89XYXYabXYXY$$ $$$$$$*$+$D$F$m$n$8a9ahjijjjXkYkxmymnnghHIXYxy 56  yzO2P2pqbcjkpq  !  yz )*  #$ 23  ,-  9:ijo p o p o p o p o p YZ)*IJqrOPYZIJYZy z h!i!x!y!h$i$|$}$$$$$~'''''')0*0(2)222]N^N^^ss)*٨ڨ ٩کYZ  9 : I J hiZ[op?@YZYZ9:YZYZbcYZYZ$$$$$$$$+$,$F$J$n$o$9a:aijjjjjYkZkymzmnnhiIJYZyz  67  z{ABqrcdklqr!"JK  z{ *+  $% 34  -.  ./0:`jf p f p f p r x f p x  X _ f y PZ 4@Ji}FPPZ@JPZp q t z P!!!!`$$$%v'',,00!0*080;011 2*2H2P2Q2`222224444*8+8M;N;NNNNNN N N$N%N]N^NNNNNNNNNNNNNNN OOpOqOOOPPQQFQGQiQjQkQlQmQnQASBSCSFSLSMSSSVVXXXXz^{^^_ ____bbbbLcMcggmmooss~vvvvyy,-01!"FGLMxy *06Шڨ ЩکPZklstxy4@y $ABJKX`y         @ I }      X ` x      0 : @ J `'QURp6@PZPZ0<PZPmPZPZ$o$0a:a`jjjjjPkZk[kbkpmzmnn`y@JPZq./> de!"* +             ##));;mbnb34@$`$Pd f Z [ 0.1. I P%Q S d f       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    XYP@A  p!$%+,0:<?A[^_`{|}~~Z`    jn0?^_d f p q v w w x OPZ\:>JP`ino57 DF NPZa};@~ ( 0 D E R S _ }  # #)#+#h'v''''')))))),,,-p-q-./.0.P.R.^.00000 00010=0>00000 st~txΨШ.0_`Ωީ\`ު>@0STbcdhijl !;>?@[\]^_fopWX  ? @ P Y     9 @   n o UZGN@Dtv8>KPZ\]^AD`m<?;<DG?G AFprCP p$u$//njpjjj7k@EG _`? A T U 35MP?@)-.  ....:.<.@.A.].^.0000100013XYcd n o )*]^}~;<=>F G ~  # # # #*#+#i'j'k'l'm'n'o'p'q'r's't'u'v'''''''''''''))))))))))))))))))))))))))))#.$.%.&.'.(.).*.V.W.X.Y.Z.[.\.]. 0 0 0 0 000000000000000 0>?6789:;<=>?@ABCDEHIZ[\]^_ =>]^`acd  P{    : ; .... . . ....!.". / 0 00@x` s x   @A               9 : .... . . . ... .!.!$%(*+,-.0:<?A\]~Z`    jn0?^_d f p q v w w x OPZ\JP`ino57 DF NPZa};@~  ( 0 9 ; ? A D G R S T U _ ,,,-p-q-... . . ........ .*./.0.:.<.@.A.B.C.P.R.U.00=0>000 st~txΨШ.0_`Ωީ\`ު01EGIMPSTX_bhijl !<=abdfopWX  ? @ P Y     9 @   UZGN@Dtv8>KPZ\]^AD`m<?;<DG?G AFprCP p$u$//njpjjj7k?@ABCDGHYZ[\]^ ;<[\_`bc9 !#&-/02BCEFXY^_cS U    ..0Ggj{"#'( 9 ; B.C. 000 0AEbd....//0T_`   @A ( 0 : `$%+,<?^_`a|}~uv    p q  O P y z ?@ 456789mn@Aakt}D E R S z } !!!!! !!!!!!$!%!&!'!(!)!*!.!/!:!0@0001111111122*2H2P2Q2`222224MNǤ "(,6:wz[\jl)*@Pbcdgij >?@A\]^_7@ywy    ?@ 9 ; E G }  # #)#+#['a'h'v''''')))))).... .*.B.C.U.].00000 0>@5EGIY_ ;<=>[\]^_abdvypK`pq0K$%().Y\ : = > P Q X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J N W X b d 124;GO56789:>@q+?VZ^abegnqu]`25RTrt  ,0<U_`}4Ekt$8  ,,---.*00000ost~ #(,-ƨ&.GT)7CDLN{~ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu'5EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A,,;0679;?@ABD 3:;?GHQ\/78@17:;<>?FGH4;>CZ[@4A4G4V4a0ajj0k7kOoPoQoooooooo.0Gejms{BE7;muv"#%&+07DK    * / ` e f p 04@4s{ctuYZ Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 124@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~5!9!!!!!0-h-o-p-------------------/.0.00!0*0106080=0A0000000110111111124MNФ  *,no  #@t &0G`}ϩЩ)@CDL`wz{~ªê۪ު  '(/np)*78=>?@BCEF>Ppuvf  '(;<>?NP^@u -KPvP(0d7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I  $ J P o p '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$o$$D%//004A4G4`4CDGFaah9j@j_jpjjjjk0k@kDkckxk}kk@mmmoKoPoQooooooop֌ #23PSUVdhpkp}  -7>NOKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#Ca{      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOqrstwxz~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPX`hp~q r  ! !!!!!/!0!4!5!9!:!!F!J!N!O!p!!!!$$0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧ͧΧѧҧӧԧէ֧קا٧ڧۧܧ0[\jpA[(P  p  `nn4NUVh8Rl"<Vp6OPVp  %+0n"D0:`jkmf p f p f p f p f p PZ *@JFPPZ@JPZ *Шڨ ЩکPZ0 : @ J fp6@PZPZ0:PZPZPZPZ0a:a`jjjjjPkZkpmzm@JPZ),.:<~]^    0013PRTVXYcd de( *  ! / 0 _ ` 00!"?@ 789:=?d f JLbcgino57  DFNPZ\^`};=~< > G J ,,../.<.=.S.U.00vxΨШ/0ȩʩ]`VX abV X UZGIAD8:;=KMAC<?DEFGBDACCEnjpjjj7k9kDkEknmpmnn#A[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp!!!! !!!!!!!!$!%!&!'!(!)!*!.!0!4!>!@!E!F!`!p!!!$$,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧ͧЧѧ֧קا٧ڧۧܧݧ!;(p{|  P f @n`n4Nh  8:;?@EFGJQl"<Vp5Vo"0JPjp  #'*,/0<?@A\]^a|}~uvxz01WYZ]^` jkmnKM.789:=?@\`kpp q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789HImqLPIJNPWXYZ^`[]`bcgimn7@T`mnqrt   y ,0<Dnpu _`}MN\^`kt}8;=@JM FHNPXYZ[\]^_~     $ % ( 0 9 ; < > E J _ e f p q r } !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF@P 0135EGIPST_cdpuv  !<=>A\]^_ef  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ V X ` }        6 @ V ` s    I      ( 0 : @ f i n o  '(0QUZpIfv56@AHPtvw:;=>B )*1245:;EGIKNPQWX]dfmpuMPZ^bCDEPZ,0:<?@G;   679;EFGPZ?BDGHP  78CPZr  7:;<>?HPZ`fgij;>EP[ #$o$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjk9k@kEkPkZkckxk}kk@mmmnmzm@nnnnoKoOoooooooooop֌ #23PSUVdhpkp}.0GejmBEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjpvy:@ ^KP# +$%   ?@ 89ijLPZ^`0dopw   @AKVpqPp P>@puv` !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ 1WY 6 9 @  10111 @T56Hp,,,-//   679<=?@0+,xy-.@.00n  Q U d f  < kp}(IIJNPWXYZ^`[]}------------------  '(/@ f i    -&-'-(---.- ,`,"#%&+ `fgij  7:;<>?HPZ0K )*1245:<EGIKNPQWX]dfmpuIptuxz~&+]bfk FHNPXYZ[\]^_~&!'!ef@F a:a!      ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w -....//0000!0*080<04MNnpoooo:@ ^KP#.00011122`22`} 578=>?@BCEFP A0000 23PS      ΩЩکީ./0000112223X3fpq #UVdhB OA[a{&,]bfkxyq r  *!,!2!3!N!O!`!!`,,"ΧЧҧӧԧէݧ0[\efj!;A[%+  ,0<@ADP7@V`h  '(;<>?NP^Ф : ? @ Pw@\^_          E F I J P T d f EPZ  y`m  ` I       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x pP{@x      ;pKVpqQ U   *0.000 .;<.0Ggj{ ( 0 : .0?P 0Z- KMP`k`mnqrtPnpu%   oop     ) * : < E F I J N U W X [ ] ^ ` d f p w 0-h-o-q--- ;@\HImqǤ\A[a{tu~   @Ad f ?@57  e f q t  !&!'!*!,!2!3!N!O!`!!!!*$@$K$`$()t+v+++,.^./0000!00080<0@0000000111111 2`22223X34MN"0:./ϩЩ[\jl>@0STghl!;A[fpq47@P')gj{W`yUV  :;?@EFGJQRq>,0<@IPR`fw{ HPZ`T`np} Eik/0IJhiVWXYbc-.q r H!J!|,},"$VX&(Z\*,^`LNhiPQ R 0689 d f 0:d f ?^_`auv00 "[\jl>?@A+,<?|}~ D E R S z } !!@!E!K!L!!!!!!!!!!!!!!!!!!!!# #"#|#}#####%%%%%&o&p&'''''()))))))+0+E+G+M+)*bcdg \]^_  56OPopPp0pw p q  O P y z  456789mn@Aakt}!!!!! !!!!!!$!%!&!'!(!)!*!.!/!:!0@01111111122*2H2P2Q2`222224MNǤ(,689:wz@P7@ywy  ?@ G J ,,../.<.=.S.U.00vxΨШ/0ȩʩ]`RSVX abV X UZGIAD8:;=KMAC<?DEFGBDACCEnjpjjj7k9kDkEknmpmnn -.12'())p *+..d f -p'    !#&-/01   @AKVpqKMP`k`p 57`mnqrt` d f 0:    @JPnpu  3Q S d f ;=  /011oop ê۪#Q S d f    ) * : < E F I J N U W X [ ] ^ ` d f p w !",-./:<?@~      067?^_d f Z\  JLaino57 DFNPZ\]`};@~$ % < > G J ,,../.<.=.A.B.L.M.N.P.S.U.00 vxΨШ/0ǩʩ]`ߪPSTX  abdeWX  V X   : @   UZGNAD8=KNZ\AC<?DEFGBDADqrCEp$u$njpjjj7k:kDkEknmpmnn  0-h-o-q--- 57   `j 12;@\HImq0 0 Q S d f 0:pjjjj^_! 06#4MN !"#%'*:@ ^KP#A[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp!!!! !!!!!!!!$!%!&!'!(!)!*!.!0!4!>!@!E!F!!!,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧ͧЧѧ֧קا٧ڧۧܧݧ!;(p{|  P f @n`n4Nh  8:;?@EFGJQl"<Vp5Vo",  ( * p{|  " 0 2 ; = B C G J Q R e f !!! !!!!!!!!$!%!&!'!(!)!*!.!/!5!@!E!K!L!N!O!!!!""4"6"## # #$#,#}##########$$$%%& &h'v''+0+P+Z++++++++,P.R..Ф` 0IPXYcgp a  0Fo)#+#000 000100000Y_ ;<=>?@[aE00A0B0C0D0E0F0G0H0I0J0c0d00000000000000000000000000000000000'1(1122X3{33PS    " 0 2 ; = B C G J Q R e f !!! !!!!!!!!$!%!&!'!(!)!*!.!/!5!@!E!K!L!N!O!!!!""4"6"## # #$#)#+#,#}##########$$$%%& &h'v''+0+P+Z++++++++,P.R..00000 00010A0B0C0D0E0F0G0H0I0J0c0d0000000000000000000000000000000000000'1(1122X3{33Ф` 0ISX_cgp  ;<=>?@[  0Fo  "#_`/ 0 ? A T U 35MP?@pK`pq0K$%().Y\ : = > P Q X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J N W X b d 124;GO56789:>@q+?VZ^abegnqu]`25RTrt  ,0<U_`}4Ekt$8 ,,---.*00000ost~ #(,-ƨ&.GT)7CDLN{~ª 0v{      8 ; ? @   $ ( i n FQ8Gpqsu'5EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A,,;0679;?@ABD 3:;?GHQ\/78@17:;<>?FGH4;>CZ[@4A4G4V4a0ajj0k7kOoPoQoooooooo.0Gejms{BE7;muv"#%&+07DK   * / ` e f p 04@4s{106000000112223X3f #UVdhA[a{puvxz~01WY]^_` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z @HImIJNPWXYZ^`[mo2@R`mnq y4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!Ppuv!;A[  '(;<>?NP^@u -KPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ J f o  '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$o$$D%//004A4G4`4CDGFaah9j@j_jpjjjjk0k@kDkckxk}kk@mmm@nnoKoPoQoooooookp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjp ./  $ % RS:;_`' ( UV,-;<~ lmD E PQTU  ( * 0:`jklf p f p f p f p f p PZ *@JFPPZ@JPZ *Шڨ ЩکPZ0 : @ J fp6@PZPZ0:PZPZPZPZ0a:a`jjjjjPkZkpmzm@JPZ'(  !   _ ` 00E  !"#'(,-./0<A[_`a{uvxz01WY]^  jkmnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z 124;GOPZ *56789:>HImq+?@JVZ^abegnquIJNPWXYZ^`[]`mo5@T`mnqrt  y ,0<FPU_`}MPZkt8@JM~ FHNPXYZ[\]^_~      $ % ' 0 ? A D E T U _ e f p q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF>P 035MQRSTVpuv !;?@A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : @ f i n o  '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CP[ #$o$$D%//0V4`4CDGFa:ah9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@mmmpmzm@nnoKoOoooooooooo #UVdhkp}.0GejmBEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjp A0:A[_`a{uvx{~01WYZ` jnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789:>HImqJPIJNPWXYZ^`[]`irmo5@T`mnqrt  y ,0<Fnpu _`}MPZkt8@JM~ FHNPXYZ[\]^_~  ? A T U q r  !!!! !!!!!!$!%!&!'!(!)!*!:!?@BCEF^d>P 035MPqrstwxyz{|}~!;?@A[e  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : @ f i n o  '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:@G;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CP[ #$o$$D%//004@4V4`4CDGFa:ah9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@mmmpmzm@nnoKoOoooooooooop֌ #23PSUVdhpkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#YA[a{puvx{~01WYZ` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 123@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!:!?@BCEF^d>Pqrstwxyz{|}~!;A[f  '(;<>?NP^@u -KPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ J f o  '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$o$$D%//004A4G4`4CDGFaah9j@j_jpjjjjk0k@kDkckxk}kk@mmm@nnoKoPoQooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#E0:A[a{EFcuvxz~01WYZ` XYjn@M-@Y`kp< = M N Q U d f p q       ) * 1 2 4 5 7 8 : > C G I K M Q R Y ] ^ _ f v       ) * 1 2 4 5 : = E G I K M V X \ ^ _ d f p q r    ) * : = E F I J M U W X [ ] ^ ` d f p    ; = E F I J M N O T X _ d f p z ;@GMNPZ *@HImq789;JPIJNPWXYZ^`[mo4@T`mnqrt y ,09Fnpu _au45DEMPZ7@JM~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF>Ppuv!;A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 ` }        6 @ V ` s    I      ( 0 : @ f i j o  '(0FpFfpqv36@DHPsvw578>B )*1245:=EGIKMPQWX]dBCFGKPZ_b?@ADEPZ+0:@G9   679;=?CPZ35?P  78?@APZr  7:;<>?BCDFHPZ`fgij;>APZ #$o$$D%//004A4G4`4CDGFa/a0a:ah9j@j_j`jjjpjjjjjjk0k@kDkPkZkckxk}kk@mmmpmzm@nnoKoOoooooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+"#%&+0n-7>@JNODGHKLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjp:@ ^KP#A[a{EFcuvxz~01WYZ` XY`n@M-@Y`kp< = M N Q U d q       ) * 1 2 4 5 7 8 : > C G I K M Q R Y ] ^ _ p v       ) * 1 2 4 5 : = E G I K M V X \ ^ _ d q r    ) * : = E F I J M U W X [ ] ^ ` d    ; = E F I J M N O T X _ d z ;@GMN@HImq789;@PIJNPWXYZ^`[mo4@T`mnqrt y ,09Pnpu _au45DEM7MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF>Ppuv!;A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 ` }        6 @ V ` s    I      ( J f i j o  '(0FpFqv3DHPsvw578>B )*1245:=EGIKMPQWX]dBCFGK_b?@ADE+@G9   679;=?C35?P  78?@Ar  7:;<>?BCDFH`fgij;>A #$o$$D%//004A4G4`4CDGFa/ah9j@j_jpjjjjk0k@kDkckxk}kk@mmm@nnoKoOoooooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+"#%&+0n-7>NODGHKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjp:@ ^KP# ! / 0 _ ` 00 0:`jf p f p f p f p f p PZ *@JFPPZ@JPZ *Шڨ ЩکPZ0 : @ J fp6@PZPZ0:PZPZPZPZ0a:a`jjjjjPkZkpmzm@JPZ!xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MN8;JM FHNPXYZ[\]^_~ ( * / 0 _ ` e f r t !!!*$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///00@0A00011011111112 2ǤФ,@ΧЧҧӧԧէݧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[#$o$p$u$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP# Ga{      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOEFqrstwxz~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPX`hp~q r  ! !!!!!/!0!4!5!9!:!!F!J!N!O!p!!!!$$0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧ͧΧѧҧӧԧէ֧קا٧ڧۧܧ0[\jpA[(P  p  `nn4NUVh8Rl"<Vp6OPVp  %+0n"D xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MN8;JM FHNPXYZ[\]^_~ ( * e f r t !!!*$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///@0A00011011111112 2ǤФ,@ΧЧҧӧԧէݧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[#$o$p$u$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP# !0:A[a{~Z`    jn0?^_d f p q v w w x OPZ\:>JP`ino57 DF NPZa};@~ ( 0 D E R S _ }  # #)#+#h'v''''')))))),,,-p-q-./.0.P.R.^.00000 00010=0>00000 st~txΨШ.0_`Ωީ\`ު>@0STbcdhijl !;>?@[\]^_fopWX  ? @ P Y     9 @   n o UZGN@Dtv8>KPZ\]^AD`m<?;<DG?G AFprCP p$u$//njpjjj7k?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp!!!! !!!!!!!!$!%!&!'!(!)!*!.!0!4!>!@!E!F!`!p!!!$$,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧ͧЧѧ֧קا٧ڧۧܧݧ!;(p{|  P f @n`n4Nh  8:;?@EFGJQl"<Vp5Vo"0JPjp90:A[_`a{uvxz~01WYZ` jnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789:>HImqJPIJNPWXYZ^`[]`mo5@T`mnqrt  y ,0<Fnpu _`}MPZkt8@JM~ FHNPXYZ[\]^_~  ? A T U q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF>P 035MPpuv!;?@A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : @ f i n o  '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:@G;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CP[ #$o$$D%//004@4V4`4CDGFa:ah9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@mmmpmzm@nnoKoOoooooooooop֌ #23PSUVdhpkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjp:@ ^KP# 0:AGag!'AG  #$o$p$u$$D%   `j00000000ǤafMNФ ! ( * / 0 _ ` 00H( ) ) *  ! / 0 _ ` 00>A[a{~?@  / 0 O P Z [ ] ^ e f q t  !&!'!*!,!2!3!N!O!`!!!!*$@$K$`$()t+v+++,...0.2.<.=.A.B.C.D.^.000000 0!06070H2`2222222q3{33334MN"[\jl0EGSTghl!;A[aP')gj{WryUV  :;?@EFGJQRq>,0<@I`fw{ HPZ`T`np} xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MN8;JM FHNPXYZ[\]^_~ e f r t !!!*$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....///@0A00011011111112 2ǤФ,@ΧЧҧӧԧէݧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : @ f i    `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>[#$o$p$u$$D%//0V4`4CDGFa:ah9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@mzm@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ ^KP# A[a{1289!"4:UVXYZ[]`bcghmopqsuv}~     12BCEFptvx{~01Wayz}~ FHNPXYZ[\]^_~&!'!*!,!2!3!N!O!`!!!!$$,q,r,t,u,w,~,,,,,,-&-'-(---.-@n"02pyΧЧҧ֧ݧSTp!;A[Pp{|    P f p  @nnDWA[a{puvx{~01WYZ` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 123@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF^d>Pqrstwxyz{|}~!;A[f  '(;<>?NP^ -ABJPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ J f o  '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$D%//004A4G4`4CDGFaah9j@j_jpjjjjk0k@kDkckxk}kk@mmm@nnoKoPoQooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#I !(*-.0:A[_`a{uvx{~01WYZ` jnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789:>HImqJPIJNPWXYZ^`[]`mo5@T`mnqrt  y ,0<Fnpu _`}MPZkt8@JM~ FHNPXYZ[\]^_~  ? A T U q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF^d>P 035MPqrstwxyz{|}~!;?@A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : @ f i n o  '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:@G;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CP[ #$o$$D%//004@4V4`4CDGFa:ah9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@mmmpmzm@nnoKoOoooooooooop֌ #23PSUVdhpkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#;01IJPQRSTUVWC0:A[_`a{uvx{~01WYZ` jnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789:>HImqJPIJNPWXYZ^`[]`mo5@T`mnqrt  y ,0<Fnpu _`}MPZkt8@JM~ FHNPXYZ[\]^_~  ? A T U q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF^d>P 035MPqrstwxyz{|}~!;?@A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : @ f i n o  '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:@G;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CP[ #$o$$D%//004@4V4`4CDGFa:ah9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@mmmpmzm@nnoKoOoooooooooop֌ #23PSUVdhpkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#]A[_`a{puvx{~01WYZ` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 123@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF^d>Pqrstwxyz{|}~!;A[f  '(;<>?NP^@u -KPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ J f o  '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$o$$D%//004A4G4`4CDGFaah9j@j_jpjjjjk0k@kDkckxk}kk@mmm@nnoKoPoQooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ ^KP#Oabfghklmnosuwxyz     12BCefklmntuvw~ (`hpqtu|}%    !  ( * 02IJxy*!,!02IJxy*!,!N0:A[_`a{OP_a  ? A T U p !`$%v'',..000!00010d1e1>@EGs{AJST 0 0 0AAAAAAA$A*0|||||!|%||||||||||||||||||*4||||||||||||<8<@@@@@@@G@@@@@@@L@@@@@@@@@@P@@@@@@@@@@@@@aJiiiiiQiiiiiiiiXbiii#5!F,dm0/çî5Fb,dm0gCnu5wFb,R0ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZpZZZZZwZZ2 **** *******      11111111111111111111111111111mmmm@mmmmmmmmm#1mmm,e3:AHV%%j8SSSGSSS:SSSSLSZahvEE 8SSSGSSS:SSSS{{{{{{{/{{{{{{{{{{{{{{{{'BBBBBB)BBBBTUT(*1BIPWa|||||||||||| yyy0yyy9yyyy`gx66;;;;;;;j;;;;;u;;;;;;;;;;;yyy0yyy9yyyy#Dc.BBBBBBBBBB 77CC^^bbggyyBB,,,,,,,,????////FF##$$rruu uu8 8 tt tt ,,,,,,,,,,,,,,,,,,,,,,'''!!!K 1K 1,1,,,Q Q ,,,,,,,,,!,,,,W W ,,,,,,,, ,QPZr0XJ;#% B3=JZj44 mea,4AGOW33P".4@LXeq}    2 8:)ggLL.AtWrA C V ^ 6lv s wj#}j#j# bKZH 8xj#j#j#j#j#j#j#j#P oIj#{j#{j#II  Pj#Y a j#j#j#"s j# j# j# jq 3>M(7Xr }|Jw'/<DKhq,.111>111H1111RClCCtCCCCC~Cșۙ''''j'''t''''''''''''''''|||||||||||||||||| qqqqqqqqqqqqqqqqqqqqqqqq#+3;CKS[,.9BLpxXXXXmXv}XXXXXXXXXXX{{{{{{{"0{{{{{>{{{{{{{{{{{I]]]]]]]]]]]]]]]]]]########################$+2,.AAALAAAgAAAAxOOOOOOOOO (09AI6666N6^fn66666666v666*5I]UA "*2 '/7?GOW_mu}CLU]enw"'7""*2:BJRZGw .0]0]"O"O<!7tuxu0Le1<  0.,                   NNNNNNNN;;;;;;;-;-;;;N-----------888mmYY ; 0000000000000000..............||||||||||||||BBBBBBBBBBBBXXXXXXXMMMMMMMMMMMgg)))))''''''''''''''''''p6HHHdddddPPPPPkkkkH; OOOq)) jN-N-N-NN-;;;N----------------;NNN;-NNNN*N)))'''''''''#SNNNNNN EE???gg^'''''NN-N^^N888888;;NNRRRRRRR--;Ttt+vww~~}}%QQQNNN::hh777UUa```FFFFFFFFyuZZZ==<<zsss55(((x{&AAVIIfffffJJ,,,,,,,,,,,,,,,,llccdg"!!!!!!!!jjj [[[\\\\\\\//////WDDDS$$1eee K]bbbnGGGn#####;;;;;;-NN*****ooooirr''''__;        0P0000P000 P0f000000P00000000f Pf 00000@ 000 0 f 0a0000 00000000Щ0f 0P00 pm00@F00000f 0f 000P00000P`jf 0 P0@0P000000000f 0Pk00000000Ш000 00 000@0 j0f `P 000 0 0`Use of (?[ ]) for non-UTF-8 locale is wrong. Assuming a UTF-8 localeUse of \b{} or \B{} for non-UTF-8 locale is wrong. Assuming a UTF-8 locale 1 <%:98:5 9-*-=4-%59 5 2 &589!7!8965 & & - -9  % ))48- % % 484 % 4 4 4 -% 9 4 4 4 4889 4 49 4 49 4  4 48 4 9 4 4&&%&% 4 5 5    & 4 4 .0/ 5   39 4%% & 4 %44 44  @++ + 4 ? 44 & & &B C >&7657657, &876$3-5 3$8A 5 5 989989898989 889!!!!9,5 5 !!!!#!!!!!!#!!!#!##!!#!!#!!!!!!##!##!#!#!#!#!!##!#!##!!!!!!!!:%"#!5 5 5 5 5 5 5 !5 5 5 5 5 5 !5 5 5 5 5 5 5 5 5 5 5 5 5 5 ! %% :7676:76:76576765 5 5 5 %5%5 5 5 5 +%4  8% 4  4  .  @+++ 4   +   4'('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('('(0/) ))))))) 58 & & & & & & & A  4  , 44    @++  & 4 44 4   4   4   @  + @ ++ 4 4 % 4 44 4 4 @     4 4% 4 4    @+ 85 5 5 5 5&5 &5 5 5  44  44   4 4  4 49 4 4 4588## # # # # # !!!!! ;     ####!##### ###!########!#!#:3### # # # ##   ! ! ++! #       4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    &   ++++++ #0000700000000000000000@000000@0000000I000@00R000000000++++++         #%)*+-/23@LNUVv  NS 3NNSN 3-Nv-N}N*N+-N}%*+@CN-Nv#8Nv#+-8NvN#NN}NN'NN-NvN#@CN#NNN+NN}N-v*N)*(5m(5m5YZ{5 ,.0BNX| ,.0BNX| ",./0BJVX\jr| ",./01BJPVX\jr| "AV 0f.I,Bjg)*N4L6d ,B ,B BX| j ,BXj| , ,BNNd)*Tsz-as ,NNz)AUss23@L23@L 2349@CLd 2349@CLd 2349@CL 2349@CLd 2349@CLSd 2349@CL 23@L9@C239@CL9@@C23@LN ".0ABIJVXcj ".0ABIJVcj ".0AIJVc ".0AIJVc ENg?mRRQRZ{D<\_,,b,#.;  '0X9wwwwwwwwww0_b@ A( (!0 `  0000PP(( hhhhn  (("wXwYYY)G.LY^8c=  ?????   BBBBB`cfny|$SW[dptx|6:>GeSW[_cil///44444 -J}hd`\XTPLHD@<840,(#  ********** **%*************%  g ; mh@ N qqqqq4qqqqqqqO '147:=jy""aaaaEu">J">HH  !(/@ A( (!0 `  0000PP(( hhhhn  ((A (null)00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899DESTROYmn;Zx0N<[y1O\_,,b,wfhjmlMMMMMMMMMMMMMMMMMMMMMM[MMMMMMMMMMMMMMMMMMMǏMMMMMMMMMMMMMdamK Ka=R Nyg  { C }Uj} } } } } } } } } } } } } } } } } } } } } } } } 8888#88888888888880 ,,,,,,,u,,,,,,,,,,,,,,,,,,++++++wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww=======================   ======,!=#%=' ))) ))))))))))))))))))))) PPjP33333%3333U^jr{$-27KPUdm{ !&5BNX]bglu77D$).3<EJOXep $,16;@OR\nw!*/4FX]fw$ASXajs| ;DMV[`eDjs|R%.EW`iqz R Ҁ҉lҍpҧt?@@ @0@@ A( (!0 `  0000PP(( hhhhn  ((Identifier too longNumeric variables with more than one digit may not start with '0'  our @F=split(qF60,(FF[rMOQUTF-16 surrogate U+%04lXUnicode non-character U+%04lX is not recommended for open interchangeCode point 0x%lX is not Unicode, may not be portableMalformed UTF-8 characterMalformed UTF-8 character (unexpected end of string)Ax   "$&(*,.I2469;=?ACEGJLNPRTVXZ\^`bdfhjlnprtvy{}SC=ܧ   "$&(*,.02;~,AFHJLNo,m,p,˧b,n,d,ŧDEprv`bdfhjlnprtvxz|~   "$&(*,.1!"*bJ}c,Ƨ   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~`(8HY[]_h2!`!!$,`,:>g,i,k,r,u,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@BDFHJLNPRTVXZ\^`bdfhjl"$&(*,.2468:<>@BDFHJLNPRTVXZ\^`bdfhjlny{~ħ§ǧɧ̧Ч֧اڧ!p| P @nAx   "$&(*,.I2469;=?ACEGJLNPRTVXZ\^`bdfhjlnprtvy{}SC=ܧ   "$&(*,.02;~,AFHJLNo,m,p,˧b,n,d,ŧDEprv`bdfhjlnprtvxz|~   "$&(*,.1!"*bJ}c,Ƨ   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~`(8HY[]_h2!`!!$,`,:>g,i,k,r,u,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@BDFHJLNPRTVXZ\^`bdfhjl"$&(*,.2468:<>@BDFHJLNPRTVXZ\^`bdfhjlny{~ħ§ǧɧ̧Ч֧اڧ!p| P @na   !#%')+-/357:<>@BDFHKMOQSUWY[]_acegikmoqsuwz|~STVY[`cihoru   #%')+-/13e,<f,BGIKMOqsw{P0acegikmoqsuwy{}   !#%')+-/a-'---p   !#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{} 0@QSUW`prvzx|kN!p!!$0,a,k}}h,j,l,QqPRs,v,?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ACEGIKMOQSUWY[]_acegikm#%')+-/3579;=?ACEGIKMOQSUWY[]_acegikmoz|yef\aljSçȧʧdͧѧק٧ۧA( p `n"a   !#%')+-/357:<>@BDFHKMOQSUWY[]_acegikmoqsuwz|~sSTVY[`cihoru   #%')+-/13e,<f,BGIKMOqsw{P0acegikmoqsuwy{}   !#%')+-/a-'---24>ABJcK   !#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}a 0@QSUW`prvzx|kN!p!!$0,a,k}}h,j,l,QqPRs,v,?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ACEGIKMOQSUWY[]_acegikm#%')+-/3579;=?ACEGIKMOQSUWY[]_acegikmoz|yef\aljSçȧʧdͧѧק٧ۧA( p `n"a   !#%')+-/357:<>@BDFHKMOQSUWY[]_acegikmoqsuwz|~sSTVY[`cihoru   #%')+-/13e,<f,BGIKMOqsw{P0acegikmoqsuwy{}   !#%')+-/a-'---24>ABJcK   !#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}a 0@QSUW`prvzx|kN!p!!$0,a,k}}h,j,l,QqPRs,v,?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ACEGIKMOQSUWY[]_acegikm#%')+-/3579;=?ACEGIKMOQSUWY[]_acegikmoz|yef\aljSçȧʧdͧѧק٧ۧA( p `n"ALTx   "$&(*,.2469;=?ACEGJLNPRTVXZ\^`bdfhjlnprtvy{}C=ܧ   "$&(*,.02;~,AFHJLNo,m,p,˧b,n,d,ŧDEprv#+`dfhjlnprtvxz|~   "$&(*,.1p}c,Ƨ   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^bdfhjlnprtvxz|~(8HY[]_h2!`!!$,`,:>g,i,k,r,u,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@BDFHLNPRTVXZ\^`bdfhjl"$&(*,.2468:<>@BDFHJLNPRTVXZ\^`bdfhjlny{~ħ§ǧɧ̧Ч֧اڧ!p| P @n@ A( (!0 `  0000PP(( hhhhn  ((SSNJ 5RH1TW Y AB     ()*+,-./hijklmnoBBBBBBBBBBFFFIFLFFIFFLSTDFD5D;NFD=SsNJ 5H1TW Y ABEEBBEEEBBEBBBBEEBBEFfFiFlFfiFflStDvDeDkNvDmissinj eh1tw y aB !"#$%&'`abcdefgpBBtBBBBBB|BBfffiflffifflsttvtetk~vtmK*!S+!E&!!"*b`J    !Out of memory in perl:_@Bareword "%-p" not allowed while "strict subs" in useBareword filehandle "%s" not allowed under 'no feature "bareword_filehandles"'panic: allocmy illegal flag bits 0x%lxsubroutine signature"state""my"Can't use global %c^%c%.*s in %sCan't use global %.*s in %s$_panic: op_sibling_splice(): NULL parentpanic: op_contextualize bad context %ldundef...Scalar value @%-p%c%s%c better written as $%-p%c%s%c%%%-p%c%s%c in scalar context better written as $%-p%c%s%cScalar value @%-p%c%-p%c better written as $%-p%c%-p%c%%%-p%c%-p%c in scalar context better written as $%-p%c%-p%cUseless use of %s in scalar contextsortnegative pattern binding (!~)non-destructive substitution (s///r)non-destructive transliteration (tr///r)a variablea constant (%s)a constant (%-p)a constant (undef)anonymous hash ({})anonymous array ([])Useless use of %-p in void contextUseless use of %s in void contextFIELDSSorry, hash keys must be smaller than 2**31 bytesNo such class field "%-p" in variable %d%lu%4p of type %2ppanic: unexpected lvalue entersub args: type/targ %ld:%lupanic: unexpected constant lvalue entersub entry via type/targ %ld:%luCan't modify non-lvalue subroutine call of &%-p in %sCan't modify %s in %sdo blocklocalCan't localize lexical variable %d%lu%4pThe experimental declared_refs feature is not enabledDeclaring references is experimentalExperimental aliasing via reference not enabledAliasing via reference is experimentalUseless localization of %sattributesApplying %s to %-p will act on scalar(%-p)@array%hashApplying %s to %s will act on scalar(%s)Using !~ with s///r doesn't make senseUsing !~ with tr///r doesn't make sensePossible precedence problem between ! and %s'%s' trapped by operation maskDB::postponed@$%Parentheses missing around "%s" listourstatemy;Multidimensional hash lookup is disabled(empty) %*s[%d] %*s%lX%*s0x%02lX%*s .. INFINITY0x%02lXTR_UNLISTED TR_SPECIAL_HANDLING 0x%02lX reflagsreflags_charsetVERSIONModule name must be constantVersion number must be a constant numberimportunimportBEGINuse VERSION of 5.39 or above is not permitted while another use VERSION is in scopeuse VERSION is not permitted while another use VERSION of 5.39 or above is in scopeDowngrading a use VERSION declaration to below v5.11 is not permittedChanging use VERSION while another use VERSION is in scope is deprecated, and will become fatal in Perl 5.44do$panic: newFORLOOP, found %s, expecting pushmarkNULLpanic: newFORLOOP, found %s, expecting padsvpanic: newFORLOOP, found %s at %zd, expecting padsvpanic: newFORLOOP, padsv at %zd targ is %zd, not %zdCan't use %s for loop variablea "finally" blocka "defer" block::Prototype mismatch: sub %-p (%d%lu%4p): none vs (%d%lu%4p)none%-p%s:%u-%u__ANON__::%s[%s:%u]__ANON____ANON__::__ANON__Prototype on BEGIN block ignoredAttribute on BEGIN block ignoredBEGIN not safe after errors--compilation abortedConstant subroutine %-p redefinedSTDOUTFormat %-p redefinedFormat STDOUT redefinedoops: oopsAVoops: oopsHVCan't use an array as a referenceCan't use a hash as a referencereadpipePossible precedence problem on bitwise %s operator|&^|.&.^.$[ used in %s (did you mean $] ?)delete argument is not a HASH or ARRAY element or sliceCORE/prevailing_versionexists argument is not a subroutine nameexists argument is not a HASH or ARRAY element or a subroutineOP_HELEMEXISTSOR argument is not a HASH elementa SCALARan ARRAYa HASHCan't use bareword ("%-p") as %s ref while "strict refs" in use%s (did you want stat %-p?)%sUseless use of %s with no valuesarrayExperimental %s on scalar is now forbiddenhashHANDLE%s%c...%c__ANONIO__globFile::Globpanic: ck_grep, type=%uCan't use 'defined(@array)' (Maybe you should just omit the defined()?)Can't use 'defined(%%hash)' (Maybe you should just omit the defined()?):SUPER::::SUPER::Can't modify reference to %s in scalar assignmentBareword in require must not start with a double-colon: "%s" Bareword in require maps to empty filename.pmrequireMissing comma after first argument to returnUse of /g modifier is meaningless in splitSTRING/%-p/ should probably be written as "%-p"panic: rv2cv_op_cv bad flags %xpanic: ck_entersub_args_proto CV with no proto, flags=%lxToo many arguments for %-p;@%block or sub {}sub {}one of %.*ssymbolsubroutinescalarMalformed prototype for %-p: %-pNot enough arguments for %-p%ueach on anonymous hash will always start from the beginningeach on anonymous array will always start from the beginninghash or arraylength() used on %-p (did you mean "scalar(%s%-p)"?)keys length() used on %%hash (did you mean "scalar(keys %%hash)"?)length() used on @array (did you mean "scalar(@array)"?)panic: custom_op_get_field(): invalid field %d panic: can't register custom OP %s_;\[%@];\[$*]enterevalbacktick?$@@%&*$autouseMethod %-p redefinedSubroutine %-p redefinedop:rcpv_newSlurpy parameter not lastOptional parameter lacks default expressionMandatory parameter follows optional parameterMultiple slurpy parameters not allowedop:link_freed_opSTDERRSTDIN_ARGVARGVOUTDATACan't modify reference to localized parenthesized array in list assignmentCan't modify reference to parenthesized hash in list assignmentCan't modify reference to %s in %sCan't declare %s in "%s"attributes.pmPossible precedence issue with control flow operator (%s)panic: fold_constants JMPENV_PUSH returned %dpanic: unexpected setjmp() result panic: gen_constant_list JMPENV_PUSH returned %dCan't "%s" out of %s%cUseless use of /d modifier in transliteration operatorReplacement list is longer than search listversionAssignment to both a list and a scalarBareword found in conditionalThis use of my() in false conditional is no longer allowedValue of %s%s can be "0"; test with defined() construct() operatorFound = in conditional, should be ==prototype(Attribute prototype(%d%lu%4p) discards earlier prototype attribute in same subPrototype '%d%lu%4p' overridden by attribute 'prototype(%d%lu%4p)' in %-plvalue attribute ignored after the subroutine has been definedENDUNITCHECKCHECKINIT AX_NESTED_EVAL_BEGIN_BLOCKSToo many nested BEGIN blocks, maximum of %ld allowedToo late to run CHECK blockModule::Install::DSLTreating %s::INIT block as BEGIN block as workaroundToo late to run INIT block[Missing comma after first argument to %s functionToo many arguments for %sType of arg %d to %s must be %s (not %s)Not enough arguments for %s"%s %s" used in sort comparisonType of arg %d to %-p must be %s (not %s)Magical list constants are not supported PERL_RAND_SEEDPERL_INTERNAL_RAND_SEEDv5.42.0panic: sysconf: %spagesize unknownpanic: bad pagesize %lddarwinPERL_DESTRUCT_LEVEL-1Unable to flush stdout: %s main::Unbalanced scopes: %ld more ENTERs than LEAVEs Unbalanced saves: %ld more saves than restores Unbalanced tmps: %ld more allocs than frees Unbalanced context: %ld more PUSHes than POPs Unbalanced string table refcount: (%ld) for "%s"Scalars leaked: %ld panic: top_env panic: restartop in perl_run eval_sv()require q%c%s%c/PERL5DB_THREADED1no Devel::use Devel:: split(/,/,q{%s});PERL5DBRecompile perl with -DDEBUGGING to use -D switch (did you mean -d ?) No directory specified for -I Missing argument to -%c"-%c" is on the #! line, it must also be used on the command line%sCan't emulate -%.1s on #! lineUnrecognized switch: -%.1s (-h will show valid options)DB::argsCannot set tied @DB::argsDB::DBDB::dblineDB::subDB::singleDB::traceDB::signal-i used with no filenames on the command line, reading from STDINBEGIN failed--compilation aborted%s failed--call queue abortedpanic: top_env, v=%d panic: restartop in call_list Unexpected exit %luUnexpected exit failure %ldNo code specified for -%cuse Config; Config::_V()use Config; Config::config_vars(qw%c%s%c)/dev/nullhelpUnrecognized switch: -%s (-h will show valid options)PERL5OPTCDIMUdmtwWIllegal switch in PERL5OPT: -%c-Can't ignore signal CHLD, forcing to defaultCan't chdir to %sInternals::Vperl.c:utf8PENPERL_SIGNALSunsafesafePERL_SIGNALS illegal: "%s"mainINC@%240sDB::CORE::GLOBAL::PERL5LIBPERLLIB/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl/5.42.0/darwin-2level/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl/5.42.0/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0/darwin-2level/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0PERL_USE_UNSAFE_INC./dev/fd/Wrong syntax (suid) fd script name "%s" Missing (suid) fd script name rCan't open /dev/null: %s Can't open perl script "%s": %s Illegal suidscriptYOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET! FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP! No Perl script found in input perlPERLCompiled at Aug 6 2025 08:46:22",IO::File::ISAIO::Handle::IO::Seekable::Exporter::stdinstdoutstderr%s syntax OK -0[octal/hexadecimal] specify record separator (\0, if no argument) -a autosplit mode with -n or -p (splits $_ into @F) -C[number/list] enables the listed Unicode features -c check syntax only (runs BEGIN and CHECK blocks) -d[t][:MOD] run program under debugger or module Devel::MOD -D[number/letters] set debugging flags (argument is a bit mask or alphabets) -e commandline one line of program (several -e's allowed, omit programfile) -E commandline like -e, but enables all optional features -f don't do $sitelib/sitecustomize.pl at startup -F/pattern/ split() pattern for -a switch (//'s are optional) -g read all input in one go (slurp), rather than line-by-line (alias for -0777) -i[extension] edit <> files in place (makes backup if extension supplied) -Idirectory specify @INC/#include directory (several -I's allowed) -l[octnum] enable line ending processing, specifies line terminator -[mM][-]module execute "use/no module..." before executing program -n assume "while (<>) { ... }" loop around program -p assume loop like -n but print line also, like sed -s enable rudimentary parsing for switches after programfile -S look for programfile using PATH environment variable -t enable tainting warnings -T enable tainting checks -u dump core after parsing program -U allow unsafe operations -v print version, patchlevel and license -V[:configvar] print configuration summary (or a single Config.pm variable) -w enable many useful warnings -W enable all warnings -x[directory] ignore text before #!perl line (optionally cd to directory) -X disable all warnings Run 'perldoc perl' for more help with Perl. Usage: %s [switches] [--] [programfile] [arguments] use no Module name required with -%c optionInvalid module name %.*s with -%c option: contains single ':'Can't use '%c' after -mname () This is perl 5, version 42, subversion 0 (%-p) built for darwin-2level Copyright 1987-2025, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at https://www.perl.org/, the Perl Home Page. --xprogram input from stdinNo %s allowed with (suid) fdscript0ENVmain::F/5.42.0/darwin-2level/5.42.0/darwin-2level.../../%s/%sisaUsage: %2p::%2p(%s)Usage: %2p(%s)Usage: CODE(0x%lx)(%s)reference, kindUNIVERSALUNIVERSAL does not export anything_charnamesAttempt to call undefined %s method with arguments (%5p%s) via package %5p (Perhaps you forgot to load the package?) ...object-ref, methodUsage: invocant->DOES(kind)svsv, failok=0SCALAR[, ON]SCALARSCALAR[, REFCOUNT]hvfilehandle[,args]inputoutputdetailsget_layers: unknown argument '%s'%-p(%-p)utf8name[, all ][all]NULL array element in re::regnames()APTURE_ALLpackage, ...all$key$key, $value$lastkeyutf8::unicode_to_nativeutf8::native_to_unicodeRegexp::DESTROYdluaaaUNIVERSAL::isaUNIVERSAL::canUNIVERSAL::DOESUNIVERSAL::importUNIVERSAL::unimportUNIVERSAL::VERSIONversion::_VERSIONversion::()version::newversion::parseversion::(""version::stringifyversion::(0+version::numifyversion::normalversion::to_decimalversion::to_dotted_decimalversion::(cmpversion::(<=>version::vcmpversion::(boolversion::booleanversion::(+version::(-version::(*version::(/version::(+=version::(-=version::(*=version::(/=version::(absversion::(nomethodversion::noopversion::is_alphaversion::qvversion::declareversion::is_qvversion::tupleversion::from_tupleutf8::is_utf8utf8::validutf8::encodeutf8::decodeutf8::upgradeutf8::downgradeInternals::SvREADONLY\[$%@];$Internals::SvREFCNTInternals::hv_clear_placeholders\%Internals::stack_refcountedconstant::_make_const\[$@]PerlIO::get_layers*;@re::is_regexpre::regname;$$re::regnames;$re::regnames_countre::regexp_patternTie::Hash::NamedCapture::_tie_itTie::Hash::NamedCapture::TIEHASHTie::Hash::NamedCapture::FETCHTie::Hash::NamedCapture::STORETie::Hash::NamedCapture::DELETETie::Hash::NamedCapture::CLEARTie::Hash::NamedCapture::EXISTSTie::Hash::NamedCapture::SCALARTie::Hash::NamedCapture::FIRSTKEYTie::Hash::NamedCapture::NEXTKEYTie::Hash::NamedCapture::flagsUsage: UNIVERSAL::VERSION(sv, ...)Cannot find version of an unblessed reference%2p does not define $%2p::VERSION--version check failed%-p defines neither package nor VERSION--version check failedqv%2p version %-p required--this is only version %-plobj, ...operation not supported with version objectlobj is not of type versionv%sUsage: version::new(class, version)verver is not of type versionlobj, robj, ...alphalobjInvalid version format (version required)vValue %ld in version is negative%luoriginalEXTENDpanic: av_extend_guts() negative count (%ld)Out of memory during array extendPUSHPOPUNSHIFTSHIFTSTORESIZENEGATIVE_INDICESpanic: sv_upgrade to unknown type %luargpanic: unhandled opcode %ld for xs_builtin_func1_scalar()export_lexicallyexport_lexically can only be called at compile timeOdd number of elements in export_lexicallyExpected a reference in export_lexically&%-pa CODEExpected %s reference in export_lexicallypanic: unhandled opcode %ld for xs_builtin_func1_void()builtin::indexeddefined string&%sbuiltin::import can only be called at compile timeInvalid version bundle %5pBuiltin version bundle "%s" is not supported by Perl 5.42.0builtin::builtin.cbuiltin::importBuilt-in function 'builtin::%s' is experimentaltruefalseinfnanis_boolweakenunweakenis_weakblessedrefaddrreftypeceilflooris_taintedtrimstringifycreated_as_stringcreated_as_numberload_moduleindexedbuiltin::%-ppanic: unrecognised builtin_const value %ldCannot '%s' outside of a 'class'Odd number of elements in hash field initializationOdd number of arguments passed to %10p constructorCannot create an object of incomplete class %10p, %-pUnrecognised parameters for %10p constructor: %-pCannot invoke method %7p on a non-instanceCannot invoke method on a non-instanceCannot invoke a method of %10p on an instance of %10pCannot reopen existing class %10p%2p::ISACannot create class %2p as it already has a non-empty @ISA%s::newclass.c$(self)%(params)Required parameter '%-p' is missing for %10p constructor$selffield initialiser expressionCannot use __CLASS__ outside of a method or field initializer expressionClass attribute %-p requires a valueUnrecognized class attribute %-pMalformed attribute stringUnexpected characters while parsing class :isa attribute: %sClass already has a superclass, cannot add anotherClass :isa attribute requires a class but %10p is not one0123456789._newUnrecognized field attribute %-pparamreaderwriterOnly scalar fields can take a :param attributeField already has a parameter name, cannot add anotherCannot assign :param(%-p) to field %-p because that name is already in use%5p is not a valid name for a generated methodCannot apply a :writer attribute to a non-scalar fieldset_ => panic: sysopen with multiple args, num_svs=%ldsysopenpathnameopenUnknown open() mode '%.*s'Missing command in piped openpiped openCan't open bidirectional pipeMore than one argument to '%c&' openMore than one argument to '>%c' openMore than one argument to '<%c' open<Forked open '%s' not meaningful in <>inplace openCan't do inplace edit: %s is not a regular file*Can't do inplace edit on %s: Cannot make temp name: %sCan't open %s: %sWarning: unable to close filehandle %2p properly: %-p!Warning: unable to close filehandle properly: %-pWide character in %sprintstatThe stat preceding -l _ wasn't an lstatUse of -l on filehandle %2pUse of -l on filehandlelstat -c-cfcshexec$&*(){}[]'";\|?<>~` shchmodchownUnrecognized signal name "%-p"Can't kill a non-numeric process IDunlinkutimeBad arg length for %s, is %lu, should be %ldArg too short for msgsndpattern -cf 'set nonomatch; glob ' 2>/dev/null |LS_COLORSglob failed (can't start child: %s)Warning: unable to close filehandle %2p properly. Invalid \0 character in %s for %s: %s\0%sFilehandle STD%s reopened as %2p only for inputOUTERRFilehandle STDIN reopened as %2p only for outputXXXXXXXXw++>&Can't rename %s to %s: %s, skipping fileCannot complete in-place edit of %s: failed to rename work file '%s' to '%s': %sFailed to close in-place work file %s: %sCannot complete in-place edit of %s: %sCurrent directory has changedCan't exec "%s": %sprintf(unknown)Illegal number of bits in vecUse of strings with code points over 0xFF as arguments to vec is forbiddenBit vector size > 32 non-portableNegative offset to vec in lvalue contextOut of memory during vec in lvalue contextUse of strings with code points over 0xFF as arguments to %s operator is not allowedCan't modify keys in list assignmentCharacter following "\c" must be printable ASCIIUse "%c" instead of "\c{""\c%c" is more clearly written simply as "%s"\x{%02x}Non-octalhex character ' terminates \%c early. Resolved as "\%c{00}%lo%lX0xUse of code point %s%.*s is not allowed; the permissible max is %sMissing braces on \o{}Missing right brace on \o{}Empty \o{}Non-octal characterEmpty \xUse \x{...} for more than two hex charactersNon-hex characterMissing right brace on \x{}Empty \x{}>%lx%cx%02lX%cx%02lx%cx{%02lx}%c%03o%c%o%s...%s""<>VOIDWILDSV_UNDEFSV_NOSV_YESSV_ZEROSV_PLACEHOLDER(PTt\CV(%s)FREED(null)[%s]%s) [UTF8 "%s"]dump.c(%g)(%lu)(%ld)()) [tainted] SUB %s = SUB = (xsub 0x%lx %d) FORMAT %s = ,CONST,KEEP,GLOBAL,CONTINUE,RETAINT,EVAL,NONDESTRUCT,HAS_CV,CODELIST_PRIVATE,IS_QR,KIDS,PARENS,REF,MOD,STACKED,SPECIALOPUNOPBINOPLOGOPLISTOPPMOPSVOPPADOPPVOPLOOPCOPMETHOPUNOP_AUX{} { GV_NAME = %s-> %s} MAGIC = 0x%lx MG_VIRTUAL = &PL_vtbl_%s MG_VIRTUAL = 0x%lx MG_VIRTUAL = 0 MG_PRIVATE = %d MG_TYPE = PERL_MAGIC_%s MG_TYPE = UNKNOWN(\%o) MG_FLAGS = 0x%02X TAINTEDDIR MINMATCH REFCOUNTED GSKIP COPY DUP LOCAL BYTES MG_OBJ = 0x%lx PAT = %s REFCNT = %ld MG_LEN = %ld MG_PTR = 0x%lx %s => HEf_SVKEY ???? - dump.c does not know how to handle this MG_LEN %2ld: %lu -> %lu %s = 0x%lx "%s" "%s" :: "%s" TEMP,OBJECT,GMG,SMG,RMG,IOK,NOK,POK,OOK,FAKE,READONLY,PROTECT,BREAK,pIOK,pNOK,pPOK,ANON,UNIQUE,CLONE,CLONED,CONST,NODEBUG,LVALUE,NOWARN_AMBIGUOUS,WEAKOUTSIDE,CVGV_RC,DYNFILE,AUTOLOAD,HASEVAL,SLABBED,NAMED,LEXICAL,ISXSUB,ANONCONST,SIGNATURE,REFCOUNTED_ANYSV,IsMETHOD,XS_RCSTACK,EVAL_COMPILED,SHAREKEYS,LAZYDEL,HASKFLAGS,OVERLOAD,CLONEABLE,INTRO,MULTI,ASSUMECV, SV AV HV CVPMf_MULTILINE,PMf_SINGLELINE,PMf_FOLD,PMf_EXTENDED,PMf_EXTENDED_MORE,PMf_KEEPCOPY,PMf_NOCAPURE,IS_ANCHORED,NO_INPLACE_SUBST,EVAL_SEEN,CHECK_ALL,MATCH_UTF8,USE_INTUIT_NOML,USE_INTUIT_ML,INTUIT_TAIL,SPLIT,COPY_DONE,TAINTED_SEEN,TAINTED,START_ONLY,SKIPWHITE,WHITE,NULL,SKIP,IMPLICIT,NAUGHTY,VERBARG_SEEN,CUTGROUP_SEEN,USE_RE_EVAL,NOSCAN,GPOS_SEEN,GPOS_FLOAT,ANCH_MBOL,ANCH_SBOL,ANCH_GPOS,SV = 0 (0x%lx) at 0x%lx %*s REFCNT = %ld %*s FLAGS = (PADSTALE,PADTMP,ROK,WEAKREF,IsCOW,PCS_IMPORTED,SCREAM,IMPORTALL, ),IsUV,UTF8SV = %s%s UNKNOWN(0x%lx) %s UV = %lu IV = %ld NV = %.*g RV = 0x%lx OFFSET = %lu PV = 0x%lx ( %s . ) [BOOL %s]PL_YesPL_No CUR = %ld REGEXP = 0x%lx LEN = %ld COW_REFCNT = %d PV = 0 STASH USEFUL = %ld ARRAY = 0x%lx (offset=%ld) ALLOC = 0x%lx FILL = %ld MAX = %ld ,REAL,REIFY FLAGS = (%s) Elt No. %ld AUX_FLAGS = %lu (%d%s:%d+, hash quality = %.1f%% KEYS = %ld FILL = %lu RITER = %ld EITER = 0x%lx RAND = 0x%lx (LAST = 0x%lx) NAME = "%s" NAMECOUNT = %ld , "%s", (null) ENAME = %s ENAME = "%s" BACKREFS = 0x%lx MRO_WHICH = "%s" (0x%lx) CACHE_GEN = 0x%lx PKG_GEN = 0x%lx MRO_LINEAR_ALL = 0x%lx MRO_LINEAR_CURRENT = 0x%lx MRO_NEXTMETHOD = 0x%lx ISA = 0x%lx Elt %s [UTF8 "%s"] [CURRENT] HASH = 0x%lx REFCNT = 0x%lx AUTOLOAD = "%s" PROTOTYPE = "%s" COMP_STASH SLAB = 0x%lx START = 0x%lx ===> %ld ROOT = 0x%lx XSUB = 0x%lx XSUBANY = 0x%lx (CONST SV) XSUBANY = %ld GVGV::GV FILE = "%s" DEPTH = %ld FLAGS = 0x%lx OUTSIDE_SEQ = %lu PADLIST = 0x%lx HSCXT = 0x%p OUTSIDE = 0x%lx (%s) nullANONMAINUNIQUEUNDEFINED TYPE = %c TARGOFF = %ld TARGLEN = %ld TARG = 0x%lx FLAGS = %ld NAMELEN = %ld GvSTASH GP = 0x%lx SV = 0x%lx IO = 0x%lx FORM = 0x%lx AV = 0x%lx HV = 0x%lx CV = 0x%lx CVGEN = 0x%lx GPFLAGS = 0x%lx (%s) LINE = %u FILE = "%s" EGV IFP = 0x%lx OFP = 0x%lx DIRP = 0x%lx LINES = %ld PAGE = %ld PAGE_LEN = %ld LINES_LEFT = %ld TOP_NAME = "%s" TOP_GV TOP_GV = 0x%lx FMT_NAME = "%s" FMT_GV FMT_GV = 0x%lx BOTTOM_NAME = "%s" BOTTOM_GV BOTTOM_GV = 0x%lx TYPE = '%c' TYPE = '\%o' COMPFLAGS = 0x%lx (%s) EXTFLAGS = 0x%lx (%s) ENGINE = 0x%lx (%s) STANDARDPLUG-IN INTFLAGS = 0x%lx (%s) INTFLAGS = 0x%lx(Plug in) NPARENS = %lu LOGICAL_NPARENS = %lu LOGICAL_TO_PARNO = 0x%lx { %ld%s } %-p PARNO_TO_LOGICAL = 0x%lx PARNO_TO_LOGICAL_NEXT = 0x%lx LASTPAREN = %lu LASTCLOSEPAREN = %lu MINLEN = %ld MINLENRET = %ld GOFS = %lu PRE_PREFIX = %lu SUBLEN = %ld SUBOFFSET = %ld SUBCOFFSET = %ld SUBBEG = 0x%lx %s SUBBEG = 0x0 PAREN_NAMES = 0x%lx SUBSTRS = 0x%lx PPRIVATE = 0x%lx OFFS = 0x%lx [ %ld:%ld%s ] QR_ANONCV = 0x%lx SAVED_COPY = 0x%lx MOTHER_RE = 0x%lx MAXFIELD = %ld FIELDS = 0x%lx Field No. %ld (%s) NULL OP IN RUNWARNING: %lx changed from %lx to %lx ->???%ld]UNKNOWN(%d)UTF8 ,%ld(%s)(%-p)Can't determine class of operator %s, assuming BASEOP WATCHING, %lx is currently %lx %5lu %s \0UNDEFIVNVPVINVLSTPVIVPVNVPVMGREGEXPGVPVLVAVHVCVFMIOOBJ | REGEX = 0x%lx PMf_PRE %c%.*s%c PMf_PRE (RUNTIME) PMFLAGS = (%s) TARGOFF/GV = 0x%lx PMf_REPL = CODE_LIST = CODE_LIST = 0x%lx %-4lu ???? +--,ONCE:USED,TAINTED,SCANFIRST,ALL,START_ONLY,SKIPWHITE,WHITE,NULL (ex-%s) %s(0x%lx)PARENT*** WILD PARENT 0x%p TARG = %ld ,VOID,SCALAR,LIST,UNKNOWN,SLABBED,SAVEFREE,STATIC,FOLDED,MORESIBFLAGS = (%s) =0x%lxPRIVATE = (%s) PRIVATE = (0x%lx) GV = %-p (0x%lx) ARGS = %lu => 0x%lx NARGS = %ld CONSTS = (%-p) SV = %s LINE = %u PACKAGE = "%s" LABEL = "%s" HINTS = %08x FEATS = 0x%xSEQ = %u REDONEXTLASTOTHERREFCNT = %lu PV = "%-p" (0x%lx) INVMAP = 0x%lx TABLE = 0x%lx SIZE: 0x%lx %4lx: %2ld %02lxARGIX = %ld ARGS = %lu .. %lu SLURPY = '%c' MAX_FIELDIX = %lu FIELDS: (%lu) [%zd] PADIX = %lu FIELDIX = % lu FIELDIX = %lu ===> [SELF] %lu [%s 0x%lx] [0x0] sv(\0)arylen(#)rhash(%)debugvar(*)pos(.)symtab(:)backref(<)arylen_p(@)bm(B)overload_table(c)regdata(D)regdatum(d)env(E)envelem(e)fm(f)regex_global(g)hints(H)hintselem(h)isa(I)isaelem(i)nkeys(k)dbfile(L)dbline(l)shared(N)shared_scalar(n)collxfrm(o)tied(P)tiedelem(p)tiedscalar(q)qr(r)sig(S)sigelem(s)taint(t)uvar(U)uvar_elem(u)vstring(V)vec(v)utf8(w)destruct(X)substr(x)nonelem(Y)defelem(y)hook(Z)hookelem(z)lvref(\)checkcall(])extvalue(^)ext(~)INVLISTPVGVPVAVPVHVPVCVPVFMPVIOPVOBJ[%d%lu%4p[%lu]$%-pcv ref: %s(NULL)%d%lu%4pZEROHUPINTQUITILLTRAPABRTEMTFPEKILLBUSSEGVSYSPIPEALRMTERMURGSTOPTSTPCONTCHLDTTINTTOUXCPUXFSZVTALRMPROFWINCHINFOUSR1USR2IOTWHENBLOCKGIVENLOOP_ARYLOOP_LAZYSVLOOP_LAZYIVLOOP_LISTLOOP_PLAINSUBFORMATEVALSUBSTDEFERCONSTRUCTSTARTRUNDESTRUCTstubpushmarkwantarrayconstgvsvgvgelempadsvpadsv_storepadavpadhvpadanyrv2gvrv2svav2arylenrv2cvanoncodeprototyperefgensrefgenrefblessreadlinercatlineregcmayberegcresetregcompmatchqrsubstsubstconttranstransrsassignaassignchopschopchompschompdefinedstudypospreinci_preincpredeci_predecpostinci_postincpostdeci_postdecpowmultiplyi_multiplydividei_dividemoduloi_modulorepeataddi_addsubtracti_subtractconcatmulticoncatleft_shiftright_shiftlti_ltgti_gtlei_legei_geeqi_eqnei_nencmpi_ncmpsltsgtslesgeseqsnescmpbit_andbit_xorbit_ornbit_andnbit_xornbit_orsbit_andsbit_xorsbit_ornegatei_negatenotcomplementncomplementscomplementsmartmatchatan2sincosrandsrandexplogsqrtintoctabslengthsubstrsubstr_leftvecindexrindexsprintfformlineordchrcryptucfirstlcfirstuclcquotemetarv2avaelemfastaelemfast_lexaelemfastlex_storeaelemaslicekvasliceaeachavaluesakeyseachvalueskeysdeleteexistsrv2hvhelemhslicekvhslicemultiderefunpackpacksplitjoinlistlsliceanonlistanonhashemptyavhvsplicepushpopshiftunshiftreversegrepstartgrepwhileanystartallstartanywhilemapstartmapwhilerangeflipflopandorxordorcond_exprandassignorassigndorassignentersubleavesubleavesublvargcheckargelemargdefelemcallerwarndieresetlineseqnextstatedbstateunstackenterleavescopeenteriteriterenterloopleaveloopreturnlastnextredodumpgotoexitmethodmethod_namedmethod_supermethod_redirmethod_redir_superentergivenleavegivenenterwhenleavewhenbreakcontinueclosepipe_opfilenoumaskbinmodetieuntietieddbmopendbmclosesselectselectgetcreadenterwriteleavewriteprtfsaysysseeksysreadsyswriteeoftellseektruncatefcntlioctlflocksendrecvsocketsockpairbindconnectlistenacceptshutdowngsockoptssockoptgetsocknamegetpeernameftrreadftrwriteftrexecftereadftewritefteexecftisftsizeftmtimeftatimeftctimeftrownedfteownedftzeroftsockftchrftblkftfileftdirftpipeftsuidftsgidftsvtxftlinkftttyfttextftbinarychdirchrootrenamelinksymlinkreadlinkmkdirrmdiropen_dirreaddirtelldirseekdirrewinddirclosedirforkwaitwaitpidsystemkillgetppidgetpgrpsetpgrpgetprioritysetprioritytimetmslocaltimegmtimealarmsleepshmgetshmctlshmreadshmwritemsggetmsgctlmsgsndmsgrcvsemopsemgetsemctldofilehintsevalleaveevalentertryleavetryghbynameghbyaddrghostentgnbynamegnbyaddrgnetentgpbynamegpbynumbergprotoentgsbynamegsbyportgserventshostentsnetentsprotoentsserventehostentenetenteprotoenteserventgpwnamgpwuidgpwentspwentepwentggrnamggrgidggrentsgrentegrentgetloginsyscalllockoncecustomcoreargsavhvswitchruncvfcpadcvintrocvclonecvpadrangerefassignlvreflvrefslicelvavrefanonconstcmpchain_andcmpchain_dupentertrycatchleavetrycatchpoptrycatchpushdeferhelemexistsormethstartinitfieldclassnamefreednull operationconstant itemscalar variableglob valueglob elemprivate variablepadsv scalar assignmentprivate arrayprivate hashprivate valueref-to-glob castscalar dereferencearray lengthsubroutine dereferenceanonymous subroutinesubroutine prototypereference constructorsingle ref constructorreference-type operatorquoted execution (``, qx)append I/O operatorregexp internal guardregexp internal resetregexp compilationpattern match (m//)pattern quote (qr//)substitution (s///)substitution iteratortransliteration (tr///)scalar assignmentlist assignmentscalar chopscalar chompdefined operatorundef operatormatch positionpreincrement (++)integer preincrement (++)predecrement (--)integer predecrement (--)postincrement (++)integer postincrement (++)postdecrement (--)integer postdecrement (--)exponentiation (**)multiplication (*)integer multiplication (*)division (/)integer division (/)modulus (%)integer modulus (%)repeat (x)addition (+)integer addition (+)subtraction (-)integer subtraction (-)concatenation (.) or stringstringleft bitshift (<<)right bitshift (>>)numeric lt (<)integer lt (<)numeric gt (>)integer gt (>)numeric le (<=)integer le (<=)numeric ge (>=)integer ge (>=)numeric eq (==)integer eq (==)numeric ne (!=)integer ne (!=)numeric comparison (<=>)integer comparison (<=>)string ltstring gtstring lestring gestring eqstring nestring comparison (cmp)bitwise and (&)bitwise xor (^)bitwise or (|)numeric bitwise and (&)numeric bitwise xor (^)numeric bitwise or (|)string bitwise and (&.)string bitwise xor (^.)string bitwise or (|.)negation (-)integer negation (-)1's complement (~)numeric 1's complement (~)string 1's complement (~)smart matchsubstr leftarray dereferenceconstant array elementconstant lexical array elementconst lexical array element storearray elementarray sliceindex/value array sliceeach on arrayvalues on arraykeys on arrayhash dereferencehash elementhash slicekey/value hash slicearray or hash lookupjoin or stringlist sliceempty anon hash/arraygrepgrep iteratoranyany/all iteratormapmap iteratorflipfloprange (or flip)range (or flop)logical and (&&)logical or (||)logical xordefined or (//)conditional expressionlogical and assignment (&&=)logical or assignment (||=)defined or assignment (//=)subroutine entrysubroutine exitlvalue subroutine returncheck subroutine argumentssubroutine argumentsubroutine argument default valuesymbol resetline sequencenext statementdebug next statementiteration finalizerblock entryblock exitblockforeach loop entryforeach loop iteratorloop entryloop exitmethod lookupmethod with known namesuper with known nameredirect method with known nameredirect super method with known namegiven()leave given blockwhen()leave when blockpipeselect system callwritewrite exitsocketpairgetsockoptsetsockopt-R-W-X-r-w-e-s-M-A-C-O-o-z-S-b-f-d-p-u-g-k-l-t-T-Bopendirtimesdo "file"eval hintseval "string"eval "string" exiteval {block}eval {block} exitgethostbynamegethostbyaddrgethostentgetnetbynamegetnetbyaddrgetnetentgetprotobynamegetprotobynumbergetprotoentgetservbynamegetservbyportgetserventsethostentsetnetentsetprotoentsetserventendhostentendnetentendprotoentendserventgetpwnamgetpwuidgetpwentsetpwentendpwentgetgrnamgetgrgidgetgrentsetgrentendgrentunknown custom operatorCORE:: subroutineArray/hash switch__SUB__private subroutinelist of private variableslvalue ref assignmentlvalue array referenceanonymous constantderived class testcomparison chainingcomparand shufflingtry {block}try {block} exitpop trycatch {} blockpush defer {} blockboolean type testweakref type testreference weakenreference unweakenhash element exists ormethod startinitialise fieldclass namefreed oparylenarylen_pbackrefcheckcallcollxfrmdblinedebugvardefelemdestructenvenvelemhintshintselemhookhookelemisaelemmglobnkeysnonelemovrldpackelemregdataregdatumregexpsigsigelemtaintuvarSUCCEEDSBOLMBOLSEOLMEOLEOSGPOSBOUNDBOUNDLBOUNDUBOUNDANBOUNDNBOUNDLNBOUNDUNBOUNDAREG_ANYSANYANYOFANYOFDANYOFLANYOFPOSIXLANYOFHANYOFHbANYOFHrANYOFHsANYOFRANYOFRbANYOFHbbmANYOFMNANYOFMPOSIXDPOSIXLPOSIXUPOSIXANPOSIXDNPOSIXLNPOSIXUNPOSIXACLUMPBRANCHEXACTLEXACTEXACTLEXACTFEXACTFLEXACTFUEXACTFAAEXACTFAA_NO_TRIEEXACTFUPEXACTFLU8EXACT_REQ8LEXACT_REQ8EXACTFU_REQ8EXACTFU_S_EDGELNBREAKTRIETRIECAHOCORASICKAHOCORASICKCNOTHINGTAILSTARPLUSCURLYCURLYNCURLYMCURLYXWHILEMOPENCLOSESROPENSRCLOSEREFREFFREFFLREFFUREFFAREFNREFFNREFFLNREFFUNREFFANLONGJMPBRANCHJIFMATCHUNLESSMSUSPENDIFTHENGROUPPMINMODLOGICALRENUMGOSUBGROUPPNINSUBPDEFINEPENDLIKEOPFAILACCEPTVERBPRUNEMARKPOINTSKIPCOMMITCUTGROUPKEEPSLOOKBEHIND_ENDOPTIMIZEDPSEUDOREGEX_SETTRIE_nextTRIE_next_failEVAL_BEVAL_B_failEVAL_postponed_ABEVAL_postponed_AB_failCURLYX_endCURLYX_end_failWHILEM_A_preWHILEM_A_pre_failWHILEM_A_minWHILEM_A_min_failWHILEM_A_maxWHILEM_A_max_failWHILEM_B_minWHILEM_B_min_failWHILEM_B_maxWHILEM_B_max_failBRANCH_nextBRANCH_next_failCURLYM_ACURLYM_A_failCURLYM_BCURLYM_B_failIFMATCH_AIFMATCH_A_failCURLY_B_minCURLY_B_min_failCURLY_B_maxCURLY_B_max_failCOMMIT_nextCOMMIT_next_failMARKPOINT_nextMARKPOINT_next_failSKIP_nextSKIP_next_failCUTGROUP_nextCUTGROUP_next_failKEEPS_nextKEEPS_next_failREF_nextREF_next_failMULTILINESINGLELINEFOLDEXTENDEDEXTENDED_MORENOCAPTUREKEEPCOPYCHARSET0CHARSET1CHARSET2STRICTSPLITUNUSED_BIT_12UNUSED_BIT_13UNUSED_BIT_14UNUSED_BIT_15NO_INPLACE_SUBSTEVAL_SEENUNBOUNDED_QUANTIFIER_SEENCHECK_ALLMATCH_UTF8USE_INTUIT_NOMLUSE_INTUIT_MLINTUIT_TAILIS_ANCHOREDCOPY_DONETAINTED_SEENTAINTEDSTART_ONLYSKIPWHITEWHITEIMPLICITNAUGHTYVERBARG_SEENCUTGROUP_SEENUSE_RE_EVALNOSCANGPOS_SEENGPOS_FLOATANCH_MBOLANCH_SBOLANCH_GPOSRECURSE_SEENPESSIMIZE_SEENdirhandlefilehandleBad symbol for %sISACannot convert a reference to %s to typeglobSUPER::SUPERIO::FileIO/File.pmCan't locate object method %d%lu%9p via package %7pCan't locate object method %d%lu%9p via package %5p (perhaps you forgot to load %5p?)Use of inherited AUTOLOAD for non-method %-p::%d%lu%4p() is no longer allowedHad to create %d%lu%4p unexpectedlyName "%2p::%2p" used only once: possible typo%d%lu%4p::_GEN_%ldAttempt to free unreferenced glob pointerspanic: gp_free failed to free glob pointer - something is repeatedly re-creating entries((niloverload%s method "%-256p" overloading "%s" in package "%3p"Stub found while resolvingCan't resolveOverloaded dereference did not return a referenceoverloadingOperation "%s": no method found,%sargument %s%-p%s%-p left in overloaded package has no overloaded magic, right argument in overloaded package , right argument has no overloaded magicCopy method did not return a referencepanic: gv name too long (%lu)IO::File::Can't use anonymous symbol table for method lookupCORECan't locate package %-p for @%2p::ISAWhile trying to resolve method call %.*s->%.*s() can not locate package %5p yet it is mentioned in @%.*s::ISA (perhaps you forgot to load %5p?)evalbytes&CORE::%s cannot be called directlyVariable "%c%d%lu%4p" is not imported (Did you mean &%d%lu%4p instead?) Global symbol "%s%d%lu%4p" requires explicit package name (did you forget to declare "my %s%d%lu%4p"?)%::ErrnoTie::Hash::NamedCapture$%c is no longer supported as of Perl 5.30_tie_itpanic: Can't use %c%c because %s is not availablepanic: Can't use %c%c because %s does not define _tie_itEXPORTEXPORT_OKEXPORT_FAILEXPORT_TAGSargsSIGHILD_ERROR_NATIVEAPTURENCODINGLOBAL_PHASEOOK AST_FH AST_SUCCESSFUL_PATTERN ATCHREMATCHOSTMATCHAFE_LOCALESAINTNICODETF8LOCALETF8CACHEARNING_BITS (${}(@{}(%{}(*{}(&{}(++(--(bool(0+(""(!(=(abs(neg(<>(int(<(<=(>(>=(==(!=(lt(le(gt(ge(eq(ne(nomethod(+(+=(-(-=(*(*=(/(/=(%(%=(**(**=(<<(<<=(>>(>>=(&(&=(&.(&.=(|(|=(|.(|.=(^(^=(^.(^.=(<=>(cmp(~(~.(atan2(cos(sin(exp(log(sqrt(x(x=(.(.=(~~(-X(qrfetchstoreAttempt to access disallowed key '%-p' in a restricted hash%ld/%ldAttempt to delete readonly key '%-p' from a restricted hashpanic: hv name too long (%lu)Use of each() on hash after insertion without resetting hash iterator results in undefined behaviorpanic: hv_placeholders_ppanic: hv_placeholders_setpanic: refcounted_he_chain_2hv bad flags %lxpanic: refcounted_he_fetch_pvn bad flags %lxpanic: refcounted_he_fetch_sv bad flags %lxpanic: refcounted_he_new_sv bad flags %lxpanic: cop_store_label illegal flag bits 0x%lxAttempt to delete disallowed key '%-p' from a restricted hashAttempt to free nonexistent shared string '%s'%s (utf8)panic: refcounted_he_value bad flags %lxelseif should be elsiflocale.c Called by %s: %u ; errno=%d%s: %u: panic: %s%s%s C; can't set it to Unknown locale category %d%s%sPERL_BADLANGLC_ALLLANGUnexpectedly got 'dummy_trialPERL_SKIP_LOCALE_INITperl: warning: Setting locale failed. a fallback localeperl: warning: Failed to fall back to any of: POSIXthe standard localethe system default locale%s ("%s") locale name not determinableperl: warning: Falling back to %s ("%s"). PERL_UNICODElocale Called via %s: %u%s Called via %s: %uCan't change locale for %s (%d) from '%s' to '%s' %sLC_CTYPELC_NUMERICLC_COLLATELC_TIMELC_MESSAGESLC_MONETARYLocale category unknown to Perl; if you see this, it is a bug in perl; please report it via perlbug%02lXUnknown locale category %dLocale '%s' is unsupported, and may hang or crash the interpreter\n\t' 'Locale '%s' contains (at least) the following characters which have unexpected meanings: %s The Perl program will use the expected meanings The following characters (and maybe others) may not have the same meaning as the Perl program expects: %s ; codeset=%s�nl_langinfo returned empty for %ld in supposed locale '%s'; which really is '%s' codeset is '%s'; radix='%s'; January='%s'; strtod(1,5)=%g, strtod(1.5)=%g 1,51.5 !"#$%&'()*+,-./:<=>?@[\]^_`{|}~123456789Can't find separator in ALT_DIGITS representation '%s' for locale '%s'1997-12-201.0i18n:1999ISOISO/IEC 14652 i18n FDCC-setISO/IEC JTC1/SC22/WG20 - internationalization+%c %a %lpanic: Unexpected nl_langinfo() item %jdgroupingthousands_sepdecimal_pointint_curr_symbolmon_decimal_pointmon_thousands_sepmon_groupingpositive_signnegative_signcurrency_symbolint_frac_digitsfrac_digitsp_sep_by_spacen_cs_precedesn_sep_by_spacep_sign_posnn_sign_posnint_p_cs_precedesint_p_sep_by_spaceint_n_cs_precedesint_n_sep_by_spaceint_p_sign_posnint_n_sign_posnp_cs_precedes%pUnexpected return from parse_LC_ALL_stringperl: warning: Please check that your locale settings: LC_ALL = %c%s%c, unset %s = %c%s%c, LANG = %c%s%c are supported and installed on your system. doesn't list every locale categoryneeds an '=' to split name=valueis an unknown categoryhas LC_ALL, which is illegal here'%.*s' %s Internal length calculation wrong. "%s" was not entirely added to "%.*s"; needed=%zu, had=%zuABCDEFGHIJKLMnopqrstuvwxyzCould not find current %s localeSize magic not implementedopen<open>HILD_ERROR_NATIVENCODINGLOBAL_PHASEAST_FHAST_SUCCESSFUL_PATTERNPENAFE_LOCALESAINTNICODETF8LOCALETF8CACHEARNING_BITSUUUUUUUUUUUUUUUUUUUU_TOP %ldsetenv key (encoding to utf8)setenvPATHIGNOREMaximal count of pending signals (%lu) exceeded__DIE____WARN__No such hook: %sNo such signal: SIG%sDEFAULTrequire__beforerequire__afterAttempt to set unknown hook '%s' in %%{^HOOK}${^HOOK}{%.*s} may only be a CODE reference or undefFETCHSTOREDELETEFETCHSIZEFETCHSIZE returned a negative valueCLEARNEXTKEYFIRSTKEYEXISTSpanic: magic_setdbline len=%ld, ptr='%s'Attempt to set length of freed arraysubstr outside of stringAttempt to use reference as lvalue in substrAssigned value is not a reference SCALARn ARRAY HASH CODEAssigned value is not a%s reference${^ENCODING} is no longer supportedassigning to $^OSetting $/ to a reference to %s is forbiddena negative integerzeroSetting $/ to a%s %s reference is forbiddennAssigning non-zero to $[ is no longer possible$0CLDSignal SIG%s received, but no signal handler set. SIG%s handler "%2p" not defined. SIG%s handler "__ANON__" not defined. signocodeerrnostatusuidpidaddrbandfeature__SUB__pos_as_name_separeword_filehandlesitwiselassefervalbytesndirectsaeyword_alleyword_anyodule_trueore_delimsultidimensionalyrefostderef_qqefaliasingayignaturesmartmatchtatewitchrynicodenievalpanic: hv_store() failed in set_mro_private_data() for '%.*s' %dpanic: hv_store() failed in mro_register() for '%.*s' %dCan't linearize anonymous symbol tablepanic: invalid MRO!Can't call mro_isa_changed_in() on anonymous symbol tableCan't call mro_method_changed_in() on anonymous symbol tableInvalid mro name: '%-p'mro::method_changed_inNo such class: '%-p'!dfsRecursive inheritance detected in package '%2p'Integer overflow in %s numberhexadecimalbinaryIllegal %s digit '%c' ignoredIllegal octal digit '%c' ignorednumeric.c0 but trueinqs#Binary number > 0b11111111111111111111111111111111Octal number > 037777777777Hexadecimal number > 0xffffffff%s non-portablesilence compiler warningCan't undef active subroutinepanic: pad_add_name_pvn illegal flag bits 0x%lxpanic: pad_alloc, %p!=%ppanic: pad_findmy_pvn illegal flag bits 0x%lx%d%lu%4p never introducedpanic: pad_swipe curpad, %p!=%ppanic: pad_swipe po=%ld, fill=%ldpanic: pad_free curpad, %p!=%ppanic: pad_free poPADNAME = 0x%lx(0x%lx) PAD = 0x%lx(0x%lx) %2d. 0x%lx<%lu> FAKE "%s" flags=0x%lx index=%lu %2d. 0x%lx<%lu> (%lu,%lu) "%s" %2d. 0x%lx<%lu> panic: no pad in cv_clone"%s" %s %d%lu%4p masks earlier declaration in same %sfieldvariablestatement"our" variable %d%lu%4p redeclared (Did you mean "local" instead of "our"?) panic: pad_findlex illegal flag bits 0x%lxField %-p is not accessible outside a method%s "%d%lu%4p" will not stay sharedSubroutineVariableField %-p of %10p is not accessible in a method of %10p%s "%d%lu%4p" is not availableConstants from lexical variables potentially modified elsewhere are no longer permittedUse of @_ in %s with signatured subroutine is experimentalImplicit use of @_ in %s with signatured subroutine is experimentalStatement unlikely to be reached (Maybe you meant system() when you said exec()?) %-p() called too early to check prototypeRecursive call to Perl_load_module in PerlIO_find_layerPerlIOPerlIO::Layer::NoWarningsPerlIO::LayerUsage class->find(name[,load])Invalid separator character %c%c%c in PerlIO layer specification %sArgument list not closed for PerlIO layer "%.*s"Unknown PerlIO layer "%.*s"panic: PerlIO layer array corruptPERLIOPerlIO::Layer::findperlio.cIrIwPerlIO layer function table size (%lu) does not match size expected by this perl (%lu)PerlIO layer instance size (%lu) smaller than size expected by this perl (%lu)More than one argument to open(,':%s')bytesrawrefcnt_inc: fd %d: %d <= 0 refcnt_inc: fd %d < 0 refcnt_dec: fd %d >= refcnt_size %d refcnt_dec: fd %d: %d <= 0 refcnt_dec: fd %d < 0 refcnt: fd %d >= refcnt_size %d refcnt: fd %d: %d <= 0 refcnt: fd %d < 0 unixr+wstdioperliopendingcrlfDon't know how to get file name/tmp/PerlIO_XXXXXXTMPDIROffset outside stringArrayHashCodeGlobperlio:more_refcounted_fdsADJUSTcatch block requires a (VAR)UnimplementedA slurpy parameter may not have a default valueExperimental subroutine signatures not enabledsyntax errorNot a SCALAR referenceCORE::Can't find an opnumber for "%d%lu%4p"Attempt to bless into a freed packageAttempt to bless into a referenceExplicit blessing to '' (assuming package main)ARRAYCODEFILEHANDLEGLOBHASHNAMEPACKAGEConstant subroutine %-p undefined(anonymous)Illegal division by zeroIllegal modulus zeroNon-finite repeat count does nothingNegative repeat count does nothingOut of memory during list extendOut of memory during string extendpp.cCan't take %s of %gInteger overflow in srandCannot chr %gInvalid negative number (%-p) in chṙCan't modify index/value array slice in list assignmentCan't modify keys on array in list assignmentNot a HASH referencepanic: avhv_delete no longer supportedCan't modify key/value hash slice in %s assignmentOdd number of elements in anonymous hashSPLICEsplice() offset past end of arraySplit loop[out of range]panic: unimplemented op %s (#%d) calledNot enoughToo many%s arguments for %sType of arg %d to &CORE::%s must be array referenceType of arg %d to &CORE::%s must be hash%s reference or arrayType of arg %d to &CORE::%s must be %sscalar referencereference to one of [$@%&*]reference to one of [$@%*]panic: unknown OA_*: %xToo %s arguments for subroutine '%-p' (got %lu; expected %s%lu)fewmanyat least at most Odd name/value argument for subroutine '%-p'Not a GLOB referencea symbolpanic: Start of forward hop (0x%p) is %zd bytes beyond legal end position (0x%p)Infinite recursion via empty patternSubstitution loopNot enough format arguments%#0*.*f%0*.*f%#*.*f%*.*f Range iterator outside integer rangeE0panic: bad gimme: %d (in cleanup) %-p%-p%s has too many errors. %s has too many errors. (eval)No DB::DB routine defineda readonly valuea temporaryCan't return %s from lvalue subroutineCan't "%s" out of a "%s" blockCan't return outside a subroutinepanic: return, type=%ugoto must have labelGoto undefined subroutine &%-pGoto undefined subroutineCan't goto subroutine outside a subroutineCan't goto subroutine from an eval-stringCan't goto subroutine from an eval-blockCan't goto subroutine from a sort sub (or similar callback)DB::gotoCan't "goto" out of a pseudo blockpanic: goto, type=%u, ix=%ldCan't find label %d%lu%4pUse of "goto" to jump into a construct is deprecated, and will become fatal in Perl 5.42panic: docatch: illegal ix=%ldeval_<(eval %lu)[%s:%u]_<(eval %lu)Can't "%s" outside a topicalizerdefaultwhenCan't "continue" outside a when blockCan't "break" outside a given blockCan't "break" in a loop topicalizer%-p did not return a true value%-pCompilation failed in requireUnknown error finallydeferCan't "%s" outside a loop blockLabel not found for "%s %-p"Exiting %s via %spseudo-blockformatsubstitutiondefer blockTarget of goto is too deeply nestedCan't "goto" into a "defer" blockCan't "goto" into a binary or list expressionCan't "goto" into the middle of a foreach loopCan't "goto" into a "given" blockPerls since %-p too modern--this is %-p, stopped.0Perl %-p required--this is only %-p, stoppedv%d.%d.0Perl %-p required (did you mean %-p?)--this is only %-p, stoppedMissing or undefined argument to %sMissing or undefined argument to %s via %%{^HOOK}{require__before}Can't locate %s: %sAttempt to reload %s aborted. Compilation failed in requireBareword in require maps to disallowed filename "%-p"Bareword in require contains "\0"Bareword in require contains "/."INCDIRCan't locate object method "INC", nor "INCDIR" nor string overload via package %10p %s in @INCin object hookin object in ARRAY hook/loader/0x%lx/%s%s %s hook died--halting @INC searchsub@INC entryCan't locate %s: %s: %s (you may need to install the module).h (change .h to .ph maybe?) (did you run h2ph?).ph (did you run h2ph?)Can't locate %s in @INC%-p (@INC entries checked:%-p)Can't locate %sdo "%s" failed, '.' is no longer in @INC; did you mean do "./%s"?cCompilation errorUnit check errorfeature_apos_as_name_sepfeature_bareword_filehandlesfeature_bitwisefeature_classfeature___SUB__feature_myreffeature_deferfeature_evalbytesfeature_more_delimsfeature_fcfeature_indirectfeature_isafeature_keyword_allfeature_keyword_anyfeature_module_truefeature_multidimensionalfeature_postderef_qqfeature_refaliasingfeature_sayfeature_signaturesfeature_smartmatchfeature_statefeature_switchfeature_tryfeature_unievalfeature_unicodeSmart matching a non-overloaded object breaks encapsulationNull picture in formlineRepeated format line will never terminate (~~ and @#)Useless assignment to a temporaryPRINTCan't return array to lvalue scalar contextCan't return hash to lvalue scalar contextNot %s referenceCan't return %s to lvalue scalar contextAssigned value is not a SCALAR referencepanic: pp_match?? already matched onceString shorter than min possible regex match (%zd < %zd) panic: pp_match start/end pointers, paren=%d, start=%zd, end=%zd, s=%p, strend=%p, len=%zdREADLINEglob failed (child exited with status %d%s), core dumped$&*(){}[]'";\|?<>~`utf8 "\x%02X" does not map to UnicodeNot an ARRAY referenceUse of reference "%-p" as array indexUse of freed value in iterationpanic: pp_iter, type=%upanic: pp_subst, pm=%p, orig=%pa subroutineCan't use string ("%-32p"%s) as a subroutine ref while "strict refs" in useNot a CODE referenceClosure prototype calledDB::lsubNo DB::sub routine definedCan't modify non-lvalue subroutine call of &%-pDeep recursion on anonymous subroutineDeep recursion on subroutine "%-p"panic: attempt to copy freed scalar %pReference found where even-sized list expectedOdd number of elements in hash assignmentE_DEBUG_FLAGSUndefined subroutine &%-p calledUndefined subroutine calledUndefined subroutine &%-p called, close to label '%s'Can't call method "%-p" without a package or object referenceCan't call method "%-p" on an undefined valueCan't call method "%-p" on unblessed referenceDOESInvalid type '%c' in unpack'@' outside of string in unpackMalformed UTF-8 string in unpack'X' outside of string in unpack'x' outside of string in unpack'/' must follow a numeric type in unpackU0 mode on a byte string%.*luUnterminated compressed integer in unpack'P' must have an explicit size in unpackfFdDcCsSiIlLnNUWvVqQjJCount after length/code in unpacklength/code after end of string in unpackNegative '/' count in unpackCode missing after '/' in unpackInvalid type ',' in %s()-group starts with a count in %sToo deeply nested ()-groups in %ssSiIlLqQjJfFdDpP(sSiIlLxXnNvV@.'%c' allowed only after types %s in %sCan't use both '<' and '>' after type '%c' in %sCan't use '%c' in a group with different byte-order in %sDuplicate modifier '%c' after '%c' in %sMalformed integer in [] in %s'/' does not take a repeat count in %sMismatched brackets in templateNo group ending character '%c' found in templatepack/unpack repeat count overflowWithin []-length '*' not allowed in %sInvalid type '%c' in %sWithin []-length '%c' not allowed in %s'X' outside of string in %sMalformed UTF-8 string in '%c' format in unpackCharacter in '%c' format wrapped in unpackCharacter(s) in '%c' format wrapped in %s00000000000000@XxuOut of memory during pack()Code missing after '/' in packaAZInvalid type '%c' in pack'%%' may not be used in packMalformed UTF-8 string in pack'%c' outside of string in packpanic: predicted utf8 length not available, for '%c', aptr=%p end=%p cur=%p, fromlen=%zuCharacter in 'c' format wrapped in packCharacter in 'C' format wrapped in packCharacter in 'W' format wrapped in packCannot compress negative numbers in packCannot compress integer in packCan only compress unsigned integers in packAttempt to pack pointer to temporary valueField too wide in 'u' format in packpanic: string is shorter than advertised, aptr=%p, aend=%p, buffer=%p, todo=%zdpanic: marks beyond string end, m=%p, marks=%p, level=%dCannot compress %g in packCannot pack %g with '%c'$$Undefined sort subroutine "%-p" calledUndefined subroutine in sortb``rbrt ...caughtWarning: something's wrongPROPAGATE ...propagatedDiedCannot open %2p as a filehandle: it is already open as a dirhandleFILENOBINMODETIEHASHTIEARRAYCannot tie unreifiable arrayTIEHANDLETIESCALARCan't locate object method %1p via package %5pCan't locate object method %1p via package %5p (perhaps you forgot to load %5p?)Can't locate object method %1p via package %7pSelf-ties of arrays and hashes are not supportedUNTIEuntie attempted while %lu inner references still existAnyDBM_FileAnyDBM_File.pmNo dbm on this machineNon-string passed as bitmaskGETCUndefined format "%-p" called%2p_TOPtopUndefined top format "%-p" calledpage overflowPRINTFREADNegative length%s() isn't allowed on :utf8 handlesWRITEEOFTELLSEEKPossible memory corruption: %s overflowed 3rd argumentlstat() on filehandle%s%-pThe stat preceding lstat() wasn't an lstat-T and -B not implemented on filehandleschdir() on unopened filehandle %-pHOMELOGDIRCannot open %2p as a dirhandle: it is already open as a filehandlepanic: kid popen errno read, n=%uSunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDec%s(%.0f) too large%s(%.0f) too small%s(%.0f) failed%s %s %2d %02d:%02d:%02d %ldalarm() with negative argumentsleep() with negative argumententering effective uid failedentering effective gid failedleaving effective uid failedleaving effective gid failed%s() attempted on handle %2p opened with open()%s() attempted on invalid dirhandle %2pSurrogates should never appear in well-formed text, and therefore shouldn't be the basis for line breakingSupplanted by Line_Break property values; see www.unicode.org/reports/tr14PERL_RE_COLORS%s in regex m/%d%lu%4p%s/Regexp out of spaceEval-group in insecure regular expressionpanic: reg returned failure to re_op_compile, flags: %#lxRegexppanic! %s: %d: Tried to warn when none expected at '%s'regcomp.cPerl folding rules are not up-to-date for 0x%02X; please use the perlbug utility to report; in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/panic: %s: %d: negative offset: %ld trying to output message for pattern %.*ss~ panic: regfree data code '%c'Overloaded qr did not return a REGEXP?Corrupted regexp opcode %d > %dE_COMPILE_RECURSION_LIMIT%s in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Too many nested open parensUnmatched (In '(*VERB...)', the '(' and '*' must be adjacentIn '(*...)', the '(' and '*' must be adjacentUnterminated verb pattern argumentUnterminated '(*...' argumentUnterminated verb patternUnterminated '(*...' constructFAILMARKTHENasratomic_script_runatomicplbpositive_lookbehindplapositive_lookaheadnlbnegative_lookbehindnlanegative_lookaheadsrscript_run'(*%d%lu%4p' requires a terminating ':' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unknown verb pattern '%d%lu%4p' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unknown '(*...)' construct '%d%lu%4p' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Verb pattern '%.*s' has a mandatory argument in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/SInvalid reference to groupIn '(?...)', the '(' and '?' must be adjacentSequence (?P<... not terminatedSequence (?P>... not terminatedSequence (%.*s...) not recognized in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/? m can't match in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Useless use of greediness modifier '%c' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/%d%lu%4p matches null string many times in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Nested quantifiersUse of quantifier '*' is not allowed in Unicode property wildcard subpatternspanic: regclass returned failure to regatom, flags: %#lx in regex m/%d%lu%4p%s/Unmatched [panic: reg returned failure to regatom, flags: %#lx in regex m/%d%lu%4p%s/Internal urpQuantifier follows nothingUse of '\G' is not allowed in Unicode property wildcard subpatterns\K not permitted in lookahead/lookbehind\C no longer supportedMissing right brace on \%c{} in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Empty \%c{} in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/cb'%d%lu%4p' is an unknown bound type in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Using /u for '%.*s' instead of /%s in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unescaped left brace in regex is illegal hereSequence %.2s... not terminated in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unterminated \g{...} patternSequence \%s... not terminated in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/g{Reference to invalid group 0Reference to nonexistent groupUnterminated \g... patternReference to nonexistent or unclosed groupTrailing \panic: grok_bslash_N set NEED_UTF8Unrecognized escape \%.1s passed through in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unescaped literal '%c' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/ in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/panic: loc_correspondence[%d] is 0 in regex m/%d%lu%4p%s/Internal disaster#%d POSIX syntax [%c %c] belongs inside character classes%s in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/ (but this one isn't implemented) (but this one isn't fully valid)Literal vertical space in [] is illegal except under /x\N in a character class must be a named character: \N{...}Ignoring zero length \N{} in character class in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/\N{} here is restricted to one characterUsing just the first character returned by \N{} in character class in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Use of '\%c%c' is not allowed in Unicode property wildcard subpatterns in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Empty \%c in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Character following \%c must be '{' or a single-character Unicode property name in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/%d%lu%4p in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unicode string properties are not implemented in (?[...])Using just the single character results returned by \p{} in (?[...]) in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Inverting a character class which contains a multi-character sequence is illegal\x{%lX}foo\p{Alnum}utf8.pmNeed exactly 3 octal digitsUnrecognized escape \%c in character class in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unrecognized escape \%c in character class passed through in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/False [] range "%d%lu%4p" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Invalid [] range "%d%lu%4p" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/False [] range "%*.*s" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Both or neither range ends should be Unicode in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Ranges of ASCII printables should be some subset of "0-9", "A-Z", or "a-z" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Ranges of digits should be from the same group of 10 in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/-[]\^"%.*s" is more clearly written simply as "%s" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/?:Assuming NOT a POSIX class since it doesn't start with a '[' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since no blanks are allowed in one in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/POSIX syntax [%c %c] is reserved for future extensions in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since the '^' must come after the colon in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since a semi-colon was found instead of a colon in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since there must be a starting ':' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/wordalphspacgrapasciblancntralnuloweuppedigiprinpuncxdigitAssuming NOT a POSIX class since the name must be all lowercase letters in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since there is no terminating ':' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since there is no terminating ']' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/POSIX class [:%s%d%lu%4p:] unknown in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/utf8::namena([<)]>)]>Unicode property wildcard not terminatedThe Unicode property wildcards feature is experimentalplaceholderNo Unicode property value wildcard matches:_charnames::_loose_regcomp_lookuppanic: Can't find '_charnames::_loose_regcomp_lookupisnumericvaluenvnumericcjkcanonicalcombiningclasscccageinpresentinspacegc=lInsecure user-defined property; Timeout waiting for another thread to defineInfinite recursion in user-defined propertyError " in expansion of %.*s%.0f%.*s%.*e%.*s%s%lu/%luUse of '%.*s' in \p{} or \P{} is deprecated because: %sprivate_use%d=Insecure private-use overrideThe private_use feature is experimentalUnknown user-defined property nameIllegal user-defined property nameCan't find Unicode property definition \p{ "~HANGUL SYLLABLE _charnames::_get_names_infopanic: Can't find '_charnames::_get_names_info -0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ() ABCDEGHIJKLMNOPRSTUWYGGGNDDDRMBBBSSJJJKHAAEYAYAEEOEYEOYEOWAWAEOEYOUWEOWEWIYUEUYIIGSNJNHLGLMLBLSLTLPLHBSNGlowhighlegal%s-0000%s-%XMissing braces on \N{}Zero length \N{}U+panic: hv_store() unexpectedly failedInvalid hexadecimal number in \N{U+...}\x{panic: reg returned failure to grok_bslash_N, flags: %#lx in regex m/%d%lu%4p%s/Invalid quantifier in {,}Quantifier in {,} bigger than %d in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/^msixxnExpecting interpolated extended charclassUnexpected '(' with no preceding operatorUnexpected ')'Unexpected binary operator '%c' with no preceding operand in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unexpected characterOperand with no preceding operatorSyntax error in (?[...])Unexpected ']' with no following ')' in (?[...Incomplete expression within '(?[ ])'\x{%lX}-\x{%lX}panic: regclass returned failure to handle_sets, flags: %#lx in regex m/%d%lu%4p%s/Use of modifier '-m' is not allowed in Unicode property wildcard subpatternsRegexp modifier "%c" may appear a maximum of twice in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Regexp modifier "%c" may not appear twice in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Regexp modifiers "%c" and "%c" are mutually exclusive in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Regexp modifier "%c" may not appear after the "-" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Useless (%s%c) - %suse /%c modifier in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/?-don't Useless (%sc) - %suse /gc modifier in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Useless use of (?-p) in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Use of modifier '%c' is not allowed in Unicode property wildcard subpatterns in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Sequence (?... not terminated%04lX%cINFTY%c%04lX%c%04lX%c%04lX%c1.12.02.13.03.13.24.04.15.05.15.26.06.16.26.37.08.09.010.011.012.012.113.014.015.015.116.0NAUnassignedunassignedV10_0V11_0V12_0V12_1V13_0V14_0V15_0V15_1V16_0V1_1V2_0V2_1V3_0V3_1V3_2V4_0V4_1V5_0V5_1V5_2V6_0V6_1V6_2V6_3V7_0V8_0V9_0v100v11v110v120v121v130v140v150v151v160v20v21v30v31v32v40v41v50v51v52v60v61v62v63v70v80v90FFalseNonoTrueYyYesyesALalANanArabic_LetterarabicletterArabic_NumberarabicnumberBNbnBoundary_NeutralboundaryneutralCommon_SeparatorcommonseparatorCScsENenESesETetEuropean_NumbereuropeannumberEuropean_SeparatoreuropeanseparatorEuropean_TerminatoreuropeanterminatorFirst_Strong_IsolatefirststrongisolateFSIfsiLeft_To_RightlefttorightLeft_To_Right_EmbeddinglefttorightembeddingLeft_To_Right_IsolatelefttorightisolateLeft_To_Right_OverridelefttorightoverrideLRElreLRIlriLROlroNonspacing_MarknonspacingmarkNSMnsmONonOther_NeutralotherneutralParagraph_SeparatorparagraphseparatorPDFpdfPDIpdiPop_Directional_FormatpopdirectionalformatPop_Directional_IsolatepopdirectionalisolateRight_To_LeftrighttoleftRight_To_Left_EmbeddingrighttoleftembeddingRight_To_Left_IsolaterighttoleftisolateRight_To_Left_OverriderighttoleftoverrideRLErleRLIrliRLOrloSegment_SeparatorsegmentseparatorWhite_SpacewhitespaceWSwsAdlamadlamAegean NumbersAegean_NumbersaegeannumbersAhomahomAlchemicalalchemicalAlchemical SymbolsAlchemical_SymbolsalchemicalsymbolsAlphabetic_PFalphabeticpfAlphabetic Presentation FormsAlphabetic_Presentation_FormsalphabeticpresentationformsAnatolian HieroglyphsAnatolian_HieroglyphsanatolianhieroglyphsAncient_Greek_MusicancientgreekmusicAncient Greek Musical NotationAncient_Greek_Musical_NotationancientgreekmusicalnotationAncient Greek NumbersAncient_Greek_NumbersancientgreeknumbersAncient SymbolsAncient_SymbolsancientsymbolsArabicarabicArabic_Ext_AarabicextaArabic_Ext_BarabicextbArabic_Ext_CarabicextcArabic Extended-AArabic_Extended_AarabicextendedaArabic Extended-BArabic_Extended_BarabicextendedbArabic Extended-CArabic_Extended_CarabicextendedcArabic_MatharabicmathArabic Mathematical Alphabetic SymbolsArabic_Mathematical_Alphabetic_SymbolsarabicmathematicalalphabeticsymbolsArabic_PF_AarabicpfaArabic_PF_BarabicpfbArabic Presentation Forms-AArabic_Presentation_Forms_AarabicpresentationformsaArabic Presentation Forms-BArabic_Presentation_Forms_BarabicpresentationformsbArabic_SuparabicsupArabic SupplementArabic_SupplementarabicsupplementArmenianarmenianArrowsarrowsASCIIasciiAvestanavestanBalinesebalineseBamumbamumBamum_SupbamumsupBamum SupplementBamum_SupplementbamumsupplementBasic LatinBasic_LatinbasiclatinBassa VahBassa_VahbassavahBatakbatakBengalibengaliBhaiksukibhaiksukiBlock ElementsBlock_ElementsblockelementsBopomofobopomofoBopomofo_ExtbopomofoextBopomofo ExtendedBopomofo_ExtendedbopomofoextendedBox DrawingBox_DrawingboxdrawingBrahmibrahmiBraillebrailleBraille PatternsBraille_PatternsbraillepatternsBuginesebugineseBuhidbuhidByzantine_MusicbyzantinemusicByzantine Musical SymbolsByzantine_Musical_SymbolsbyzantinemusicalsymbolsCanadian_SyllabicscanadiansyllabicsCariancarianCaucasian AlbanianCaucasian_AlbaniancaucasianalbanianChakmachakmaChamchamCherokeecherokeeCherokee_SupcherokeesupCherokee SupplementCherokee_SupplementcherokeesupplementChess SymbolsChess_SymbolschesssymbolsChorasmianchorasmianCJKCJK_CompatcjkcompatCJK_Compat_FormscjkcompatformsCJK CompatibilityCJK_CompatibilitycjkcompatibilityCJK Compatibility FormsCJK_Compatibility_FormscjkcompatibilityformsCJK Compatibility IdeographsCJK_Compatibility_IdeographscjkcompatibilityideographsCJK Compatibility Ideographs SupplementCJK_Compatibility_Ideographs_SupplementcjkcompatibilityideographssupplementCJK_Compat_IdeographscjkcompatideographsCJK_Compat_Ideographs_SupcjkcompatideographssupCJK_Ext_AcjkextaCJK_Ext_BcjkextbCJK_Ext_CcjkextcCJK_Ext_DcjkextdCJK_Ext_EcjkexteCJK_Ext_FcjkextfCJK_Ext_GcjkextgCJK_Ext_HcjkexthCJK_Ext_IcjkextiCJK_Radicals_SupcjkradicalssupCJK Radicals SupplementCJK_Radicals_SupplementcjkradicalssupplementCJK StrokesCJK_StrokescjkstrokesCJK_SymbolscjksymbolsCJK Symbols and PunctuationCJK_Symbols_And_PunctuationcjksymbolsandpunctuationCJK Unified IdeographsCJK_Unified_IdeographscjkunifiedideographsCJK Unified Ideographs Extension ACJK_Unified_Ideographs_Extension_AcjkunifiedideographsextensionaCJK Unified Ideographs Extension BCJK_Unified_Ideographs_Extension_BcjkunifiedideographsextensionbCJK Unified Ideographs Extension CCJK_Unified_Ideographs_Extension_CcjkunifiedideographsextensioncCJK Unified Ideographs Extension DCJK_Unified_Ideographs_Extension_DcjkunifiedideographsextensiondCJK Unified Ideographs Extension ECJK_Unified_Ideographs_Extension_EcjkunifiedideographsextensioneCJK Unified Ideographs Extension FCJK_Unified_Ideographs_Extension_FcjkunifiedideographsextensionfCJK Unified Ideographs Extension GCJK_Unified_Ideographs_Extension_GcjkunifiedideographsextensiongCJK Unified Ideographs Extension HCJK_Unified_Ideographs_Extension_HcjkunifiedideographsextensionhCJK Unified Ideographs Extension ICJK_Unified_Ideographs_Extension_IcjkunifiedideographsextensioniCombining Diacritical MarksCombining_Diacritical_MarkscombiningdiacriticalmarksCombining Diacritical Marks ExtendedCombining_Diacritical_Marks_ExtendedcombiningdiacriticalmarksextendedCombining Diacritical Marks for SymbolsCombining_Diacritical_Marks_For_SymbolscombiningdiacriticalmarksforsymbolsCombining Diacritical Marks SupplementCombining_Diacritical_Marks_SupplementcombiningdiacriticalmarkssupplementCombining Half MarksCombining_Half_MarkscombininghalfmarksCombining_Marks_For_SymbolscombiningmarksforsymbolsCommon Indic Number FormsCommon_Indic_Number_FormscommonindicnumberformsCompat_JamocompatjamoControl PicturesControl_PicturescontrolpicturesCopticcopticCoptic Epact NumbersCoptic_Epact_NumberscopticepactnumbersCounting_RodcountingrodCounting Rod NumeralsCounting_Rod_NumeralscountingrodnumeralsCuneiformcuneiformCuneiform_NumberscuneiformnumbersCuneiform Numbers and PunctuationCuneiform_Numbers_And_PunctuationcuneiformnumbersandpunctuationCurrency SymbolsCurrency_SymbolscurrencysymbolsCypriot SyllabaryCypriot_SyllabarycypriotsyllabaryCypro-MinoanCypro_MinoancyprominoanCyrilliccyrillicCyrillic_Ext_AcyrillicextaCyrillic_Ext_BcyrillicextbCyrillic_Ext_CcyrillicextcCyrillic_Ext_DcyrillicextdCyrillic Extended-ACyrillic_Extended_AcyrillicextendedaCyrillic Extended-BCyrillic_Extended_BcyrillicextendedbCyrillic Extended-CCyrillic_Extended_CcyrillicextendedcCyrillic Extended-DCyrillic_Extended_DcyrillicextendeddCyrillic_SupcyrillicsupCyrillic SupplementCyrillic_SupplementcyrillicsupplementCyrillic_SupplementarycyrillicsupplementaryDeseretdeseretDevanagaridevanagariDevanagari_ExtdevanagariextDevanagari_Ext_AdevanagariextaDevanagari ExtendedDevanagari_ExtendeddevanagariextendedDevanagari Extended-ADevanagari_Extended_AdevanagariextendedaDiacriticalsdiacriticalsDiacriticals_ExtdiacriticalsextDiacriticals_For_SymbolsdiacriticalsforsymbolsDiacriticals_SupdiacriticalssupDingbatsdingbatsDives AkuruDives_AkurudivesakuruDogradograDominodominoDomino TilesDomino_TilesdominotilesDuployanduployanEarly Dynastic CuneiformEarly_Dynastic_CuneiformearlydynasticcuneiformEgyptian Hieroglyph Format ControlsEgyptian_Hieroglyph_Format_ControlsegyptianhieroglyphformatcontrolsEgyptian HieroglyphsEgyptian_HieroglyphsegyptianhieroglyphsEgyptian_Hieroglyphs_Ext_AegyptianhieroglyphsextaEgyptian Hieroglyphs Extended-AEgyptian_Hieroglyphs_Extended_AegyptianhieroglyphsextendedaElbasanelbasanElymaicelymaicEmoticonsemoticonsEnclosed_AlphanumenclosedalphanumEnclosed AlphanumericsEnclosed_AlphanumericsenclosedalphanumericsEnclosed Alphanumeric SupplementEnclosed_Alphanumeric_SupplementenclosedalphanumericsupplementEnclosed_Alphanum_SupenclosedalphanumsupEnclosed_CJKenclosedcjkEnclosed CJK Letters and MonthsEnclosed_CJK_Letters_And_MonthsenclosedcjklettersandmonthsEnclosed_Ideographic_SupenclosedideographicsupEnclosed Ideographic SupplementEnclosed_Ideographic_SupplementenclosedideographicsupplementEthiopicethiopicEthiopic_ExtethiopicextEthiopic_Ext_AethiopicextaEthiopic_Ext_BethiopicextbEthiopic ExtendedEthiopic_ExtendedethiopicextendedEthiopic Extended-AEthiopic_Extended_AethiopicextendedaEthiopic Extended-BEthiopic_Extended_BethiopicextendedbEthiopic_SupethiopicsupEthiopic SupplementEthiopic_SupplementethiopicsupplementGaraygarayGeneral PunctuationGeneral_PunctuationgeneralpunctuationGeometric ShapesGeometric_ShapesgeometricshapesGeometric_Shapes_ExtgeometricshapesextGeometric Shapes ExtendedGeometric_Shapes_ExtendedgeometricshapesextendedGeorgiangeorgianGeorgian_ExtgeorgianextGeorgian ExtendedGeorgian_ExtendedgeorgianextendedGeorgian_SupgeorgiansupGeorgian SupplementGeorgian_SupplementgeorgiansupplementGlagoliticglagoliticGlagolitic_SupglagoliticsupGlagolitic SupplementGlagolitic_SupplementglagoliticsupplementGothicgothicGranthagranthaGreekgreekGreek and CopticGreek_And_CopticgreekandcopticGreek_ExtgreekextGreek ExtendedGreek_ExtendedgreekextendedGujaratigujaratiGunjala GondiGunjala_GondigunjalagondiGurmukhigurmukhiGurung KhemaGurung_KhemagurungkhemaHalf_And_Full_FormshalfandfullformsHalf_MarkshalfmarksHalfwidth and Fullwidth FormsHalfwidth_And_Fullwidth_FormshalfwidthandfullwidthformsHangulhangulHangul Compatibility JamoHangul_Compatibility_JamohangulcompatibilityjamoHangul JamoHangul_JamohanguljamoHangul Jamo Extended-AHangul_Jamo_Extended_AhanguljamoextendedaHangul Jamo Extended-BHangul_Jamo_Extended_BhanguljamoextendedbHangul SyllablesHangul_SyllableshangulsyllablesHanifi RohingyaHanifi_RohingyahanifirohingyaHanunoohanunooHatranhatranHebrewhebrewHigh Private Use SurrogatesHigh_Private_Use_SurrogateshighprivateusesurrogatesHigh_PU_SurrogateshighpusurrogatesHigh SurrogatesHigh_SurrogateshighsurrogatesHiraganahiraganaIDCidcIdeographic Description CharactersIdeographic_Description_CharactersideographicdescriptioncharactersIdeographic_SymbolsideographicsymbolsIdeographic Symbols and PunctuationIdeographic_Symbols_And_PunctuationideographicsymbolsandpunctuationImperial AramaicImperial_AramaicimperialaramaicIndic_Number_FormsindicnumberformsIndic Siyaq NumbersIndic_Siyaq_NumbersindicsiyaqnumbersInscriptional PahlaviInscriptional_PahlaviinscriptionalpahlaviInscriptional ParthianInscriptional_ParthianinscriptionalparthianIPA_ExtipaextIPA ExtensionsIPA_ExtensionsipaextensionsJamojamoJamo_Ext_AjamoextaJamo_Ext_BjamoextbJavanesejavaneseKaithikaithiKaktovik NumeralsKaktovik_NumeralskaktoviknumeralsKana_Ext_AkanaextaKana_Ext_BkanaextbKana Extended-AKana_Extended_AkanaextendedaKana Extended-BKana_Extended_BkanaextendedbKana_SupkanasupKana SupplementKana_SupplementkanasupplementKanbunkanbunKangxikangxiKangxi RadicalsKangxi_RadicalskangxiradicalsKannadakannadaKatakanakatakanaKatakana_ExtkatakanaextKatakana Phonetic ExtensionsKatakana_Phonetic_ExtensionskatakanaphoneticextensionsKawikawiKayah LiKayah_LikayahliKharoshthikharoshthiKhitan Small ScriptKhitan_Small_ScriptkhitansmallscriptKhmerkhmerKhmer SymbolsKhmer_SymbolskhmersymbolsKhojkikhojkiKhudawadikhudawadiKirat RaiKirat_RaikiratraiLaolaoLatin_1latin1Latin_Ext_AlatinextaLatin_Ext_AdditionallatinextadditionalLatin_Ext_BlatinextbLatin_Ext_ClatinextcLatin_Ext_DlatinextdLatin_Ext_ElatinexteLatin Extended-ALatin_Extended_AlatinextendedaLatin Extended AdditionalLatin_Extended_AdditionallatinextendedadditionalLatin Extended-BLatin_Extended_BlatinextendedbLatin Extended-CLatin_Extended_ClatinextendedcLatin Extended-DLatin_Extended_DlatinextendeddLatin Extended-ELatin_Extended_ElatinextendedeLatin Extended-FLatin_Extended_FlatinextendedfLatin Extended-GLatin_Extended_GlatinextendedgLatin_Ext_FlatinextfLatin_Ext_GlatinextgLatin_1_Suplatin1supLatin-1 SupplementLatin_1_Supplementlatin1supplementLepchalepchaLetterlike SymbolsLetterlike_SymbolsletterlikesymbolsLimbulimbuLinear ALinear_AlinearaLinear B IdeogramsLinear_B_IdeogramslinearbideogramsLinear B SyllabaryLinear_B_SyllabarylinearbsyllabaryLisulisuLisu_SuplisusupLisu SupplementLisu_SupplementlisusupplementLow SurrogatesLow_SurrogateslowsurrogatesLycianlycianLydianlydianMahajanimahajaniMahjongmahjongMahjong TilesMahjong_TilesmahjongtilesMakasarmakasarMalayalammalayalamMandaicmandaicManichaeanmanichaeanMarchenmarchenMasaram GondiMasaram_GondimasaramgondiMath_AlphanummathalphanumMathematical Alphanumeric SymbolsMathematical_Alphanumeric_SymbolsmathematicalalphanumericsymbolsMathematical OperatorsMathematical_OperatorsmathematicaloperatorsMath_OperatorsmathoperatorsMayan NumeralsMayan_NumeralsmayannumeralsMedefaidrinmedefaidrinMeetei MayekMeetei_MayekmeeteimayekMeetei_Mayek_ExtmeeteimayekextMeetei Mayek ExtensionsMeetei_Mayek_ExtensionsmeeteimayekextensionsMende KikakuiMende_KikakuimendekikakuiMeroitic CursiveMeroitic_CursivemeroiticcursiveMeroitic HieroglyphsMeroitic_HieroglyphsmeroitichieroglyphsMiaomiaoMisc_ArrowsmiscarrowsMiscellaneous Mathematical Symbols-AMiscellaneous_Mathematical_Symbols_AmiscellaneousmathematicalsymbolsaMiscellaneous Mathematical Symbols-BMiscellaneous_Mathematical_Symbols_BmiscellaneousmathematicalsymbolsbMiscellaneous SymbolsMiscellaneous_SymbolsmiscellaneoussymbolsMiscellaneous Symbols and ArrowsMiscellaneous_Symbols_And_ArrowsmiscellaneoussymbolsandarrowsMiscellaneous Symbols and PictographsMiscellaneous_Symbols_And_PictographsmiscellaneoussymbolsandpictographsMiscellaneous TechnicalMiscellaneous_TechnicalmiscellaneoustechnicalMisc_Math_Symbols_AmiscmathsymbolsaMisc_Math_Symbols_BmiscmathsymbolsbMisc_PictographsmiscpictographsMisc_SymbolsmiscsymbolsMisc_TechnicalmisctechnicalModimodiModifier_LettersmodifierlettersModifier Tone LettersModifier_Tone_LettersmodifiertonelettersMongolianmongolianMongolian_SupmongoliansupMongolian SupplementMongolian_SupplementmongoliansupplementMromroMultanimultaniMusicmusicMusical SymbolsMusical_SymbolsmusicalsymbolsMyanmarmyanmarMyanmar_Ext_AmyanmarextaMyanmar_Ext_BmyanmarextbMyanmar_Ext_CmyanmarextcMyanmar Extended-AMyanmar_Extended_AmyanmarextendedaMyanmar Extended-BMyanmar_Extended_BmyanmarextendedbMyanmar Extended-CMyanmar_Extended_CmyanmarextendedcNabataeannabataeanNag MundariNag_MundarinagmundariNandinagarinandinagariNBnbNewanewaNew Tai LueNew_Tai_LuenewtailueNKonkoNo_BlocknoblockNumber FormsNumber_FormsnumberformsNushunushuNyiakeng Puachue HmongNyiakeng_Puachue_HmongnyiakengpuachuehmongOCRocrOghamoghamOl ChikiOl_ChikiolchikiOld HungarianOld_HungarianoldhungarianOld ItalicOld_ItalicolditalicOld North ArabianOld_North_ArabianoldnortharabianOld PermicOld_PermicoldpermicOld PersianOld_PersianoldpersianOld SogdianOld_SogdianoldsogdianOld South ArabianOld_South_ArabianoldsoutharabianOld TurkicOld_TurkicoldturkicOld UyghurOld_UyghurolduyghurOl OnalOl_OnalolonalOptical Character RecognitionOptical_Character_RecognitionopticalcharacterrecognitionOriyaoriyaOrnamental DingbatsOrnamental_DingbatsornamentaldingbatsOsageosageOsmanyaosmanyaOttoman Siyaq NumbersOttoman_Siyaq_NumbersottomansiyaqnumbersPahawh HmongPahawh_HmongpahawhhmongPalmyrenepalmyrenePau Cin HauPau_Cin_HaupaucinhauPhags-paPhags_PaphagspaPhaistosphaistosPhaistos DiscPhaistos_DiscphaistosdiscPhoenicianphoenicianPhonetic_ExtphoneticextPhonetic ExtensionsPhonetic_ExtensionsphoneticextensionsPhonetic Extensions SupplementPhonetic_Extensions_SupplementphoneticextensionssupplementPhonetic_Ext_SupphoneticextsupPlaying CardsPlaying_CardsplayingcardsPrivate_UseprivateusePrivate Use AreaPrivate_Use_AreaprivateuseareaPsalter PahlaviPsalter_PahlavipsalterpahlaviPUApuaPunctuationpunctuationRejangrejangRumirumiRumi Numeral SymbolsRumi_Numeral_SymbolsruminumeralsymbolsRunicrunicSamaritansamaritanSaurashtrasaurashtraSharadasharadaShavianshavianShorthand Format ControlsShorthand_Format_ControlsshorthandformatcontrolsSiddhamsiddhamSinhalasinhalaSinhala Archaic NumbersSinhala_Archaic_NumberssinhalaarchaicnumbersSmall_FormssmallformsSmall Form VariantsSmall_Form_VariantssmallformvariantsSmall_Kana_ExtsmallkanaextSmall Kana ExtensionSmall_Kana_ExtensionsmallkanaextensionSogdiansogdianSora SompengSora_SompengsorasompengSoyombosoyomboSpacing Modifier LettersSpacing_Modifier_LettersspacingmodifierlettersSpecialsspecialsSundanesesundaneseSundanese_SupsundanesesupSundanese SupplementSundanese_SupplementsundanesesupplementSunuwarsunuwarSup_Arrows_AsuparrowsaSup_Arrows_BsuparrowsbSup_Arrows_CsuparrowscSuper_And_SubsuperandsubSuperscripts and SubscriptsSuperscripts_And_SubscriptssuperscriptsandsubscriptsSup_Math_OperatorssupmathoperatorsSupplemental Arrows-ASupplemental_Arrows_AsupplementalarrowsaSupplemental Arrows-BSupplemental_Arrows_BsupplementalarrowsbSupplemental Arrows-CSupplemental_Arrows_CsupplementalarrowscSupplemental Mathematical OperatorsSupplemental_Mathematical_OperatorssupplementalmathematicaloperatorsSupplemental PunctuationSupplemental_PunctuationsupplementalpunctuationSupplemental Symbols and PictographsSupplemental_Symbols_And_PictographssupplementalsymbolsandpictographsSupplementary Private Use Area-ASupplementary_Private_Use_Area_AsupplementaryprivateuseareaaSupplementary Private Use Area-BSupplementary_Private_Use_Area_BsupplementaryprivateuseareabSup_PUA_AsuppuaaSup_PUA_BsuppuabSup_PunctuationsuppunctuationSup_Symbols_And_PictographssupsymbolsandpictographsSutton SignWritingSutton_SignWritingsuttonsignwritingSyloti NagriSyloti_NagrisylotinagriSymbols_And_Pictographs_Ext_AsymbolsandpictographsextaSymbols and Pictographs Extended-ASymbols_And_Pictographs_Extended_AsymbolsandpictographsextendedaSymbols for Legacy ComputingSymbols_For_Legacy_ComputingsymbolsforlegacycomputingSymbols_For_Legacy_Computing_SupsymbolsforlegacycomputingsupSymbols for Legacy Computing SupplementSymbols_For_Legacy_Computing_SupplementsymbolsforlegacycomputingsupplementSyriacsyriacSyriac_SupsyriacsupSyriac SupplementSyriac_SupplementsyriacsupplementTagalogtagalogTagbanwatagbanwaTagstagsTai LeTai_LetaileTai ThamTai_ThamtaithamTai VietTai_ViettaivietTai_Xuan_JingtaixuanjingTai Xuan Jing SymbolsTai_Xuan_Jing_SymbolstaixuanjingsymbolsTakritakriTamiltamilTamil_SuptamilsupTamil SupplementTamil_SupplementtamilsupplementTangsatangsaTanguttangutTangut ComponentsTangut_ComponentstangutcomponentsTangut_SuptangutsupTangut SupplementTangut_SupplementtangutsupplementTeluguteluguThaanathaanaThaithaiTibetantibetanTifinaghtifinaghTirhutatirhutaTodhritodhriTotototoTransport_And_MaptransportandmapTransport and Map SymbolsTransport_And_Map_SymbolstransportandmapsymbolsTulu-TigalariTulu_TigalaritulutigalariUCASucasUCAS_ExtucasextUCAS_Ext_AucasextaUgariticugariticUnified Canadian Aboriginal SyllabicsUnified_Canadian_Aboriginal_SyllabicsunifiedcanadianaboriginalsyllabicsUnified Canadian Aboriginal Syllabics ExtendedUnified_Canadian_Aboriginal_Syllabics_ExtendedunifiedcanadianaboriginalsyllabicsextendedUnified Canadian Aboriginal Syllabics Extended-AUnified_Canadian_Aboriginal_Syllabics_Extended_AunifiedcanadianaboriginalsyllabicsextendedaVaivaiVariation SelectorsVariation_SelectorsvariationselectorsVariation Selectors SupplementVariation_Selectors_SupplementvariationselectorssupplementVedic_ExtvedicextVedic ExtensionsVedic_ExtensionsvedicextensionsVertical FormsVertical_FormsverticalformsVithkuqivithkuqiVSvsVS_SupvssupWanchowanchoWarang CitiWarang_CitiwarangcitiYezidiyezidiYijingyijingYijing Hexagram SymbolsYijing_Hexagram_SymbolsyijinghexagramsymbolsYi RadicalsYi_RadicalsyiradicalsYi SyllablesYi_SyllablesyisyllablesZanabazar SquareZanabazar_SquarezanabazarsquareZnamenny_MusicznamennymusicZnamenny Musical NotationZnamenny_Musical_NotationznamennymusicalnotationCloseNoneoOpen67891011121314151617181920212223242526272829303132333435368491103107118122129130132133200202214216218220222224226228230232233234240AboveaboveAbove_LeftaboveleftAbove_RightaboverightARarATAataATARatarATBatbATBLatblAttached_AboveattachedaboveAttached_Above_RightattachedaboverightAttached_BelowattachedbelowAttached_Below_LeftattachedbelowleftBelowbelowBelow_LeftbelowleftBelow_RightbelowrightBLblBRbrCCC10CCC103CCC107CCC11CCC118CCC12CCC122CCC129CCC13CCC130CCC132CCC133CCC14CCC15CCC16CCC17CCC18CCC19CCC20CCC21CCC22CCC23CCC24CCC25CCC26CCC27CCC28CCC29CCC30CCC31CCC32CCC33CCC34CCC35CCC36CCC84CCC91ccc10ccc103ccc107ccc11ccc118ccc12ccc122ccc129ccc13ccc130ccc132ccc133ccc14ccc15ccc16ccc17ccc18ccc19ccc20ccc21ccc22ccc23ccc24ccc25ccc26ccc27ccc28ccc29ccc30ccc31ccc32ccc33ccc34ccc35ccc36ccc84ccc91DAdaDBdbDouble_AbovedoubleaboveDouble_BelowdoublebelowHANRhanrHan_ReadinghanreadingIota_SubscriptiotasubscriptISKana_VoicingkanavoicingKVkvLeftleftNKnkNot_ReorderednotreorderedNRnrNuktanuktaOVovOverlayoverlayRightrightViramaviramaVRvrCancanCanonicalcanonicalCirclecircleComcomCompatcompatEncencFinfinFinalfinalFontfontFrafraFractionfractionInitinitInitialinitialIsoisoIsolatedisolatedMedmedMedialmedialNarnarNarrownarrowNbNobreaknobreakNon_CanonnoncanonNon_CanonicalnoncanonicalSmallsmallSmlsmlSqrsqrSquaresquareSubSupsupSupersuperVertvertVerticalverticalWidewideAmbiguousambiguousFullwidthfullwidthhHalfwidthhalfwidthNaNeutralneutralWCased_LettercasedletterCcccCfcfClose_PunctuationclosepunctuationCncnCntrlcntrlCocoCombining_MarkcombiningmarkConnector_PunctuationconnectorpunctuationControlcontrolCsCurrency_SymbolcurrencysymbolDash_PunctuationdashpunctuationDecimal_NumberdecimalnumberDigitdigitEnclosing_MarkenclosingmarkFinal_PunctuationfinalpunctuationFormatInitial_PunctuationinitialpunctuationLCLetterletterLetter_NumberletternumberLine_SeparatorlineseparatorLlllLmlmLoloLowercase_LetterlowercaseletterLtLulumMarkmarkMath_SymbolmathsymbolMcmcMemeMnmnModifier_LettermodifierletterModifier_SymbolmodifiersymbolNdndNlnlNumbernumberOpen_PunctuationopenpunctuationOtherotherOther_LetterotherletterOther_NumberothernumberOther_PunctuationotherpunctuationOther_SymbolothersymbolpPcpcPdpdPepePfpfPipiPopoPspsPunctpunctScscSeparatorseparatorSkskSmsmSosoSpace_SeparatorspaceseparatorSpacing_MarkspacingmarkSurrogatesurrogateSymbolTitlecase_LettertitlecaseletterUppercase_LetteruppercaseletterZzZlzlZpzpZszsCNCRcrEBebE_BaseebaseE_Base_GAZebasegazEBGebgEMemE_ModifieremodifierEXexExtendextendGAZgazGlue_After_ZwjglueafterzwjLFlfLVlvLVTlvtPPppPrependprependRegional_IndicatorregionalindicatorRIriSMSpacingMarkVXXxxZWJzwjLeading_JamoleadingjamoLV_SyllablelvsyllableLVT_SyllablelvtsyllableNot_ApplicablenotapplicableTrailing_JamotrailingjamoVowel_JamovoweljamoAllowedallowedRestrictedrestrictedDefault_IgnorabledefaultignorableDeprecateddeprecatedExclusionexclusionInclusioninclusionLimited_UselimiteduseNot_CharacternotcharacterNot_NFKCnotnfkcNot_XIDnotxidObsoleteobsoleteRecommendedrecommendedTechnicaltechnicalUncommon_UseuncommonuseConsonantconsonantLinkerlinkerBottombottomBottom_And_LeftbottomandleftBottom_And_RightbottomandrightLeft_And_RightleftandrightOverstruckoverstruckTopTop_And_BottomtopandbottomTop_And_Bottom_And_LefttopandbottomandleftTop_And_Bottom_And_RighttopandbottomandrightTop_And_LefttopandleftTop_And_Left_And_RighttopandleftandrightTop_And_RighttopandrightVisual_Order_LeftvisualorderleftAvagrahaavagrahaBindubinduBrahmi_Joining_NumberbrahmijoiningnumberCantillation_MarkcantillationmarkConsonant_DeadconsonantdeadConsonant_FinalconsonantfinalConsonant_Head_LetterconsonantheadletterConsonant_Initial_PostfixedconsonantinitialpostfixedConsonant_KillerconsonantkillerConsonant_MedialconsonantmedialConsonant_PlaceholderconsonantplaceholderConsonant_Preceding_RephaconsonantprecedingrephaConsonant_PrefixedconsonantprefixedConsonant_SubjoinedconsonantsubjoinedConsonant_Succeeding_RephaconsonantsucceedingrephaConsonant_With_StackerconsonantwithstackerGemination_MarkgeminationmarkInvisible_StackerinvisiblestackerJoinerjoinerModifying_LettermodifyingletterNon_JoinernonjoinerNumber_JoinernumberjoinerPure_KillerpurekillerRegister_ShifterregistershifterReordering_KillerreorderingkillerSyllable_ModifiersyllablemodifierTone_LettertoneletterTone_MarktonemarkVisargavisargaVowelvowelVowel_DependentvoweldependentVowel_IndependentvowelindependentAfrican_FehafricanfehAfrican_NoonafricannoonAfrican_QafafricanqafAinainAlaphalaphAlefalefBehbehBethbethBurushaski_Yeh_BarreeburushaskiyehbarreeDaldalDalath_RishdalathrisheFarsi_YehfarsiyehFefeFehfehFinal_SemkathfinalsemkathGafgafGamalgamalHahhahHamza_On_Heh_GoalhamzaonhehgoalHanifi_Rohingya_Kinna_YahanifirohingyakinnayaHanifi_Rohingya_PahanifirohingyapaHeheHehhehHeh_GoalhehgoalHethhethKafkafKaphkaphKashmiri_YehkashmiriyehKhaphkhaphKnotted_HehknottedhehLamlamLamadhlamadhMalayalam_BhamalayalambhaMalayalam_JamalayalamjaMalayalam_LlamalayalamllaMalayalam_LllamalayalamlllaMalayalam_NgamalayalamngaMalayalam_NnamalayalamnnaMalayalam_NnnamalayalamnnnaMalayalam_NyamalayalamnyaMalayalam_RamalayalamraMalayalam_SsamalayalamssaMalayalam_TtamalayalamttaManichaean_AlephmanichaeanalephManichaean_AyinmanichaeanayinManichaean_BethmanichaeanbethManichaean_DalethmanichaeandalethManichaean_DhamedhmanichaeandhamedhManichaean_FivemanichaeanfiveManichaean_GimelmanichaeangimelManichaean_HethmanichaeanhethManichaean_HundredmanichaeanhundredManichaean_KaphmanichaeankaphManichaean_LamedhmanichaeanlamedhManichaean_MemmanichaeanmemManichaean_NunmanichaeannunManichaean_OnemanichaeanoneManichaean_PemanichaeanpeManichaean_QophmanichaeanqophManichaean_ReshmanichaeanreshManichaean_SadhemanichaeansadheManichaean_SamekhmanichaeansamekhManichaean_TawmanichaeantawManichaean_TenmanichaeantenManichaean_TethmanichaeantethManichaean_ThamedhmanichaeanthamedhManichaean_TwentymanichaeantwentyManichaean_WawmanichaeanwawManichaean_YodhmanichaeanyodhManichaean_ZayinmanichaeanzayinMeemmeemMimmimNo_Joining_GroupnojoininggroupNoonnoonNunnunNyanyaQafqafQaphqaphRehrehReversed_PereversedpeRohingya_YehrohingyayehSadsadSadhesadheSeenseenSemkathsemkathShinshinStraight_WawstraightwawSwash_KafswashkafSyriac_WawsyriacwawTahtahTawtawTeh_MarbutatehmarbutaTeh_Marbuta_GoaltehmarbutagoalTethtethThin_YehthinyehVertical_TailverticaltailWawwawYehyehYeh_BarreeyehbarreeYeh_With_TailyehwithtailYudhyudhYudh_HeyudhheZainzainZhainzhainDual_JoiningdualjoiningJoin_CausingjoincausingLeft_JoiningleftjoiningNon_JoiningnonjoiningRight_JoiningrightjoiningTransparenttransparentAIaiAKakAksaraaksaraAksara_PrebaseaksaraprebaseAksara_StartaksarastartAlphabeticalphabeticAPapASasB2b2BAbabbBKbkBreak_AfterbreakafterBreak_BeforebreakbeforeBreak_BothbreakbothBreak_SymbolsbreaksymbolsCarriage_ReturncarriagereturnCBCJcjCLclClose_ParenthesiscloseparenthesisCMcmComplex_ContextcomplexcontextConditional_Japanese_StarterconditionaljapanesestarterContingent_BreakcontingentbreakCPcpExclamationexclamationGLglGlueglueH2H3h2h3Hebrew_LetterhebrewletterHLhlHYhyHyphenhyphenIDidIdeographicideographicINInfix_NumericinfixnumericInseparableinseparableInseperableinseperableJLjlJTjtJVjvLine_FeedlinefeedMandatory_BreakmandatorybreakNext_LinenextlineNLNonstarternonstarterNSnsNUnuNumericopPOPostfix_NumericpostfixnumericPRprPrefix_NumericprefixnumericQUquQuotationquotationSASGsgSPspSpaceSYsyUnknownunknownVFvfVIviVirama_FinalviramafinalWJwjWord_JoinerwordjoinerZWzwZWSpacezwspaceMaybemaybeDedeDecimaldecimalDidiNu-1/21/3201/1601/801/641/401/323/803/641/201/161/121/101/91/81/73/201/63/161/51/41/33/82/55/121/27/123/55/82/33/44/55/67/811/123/225/237/249/2511/213/215/217/237383940414243444546474849506070809010030040050060070080090010002000300040005000600070008000900010000200003000040000500006000070000800009000010000020000021600030000040000043200050000060000070000080000090000010000001000000020000000100000000100000000010000000000100000000000010000000000000000NaNATatATermatermFOfoLELOLowerlowerOLetteroletterSCSContinuescontinueSEsesepSpSTstSTermstermUPupUpperupperAdlmadlmAghbaghbArabarabArmiarmiArmnarmnAvstavstBalibaliBamubamuBassbassBatkbatkBengbengBhksbhksBopobopoBrahbrahBraibraiBugibugiBuhdbuhdCakmcakmCanadian_AboriginalcanadianaboriginalCanscansCaricariChercherChrschrsCommoncommonCoptcoptCpmncpmnCprtcprtCypriotcypriotCyrlcyrlDevadevaDiakdiakDogrdogrDsrtdsrtDuplduplEgypegypElbaelbaElymelymEthiethiGaragaraGeorgeorGlagglagGonggongGonmgonmGothgothGrangranGrekgrekGujrgujrGukhgukhGuruguruHanhanHanghangHanihaniHanohanoHatrhatrHebrhebrHirahiraHluwhluwHmnghmngHmnphmnpHunghungInheritedinheritedItalitalJavajavaKalikaliKanakanaKharkharKhmrkhmrKhojkhojKitskitsKndakndaKraikraiKthikthiLanalanaLaoolaooLatinlatinLatnlatnLepclepcLimblimbLinalinaLinblinbLinear_BlinearbLycilyciLydilydiMahjmahjMakamakaMandmandManimaniMarcmarcMedfmedfMendmendMercmercMeromeroMlymmlymMongmongMroomrooMteimteiMultmultMymrmymrNagmnagmNandnandNarbnarbNbatnbatNkoNkoonkooNshunshuOgamogamOlckolckOnaoonaoOrkhorkhOryaoryaOsgeosgeOsmaosmaOugrougrPalmpalmPaucpaucPermpermPhagphagPhliphliPhlpphlpPhnxphnxPlrdplrdPrtiprtiQaacqaacQaaiqaaiRjngrjngRohgrohgRunrrunrSamrsamrSarbsarbSaursaurSgnwsgnwShawshawShrdshrdSiddsiddSignWritingsignwritingSindsindSinhsinhSogdsogdSogosogoSorasoraSoyosoyoSundsundSunusunuSylosyloSyrcsyrcTagbtagbTakrtakrTaletaleTalutaluTamltamlTangtangTavttavtTeluteluTfngtfngTglgtglgThaathaaTibttibtTirhtirhTnsatnsaTodrtodrTutgtutgUgarugarVaiivaiiVithvithWarawaraWchowchoXpeoxpeoXsuxxsuxYeziyeziYiyiYiiiyiiiZanbzanbZinhzinhZyyyzyyyZzzzzzzzRotatedrotatedTrtrTransformed_RotatedtransformedrotatedTransformed_UprighttransformeduprightTutuUprightuprightALetteraletterDouble_QuotedoublequoteDQdqExtendNumLetextendnumletKAkaMBmbMidLettermidletterMidNummidnumMidNumLetmidnumletMLmlMNNewlinenewlineSingle_QuotesinglequoteSQsqWSegSpacewsegspaceCode point too large in "Illegal range in "# panic: %s: %d: Unexpected operation %dpanic: Incorrect version for previously generated inversion list%sCan't dump inversion list because is in middle of iterating %s[%lu] 0x%04lX .. INFTY %s[%lu] 0x%04lX .. 0x%04lX %s[%lu] 0x%04lX panic: attempting to append to an inversion list, but wasn't at the end of the list, final = %lu, start = %lu, match = %cE_TRIE_MAXBUFregcomp_study.cQuantifier unexpected on zero-length expression in regex m/%d%lu%4p/panic: unexpected varying REx opcode %dLookbehind longer than %lu not implemented in regex m/%d%lu%4p%s/Variable length %s lookbehind with capturing is experimental in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/positivenegativepanic: %s regnode should be resolved before optimizationpanic! In trie construction, unknown node type %u %serror creating/fetching widecharmap entry for 0x%lXpanic! In trie construction, no char mapping for %ldcorrupted regexp programpanic: Unknown flags %d in named_buffpanic: Unknown flags %d in named_buff_iterpanic: Unknown flags %d in named_buff_scalarWide character (U+%lX) in %spanic: unknown regstclass %dMatched non-Unicode code point 0x%04lX against Unicode property; may not be portablepanic: isFOO_lc() has an unexpected character class '%d'Pattern subroutine nesting without pos change exceeded limit in regexInfinite recursion in regexEVAL without pos change exceeded limit in regexREGMARK%lx %d regexp memory corruptioncorrupted regexp pointersREGERRORpanic: paren_elems_to_push, %i < 0, maxopenparen: %i parenfloor: %iİffiµßſſpanic: regrepeat() called with unrecognized node type %d='%s'Malformed UTF-8 character (fatal)panic: stack_grow() negative count (%ld)Out of memory during stack extendpanic: savestack overflows I32_MAXpanic: pad offset %lu out of range (%p-%p)panic: save_alloc elems %lu out of range (%ld-%ld)panic: corrupt saved stack index %ldpanic: leave_scope inconsistency %uCan't call destructor for 0x%p in global destruction Can't upgrade %s (%lu) to %lusv_upgrade from type %d down to type %dCan't coerce %s to integer in %sCan't coerce %s to number in %sNULLREFsv.c%.*gWide character%2p::%2p%2pUndefined value assigned to typeglobpanic: attempt to undefine a freed scalar %ppanic: sv_setpvn called with negative strlen %ldpanic: sv_setpvn_fresh called with negative strlen %ldpanic: sv_chop ptr=%p, start=%p, end=%pDon't know how to handle magic of type \%oCan't weaken a nonreferenceReference is already weakCan't unweaken a nonreferenceReference is not weakpanic: del_backref, svp=0panic: del_backref, *svp=%p phase=%s refcnt=%lupanic: del_backref, *svp=%p, sv=%ppanic: magic_killbackrefs (freed backref AV/SV)panic: magic_killbackrefs (flags=%lx)panic: sv_insert, midend=%p, bigend=%ppanic: reference miscount on nsv in sv_replace() (%lu != 1)Attempt to free unreferenced scalar: SV 0x%lxsv_len_utf8panic: sv_pos_b2u: bad byte offset, blen=%lu, byte=%lusv_pos_b2uWide character in $/Lost precision when incrementing %f by 1Lost precision when decrementing %f by 1semi-panic: attempt to dup freed stringBad filehandle: %2pBad filehandle: %-pNot a subroutine referenceCan't coerce %s to string in %sVSTRINGLVALUEOBJECTUNKNOWNCan't bless non-reference valueAttempt to bless into a classCan't bless an object referenceCannot yet reorder sv_vcatpvfn() arguments from va_listBbDdiOouUXxinternal %%p might conflict with future printf extensionsd%lu%4pvector argument not supported with alpha versionsCannot printf %g with '%c'panic: frexp: %gNumeric format result too largeMissing argument for %%n in %ssv_vcatpvfn()Invalid conversion in %sprintf: "%\%03oend of stringRedundant argument in %sdecodecat_decodeInvalid argument to sv_cat_decode{%s}[%ld]within in Argument "%s" isn't numeric in %sArgument "%s" isn't numeric::__ANON__DESTROY created new reference to dead object '%2p'sv_pos_u2b_cacheutf8_mg_pos_cache_updatepanic: %s cache %lu real %lu for %-pArgument "%s" treated as 0 in increment (++)Integer overflow in format string for %ssv_vcatpvfnHexadecimal float: internal error (overflow)%c%+dHexadecimal float: internal error (entry)Missing argument in %s$.length(${$/}panic: attempt to copy value %-p to a freed scalar %ppanic: attempt to copy freed scalar %p to %pBizarre copy of %s in %sBizarre copy of %sCannot copy to %s in %sCannot copy to %s while running setuid while running setgid while running with -t switch while running with -T switchIFSCDPATHBASH_ENV%%ENV is aliased to %s%sanother variable%%ENV is aliased to %%%s%sInsecure %s%s$ENV{PATH}Insecure directory in %s%s-_.+Insecure $ENV{%s}%sUTCLexing code internal error (%s)lex_start ;lex_stuff_pvnLexing code attempted to stuff non-Latin-1 character into Latin-1 inputlex_stuff_svlex_unstufflex_read_tolex_discard_tolex_next_chunk;}continue{print or die qq(-p destination: $!\n);};}lex_peek_unicharlex_read_unicharlex_read_space$@%*;[]&\_+Prototype after '%c' for %-p : %sMissing ']' in prototype for %-p : %sIllegal character in prototype for %-p : %sIllegal character after '_' in prototype for %-p : %scharnames:full:shortUnknown charname ''Unknown charname '%s'charnames alias definitions may not contain trailing white-space; marked by <-- HERE in %.*s<-- HERE %.*sMalformed UTF-8 returned by %.*s immediately after '%.*s'Invalid character in \N{...}; marked by <-- HERE in %.*s<-- HERE %.*scharnames alias definitions may not contain a sequence of multiple spaces; marked by <-- HERE in %.*s<-- HERE %.*sSource filters apply only to byte streamsfilter_del can only delete in reverse order (currently)Bad evalled substitution patternSequence (?{...}) not terminated with ')'Use of unassigned code point or non-standalone grapheme for a delimiter is not allowed(<[{«»༺༼᚛‘’“”‵‶‷‹›⁅⁍⁽₍→↛↝↠↣↦↪↬↱↳⇀⇁⇉⇏⇒⇛⇝⇢⇥⇨⇴⇶⇸⇻⇾∈∉∊≤≦≨≪≮≰≲≴≺≼≾⊀⊂⊄⊆⊈⊊⊣⊦⊨⊩⊰⋐⋖⋘⋜⋞⋠⋦⋨⋲⋳⋴⋶⋷⌈⌊⌦〈⍈⏩⏭☛☞⚞❨❪❬❮❰❲❴⟃⟅⟈⟞⟦⟨⟪⟬⟮⟴⟶⟹⟼⟾⟿⤀⤁⤃⤅⤇⤍⤏⤐⤑⤔⤕⤖⤗⤘⤚⤜⤞⤠⤳⤷⥅⥇⥓⥗⥛⥟⥤⥬⥭⥱⥲⥴⥵⥹⦃⦅⦇⦉⦋⦍⦏⦑⦓⦕⦗⦨⦪⦳⧀⧘⧚⧼⩹⩻⩽⩿⪁⪃⪅⪇⪉⪍⪕⪗⪙⪛⪝⪟⪡⪦⪨⪪⪬⪯⪱⪳⪵⪷⪹⪻⪽⪿⫁⫃⫅⫇⫉⫋⫏⫑⫕⫥⫷⫹⭆⭇⭈⭌⭢⭬⭲⭼⮆⮊⮕⮚⮞⮡⮣⮩⮫⮱⮳⯮⸂⸃⸄⸅⸉⸊⸌⸍⸑⸜⸝⸠⸡⸢⸤⸦⸨⸶⹂⹕⹗⹙⹛〈《「『【〔〖〘〚〝꧁﴾﹙﹛﹝﹤(<[{⦅「→𝄃𝄆👉🔈🔉🔊🕻🖙🖛🖝🗦🠂🠆🠊🠒🠖🠚🠞🠢🠦🠪🠮🠲🠶🠺🠾🡂🡆🡒🡢🡪🡲🡺🢂🢒🢖🢚🢡🢣🢥🢧🢩🢫🢶)>]}»«༻༽᚜’‘”“′″‴›‹⁆⁌⁾₎←↚↜↞↢↤↩↫↰↲↼↽⇇⇍⇐⇚⇜⇠⇤⇦⬰⬱⇷⇺⇽∋∌∍≥≧≩≫≯≱≳≵≻≽≿⊁⊃⊅⊇⊉⊋⊢⫞⫤⫣⊱⋑⋗⋙⋝⋟⋡⋧⋩⋺⋻⋼⋽⋾⌉⌋⌫〉⍇⏪⏮☚☜⚟❩❫❭❯❱❳❵⟄⟆⟉⟝⟧⟩⟫⟭⟯⬲⟵⟸⟻⟽⬳⬴⬵⤂⬶⤆⤌⤎⬷⬸⬹⬺⬻⬼⬽⤙⤛⤝⤟⬿⤶⥆⬾⥒⥖⥚⥞⥢⥪⥫⭀⭁⭋⭂⥻⦄⦆⦈⦊⦌⦐⦎⦒⦔⦖⦘⦩⦫⦴⧁⧙⧛⧽⩺⩼⩾⪀⪂⪄⪆⪈⪊⪎⪖⪘⪚⪜⪞⪠⪢⪧⪩⪫⪭⪰⪲⪴⪶⪸⪺⪼⪾⫀⫂⫄⫆⫈⫊⫌⫐⫒⫖⊫⫸⫺⭅⭉⭊⥳⭠⭪⭰⭺⮄⮈⬅⮘⮜⮠⮢⮨⮪⮰⮲⯬⸃⸂⸅⸄⸊⸉⸍⸌⸐⸝⸜⸡⸠⸣⸥⸧⸩⸷„⹖⹘⹚⹜〉》」』】〕〗〙〛〞꧂﴿﹚﹜﹞﹥)>]}⦆」←𝄂𝄇👈🕨🕩🕪🕽🖘🖚🖜🗧🠀🠄🠈🠐🠔🠘🠜🠠🠤🠨🠬🠰🠴🠸🠼🡀🡄🡐🡠🡨🡰🡸🢀🢐🢔🢘🢠🢢🢦🢤🢨🢪🢴«»»༺༻༼༽᚛᚜‘’’“””‵′‶″‷‴‹››⁅⁆⁍⁌⁽⁾₍₎→←↛↚↝↜↠↞↣↢↦↤↪↩↬↫↱↰↳↲⇀↼⇁↽⇉⇇⇏⇍⇒⇐⇛⇚⇝⇜⇢⇠⇥⇤⇨⇦⇴⬰⇶⬱⇸⇷⇻⇺⇾⇽∈∋∉∌∊∍≤≥≦≧≨≩≪≫≮≯≰≱≲≳≴≵≺≻≼≽≾≿⊀⊁⊂⊃⊄⊅⊆⊇⊈⊉⊊⊋⊣⊢⊦⫞⊨⫤⊩⫣⊰⊱⋐⋑⋖⋗⋘⋙⋜⋝⋞⋟⋠⋡⋦⋧⋨⋩⋲⋺⋳⋻⋴⋼⋶⋽⋷⋾⌈⌉⌊⌋⌦⌫〈〉⍈⍇⏩⏪⏭⏮☛☚☞☜⚞⚟❨❩❪❫❬❭❮❯❰❱❲❳❴❵⟃⟄⟅⟆⟈⟉⟞⟝⟦⟧⟨⟩⟪⟫⟬⟭⟮⟯⟴⬲⟶⟵⟹⟸⟼⟻⟾⟽⟿⬳⤀⬴⤁⬵⤃⤂⤅⬶⤇⤆⤍⤌⤏⤎⤐⬷⤑⬸⤔⬹⤕⬺⤖⬻⤗⬼⤘⬽⤚⤙⤜⤛⤞⤝⤠⤟⤳⬿⤷⤶⥅⥆⥇⬾⥓⥒⥗⥖⥛⥚⥟⥞⥤⥢⥬⥪⥭⥫⥱⭀⥲⭁⥴⭋⥵⭂⥹⥻⦃⦄⦅⦆⦇⦈⦉⦊⦋⦌⦍⦐⦏⦎⦑⦒⦓⦔⦕⦖⦗⦘⦨⦩⦪⦫⦳⦴⧀⧁⧘⧙⧚⧛⧼⧽⩹⩺⩻⩼⩽⩾⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪍⪎⪕⪖⪗⪘⪙⪚⪛⪜⪝⪞⪟⪠⪡⪢⪦⪧⪨⪩⪪⪫⪬⪭⪯⪰⪱⪲⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅⫆⫇⫈⫉⫊⫋⫌⫏⫐⫑⫒⫕⫖⫥⊫⫷⫸⫹⫺⭆⭅⭇⭉⭈⭊⭌⥳⭢⭠⭬⭪⭲⭰⭼⭺⮆⮄⮊⮈⮕⬅⮚⮘⮞⮜⮡⮠⮣⮢⮩⮨⮫⮪⮱⮰⮳⮲⯮⯬⸂⸃⸃⸄⸅⸅⸉⸊⸊⸌⸍⸍⸑⸐⸜⸝⸝⸠⸡⸡⸢⸣⸤⸥⸦⸧⸨⸩⸶⸷⹂„⹕⹖⹗⹘⹙⹚⹛⹜〈〉《》「」『』【】〔〕〖〗〘〙〚〛〝〞꧁꧂﴾﴿﹙﹚﹛﹜﹝﹞﹤﹥()<>[]{}⦅⦆「」→←𝄃𝄂𝄆𝄇👉👈🔈🕨🔉🕩🔊🕪🕻🕽🖙🖘🖛🖚🖝🖜🗦🗧🠂🠀🠆🠄🠊🠈🠒🠐🠖🠔🠚🠘🠞🠜🠢🠠🠦🠤🠪🠨🠮🠬🠲🠰🠶🠴🠺🠸🠾🠼🡂🡀🡆🡄🡒🡐🡢🡠🡪🡨🡲🡰🡺🡸🢂🢀🢒🢐🢖🢔🢚🢘🢡🢠🢣🢢🢥🢦🢧🢤🢩🢨🢫🢪🢶🢴(<[{)>]}([{<)]}>Use of '%d%lu%4p' is experimental as a string delimiterUse of '%d%lu%4p' is deprecated as a string delimiterNumber too longpanic: scan_num, *s=%dBinaryOctalHexadecimal0b111111111111111111111111111111110377777777770xffffffffMisplaced _ in numberIllegal octal digit '%c'Illegal binary digit '%c'Hexadecimal float: exponent underflowHexadecimal float: exponent overflowNo digits found for %s literal%s number > %s non-portable0o37777777777integer+-0123456789_Hexadecimal float: mantissa overflowfloat%-p%s had compilation errors. %-pExecution of %s aborted due to compilation errors. %s had compilation errors. Execution of %s aborted due to compilation errors. at EOFnext token ???at end of linewithin patternwithin stringnext char ^%c at %s line %u, near "%d%lu%4p" %-p (Might be a runaway multi-line %c%c string starting on line %u) Integer overflow in decimal numberParsing code internal error (%s)parse_blockparse_barestmtparse_labelParse errorxparse_fullstmtparse_stmtseqparse_subsignatureUse of non-ASCII character 0x%02X illegal when 'use source::encoding "ascii"' is in effectlineUseless use of \EL\uU\lLUFpanic: yylex, *s=%u*[{[#!%*<>()-=])} =wds]abcfnrtvxaA01! zZ79~[\]^_?[...]{...}Ambiguous use of %c{%s%s} resolved to %c%s%sAmbiguous use of %c{%-p} resolved to %c%-pWarning: Use of "%d%lu%4p" without parentheses is ambiguousqAmbiguous range in transliteration operatorInvalid range "%c-%c" in transliteration operatorInvalid range "\x{%04lX}-\x{%04lX}" in transliteration operator:'{$()| Possible unintended interpolation of $\ in regex\%c better written as $%clLuUEQFUnrecognized escape \%c passed throughMissing right brace on \N{}Missing right brace on \N{} or unescaped left brace after \N\N{_}\N{U+%02X.\N{U+%X.%X%.*s must not be a named sequence in transliteration operatorMissing control char name in \cpanic: constant overflowed allocated space, %lu >= %luqqUnmatched right curly bracket$:@%&*;\[]Illegal character following sigil in a subroutine signature'#' not allowed immediately following a sigil in a subroutine signature=~>Illegal operator following parameter in a subroutine signatureA signature parameter must start with '$', '@' or '%'Format not terminatedMissing right curly or square bracketBEGIN { require 'perl5db.pl' };use feature ':5.42'; use builtin ':5.42';LINE: while (<>) {chomp;our @F=split(%s););our @F=split(' ');=====+-*/%.^&|<Reversed %c= operator=cut<<<<<>>>>>Bad plugin affecting keyword '%s'Bad infix plugin result (%zd) - did not consume entire identifier <%s> CORE::%d%lu%4p is not a keyworddump() must be written as CORE::dump() as of Perl 5.30Ambiguous call resolved as CORE::%s(), qualify as such or use &__CLASS__ is experimentalADJUST is experimentalall is experimentalany is experimentalclass is experimentaldefer is experimentalAnyDBM_File::ISANDBM_File::DB_File::GDBM_File::SDBM_File::ODBM_File::field is experimentaltry/catch/finally is experimental|&*+-=!?:.Precedence problem: open %d%lu%4p should be open(%d%lu%4p)subroutine namemethod is experimentalMissing name in "%s"Prototype not terminatedIllegal declaration of anonymous subroutineIllegal declaration of subroutine %-pMissing $ on loop variablemsixxnopnadlumsixxnopnadlugcSearch pattern not terminatedUse of /c modifier is meaningless without /gUnknown regexp modifier "/%.*s"Regexp modifiers "/%c" and "/%c" are mutually exclusiveRegexp modifier "/a" may appear a maximum of twiceRegexp modifier "/%c" may not appear twiceCan't redeclare "%s" in "%s"No such class %.1000s__PACKAGE__"%s" not allowed in expressionuse;&/|})]oaiuwf!=%s (...) interpreted as functionNo comma allowed after %sCan't find string terminator %c%d%lu%4p%c anywhere before EOFPossible attempt to separate words with commasPossible attempt to put comments in qw() list<> at require-statement should be quotesSubstitution pattern not terminatedSubstitution replacement not terminatedmsixxnopnadlugcerUse of /c modifier is meaningless in s///eval do {Transliteration pattern not terminatedTransliteration replacement not terminated\x%02XUnrecognized character %s; marked by <-- HERE after %d%lu%4p<-- HERE near column %dperl -indirCan't exec %sToo late for "-%.*s" optionUnsupported script encoding UTF-32LEUnsupported script encoding UTF-32BEpanic: utf16_textfilter called in block mode (for %d characters)panic: utf16_textfilter called after error (status=%ld)=>BarewordBad name after %d%lu%4p%sBareword "%d%lu%4p" refers to nonexistent packageOperator or semicolon missing before %c%d%lu%4pAmbiguous use of %c resolved as operator %cUse of := for an empty attribute list is not allowedUnterminated attribute parameter in attribute listInvalid separator character %c%c%c in attribute listUnterminated attribute listSubroutine attributes must come before the signatureUnmatched right square bracket([{< )]}> )]}>Version control conflict marker!=~ should be !~Unterminated delimiter for here documentUse of bare << to mean <<"" is forbiddenDelimiter for here document is too longIndentation on line %d of here-doc doesn't match delimiterExcessively long <> operatorUnterminated <> operatorGlob not terminated{$:+-@Array lengthScalarFinal $ should be \$ or $nameMultidimensional syntax %d%lu%4p not supportedYou need to quote "%d%lu%4p"$@"'`q%s found where operator expected (Missing semicolon on previous line?) (Do you need to predeclare "%d%lu%4p"?) (Missing operator before "%d%lu%4p"?)StringBackticksCan't use \%c to mean $%c in expressionBackslashNo package name allowed for %s %s in "our"Possible unintended interpolation of %d%lu%4p in string$^H{} is not definedPropagatedCall to &{$^H{}} did not return a defined valueConstant(%.*s)%s %s%s%slvalue:const is not permitted on named subroutinesparse_exprmsyqqwxrpanic: force_out_malformed_utf8_message_ should be called only when there are errors found(nil)panic: Unexpected case value in utf8n_to_uvchr_msgs() %u%s (empty string)%s: %s (unexpected continuation byte 0x%02x, with no preceding start byte)%s: %s (too short; %d byte%s available, need %d)%s: %s (any UTF-8 sequence that starts with "%s" is overlong which can and should be represented with a different, shorter sequence)%s: %s (overlong; instead use %s to represent %s%0*lX)UTF-16 surrogate (any UTF-8 sequence that starts with "%s" is for a surrogate)%s: %s (overflows)Any UTF-8 sequence that starts with "%s" is a Perl extension, and so is not portableAny UTF-8 sequence that starts with "%s" is for a non-Unicode code point, may not be portable%s in %s%s %s%spanic: utf16_to_utf8%s: odd bytelen %lu_reversedMalformed UTF-16 surrogatepanic: to_upper_title_latin1 did not expect '%c' to map to '%c'uppercasetitlecaselowercasefoldcaseẞCan't do fc("\x{1E9E}") on non-UTF-8 locale; resolved to "\x{17F}\x{17F}".ſtCan't do fc("\x{FB05}") on non-UTF-8 locale; resolved to "\x{FB06}".stUnicode surrogate U+%04lX is illegal in UTF-8\\\x{%lx}textwarn_categoriesflag_bitimmediately%d bytes%s: %s (unexpected non-continuation byte 0x%02x, %s after start byte 0x%02x; need %d bytes, got %d)Operation "%s" returns its argument for UTF-16 surrogate U+%04lXOperation "%s" returns its argument for non-Unicode code point 0x%04lXıCan't do %s("\x{%lX}") on non-UTF-8 locale; resolved to "\x{%lX}".util:safesysmallocutil:safesysreallocutil:safesyscalloc\a\b\e\f\rutil:savesharedpvutil:savesharedpvn at %s line %u, <%-p> %s %ldchunk during global destruction. panic: POPSTACK EXECCan't fork, trying again in 5 secondsCan't fork: %sCan't %s %s%s%sexecutefind on PATH, '.' not in PATHoutFilehandle %2p opened only for %sputFilehandle opened only for %sputclosedunopened%s%s on %s %s%s%-p (Are you trying to call %s%s on dirhandle%s%-p?) Invalid version format (dotted-decimal versions require at least three parts)Invalid version format (no leading zeros)Invalid version format (maximum 3 digits between decimals)Invalid version format (no underscores)Invalid version format (multiple underscores)Invalid version format (underscores before decimal)Invalid version format (0 before decimal required)Invalid version format (negative version number)Invalid version format (non-numeric data)Invalid version format (alpha without decimal)Invalid version format (misplaced underscore)Invalid version format (fractional part required)Invalid version format (dotted-decimal versions must begin with 'v')Invalid version format (trailing decimal)ndefwidthInteger overflow in version %dInteger overflow in versionv.Infvinf%d%.9f.,C.UTF-8Version string '%s' contains invalid data; ignoring: '%s'Invalid version objectalpha->numify() is lossy%d.%03d000v%ld.%ldUnknown Unicode option letter '%c'Invalid number '%s' for -C option. Unknown Unicode option value %lu/dev/urandomPERL_HASH_SEEDperl: warning: Non hex character in '$ENV{PERL_HASH_SEED}', seed only partially set PERL_PERTURB_KEYSNORANDOMDETERMINISTICperl: warning: strange setting in '$ENV{PERL_PERTURB_KEYS}': '%s' PERL_HASH_SEED_DEBUGHASH_FUNCTION = %s HASH_SEED = 0xSBOX32_WITH_SIPHASH_1_3%02x PERTURB_KEYS = %d (%s)util.cpanic: my_snprintf buffer overflowpanic: my_vsnprintf buffer overflowfirstsecondPerl API version %s of %s does not match %s%s: loadable library and perl binaries are mismatched (got %s handshake key %p, needed %p) XS_VERSION%-p::%s%-p object version %-p does not match $%-p::%s %-pbootstrap parameter %-pABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvxyz0123456789filename, flags=0libreflibhandle, symbolname, ign_err=0perl_name, symref, filename="$Package"DynaLoaderDynaLoader.cDynaLoader::dl_load_fileDynaLoader::dl_unload_fileDynaLoader::dl_find_symbolDynaLoader::dl_undef_symbolsDynaLoader::dl_install_xsubDynaLoader::dl_errorPERL_DL_NONLAZY\\1,R  H@l   Hx<X,$+<,-|OO,P$TVXWdXXZ]__hdh `Ȑ8 $4T pth|\ ,TDl\|#,d..@11236(;;O@TlVDXZ\aHbegDhhlnpqqqwx<@x(؏\`thldLȺ\|\pdLPXp|@xh h,L\ Hl dp??`@o|su(uwyzlĀTHؖLPd\<0(x|лpxXPXLt`L (p!#$$)d*+++5>ACDDEFI4KNOOQ(Q]<`bbdm8nnqrtvvwx؇DH@8,|أԲ 4$ LPt T8#$7888AABCDhFpFHHIPIIItOOO_bhXpĤ4Ьܲ(̵PTx\t`|0(\ ,pd<!$d8<<>?BE(JTJN\NNb cgTididkkl|mmhoprvw{{d|}}~̄0|h0؟l4th X @8 $ H  h hpX|!l"p"'CD|FJKO4P`,exglk?xBGtM|MNQ SSUPX[l[ \\`,aadeeggkmDo PA hA hC D dM N ,P Q T U U tY xY Y Z [ [ \ ] l^ ` c `d $g g k z ${ ~  P Ș <   T \   ة ܬ ذ  P      d     @   x  0 T $4BDD  x ̪|ȷ@,L `80X< L  H,4; ?  @ D TI M  c c e e $i  pA HM N dU X ] ,^ Xa d g $i lm r t z {   ؀  L  L (   h ̪ L x  ش   $ @   Ŀ    | P  (  d   ,   <  $ 0   T    t  h < P   $ 0 \ x   4 t  x    ,   d   x |  l t      @  $     `! $ l%  + 2 0> @ @ B D E 4I DI lL P ,P Q T X [ D\ T\ ^ _ _ a a \c \e e 8g Xi       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~P9@000000000z 1 0 10 10 1@0 1@0 1h0 1h0 10 1h0 1h0 10( 10; 1d 0H 1d 0X 1$!0h 1!0| 1"0 1#0 1#0 1#0 1,&0 1,&0 10 10 10 10 10 10+ 108 10E 10S 10f 10t 1'0 1('0 1('0 1*0 1(*0 1+0 1D0 10 1,0 10 10 1l0F 1 0. 10' 1= 1 F 1= 1 Z 1{ 1 ~ 1 0 1 1 1 1 10 1 1 1 1 1D0  10 ! 1 0B 1 0c 1(0 1(0  1(0 1(0  1(01(0  10B10c1p0o 1q 1s 1u 1w 11 '\L|01 ']L|01 X^L|01 (_L|01 _}01 'o}01 'o}01 '_}01 '_}01 '_}01 '_}01 '_}01 '_}01 '_}01 'f}01 _}0E1 p}01 q}01 t}0"1 'r0y1 lF1 0L1 0S1 d$ h& 4141414141415151 515151515151"51%51(51 #1 @#1 #1 #1 #1 #1 #1 #1 #1 #1 #1 #1 #1 #1 @#1 $10 $1$1$1$1!$1($1-$12$18$1=$1B$1F$1M$1 81 #81 %81 *81 .81 :81 <81 @81 B81 c81 D81 d91 E91 e91 f%91 g+91 H;91 hD91 IQ91 iX91 kc91 Ll91 lv91 N91 n91 o91 P91 p91 q91 r91 S91 s91 t91 U91 u91 V91 v :1 w:1 X:1 x%:1 Y/:1 y::1 ZE:1 zM:1 \Y:1 ]b:1 ^o:1 ~{:1@&1 &1 &1 @&1 &1 &1 &1 &1 &1 &1 &1 &1 &1 &1 &1 @&1 &1 &1 &1 @&1 '1  '1 '1 '1 -'1 :'1 C'1 L'1 @V'1 _'1 h'1 o'1 x'1 '1 '1 '1 '1 '1 @'1 '1 @'1 '1 '1 '1 (1 (1 (1 (1 (1 @!(1 %(1 )(1 8(1 H(1 R(1 `(1 @s(1 (1 (1 (1 (1 (1 (1 (1 @(1 (1 (1 )1 )1 )1 &)1 2)1 @=)1 D)1 J)1 P)1 Z)1 c)1 q)1 )1 @)1 )1 )1 )1 )1 )10414141:1415151 51:151:1:1:1:1:1:1:1:1:1:1:1:1;1;1 ;1;1;1;1;1!;1&;1+;10;14;19;1>;1C;1H;1M;1%51R;1W;1\;1c;1h;1n;1s;1x;1};1 0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;100;1{0;1.1<10<1<1<1<1$<1'<1-<13<1?<1E<1K<1R<1X<1^<1h<1n<1w<1<1<1<1<1x00<1<1<1<1<1<1<1<1<1<1<1<1<1<1=1 =1=1=10=1$=1(=1/=18=1?=1H=1P=1Z=1b=1l=1p=1y=1=1=1=1=1=1=1=1=1=1=1=11=1=1=1=1=1=1>1>1 >1>1>1>1>1>1#>1(>1/>13>17>1;>1?>1C>1G>1L>1T>1\>1c>1l>1u>1}>1>1>1>1>1>1>1>1>1>1>1>1>1>1>1>1>1>1>1)!1?1?1 ?1?1?1%?1)?1/?16?1>?1G?1K?1O?1U?1]?1e?1h?1k?1u?1{?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1@1 @1@1@1"@1(@1-@12@19@1B@1K@1U@1\@1a@1e@1k@10s@1{@1@1@1@1@1@1@1@1@1@1@1@1@1@1@1@1@1@1A1 A1A1A1(A10A1;A1BA1GA1KA1QA1YA1cA1kA1sA1yA1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1B1B1$B1.B18B1>B11GB1MB1UB1\B1bB1jB1nB1tB1yB1B1B1B1B1B1B1B1B11B11B1B1B1B1B1B1B1B1B1B1C1 C1C1C1C1#C1+C12C19C1BC1KC1TC1`C1+11lC1tC1}C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1D1 D1D1D1D1$D1+D14D1a1:D11[11AD1HD1MD1UD1^D1dD1jD1sD1{D1D1D1D1D1D1D1D1>1D1D1D1D1D1D1D1D1D1D1E1 E1E1E1 E1(E11E18E1?E1FE1ME1SE1ZE1K0aE1hE1n0rE1|E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1F1 F1F1 F1)F11F1;F1DF1KF1RF1YF1`F1gF1nF1uF1|F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1G1 G1G1"G1/G1=G1KG1RG1XG11111111111bG1pG1zG1G1G1G1<10<1<1G1G1G1G1G1G1G1 H1H1(H19H1LH1YH1pH1H1H1H1H1<1H10H1I1I1,I1BI1UI1iI1~I1I1I1I1I1I1<1I1 =1I1I1 J1=1J1*J11"N15N1PN1jN1>1>1>1>1>1>1>1>1>1)!1?1?1 ?1?1vN1%?1)?1/?16?1>?1G?1K?1O?1U?1]?1e?1h?1k?1N1N1N1N1N1N1O1O1,O1B11GB1R1UB1\B1bB1jB1nB1tB1yB1B1R1B1B1B1R1R1211B11B1B1B1B1B1B1B1B1B1B1C1 C1C1R1C1#C1+C12C19C1R1S1TC1`C1+11S1S1S1S1S1s1S1 S1#S1&S1)S1,S1/S12S15S1518S1;S1>S1AS1DS1GS1JS1MS1PS1SS1VS14D1a1:D11[11AD1HD1MD1UD1^D1dD1YS1sD1{D1D1D1D1D1D1D1D1>1D1D1D1D1D1D1D1aS1D1D1E1 E1E1E1 E1(E11E18E1?E1FE1ME1SE1ZE1K0gS1qS1|S1S1S1S1S1S1S1S1S1S1T1T1'T13T1AT1OT1ZT1eT1oT1{T1T1T1T1T1T1T1T1T1T1T1T1T1T1U1F1F1F1F1 U1$U16U1HU1F1PU1PU1PU1cU1}U1}U1}U1U1U1U1U1U1U1V1V1V1,V1@V1RV1dV1uV1111111V1V1V1V1V1LV1V1V1V1V1V1W1 W1W1W1!W1)W1/W19W1>W1GW1F1OW1UW1[W1cW1@1iW1$=1rW1zW1W1W1W1?1-1W11W1%?1(P+@0Pp(,+pP< 4`d *`" *` d` ` <`\l0|@X4L`0P8 P``HpLh 8P\dp plȰ00@0p\p{0W1W1W1W1W1W1W1W1W1W1W1W1W1W1W1X1X1 X1X1X1!X1-X14X1g1Bg1Gg1Jg1Ng1Rg1Wg1Zg1^g1bg1gg1jg1ng1rg1wg1|g1g1g1g1g1g1g1g1g1g1g1g1g1g1g1g1ԑ@R l1l1l1l1l1l1k1m1p1 p1 p1@p1 p1 (p1 0p1 8p1 @q1 Hq1@ %q1 P5q1 QAq1 SPq1 T^q1 Umq1 Vyq1 Wq1 Xq1 Zq1 Yq1 [q1 \q1 ]q1@R(]{1010P C Je<@Td(__T``4P$ 10(Ty,dl}C x l0`̉ 0$40a@10L; <p10(l,dnC lrts[(uPnvv(h0h(__T``p310PD,d<p-10X̨8 J(@T(__T``4P\4 10c <p-10c <p000XCh$  P=_T``|x %10P C J<e<@D$(__T``4Pإ10!11(15110 10&10610 D10T10 b10 @p101010 1010 10ҕ10 10@1010(10<10 H10[10n10 |10@10 101`+1/13171;1?1C1G1K1O1S1W1[1_1c1g1k1o1s1D0֪1A1 l mPmosww{ P`0 ` к@0` Pp0XHx8x@hX8 `  0 8+h+++AhNNNxQQQRXRRTUxU\\](^X^xbxdhhihiiiHHxع8hȺ(xػ8hؼXHxؾHȿHHx8hX88x(HH8h(XHx** +/000 1`12@2p2Yb`P     @ p  P     0   ! @! p! " @" " " " 02 6 7 > 0C C PH N R R S 0_ x  y y @z P| | } }  P   0   @    0 `   @ p  в       P     h     8      P p!!@!!P!!'`>'>'>'>' ?'P?'?'?'D'@E'I'`'@y'py'y' {'P{'{'{'{'|'@|'|'|'P'' '''0''Ђ'@'' '' 'P'''''@'p''д''''`''''''''`(H((((H(X1(hJ((K(XK(XV(V(XW(W(W(X(x](Xc(e(f(g(i(j(Hj(xj(j(8k(xk(( (P((З(P((p((Й(@(p(@(`((p(((@(p(()0))) ) ) )P ) ))0))))@))) )P)))))@) )1)1)2)@2)2)3)P3)3) 4)P4)4)4)4)P5)p>)>)P?)?)B)C)XC)F)N)X])xm)h)))h))H))))))X))))x)))8)h))))))))H)x))))h))8))x)))h))))))))8))))H)))8))())())))()X)))))H)x)))h))))))h))))()X)))))H)))()))8)h))h))8)))()X))))*H*x****8* * * *X * **H*x*****h**(*X*(!*"*"*"*X#*#*#*#*$*+*,*-*h-*-*-*5*6*87*7*7*(8*X8*F*F*F*(G*XG*G*G*(H*hI*I*(J*XJ*J*(W*XW*8Y*hY*Y*xZ*[*`*8a*a*hb*b*b*8c*xc*c*c*d*d*q*Xq*q*q*r*@r*pr*r*r*0s*ps*s*t*Pt*t*y*y*{*|*|* }*`}*}* ~*P~*0****P*@******p**`*+)+_+`a+a+a+e+ f+`f+`g+g+g+ h+`h+h+h+0i+`i+i+j+k+@k+k+k+@n+n+Po+o+Pp+p+q+ r+t+u+u+v+Px+Py+y+0z+z+{+P{+{+|+|+}+~+++P++ +P++++@+p++@++0+++ +`+++Ї++0+`++++ +`+++++ +`+++@++++`+P++++P++ +P++P+++؟++h++آ+x+++(+X+h++ȫ++ȷ++8+x++ظ+x+++++++H+x++++8+h++++H+++(+X+++h++++(+X++++X++8++H++h+(+h++8+h+++++X++X,,,,8,,x ,x , ,,(,X,,,,p,*,+,,,0R,R,`S,@T,T,Y,Y,@Z,,,,,,@-K-PL-L-Q-H----x- .x?.?.X@.@.xA.A.A.B.B.B.C.8C.hC.C.N.{..h.../@/xC/D/(E/F/F/I/ J38M3M3P3u3v3|333؄33h33X33333p3(33ؙ3P333383111111111S11D011j11"1"111111111111111111 1 1111D011111111 1#1&1)1,1/1211151S11811j11"1"111111111111111111111111111111 111111%1+11171=1C1I1N1S1X1]1b1g1l1q1v1{11111111111111111111111111111111 111 181111w1 1#1"1"1&11+1-1/131 71:1=1@1C1Q1^1l111y1|1111111111111111 1111D1Y1l1p11q 1t1111111111111#1'171F1J1N1Q1T1b1o111111111113011121G1]1p11111111S1_1111111 11111+10151@1K1^1q1111111 1"171K1]1|11111111&1-141A1L1Y1d1q1|1111111111$1/1V1}111111111:1V1o1z111111111111111 111&171H1X1d1p1{1111111111111111111C1T1`1l1w1~1111111111111181P1c1u1|11111111111111&191G1U1b1m1x1$1|1111111111,1I1f11111 1 1:1Q1[1c1m1u11111111111111111+1C1Y1e1q1|11111111'1J1m11111171V1y11111 1C1f11111 101O1r111111+1P1r1111 141X1m11111111!1,1=1N1^1e1l111111111 11(191[1}1111111111)121;1J1W1f1s111111111 1131G1Y1m11111111111$1/1:1I1W1h1w11111111 11-1F1]1n1~111111111111111171N1r1111111(1H1h11111111111 1 1A1b11111111 191P1p11111111111#151F1Z1n111111111111.1B1U1f1w11111111 11&181J1[1h1t1111111111#1*11191A1G1M1^1o1~111111111112 22$202D2U2`2j222222222'232>2U2l2222222222#2+232:2A2H2O2k2222222222 2 202S2t2222222&262I2Z2n222222222!2(272F2T2Y2^2i2r2}22222222222222#212A2Q2_2h2p22222222222222 22%2B2_2z222222222222222#2*212;2E2O2Y2b2f2j2r2y22222222222 2 2 21 2@ 2Z 2t 2 2 2 2 2 2 2 2 2 2 20 2A 2P 2a 2r 2 2 2 2 2 2 2 2 2 2 2 2 2+ 22 29 2L 2_ 2q 2w 2} 2 2 2 2 2 2 2 2 2 2 2 2 2 20 2@ 2O 2^ 2m 2{ 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2! 2, 24 2< 2J 2X 2e 2s 2 2 2 2 2 22(272E2T2c2q2}2222222222#212>2O2`2p2222222222;2`222222 2*2H2n2222222#272H2Y2i2v2222222222 222,292N2c2w2{2222222222222222(2;2N2_2r22222222222222"2'2,282D2N2R2V2_2g2t22222222222222 22&232>2I2S2e2w2222222222222!2,272A2L2W2a2i2q2x2222222222#2+232I2_2s22222222222222 22$2/2:2G2S2g2{222222 22%222>2I2Z2k2z2222222222222 22$2*242>2I2T2\2d2l2t2222222222&222=2Q2e2w2222222222222/2H2_2h2q2{2222222222222+262D2P2l22222222222F2\2r22222 2" 2: 2_ 2 2 2 2 2!2&!2G!2d!2n!2v!2!2!2!2!2!2!2!2"2"2!"2."2:"2X"2r"2"2"2"2"2#2+#2L#2i#2#2#2#2#2#2#2$2$2$$25$2=$2E$2N$2W$2\$2a$2h$2o$2u$2~$2$2$2$2$2$2$2$2$2$2%2%2%2%2%2$%2-%2>%2O%2_%2f%2m%2t%2{%2%2%2%2%2%2%2%2%2&2&2&2&2&2 &2(&20&29&2B&2J&2R&2Y&2`&2e&2j&2|&2&2&2&2&2&2&2'2'2 '2'2'2&'2/'28'2A'2g'2'2'2'2(29(2j(2(2(2(2(2(2(2 )2))2H)2e)2o)2x)2)2)2)2)2)2)2)2)2)2)2)2)2*2 *2*2!*2,*23*2:*2A*2H*2`*2x*2*2*2*2*2*2*2*2*2*2 +2+2&+2@+2Z+2 ˔1r+2GB1w1x+280}+2+21 1x0+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2+2,2,2 ,2,2,2,2,2,2#,2',2+,2/,23,27,2;,21u 1?,2E,2K,2V,2`,2l,271:1w,2z,2},2,2,2,2,2,2,2,2,2,2,2,2,2,2-2-211)-2/-25-2@-2J-2V-2a-2d-2g-2j-2m-2s-2z-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2.2 .2.2.2.2#.2).2/.25.2;.2A.2G.2M.2S.2Y.2`.2g.2m.2t.2z.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2/2 /2/2/2/2!/2'/2-/23/29/232D32J32Y32g32y3232!132321q 132h?1323232323232424242 42 424242$42442=1742:421=42?42D42I42U42`42c42f42i42l42o42r424242421w142424242 1#1'17142424242424242525252)52;52L52Y52"1e52o11g52j52m52p52s52v52y52|525252525222>25252525222S1_1525252525252525252525252525262 6262x062-6211=62N62^62`62b62e62h62k62n62q62 t62q222222w62z62}62626262626262626262626262626262626262621q 162727272 72724242727272!72)72<72N72Q72T7252W7252"1"1c72]1e72h72k72o72 1q 1s727272727272 727272721 17272"1"17272c72]17272 828282$82 /82A82R82]82h82r82|8282828282828282828282828292 9292 92-92 992C926262M92T92x+280 [92b92i92y929292/2/292921 19292*0200292i1929292:2%:2>:2S:2`:2k:2:2:2:2:2:2 :2:2:2:2:2;2;2+;2992C92<;2K;2Y;2i;2x;2;2;2;2;2;2;2 <2<20<2E<2_<2w<2<2<2<2<2<2<2=2#=23=2B=2T=2e=2l=2s=2=2=2=202024242=2=24242=2=2=2=2=2>2>21>2B>2N>2Y>2c>2602=02l>2t>2|>2>2>2>2>2>2 >2>2>2>2>2?2?2?2?2?2%?2*?2/?23?27?232D32x+280L2K2 K21 !L21&L2,L22L27L216272nN242qN2wN2K2K2 K21}N2N24242N252N2N2N2N2g1N2|K2N2K2N2N2N2N2N2N2N2N2e72h72 11N2N2N2N2+101 1"1N2N2&1-111N2N2N2O211O2 O2O2O211O2 O21 1%O2*O21111/O24O29O2>O21111CO2HO2MO2RO211WO2\O2w1~1aO2fO211kO2pO211uO2zO211O2O2O2O2O2O2O2O2u1|1111111O2O211b1m1O2O2O2O2O2O2^1e1O2O2O2O21 1P2 P211)121P2P211P2#P2$1/1(P2-P2112P27P211Q2CQ2HQ2MQ22&2RQ2\Q22222fQ2kQ2pQ2uQ22222zQ2Q2Q2Q22222z2222Q2Q2222222Q2Q2Q2Q2#2*212;2O2Y2Q2Q2Q2Q2Q2Q2Q2Q2Q2Q2b2f2Q2Q2Q2Q2Q2Q2Q2R2+ 22 2R2 R2q 2w 2R2R2R2!R2 2 2&R2/R2 2 27R22I2e2w222222222,272L2W2i2q25S2:S222?S2DS2IS2NS222SS2XS2]S2bS2#2+2gS2lS222qS2vS222{S2S222S2S2S2S222S2S2S2S2S2S2$2/2S2S2S2S222S2S2S2S222S2S2S2S22$2S2S2*242S2T2T2 T2T2T2>2I2T2 T2T2\2d2l2%T2*T2/T24T29T2>T222CT2OT2[T2`T2eT2jT222oT2tT222yT2~T2T2T222T2T222T2T2q2{2T2T222T2T2!"2."2T2T2#2#25$2=$2T2T2E$2N$2h$2o$2~$2$2$2$2T2T2%2%2T2T2T2T2%2%2T2T2T2T2_%2f%2m%2t%2T2U2U2 U2%2&2U2U2U2U2#U2(U2&2&2&2&2 &2(&2-U22U20&29&27U216272V2V2V2V2V2V2V2V2V2V2V2o42V2V2J242K2K2 K214242)72<72N72Q72W2W2W2!W2$W2.W2e72h72k72o72 D0D0o 1q 1s 1u 1w 1 40,50H50T50\50d50l50505050505060(60L60t60|6060606060606060606070 7070070870D70L70T70\70d70p7070707070707070,80\8080 9090(90090890@90L90X90d90l90|909090909090909090:0:0 :0,:04:0L:0\:0h:0p:0x:0:0:0:0:0:0;08;0d;0;0;0;0;0;0;0<0<0T<0<0<0<0<0=0 =0=0=0$=00=08=0D=0L=0D0b{1D0#!1V{1D0s~2D0z~2~2D0~2D0~2~2 D0L0T0\0h0t0|0000000000000000000 0(00080@0H0P0X0`0h0p0x0000000000000000000$00080@0H0P0\0d0l0t00000000 000000000 000$000<0H0P0X0`0l0t0|000000000000000 00 0,040<0D0L0T0 \0 d0l0t0|000000000000000000 0(00080@0H0P0X0`0h0p0x00000000000000000000$000<0D0L0X0`0h0p0x000000000000 00000 000$0,040@0L0T0\0d0l0t0|0000000000 p  hd        d A x h  <  4     (  i (i  l p l     p 8 p 8   x p \ \   $ $ % % & |+ h / ose> !!of>rror>!!ileno>lush_linebuf>!!fail>ok? !!opped?ushed?!!! binmode>cl>dup>e>f>noop_?open?p?read?setlinebuf?unread?"Ծ""""ill@lush@"""base@cnt@ptr@"""opped@ushed@"""ekAt_ptrcntA"!" bufsiz@close@dup@f@get_@open@pAreadAseAtellAunreadAwriteAase_?uf_A"""""""binmodeBflushBget_cntBpushedBset_ptrcntBunreadBwriteB"""illClushC""""ekCt_ptrcntCcloseCfCpushedCreadCseC ending_Cop_pushedDЈ! ""earerrDoseD"̓""ofDrrorD!"enoDlD"ilDlushE""cntEptrE!!!""Ĕ""_ptrcntElinebufEekEtE""" clDdupDeDfEget_EmodeEopenEpushedEreadEseEtellFunreadFwriteFcalar_eofDtdio_F!!!Ԫ!!flagsGpenG!!!!decGincG!_GadGfcntG!!! closeGdupGfilenoGoGpushedGreGseekGtellGwriteG!nix_Htf8_pushedH܏! Ċ!!aHsH llocateHpply_layerHrg_fetchH!inmodeIyteI! !tableIupI  _listIeanIoneIanset_cntIlIrlfJ   !sJbufferJlayerJ ault_Jine_layerJ bugJfJstructJ"!! openKupopenK" FILEK_layerKast_getsKdKindK """_layersKcKnameKposL!!baseLcntptrL!!ܿ itLtmode2strL!mportFILELnLsutf8L    allocMfreeMpushMayer_fetchMist_M!!"nM ФndingMrlioM "̄!""cNsNshNtNarse_layersMeMopNrintfNuNЫ""!"leaseFILENmoveNopenNsolve_layersNwindNawNeO""!ioOoutfOstreamsO!etposOtdOv_dupO !!"_flagsPab_svPeardownPmpfileP"getcPixPnPtf8P"_closeHaIbIcJdeJexportFILEKfKgetLhas_LiLlMmodestrMopenMpNrOsOtPuPvprintfPBBCrlf_BPDRaw_pushedDSFUH_Q! earerrRoseR!lRontext_layersRн!Ⱦ!ofRrrorR!!enoRlR ilSlushS!!aseSufsizS!!bScntSptrS!"adSstore_errnoS!!!!cntTptrcntT!_TlinebufTekTtT"""errTinToutTave_errnoSeTtdTк!!! cReRfSget_SreSsTtellUunreadUwriteUbhAllocUFreeUDԸ_`DDDDtersection_maybe_complement_2ndVvertVDDdumpUinVsearchVunion_maybe_complement_2ndVEQU_Verse_foldsUlistVؑ```contWstartWFOOWperl_idW```contWstartWFOOWperl_idWni_Wtf8_WnvWs_uXDD_C_arrayXDĞ`ܟ`````fold_flagsXlower_flagsXtitle_flagsXupper_flagsXni_fold_flagsXtf8_Xfold_latin1XuYadd_range_to_invlistUbyte_dump_stringUiXnew_invlistXsetup_canned_invlistXto_YappliesZcallZderef_callZдZattrs_stringZbuiltin_cv_attributesZaalock[unlock[    push[unshift_one[lear[reate_and_[Ы Աelete[ump[  ists\tend\  etch\ill\     op\ush\   hift\tore\̖  def]shift] arylen_p[c[d[ex\f\iter_p\len\make\p\reify\s\un]magic_Zpply_Ztfork_[v_]*اend^gimme^start^_^hook_register^_``cmp_utf8^from_utf8^to_utf8_free_me^lock^ytes_^  rgv_texit_    a_list_method_pv_sv_)`__er_cx_oc`32`v`long`v`i`u`ll`st_`_or_list`list`proto`ԥaa_daentersub_args_awarneraaa_da_awarnaADJUSTafieldaattributesafield_attributesbdd_apply_bоinitfield_parsebmethod_parsebԢ_field_defopbup_stashbal_stashbtbabprepare_bsecwrap_method_bodyc0ass_cear_defarraycafetch_labelcstore_labeldȁСaaܞa kw_unless_classdno_modifydpopstackdsvdxs_usageda_dи1e3e;get_fielderegistererrent_re_engineestom_op_ekproto_len_flagseloneeonst_sve_flagsf_flagsfceget_call_checkerfnamefset_call_checkerfundefffrom_hekgsetg_fgv_gstash_setgPO_dumpgincg a`kalcntrl_to_mnemoniccop_droakdsighandlereuevgxgptrshophprofdumphstackh``_no_escapehbhlimcpyhspatch_signalsiОaa_sviا_dumpigv_dumpinj_dumpjenjprintfjv_dumpj> aexecicloseigvihv_dumpijoinimagic_dumpiopjpmop_dumpjsjuniprop_matchj Ă**_jing_taintkrefkunwindkwantarraykbbinit_rkrkalllevallformlindentlpacksubslsublvindentlmp_lp_warningsleiieiokrand48_kulЃ  pvmsvmmulate_cop_iomval_ma``compileminstrmXXXaddndelnreadnر,cvndefsvnalize_optreend_runnlter_nnn`_Шalien_digit_msgocp_too_large_msgo܅a_obid_outofblock_opsnce_out_malformed_utf8_message_nmoldEQ_utf8_flagsnroOatal_warnermbm_minooree_tmpspĘX nd_check_backslash_N_namepvp  n_flagspb>b_subqeprecated_property_msgq aadescsqnamesqa>>definitionqvaluesqpaddrqrop_qb apcvpdqhvqop_qprre_argrsvra_rcwd_svrWԎfreerrefr_oct_hexscsosxsinsslash_s_flagssberseric_radixsatoUVsbshexsinfnansnumsocttntȶpvtsvtdd_by_typetutoload_theckuonst_svuءĆ3u4u_flagsu_autoloadu_autoloadunu_autoloadvpvvsvv_flagsvn_flagsvġautoloadvpvvsv_flagsv_v_vodwn_flagswfileumethwpvwsvw3w4wetchwullnamewnxpvxsvxnxpvxsvxAVaddtHVaddtIOaddtSVaddtatcudumpuefullnameufwhandlerwinit_xname_setxoverridexstashxtry_downgradexetrmtime64_rrp_rrok_tv_x_placeholdersz_key_lenzmmonzpy_hints_hvzlearzoz_entzayfree_entzetezel{ump{Șp{set{_ent{iter_{xists{_ent{etch{ill{ree_ent{sv|̴_flags|sv|init|key|next|val|Ȑget}p}set}p}set}and_set}iter_}ent}flags}_}calar}tore~ bucket_ratiozczd{e{f|iter|ksplit|magic|name_set}placeholders_}r}s~undef_flags~ugeyv_~ZZ ai18nl10nnamed_cvstackstmDfix_plugin_standardit_tro_myvlist_cloneJ*ȴ__bufhelper_FF_helper_char_in_locale_category_lvalue_subutf8_ՀSCRIPT_RUN_infnannsZ8ԁ0Oadjust_stacksscopeԽWWWWWWWWspacetounicharWWWn߂Wpvsvartقuff_Wbufutf8discard_togrow_linestrnext_chunkpeek_unicharread_stunstuffave_x_Xcharnamesmodule_panicconvؙWetime64_rӄQad_calلoks_like_numberanginfoځeo`Ogic_dumpllocrkstack_growaa_sv`learopy_mglobext_typeÆextɆindreeφetizecfgetmagicalsaPPbodiesŇsvˇ _чswitchesPPdestructor_svsvfunc_xetal_from_namelinear_isaprivate_dataˆa_inithod_changed_inmroprivate_dataget_Ȉmetpackage_movedregisterset_concat_stringifyderef_stringify23bb  aaailure_exitflush_allork_flagsaaa_listcloseopen‹aܠbb_flagsftimetodatretenvnprintfocketpairtb atofNJclearenv׊dirfd݊exitflstatpыsvsnprintfߌ abtowc_essfreeg_ini_mktimeorro_Љultiy_ATTRSUBHASHLISTSUB  REFΎavԎhvڎNONRGDEFELEMOPSSIGNOPŽTTRSUB_xȎVȗ_flagsDOPSTSUBONϏVREFEROPSVOPпMOPOPREFgen_flagsƐIVENOPPV̐REFhvnĝЍEXOPGOPOPƑISTOPOԑ_namedETHOPYSUBЁܝLISTouterpvnԽ̫ADNAMEMOPڒROGVOPUANGEVUUfalseƓtrue̓UTT_mortalUUTRTTflagsshareT_ST_sharefnz˔UT_flagsQS OPREF_ғboolhekivnvobjectpvєrvsvuvLICEOPTATEOPUBV܁_AUXENOPILEOPܲdeffileflagsǖ_͖OO_flagsԉbastackinfoversionwarnings_bitfieldABINOPCDEFFORGHVIOLMNULLLISTOPPRSTRYCATCHOPUNOPWHXS_`"  perl_die˘shutdownhookјthreadhookטewinstrŘoݘ܏elemlist}assearÙtextualizeؙvert_listޙlșonmorce_listreeinklistvalue_flagsĈԔГarentrepend_elemlockunlockcopeibling_splice append_cdumpflnullݚprefcnt_swrap_finallyЛ_֛dump_printftimize_optreeȬ2عnpvsvanonname_dd_llocnpvsvƝafindmy_̝newڝpushtidỵetchreefstore_freelist__nameΞZZZarestmtlockZZexprstmtZZabelistexprZZtmtseqןubsignatureݟZarithexprbfulllŸstermexprcklistڜdrse_O;ĺG>>2compexecfreeagscan_versionVVetchreeVVVplitءtoreޡfnewҡsO`displayescapeprettyuni_displayaerly_sighandlerϠmop_dumpՠop_scope۠retr_table_ush_scopev_*copyfreenew;G>artring;compileintuit_stop_compile`;;;;freeinitretryäsizeɤnpvsvetch_reenpvsv̥chain_2hvfincnew_ҥcounted_he_JJJJetchirstkeyJJJallexistsfiterŦnextkey˦scalarѦJ_צJJ_flagsJJfetchlengthstoreamed_buffumbered_buff_>>nקqr_packagetemp_copy>DкG>;D_curlydumpexec_flagsfree_internalinitcolorspropèaQeatcpyort_uninit ̟_allocentrant_Ϥfgɨpquire_pvsume_compcv©`.*free_2_obliterate_stack_toaa_stateĪ̲Odebugڪstandardcpv_ǣeȩninstrpp_signalʪunops_v2cv_op_cv````callocūfree˫mallocѫrealloc׫ĄPPP16328PĝPPPOdeleteelem_flagsllocptrryìPPPPP_xletestructorOoppvrcpvsvĭOOpvrefsvrefOeneric_pOPPPPashdeleteelem_flagsintsptrPPPnttemvPPԂPOOptri32ptrptradsv_and_mortalizeptrushïO>cpve_contextOOO؋PPPcalaret_svflagshared_pvrefptrtrlenvrefPIaɬboolclearsvdefreeʭghimortalizesvopp֯rs°vptraanOO_cntharedpvtack_growP_stmpsfesysݫveZYaĬZersionstringYbinڲhexnumoctstrvwordb aaret_Xسontext޳standardunderlyingcnumeric_8_defoutlocaleedҳtX#33_flagsftref2xvrtsvOZck_growrt_subparseX_to_versionϵxfrmյar۵ОQ_flagsUUQ_flagsovQQ_flagsжQflagsnolenQflagsnolen_Qflagsnolen__byteutf8ѷQ_flagsboolcvimortalʶnvֶpvܷuvPUackofflessĸRVSܓSflagsmgVV_mgЈSflagsmg_S_fnSflags׹mgݹ__decodepv¹svn_swipe_pv_buf޸tЅSSԌTTT_flagsúflagslocaleɺ̌T_ٺT_flagsQ_flagsllxfrmpypvahoplearmpoTԾT_nomgڻS   n hvpvsv _bcl_backrefrived_fromstroyable  nл pvsv __deptheoesumpS_flagsP_flags׽SS2orce_normalݽreeST_backrefssPP_freshetrowTT_nomg۾̲S_flagscsertԶ U_svUaobjectnsSS_nomgѿS_utf8׿anginfo˿enSS_mglobPextQ_flagsagicortalcopyQSmortalrefblockingsharingunlockingTewoumeq_flagsRS_flagsSS_flagsb2uu2bUn_forceR_flagsUn_forcebyten_forceutf8eekos_v̭VPUtypeVVVcleargetsetSԸPlaceort_usedUcode_to_utf8fgex_global_pos_psetSԛSunweakenweakenevRRRRboolfalsetrueundefRPP_mgāQP_mgRRbufsizemgVV_mgRRfreshmgQ_R_fnVVVVnȁVivnvpvuvQQ_mgQQ_mgincnoincef_v_RRRcowflagsmg_PP_mg_hekivnvpvrsvuvTintstmȅeq_flagsftime_ing_from_errnumettrQedUaintrue`SSextP_flagsVi_displaymagicreftaintPSflagsmg_RQ_flagsecodeowngradeRQ_flags_growdencodeupgradenpgradesepvntf8_VTV_flagsV_mgnVVV_mgnRetpvftring_getcatpvfs2bʸcdeqǽfg̾ilmnprstuv؁3inittermnc_locales_ aɲcan_eܴhare_hekkipspace_flagsotuspend_compcvv_witch_to_global_localeyWȂWenvproperO```lowertitleupperbinunaint_mps_grow_po_uni_ry_amagic_Qв1_hekpvnpackstringshareēb``basereversed`___`_`__msgs_helper_chrunitf16_basevbytesulengthto__n_to_uvuni16_to_utf88Ч_ȧ__msgsoffuni_to_utf8_flagsuni_to_utf8iv_2bufnpg_versiontfvZZenZpvsvW_identifier_ate_protobamproakaaatal_warnerormaT̩bbewSVpvformalumifyЭbbaaer alidcdebfivify_defelemload_modulemessnstringifyverifywarnaproblematic_localesvخaa_er*rns_lvalue_subШnpvsvZZinfix_pluginkeyword_pluginop_checkerahichsig_rap_ bboot_epiloghandshakeȰXGv_AMupdateRPerlIO_USlab_U_Ya]b_cgdmemfpgyhiÁkeyword_plugin_standard΁lmnoppעqerrorrstuvwxs_yylexIOQ_L_class_namesflags_names    allocconstructdestructfreeparserunԿ _sio_binmodeerlmflags_flags_namescore_intflags_namesextflags_names˝per_cp_formatrrogate_cp_formatecond_sv_flags_namesuPXS_boot_DynaLoadercv_flags_namesdeprecated_property_msgsfirst_sv_flags_namesgp_flags_hv_flags_namesinjected_constructormatch_unipropnonchar_cp_formatop_pregexp_sbH8HLD  0`PT F4T0  lp /lD\   , <4  lXh@ <d8$Dhh| x `dT8 (\,$`((88 < xQ $ X  ll<|[M0\j\cUk~l4Ő,ܐ$0p1%2BX6X<;r>?BRSבX@` it0uLw^|~LԑÒDՒT>ȰRcu<ѓ0d$9<Q4kL~8hȔٔH0dI\<qXl8ĕؕ0+H@$Wn(ʖ` \d5lJ_r\tȗ4ߗPl |#7Me~0\ ǘ٘\"h"p"")#B*X*o++(,,/љ4(= F[+(]EfO`hq,DÚ\Қd X+7xKgPt8$ϛޛ ( H (X =U*m@XhӜ$ ! 4G[o|ĝxڝ4!94FpTLbq<hx̞ߞp p   h 1$ : K< [4 h w x  8  p ͟ ܟ$ $ % & |+ 2/ B2 RX6 b < t@ B 8 JT b@ nl  0 T  Ȥ פ(    D +h ; MT [ kX }  L @ ʥd إ   ' @ 9PA GA UA lhB ~XI LJ J K ʦlO ަO P tQ S /8V @V SHW d[ xt] ^  _ h_ ` ֧a a (b pb b +c ?hd Ri e(i vl y y | Ǩ ߨ    (У 7< ET S c̷ tȺ < Կ , Ʃ ֩  8   ' :$ M a8 q $   ( 4 Ϫ| ݪ H  < "/ -1 @`2 S< e`J |4M 8M  SЃ cH y 4   ­ խ     " / D ` q x \ <   ծ < $  x " 4 Fh R\ b rt ~ T (  l ̯t   d  , ; L Zh il u     Ӱ p |/ 7 9 &= 8H VXJ lJ J N O ,R ƱS ܱU W X +Z 9` I UH cH r,  8  H Ʋ ڲ L    $ 9# OH6 cC rP a r ~ 0 ݳ  8 " :\ M ^ j( L    Ŵ ״  ( H  # 5xCR c s l Xεߵx!)$,d/"0,\3@9M9\h:j:x==?JĶPѶT߶@VLXZx^ _0aB4ePf`gpjtknhpwȷ@~ܷ!1D@hP$_n ~p,̸t޸l':L`ZXhyʹ߹,.=O _oD@tɺ8ۺH `1Jt]kx#|d%,)h+`}ƻԻP l=xQdؔ؛׼ ܨ|+?KVdbnpzhȷҽx߽\2X=?UAa0r <Ͼ0 :HGxjt,27ӿ89X9XPP#-`8NȤk{4   2ЏLisȘȱD8"\*L2L0]di{``hnLn6nCpO0qfqwrtstttuv `8ITazXL"@#4|9:RTce,ԋ<DOd|xP@ 3H\.lo~~dЈ8ܟPH,hAXLjĿH,+LJPt44h jl)s2t?r sv&Pz6{F|Va9pDHX`` p "\\]+8]Fa|H 2\hpil m-PmBoWslww{  $P8R`l0 ` к*D@X0l` Pp'C0TXf~Hx 8x/CV@l~hX8+?S g` { 0 8+h+++A hN N5NHxQ]QrQRXRRTUxU\\%]>(^VX^jxb~xdhhihiiiH);NgH{xع8h&Ⱥ<Q(gx}ػ8hؼ&X;Qg|HxؾHȿ$9HNcxHx8hX0E8Zn8x(H1C\vH8h!6K`(uXHx*:*J*b +v/000 1`12 @2=p2OYabt`P     -@ Fp X jP {    0   ! @@! ]p! o" @" " " " 02 6 7 > '0C <C RPH gN |R R S 0_ x  y y @z )P| ?| Q} u}  P   0   @  N s 0 `   @ p  +в O b t    P    ' <h P e z  8      8P Jp!e!w@!!P!!@]#Tp]#j]#]#^#0^#`^#^#^#^#  _#8P_#K_#c_#u_#`#@`#p`#`###(#0$Dx3$X_$lx$@$$$8 % %7% 0Q%$ j%7 %P %c %| % % & 8& Z& P}& & &, (&@ p!'T !'f !'x "' @"' p"' "' "'  #' `#' #'7 $'M $'b @%'x %' %' 0&' &' &' '' @''$ ''B ''W ('n (' )' )'  *' p*' *' *'. +'D 0+'Y +'o +' ,' 0,' p,' ,' -' @-''p-'E-'d-'.'0.'`.'.'.'.'6 /'WP/'w/'/'/'0'@0'p0'=0'`0'1'01'`1'1'1'1'= 2']P2'~2'2'2'3'@3'!p3'C3'b3'4'04'4'4'6'@7'p7'.7'B7'W@8'mp8' 9'P9'9'9':':':',;'I0;'c`;'~;'<'0<'<'<'<'='&=';0>'V`>'s>'>'>' ?'P?'?'?'D'@E'-I'@`'S@y'qpy'y' {'P{'{'{'{'|'@|')|'B|'[P'm' '''0''Ђ'@'' '%'9 'PP'p''''@'p'' д' '4'H'\`'p'''''''`(H($(8(L(`H(tX1(hJ((K(XK(XV(V(XW(W(W((X(<x](PXc(de(xf(g(i(j(Hj(xj(j(8k(xk(,(@ (UP(g(З(P((p((Й( @(p(/@(?`(P(mp(((@(p(()0)))* )< )V )qP ) ))0))))@))!)3 )KP)i))))@) )1) 1)) 2)J @2)\ 2)v 3) P3) 3)  4) P4) 4) 4) !4)!P5)*!p>))N!P?)`!?)p!B)!C)!XC)!F)!N)!X])!xm)"h)"),")<"h)L")^"H)r")")")")")"X)")#)#)3#x)L#)f#)#8)#h)#)#)#)$)-$)I$)]$)q$H)$x)$)$)$)$h)$)%8))%)=%x)Y%)u%)%h)%)%)%)&)&)9&)T&)p&8)&)&)&)&H)&)')/'8)B')V'()k')'()')')')'()'X) ()()2()F()Z(H)n(x)()()(h)()()()))))5)h)M))a))u)))())X)))))))))*H)*)8*)T*()o*)*)*8)*h)*)*h)+)+8)/+)F+)^+()r+X)+)+)+)+*+H*+x*,*,**,*E,8*X, *l, *, *,X *, *,*,H*,x*-*3-*F-*Z-*o-h*-*-(*-X*-(!*-"*-"*."*.X#*5.#*Q.#*l.#*.$*.+*.,*.-*.h-*.-*/-*/5*//6*D/87*Z/7*q/7*/(8*/X8*/F*/F*/F*/(G*0XG*"0G*40G*T0(H*f0hI*x0I*0(J*0XJ*0J*0(W*0XW*08Y*1hY*1Y*%1xZ*51[*E1`*W18a*g1a*y1hb*1b*1b*18c*1xc*1c*1c* 2d*$2d*42q*L2Xq*d2q*|2q*2r*2@r*2pr*2r*2r* 30s*$3ps*<3s*S3t*l3Pt*~3t*3y*3y*3{*3|*3|*3 }*3`}* 4}*4 ~*14P~*@40*R4*d4*v4*4P*4@*4*4*4*4*5*5p**5*>5`*R5+f5)+z5_+5`a+5a+5a+5e+5 f+5`f+6`g+$6g+:6g+P6 h+f6`h+|6h+6h+60i+6`i+6i+6j+7k+7@k+,7k+B7k+X7@n+n7n+7Po+7o+7Pp+7p+7q+7 r+8t+8u+48u+J8v+_8Px+u8Py+8y+80z+8z+8{+8P{+8{+9|+%9|+;9}+Q9~+g9+}9+9P+9+9 +9P+9+:+:+-:@+C:p+Y:+o:@+:+:0+:+:+: +:`+;+;+4;Ї+J;+`;0+v;`+;+;+;+; +;`+;+<+&<+<<+R< +h<`+~<+<+<@+<+<+<+=`+=P+.=+D=+Z=+p=P+=+= +=P+=+=P+=+>+>؟+.>+@>h+R>+w>آ+>x+>+>+>(+>X+>h+?+?ȫ+4?+D?ȷ+V?+h?8+z?x+?+?ظ+?x+?+?+?+ @+#@+;@+T@H+r@x+@+@+@+@8+@h+A+6A+]A+AH+A+A+A(+AX+A+A+Bh+#B+9B+KB+]B(+{BX+B+B+B+BX+B+B8+B+CH+"C+4Ch+GC(+YCh+kC+}C8+Ch+C+C+C+C+CX+D++DX,0SD>0.SD0>S8E0GS`E0YShE0ySpE0S8F0S@F0SDF0S\F0SF0S`L0SL0SM0 T$M0'ThM00TO0@TO0GTPO0aTpe0wTe0T{0T@{0Td0Th0T0U0U01U0IU0YUD0iUL0yUT0U\0Uh0Ut0U|0U0U0U0U0 V0V0-V0>V0OV0`V0qV0V0V0V0V0V0V0V0V 0 W(0W00,W80=W@0NWH0_WP0pWX0W`0Wh0Wp0Wx0W0W0W0W0 X0X0+X04M !%4X P4k )4 )4 `(4 h(4 p(4 )4 x(4 (4 )4 )4/ )4E )4V )4g (4x (44 !4hy  4G R eq 04 !4z#A "4 (4 4  !4 *4' 48CLT`aHsh%(__J]0h(h< ,d d3YD`[[nTd4P  /?O$e@ue<8\̨4(!D6J$_u<إL;PDP= 0'̉8Kx_`q4$ yl}Ty l D":L`svrlTUnltsi ,i Lh1 PnB vS (ue cx G t  DE  F : G p3 a!,'!,j'!+5!*H!3U!p c!\:z!A!=!6!+!8!0a!,B"$"#"06"0.I"(V"ȴf"̽u"a"da"T|"Hh""^";")#,)#)'#4d7#ܴD#PR#|7g#03w#P3#-#@#LB###3##3#|$lJ$,$ؼ;$03I$Y$tAl$8h{$2$pl$$,V$ض$3$3$$,M %_"%'5%`OQ%^b%H_u%I%4^%,%a% b%b%|b&X&3&gK&\]&4cr&c&`&&p&8&P]&['\'`1''X47',S'Tk''5'|4',','"(#,(>( X(, s(((( (!( 4)D)6)P)D%k)!)|)|i)U)p)<)P*a-*aA*ZS*@Ib*tN{*Q*U**4X*3*6*L*[+U+?!+2zQ2;b2s2<22D2 2ȯ 202,2t2hz 3y3(r/3wC3`zR3re3x333l3;R;`;Hq;;,;`;x;;;;; < <2<ШJ<L^<o<<<H<<|<̿<<="=2=A=DT=Ԥi=~==pE=d=K=s==+>>{5>P I>Hb>ly>x>>>`<><>43 >\ ??3?,J?l_? v??H????\??@%@|7@(0J@07[@o@B@4@6@@6@D@F@6@@ AAT,A=AKA^A$oA|A A`AAsA $AAABB\.6B/OBP,jBH/~B(XB|>B.BZB,BC)C7CFCUCdgCpvChC(CnC\C,CCbC ]C YDX#D\5D`ID$WDkD=}DfDDlDDDD&E(E`%E1E@E BNEE\EkEt9{EEȋEEdE8EПETE|_FFF0-F|FBFNF]FkFwFFFF]FFFFtFlFGG,/GEG|YG$gGuGGBGnGl&G,GLGGpGG|nHlnHPn)HL&8H%NHDm\H ljH|H#H/HH$HHP*HHzI,I)%Ii3I@GIUIgIcwIMII\IIIIԄIXJ49#J|4JLIJ|L\J܇qJJJ>JKJ$JtuJJ6K<\K$h)KDD7KTJGKЉ]KDrKDKKDKMSMeM,zMԫM8MlMMMMNN/N>NDMNp\NlNwNNNNNNxN4hOh]O4f/OX-DO QO*aO$qO*OOO<OO6OO P P5PL?P]PzPPPPP,QQ8QxMQ,fQHQȠQDQQĩQpRܭ,RPRoRRRRRpRPRRSt Se0SRDS USiS@9wS S SaSbSLSStT\6TP6*Th4>T5STDbTqTT8 TTTTTTT U $U _K_@]_t_<___\_l_dm__,`d$`09`@N`i\`m`x` ````|v`` a`av2a̖JawWa2haܷaLaaaTaxoa bb1bеDbVb ibyb:b>b?b@b4bbоbcdco&cD]d>od0dAdDdd\dhdud/e e4eTCe88Xeie%ze<ee4ee4eHself)fwJf4[f0off 1ff,ff̳fSg؀g9$g :4g4:Cg@SgHfgLxggl g( gTmg4Tg`kgPY glhhĉ1hEh^h{hhxhhh$hiЩiX*iGiiiL}iiii\iiOijWjhC%jض:jD$Mj|EYj0ij̔wjjЖj8jQj,Tj(Rj3j`QjXWk kp!)kPoOoeotoooolo,oDo op%p4pEp2Up3op2px2pH2p2pp̧pN0p2q2ql:"q:2qLAqpLqxqXqРbqsq2q(2q2q2qN0qlN0q rr1r@rQrZrirurrrrrrrrrrs sss!s)s0s7s=sDsLsSsZsasissszsssssssssssssssstttt&t,t1t9tAtItQtXt`tftntvt}tttttttttttttttttuuuu#u-u7uBuQu`uluvuuuuuuuuuuuv vvv-v?@ABCDEFGHIJKMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ _PL_AboveLatin1_PL_Assigned_invlist_PL_CCC_non0_non230_PL_DBcontrol_PL_DBcv_PL_DBgv_PL_DBline_PL_DBsignal_PL_DBsingle_PL_DBsub_PL_DBtrace_PL_EXACTFish_bitmask_PL_EXACT_REQ8_bitmask_PL_GCB_invlist_PL_HasMultiCharFold_PL_InBitmap_PL_InMultiCharFold_PL_LB_invlist_PL_Latin1_PL_No_PL_Posix_ptrs_PL_Private_Use_PL_SB_invlist_PL_SCX_invlist_PL_Sv_PL_TR_SPECIAL_HANDLING_UTF8_PL_UpperLatin1_PL_WARN_ALL_PL_WARN_NONE_PL_WB_invlist_PL_XPosix_ptrs_PL_Yes_PL_Zero_PL_an_PL_argvgv_PL_argvout_stack_PL_argvoutgv_PL_basetime_PL_beginav_PL_beginav_save_PL_bincompat_options_PL_bitcount_PL_block_type_PL_blockhooks_PL_body_arenas_PL_body_roots_PL_bodytarget_PL_breakable_sub_gen_PL_c9_utf8_dfa_tab_PL_charclass_PL_check_PL_checkav_PL_checkav_save_PL_chopset_PL_clocktick_PL_collation_ix_PL_collation_name_PL_collation_standard_PL_collxfrm_base_PL_collxfrm_mult_PL_colors_PL_colorset_PL_compcv_PL_compiling_PL_comppad_PL_comppad_name_PL_comppad_name_fill_PL_comppad_name_floor_PL_constpadix_PL_cop_seqmax_PL_core_reg_engine_PL_cshname_PL_csighandler1p_PL_csighandler3p_PL_csighandlerp_PL_ctype_name_PL_curcop_PL_curcopdb_PL_curinterp_PL_curpad_PL_curpm_PL_curpm_under_PL_curstack_PL_curstackinfo_PL_curstash_PL_curstname_PL_custom_op_descs_PL_custom_op_names_PL_custom_ops_PL_cv_has_eval_PL_dbargs_PL_deBruijn_bitpos_tab32_PL_deBruijn_bitpos_tab64_PL_debstash_PL_debug_PL_debug_pad_PL_def_layerlist_PL_defgv_PL_defoutgv_PL_defstash_PL_delaymagic_PL_delaymagic_egid_PL_delaymagic_euid_PL_delaymagic_gid_PL_delaymagic_uid_PL_destroyhook_PL_diehook_PL_do_undump_PL_doswitches_PL_dowarn_PL_dump_re_max_len_PL_dumpindent_PL_e_script_PL_efloatbuf_PL_efloatsize_PL_endav_PL_envgv_PL_errgv_PL_errors_PL_eval_begin_nest_depth_PL_eval_root_PL_eval_start_PL_evalseq_PL_exit_flags_PL_exitlist_PL_exitlistlen_PL_extended_cp_format_PL_extended_utf8_dfa_tab_PL_fdpid_PL_filemode_PL_firstgv_PL_fold_PL_fold_latin1_PL_fold_locale_PL_forkprocess_PL_formtarget_PL_generation_PL_gensym_PL_globalstash_PL_globhook_PL_hash_rand_bits_PL_hash_rand_bits_enabled_PL_hash_seed_set_PL_hash_seed_w_PL_hash_state_w_PL_hexdigit_PL_hintgv_PL_hook__require__after_PL_hook__require__before_PL_hv_fetch_ent_mh_PL_in_clean_all_PL_in_clean_objs_PL_in_diehook_PL_in_eval_PL_in_load_module_PL_in_some_fold_PL_in_utf8_COLLATE_locale_PL_in_utf8_CTYPE_locale_PL_in_utf8_turkic_locale_PL_in_warnhook_PL_incgv_PL_inf_PL_infix_plugin_PL_initav_PL_inplace_PL_internal_random_state_PL_isa_DOES_PL_isarev_PL_keyword_plugin_PL_known_layers_PL_langinfo_sv_PL_last_in_gv_PL_lastfd_PL_lastgotoprobe_PL_laststatval_PL_laststype_PL_latin1_lc_PL_localizing_PL_localpatches_PL_lockhook_PL_magic_data_PL_magic_vtable_names_PL_magic_vtables_PL_main_cv_PL_main_root_PL_main_start_PL_mainstack_PL_markstack_PL_markstack_max_PL_markstack_ptr_PL_max_intro_pending_PL_maxsysfd_PL_mbrlen_ps_PL_mbrtowc_ps_PL_memory_wrap_PL_mess_sv_PL_min_intro_pending_PL_minus_E_PL_minus_F_PL_minus_a_PL_minus_c_PL_minus_l_PL_minus_n_PL_minus_p_PL_mmap_page_size_PL_mod_latin1_uc_PL_modcount_PL_modglobal_PL_multideref_pc_PL_my_environ_PL_na_PL_nan_PL_no_aelem_PL_no_dir_func_PL_no_func_PL_no_helem_sv_PL_no_localize_ref_PL_no_modify_PL_no_myglob_PL_no_security_PL_no_sock_func_PL_no_symref_PL_no_symref_sv_PL_no_usym_PL_no_wrongref_PL_nomemok_PL_numeric_name_PL_numeric_radix_sv_PL_numeric_standard_PL_numeric_underlying_PL_numeric_underlying_is_standard_PL_ofsgv_PL_oldname_PL_op_PL_op_desc_PL_op_mask_PL_op_name_PL_op_private_bitdef_ix_PL_op_private_bitdefs_PL_op_private_bitfields_PL_op_private_labels_PL_op_private_valid_PL_op_seq_PL_op_sequence_PL_opargs_PL_opfreehook_PL_origalen_PL_origargc_PL_origargv_PL_origenviron_PL_origfilename_PL_ors_sv_PL_osname_PL_pad_reset_pending_PL_padix_PL_padix_floor_PL_padlist_generation_PL_padname_const_PL_padname_undef_PL_parser_PL_patchlevel_PL_peepp_PL_perl_destruct_level_PL_perldb_PL_perlio_PL_perlio_debug_fd_PL_perlio_fd_refcnt_PL_perlio_fd_refcnt_size_PL_phase_PL_phase_names_PL_ppaddr_PL_preambleav_PL_prevailing_version_PL_profiledata_PL_psig_name_PL_psig_pend_PL_psig_ptr_PL_ptr_table_PL_random_state_PL_reentrant_retint_PL_reg_curpm_PL_reg_extflags_name_PL_reg_intflags_name_PL_registered_mros_PL_regmatch_slab_PL_regmatch_state_PL_regnode_info_PL_regnode_name_PL_replgv_PL_restartjmpenv_PL_restartop_PL_revision_PL_rpeepp_PL_rs_PL_runops_PL_runops_dbg_PL_runops_std_PL_savebegin_PL_savestack_PL_savestack_ix_PL_savestack_max_PL_scopestack_PL_scopestack_ix_PL_scopestack_max_PL_scopestack_name_PL_scratch_langinfo_PL_secondgv_PL_setlocale_buf_PL_setlocale_bufsize_PL_sh_path_PL_sharehook_PL_shutdownhook_PL_sig_name_PL_sig_num_PL_sig_pending_PL_sigfpe_saved_PL_sighandler1p_PL_sighandler3p_PL_sighandlerp_PL_signalhook_PL_signals_PL_simple_PL_simple_bitmask_PL_sortcop_PL_sortstash_PL_splitstr_PL_srand_called_PL_srand_override_PL_srand_override_next_PL_stack_base_PL_stack_max_PL_stack_sp_PL_start_env_PL_stashcache_PL_statcache_PL_statgv_PL_statname_PL_statusvalue_PL_statusvalue_posix_PL_stderrgv_PL_stdingv_PL_strategy_accept_PL_strategy_dup_PL_strategy_dup2_PL_strategy_mkstemp_PL_strategy_open_PL_strategy_open3_PL_strategy_pipe_PL_strategy_socket_PL_strategy_socketpair_PL_strict_utf8_dfa_tab_PL_strtab_PL_strxfrm_NUL_replacement_PL_strxfrm_is_behaved_PL_strxfrm_max_cp_PL_sub_generation_PL_subline_PL_subname_PL_subversion_PL_sv_arenaroot_PL_sv_consts_PL_sv_count_PL_sv_immortals_PL_sv_placeholder_PL_sv_root_PL_taint_warn_PL_tainted_PL_tainting_PL_threadhook_PL_tmps_floor_PL_tmps_ix_PL_tmps_max_PL_tmps_stack_PL_top_env_PL_toptarget_PL_underlying_radix_sv_PL_unicode_PL_unitcheckav_PL_unitcheckav_save_PL_unlockhook_PL_unsafe_PL_user_def_props_PL_utf8_charname_begin_PL_utf8_charname_continue_PL_utf8_foldclosures_PL_utf8_idcont_PL_utf8_idstart_PL_utf8_mark_PL_utf8_perl_idcont_PL_utf8_perl_idstart_PL_utf8_tofold_PL_utf8_tolower_PL_utf8_tosimplefold_PL_utf8_totitle_PL_utf8_toupper_PL_utf8_xidcont_PL_utf8_xidstart_PL_utf8cache_PL_utf8locale_PL_utf8skip_PL_uudmap_PL_uuemap_PL_valid_types_IVX_PL_valid_types_IV_set_PL_valid_types_NVX_PL_valid_types_NV_set_PL_valid_types_PVX_PL_valid_types_RV_PL_varies_PL_varies_bitmask_PL_version_PL_veto_cleanup_PL_warn_locale_PL_warn_nl_PL_warn_nosemi_PL_warn_reserved_PL_warn_uninit_PL_warn_uninit_sv_PL_warnhook_PL_watch_pvx_PL_watchaddr_PL_watchok_PL_wcrtomb_ps_PL_xsubfilename_PerlIOBase_binmode_PerlIOBase_clearerr_PerlIOBase_close_PerlIOBase_dup_PerlIOBase_eof_PerlIOBase_error_PerlIOBase_fileno_PerlIOBase_flush_linebuf_PerlIOBase_noop_fail_PerlIOBase_noop_ok_PerlIOBase_open_PerlIOBase_popped_PerlIOBase_pushed_PerlIOBase_read_PerlIOBase_setlinebuf_PerlIOBase_unread_PerlIOBuf_bufsiz_PerlIOBuf_close_PerlIOBuf_dup_PerlIOBuf_fill_PerlIOBuf_flush_PerlIOBuf_get_base_PerlIOBuf_get_cnt_PerlIOBuf_get_ptr_PerlIOBuf_open_PerlIOBuf_popped_PerlIOBuf_pushed_PerlIOBuf_read_PerlIOBuf_seek_PerlIOBuf_set_ptrcnt_PerlIOBuf_tell_PerlIOBuf_unread_PerlIOBuf_write_PerlIOCrlf_binmode_PerlIOCrlf_flush_PerlIOCrlf_get_cnt_PerlIOCrlf_pushed_PerlIOCrlf_set_ptrcnt_PerlIOCrlf_unread_PerlIOCrlf_write_PerlIOPending_close_PerlIOPending_fill_PerlIOPending_flush_PerlIOPending_pushed_PerlIOPending_read_PerlIOPending_seek_PerlIOPending_set_ptrcnt_PerlIOPop_pushed_PerlIORaw_pushed_PerlIOScalar_eof_PerlIOStdio_clearerr_PerlIOStdio_close_PerlIOStdio_dup_PerlIOStdio_eof_PerlIOStdio_error_PerlIOStdio_fileno_PerlIOStdio_fill_PerlIOStdio_flush_PerlIOStdio_get_cnt_PerlIOStdio_get_ptr_PerlIOStdio_mode_PerlIOStdio_open_PerlIOStdio_pushed_PerlIOStdio_read_PerlIOStdio_seek_PerlIOStdio_set_ptrcnt_PerlIOStdio_setlinebuf_PerlIOStdio_tell_PerlIOStdio_unread_PerlIOStdio_write_PerlIOUnix_close_PerlIOUnix_dup_PerlIOUnix_fileno_PerlIOUnix_oflags_PerlIOUnix_open_PerlIOUnix_pushed_PerlIOUnix_read_PerlIOUnix_refcnt_PerlIOUnix_refcnt_dec_PerlIOUnix_refcnt_inc_PerlIOUnix_seek_PerlIOUnix_tell_PerlIOUnix_write_PerlIOUtf8_pushed_PerlIO__close_PerlIO_allocate_PerlIO_apply_layera_PerlIO_apply_layers_PerlIO_arg_fetch_PerlIO_binmode_PerlIO_byte_PerlIO_canset_cnt_PerlIO_cleantable_PerlIO_cleanup_PerlIO_clone_PerlIO_clone_list_PerlIO_crlf_PerlIO_debug_PerlIO_default_buffer_PerlIO_default_layer_PerlIO_default_layers_PerlIO_define_layer_PerlIO_destruct_PerlIO_exportFILE_PerlIO_fast_gets_PerlIO_fdopen_PerlIO_fdupopen_PerlIO_findFILE_PerlIO_find_layer_PerlIO_get_layers_PerlIO_getc_PerlIO_getname_PerlIO_getpos_PerlIO_has_base_PerlIO_has_cntptr_PerlIO_importFILE_PerlIO_init_PerlIO_intmode2str_PerlIO_isutf8_PerlIO_layer_fetch_PerlIO_list_alloc_PerlIO_list_free_PerlIO_list_push_PerlIO_modestr_PerlIO_open_PerlIO_openn_PerlIO_parse_layers_PerlIO_pending_PerlIO_perlio_PerlIO_pop_PerlIO_printf_PerlIO_push_PerlIO_putc_PerlIO_puts_PerlIO_raw_PerlIO_releaseFILE_PerlIO_remove_PerlIO_reopen_PerlIO_resolve_layers_PerlIO_rewind_PerlIO_setpos_PerlIO_stdio_PerlIO_stdoutf_PerlIO_stdstreams_PerlIO_sv_dup_PerlIO_tab_sv_PerlIO_teardown_PerlIO_tmpfile_PerlIO_tmpfile_flags_PerlIO_ungetc_PerlIO_unix_PerlIO_utf8_PerlIO_vprintf_Perl_Gv_AMupdate_Perl_PerlIO_clearerr_Perl_PerlIO_close_Perl_PerlIO_context_layers_Perl_PerlIO_eof_Perl_PerlIO_error_Perl_PerlIO_fileno_Perl_PerlIO_fill_Perl_PerlIO_flush_Perl_PerlIO_get_base_Perl_PerlIO_get_bufsiz_Perl_PerlIO_get_cnt_Perl_PerlIO_get_ptr_Perl_PerlIO_read_Perl_PerlIO_restore_errno_Perl_PerlIO_save_errno_Perl_PerlIO_seek_Perl_PerlIO_set_cnt_Perl_PerlIO_set_ptrcnt_Perl_PerlIO_setlinebuf_Perl_PerlIO_stderr_Perl_PerlIO_stdin_Perl_PerlIO_stdout_Perl_PerlIO_tell_Perl_PerlIO_unread_Perl_PerlIO_write_Perl_Slab_Alloc_Perl_Slab_Free_Perl__add_range_to_invlist_Perl__byte_dump_string_Perl__inverse_folds_Perl__invlistEQ_Perl__invlist_dump_Perl__invlist_intersection_maybe_complement_2nd_Perl__invlist_invert_Perl__invlist_search_Perl__invlist_union_maybe_complement_2nd_Perl__is_uni_FOO_Perl__is_uni_perl_idcont_Perl__is_uni_perl_idstart_Perl__is_utf8_FOO_Perl__is_utf8_perl_idcont_Perl__is_utf8_perl_idstart_Perl__new_invlist_Perl__new_invlist_C_array_Perl__setup_canned_invlist_Perl__to_fold_latin1_Perl__to_uni_fold_flags_Perl__to_utf8_fold_flags_Perl__to_utf8_lower_flags_Perl__to_utf8_title_flags_Perl__to_utf8_upper_flags_Perl_amagic_applies_Perl_amagic_call_Perl_amagic_deref_call_Perl_apply_attrs_string_Perl_apply_builtin_cv_attributes_Perl_atfork_lock_Perl_atfork_unlock_Perl_av_arylen_p_Perl_av_clear_Perl_av_create_and_push_Perl_av_create_and_unshift_one_Perl_av_delete_Perl_av_dump_Perl_av_exists_Perl_av_extend_Perl_av_fetch_Perl_av_fill_Perl_av_iter_p_Perl_av_len_Perl_av_make_Perl_av_pop_Perl_av_push_Perl_av_reify_Perl_av_shift_Perl_av_store_Perl_av_undef_Perl_av_unshift_Perl_block_end_Perl_block_gimme_Perl_block_start_Perl_blockhook_register_Perl_bytes_cmp_utf8_Perl_bytes_from_utf8_Perl_bytes_to_utf8_free_me_Perl_call_argv_Perl_call_atexit_Perl_call_list_Perl_call_method_Perl_call_pv_Perl_call_sv_Perl_caller_cx_Perl_calloc_Perl_cast_i32_Perl_cast_iv_Perl_cast_ulong_Perl_cast_uv_Perl_ck_entersub_args_list_Perl_ck_entersub_args_proto_Perl_ck_entersub_args_proto_or_list_Perl_ck_warner_Perl_ck_warner_d_Perl_ckwarn_Perl_ckwarn_d_Perl_class_add_ADJUST_Perl_class_add_field_Perl_class_apply_attributes_Perl_class_apply_field_attributes_Perl_class_prepare_initfield_parse_Perl_class_prepare_method_parse_Perl_class_seal_stash_Perl_class_set_field_defop_Perl_class_setup_stash_Perl_class_wrap_method_body_Perl_clear_defarray_Perl_cntrl_to_mnemonic_Perl_cop_fetch_label_Perl_cop_store_label_Perl_croak_Perl_croak_kw_unless_class_Perl_croak_no_modify_Perl_croak_popstack_Perl_croak_sv_Perl_croak_xs_usage_Perl_csighandler_Perl_csighandler1_Perl_csighandler3_Perl_current_re_engine_Perl_custom_op_get_field_Perl_custom_op_register_Perl_cv_ckproto_len_flags_Perl_cv_clone_Perl_cv_const_sv_Perl_cv_get_call_checker_Perl_cv_get_call_checker_flags_Perl_cv_name_Perl_cv_set_call_checker_Perl_cv_set_call_checker_flags_Perl_cv_undef_Perl_cvgv_from_hek_Perl_cvgv_set_Perl_cvstash_set_Perl_cx_dump_Perl_cxinc_Perl_deb_Perl_debop_Perl_debprofdump_Perl_debstack_Perl_debstackptrs_Perl_delimcpy_Perl_delimcpy_no_escape_Perl_despatch_signals_Perl_die_Perl_die_sv_Perl_do_aexec_Perl_do_close_Perl_do_gv_dump_Perl_do_gvgv_dump_Perl_do_hv_dump_Perl_do_join_Perl_do_magic_dump_Perl_do_op_dump_Perl_do_open_Perl_do_openn_Perl_do_pmop_dump_Perl_do_sprintf_Perl_do_sv_dump_Perl_do_uniprop_match_Perl_doing_taint_Perl_doref_Perl_dounwind_Perl_dowantarray_Perl_drand48_init_r_Perl_drand48_r_Perl_dump_all_Perl_dump_eval_Perl_dump_form_Perl_dump_indent_Perl_dump_packsubs_Perl_dump_sub_Perl_dump_vindent_Perl_dup_warnings_Perl_emulate_cop_io_Perl_eval_pv_Perl_eval_sv_Perl_fatal_warner_Perl_fbm_compile_Perl_fbm_instr_Perl_filter_add_Perl_filter_del_Perl_filter_read_Perl_finalize_optree_Perl_find_runcv_Perl_find_rundefsv_Perl_foldEQ_utf8_flags_Perl_forbid_outofblock_ops_Perl_force_out_malformed_utf8_message__Perl_form_Perl_form_alien_digit_msg_Perl_form_cp_too_large_msg_Perl_free_tmps_Perl_get_and_check_backslash_N_name_Perl_get_av_Perl_get_cv_Perl_get_cvn_flags_Perl_get_db_sub_Perl_get_deprecated_property_msg_Perl_get_hv_Perl_get_op_descs_Perl_get_op_names_Perl_get_ppaddr_Perl_get_prop_definition_Perl_get_prop_values_Perl_get_re_arg_Perl_get_sv_Perl_getcwd_sv_Perl_gmtime64_r_Perl_gp_free_Perl_gp_ref_Perl_grok_atoUV_Perl_grok_bin_Perl_grok_bin_oct_hex_Perl_grok_bslash_c_Perl_grok_bslash_o_Perl_grok_bslash_x_Perl_grok_hex_Perl_grok_infnan_Perl_grok_number_Perl_grok_number_flags_Perl_grok_numeric_radix_Perl_grok_oct_Perl_gv_AVadd_Perl_gv_HVadd_Perl_gv_IOadd_Perl_gv_SVadd_Perl_gv_add_by_type_Perl_gv_autoload_pv_Perl_gv_autoload_pvn_Perl_gv_autoload_sv_Perl_gv_check_Perl_gv_const_sv_Perl_gv_dump_Perl_gv_efullname3_Perl_gv_efullname4_Perl_gv_fetchfile_Perl_gv_fetchfile_flags_Perl_gv_fetchmeth_pv_Perl_gv_fetchmeth_pv_autoload_Perl_gv_fetchmeth_pvn_Perl_gv_fetchmeth_pvn_autoload_Perl_gv_fetchmeth_sv_Perl_gv_fetchmeth_sv_autoload_Perl_gv_fetchmethod_Perl_gv_fetchmethod_autoload_Perl_gv_fetchmethod_pv_flags_Perl_gv_fetchmethod_pvn_flags_Perl_gv_fetchmethod_sv_flags_Perl_gv_fetchpv_Perl_gv_fetchpvn_flags_Perl_gv_fetchsv_Perl_gv_fullname3_Perl_gv_fullname4_Perl_gv_handler_Perl_gv_init_pv_Perl_gv_init_pvn_Perl_gv_init_sv_Perl_gv_name_set_Perl_gv_override_Perl_gv_stashpv_Perl_gv_stashpvn_Perl_gv_stashsv_Perl_gv_try_downgrade_Perl_huge_Perl_hv_bucket_ratio_Perl_hv_clear_Perl_hv_clear_placeholders_Perl_hv_common_Perl_hv_common_key_len_Perl_hv_copy_hints_hv_Perl_hv_delayfree_ent_Perl_hv_delete_Perl_hv_delete_ent_Perl_hv_dump_Perl_hv_eiter_p_Perl_hv_eiter_set_Perl_hv_exists_Perl_hv_exists_ent_Perl_hv_fetch_Perl_hv_fetch_ent_Perl_hv_fill_Perl_hv_free_ent_Perl_hv_iterinit_Perl_hv_iterkey_Perl_hv_iterkeysv_Perl_hv_iternext_Perl_hv_iternext_flags_Perl_hv_iternextsv_Perl_hv_iterval_Perl_hv_ksplit_Perl_hv_magic_Perl_hv_name_set_Perl_hv_placeholders_get_Perl_hv_placeholders_p_Perl_hv_placeholders_set_Perl_hv_rand_set_Perl_hv_riter_p_Perl_hv_riter_set_Perl_hv_scalar_Perl_hv_store_Perl_hv_store_ent_Perl_hv_store_flags_Perl_hv_undef_flags_Perl_infix_plugin_standard_Perl_init_i18nl10n_Perl_init_named_cv_Perl_init_stacks_Perl_init_tm_Perl_intro_my_Perl_invlist_clone_Perl_isSCRIPT_RUN_Perl_is_in_locale_category__Perl_is_lvalue_sub_Perl_is_utf8_FF_helper__Perl_is_utf8_char_buf_Perl_is_utf8_char_helper__Perl_isinfnan_Perl_keyword_plugin_standard_Perl_langinfo_Perl_langinfo8_Perl_leave_adjust_stacks_Perl_leave_scope_Perl_lex_bufutf8_Perl_lex_discard_to_Perl_lex_grow_linestr_Perl_lex_next_chunk_Perl_lex_peek_unichar_Perl_lex_read_space_Perl_lex_read_to_Perl_lex_read_unichar_Perl_lex_start_Perl_lex_stuff_pv_Perl_lex_stuff_pvn_Perl_lex_stuff_sv_Perl_lex_unstuff_Perl_load_charnames_Perl_load_module_Perl_locale_panic_Perl_localeconv_Perl_localtime64_r_Perl_looks_like_number_Perl_magic_dump_Perl_malloc_Perl_markstack_grow_Perl_mbtowc__Perl_mess_Perl_mess_sv_Perl_mfree_Perl_mg_clear_Perl_mg_copy_Perl_mg_find_Perl_mg_find_mglob_Perl_mg_findext_Perl_mg_free_Perl_mg_free_type_Perl_mg_freeext_Perl_mg_get_Perl_mg_magical_Perl_mg_set_Perl_mg_size_Perl_mini_mktime_Perl_more_bodies_Perl_more_sv_Perl_moreswitches_Perl_mortal_destructor_sv_Perl_mortal_svfunc_x_Perl_mro_get_from_name_Perl_mro_get_linear_isa_Perl_mro_get_private_data_Perl_mro_meta_init_Perl_mro_method_changed_in_Perl_mro_package_moved_Perl_mro_register_Perl_mro_set_mro_Perl_mro_set_private_data_Perl_multiconcat_stringify_Perl_multideref_stringify_Perl_my_atof_Perl_my_atof2_Perl_my_atof3_Perl_my_clearenv_Perl_my_dirfd_Perl_my_exit_Perl_my_failure_exit_Perl_my_fflush_all_Perl_my_fork_Perl_my_lstat_Perl_my_lstat_flags_Perl_my_pclose_Perl_my_popen_Perl_my_popen_list_Perl_my_setenv_Perl_my_snprintf_Perl_my_socketpair_Perl_my_stat_Perl_my_stat_flags_Perl_my_strftime_Perl_my_strtod_Perl_my_vsnprintf_Perl_newANONATTRSUB_Perl_newANONHASH_Perl_newANONLIST_Perl_newANONSUB_Perl_newARGDEFELEMOP_Perl_newASSIGNOP_Perl_newATTRSUB_x_Perl_newAV_Perl_newAVREF_Perl_newAVav_Perl_newAVhv_Perl_newBINOP_Perl_newCONDOP_Perl_newCONSTSUB_Perl_newCONSTSUB_flags_Perl_newCVREF_Perl_newDEFEROP_Perl_newDEFSVOP_Perl_newFORM_Perl_newFOROP_Perl_newGIVENOP_Perl_newGP_Perl_newGVOP_Perl_newGVREF_Perl_newGVgen_flags_Perl_newHV_Perl_newHVREF_Perl_newHVhv_Perl_newIO_Perl_newLISTOP_Perl_newLISTOPn_Perl_newLOGOP_Perl_newLOOPEX_Perl_newLOOPOP_Perl_newMETHOP_Perl_newMETHOP_named_Perl_newMYSUB_Perl_newNULLLIST_Perl_newOP_Perl_newPADNAMELIST_Perl_newPADNAMEouter_Perl_newPADNAMEpvn_Perl_newPMOP_Perl_newPROG_Perl_newPVOP_Perl_newRANGE_Perl_newRV_Perl_newSLICEOP_Perl_newSTATEOP_Perl_newSUB_Perl_newSV_Perl_newSVOP_Perl_newSVREF_Perl_newSV_false_Perl_newSV_true_Perl_newSVbool_Perl_newSVhek_Perl_newSVhek_mortal_Perl_newSViv_Perl_newSVnv_Perl_newSVobject_Perl_newSVpv_Perl_newSVpv_share_Perl_newSVpvf_Perl_newSVpvn_Perl_newSVpvn_flags_Perl_newSVpvn_share_Perl_newSVpvz_Perl_newSVrv_Perl_newSVsv_Perl_newSVsv_flags_Perl_newSVuv_Perl_newTRYCATCHOP_Perl_newUNOP_Perl_newUNOP_AUX_Perl_newWHENOP_Perl_newWHILEOP_Perl_newXS_Perl_newXS_deffile_Perl_newXS_flags_Perl_new_stackinfo_Perl_new_stackinfo_flags_Perl_new_version_Perl_new_warnings_bitfield_Perl_ninstr_Perl_noperl_die_Perl_noshutdownhook_Perl_nothreadhook_Perl_op_append_elem_Perl_op_append_list_Perl_op_class_Perl_op_clear_Perl_op_contextualize_Perl_op_convert_list_Perl_op_dump_Perl_op_force_list_Perl_op_free_Perl_op_linklist_Perl_op_lvalue_flags_Perl_op_null_Perl_op_parent_Perl_op_prepend_elem_Perl_op_refcnt_lock_Perl_op_refcnt_unlock_Perl_op_scope_Perl_op_sibling_splice_Perl_op_wrap_finally_Perl_opdump_printf_Perl_optimize_optree_Perl_packlist_Perl_pad_add_anon_Perl_pad_add_name_pv_Perl_pad_add_name_pvn_Perl_pad_add_name_sv_Perl_pad_alloc_Perl_pad_findmy_pv_Perl_pad_findmy_pvn_Perl_pad_findmy_sv_Perl_pad_new_Perl_pad_push_Perl_pad_tidy_Perl_padname_free_Perl_padnamelist_fetch_Perl_padnamelist_free_Perl_padnamelist_store_Perl_parse_arithexpr_Perl_parse_barestmt_Perl_parse_block_Perl_parse_fullexpr_Perl_parse_fullstmt_Perl_parse_label_Perl_parse_listexpr_Perl_parse_stmtseq_Perl_parse_subsignature_Perl_parse_termexpr_Perl_perly_sighandler_Perl_pmop_dump_Perl_pop_scope_Perl_pregcomp_Perl_pregexec_Perl_pregfree_Perl_pregfree2_Perl_prescan_version_Perl_ptr_table_fetch_Perl_ptr_table_free_Perl_ptr_table_new_Perl_ptr_table_split_Perl_ptr_table_store_Perl_push_scope_Perl_pv_display_Perl_pv_escape_Perl_pv_pretty_Perl_pv_uni_display_Perl_qerror_Perl_rcpv_copy_Perl_rcpv_free_Perl_rcpv_new_Perl_re_compile_Perl_re_intuit_start_Perl_re_intuit_string_Perl_re_op_compile_Perl_realloc_Perl_reentrant_free_Perl_reentrant_init_Perl_reentrant_retry_Perl_reentrant_size_Perl_ref_Perl_refcounted_he_chain_2hv_Perl_refcounted_he_fetch_pv_Perl_refcounted_he_fetch_pvn_Perl_refcounted_he_fetch_sv_Perl_refcounted_he_free_Perl_refcounted_he_inc_Perl_refcounted_he_new_pv_Perl_refcounted_he_new_pvn_Perl_refcounted_he_new_sv_Perl_reg_named_buff_Perl_reg_named_buff_all_Perl_reg_named_buff_exists_Perl_reg_named_buff_fetch_Perl_reg_named_buff_firstkey_Perl_reg_named_buff_iter_Perl_reg_named_buff_nextkey_Perl_reg_named_buff_scalar_Perl_reg_numbered_buff_fetch_Perl_reg_numbered_buff_fetch_flags_Perl_reg_numbered_buff_length_Perl_reg_numbered_buff_store_Perl_reg_qr_package_Perl_reg_temp_copy_Perl_regcurly_Perl_regdump_Perl_regexec_flags_Perl_regfree_internal_Perl_reginitcolors_Perl_regprop_Perl_repeatcpy_Perl_report_uninit_Perl_require_pv_Perl_resume_compcv_Perl_rninstr_Perl_rpp_free_2__Perl_rpp_obliterate_stack_to_Perl_rsignal_Perl_rsignal_state_Perl_runops_debug_Perl_runops_standard_Perl_rv2cv_op_cv_Perl_safesyscalloc_Perl_safesysfree_Perl_safesysmalloc_Perl_safesysrealloc_Perl_save_I16_Perl_save_I32_Perl_save_I8_Perl_save_adelete_Perl_save_aelem_flags_Perl_save_alloc_Perl_save_aptr_Perl_save_ary_Perl_save_bool_Perl_save_clearsv_Perl_save_delete_Perl_save_destructor_Perl_save_destructor_x_Perl_save_freeop_Perl_save_freepv_Perl_save_freercpv_Perl_save_freesv_Perl_save_generic_pvref_Perl_save_generic_svref_Perl_save_gp_Perl_save_hash_Perl_save_hdelete_Perl_save_helem_flags_Perl_save_hints_Perl_save_hptr_Perl_save_int_Perl_save_item_Perl_save_iv_Perl_save_mortalizesv_Perl_save_op_Perl_save_padsv_and_mortalize_Perl_save_pptr_Perl_save_pushi32ptr_Perl_save_pushptr_Perl_save_pushptrptr_Perl_save_rcpv_Perl_save_re_context_Perl_save_scalar_Perl_save_set_svflags_Perl_save_shared_pvref_Perl_save_sptr_Perl_save_strlen_Perl_save_svref_Perl_save_vptr_Perl_savesharedpv_Perl_savesharedpvn_Perl_savestack_grow_Perl_savestack_grow_cnt_Perl_savetmps_Perl_scan_bin_Perl_scan_hex_Perl_scan_num_Perl_scan_oct_Perl_scan_str_Perl_scan_version_Perl_scan_vstring_Perl_scan_word_Perl_seed_Perl_set_caret_X_Perl_set_context_Perl_set_numeric_standard_Perl_set_numeric_underlying_Perl_setdefout_Perl_setlocale_Perl_share_hek_Perl_skipspace_flags_Perl_softref2xv_Perl_sortsv_Perl_sortsv_flags_Perl_stack_grow_Perl_start_subparse_Perl_str_to_version_Perl_strxfrm_Perl_suspend_compcv_Perl_sv_2bool_Perl_sv_2bool_flags_Perl_sv_2cv_Perl_sv_2io_Perl_sv_2iv_Perl_sv_2iv_flags_Perl_sv_2mortal_Perl_sv_2nv_Perl_sv_2nv_flags_Perl_sv_2pv_Perl_sv_2pv_flags_Perl_sv_2pv_nolen_Perl_sv_2pvbyte_Perl_sv_2pvbyte_flags_Perl_sv_2pvbyte_nolen_Perl_sv_2pvutf8_Perl_sv_2pvutf8_flags_Perl_sv_2pvutf8_nolen_Perl_sv_2uv_Perl_sv_2uv_flags_Perl_sv_backoff_Perl_sv_bless_Perl_sv_can_swipe_pv_buf_Perl_sv_cat_decode_Perl_sv_catpv_Perl_sv_catpv_flags_Perl_sv_catpv_mg_Perl_sv_catpvf_Perl_sv_catpvf_mg_Perl_sv_catpvn_Perl_sv_catpvn_flags_Perl_sv_catpvn_mg_Perl_sv_catsv_Perl_sv_catsv_flags_Perl_sv_catsv_mg_Perl_sv_chop_Perl_sv_clear_Perl_sv_cmp_Perl_sv_cmp_flags_Perl_sv_cmp_locale_Perl_sv_cmp_locale_flags_Perl_sv_collxfrm_Perl_sv_collxfrm_flags_Perl_sv_copypv_Perl_sv_copypv_flags_Perl_sv_dec_Perl_sv_dec_nomg_Perl_sv_del_backref_Perl_sv_derived_from_Perl_sv_derived_from_hv_Perl_sv_derived_from_pv_Perl_sv_derived_from_pvn_Perl_sv_derived_from_sv_Perl_sv_destroyable_Perl_sv_does_Perl_sv_does_pv_Perl_sv_does_pvn_Perl_sv_does_sv_Perl_sv_dump_Perl_sv_dump_depth_Perl_sv_eq_Perl_sv_eq_flags_Perl_sv_force_normal_Perl_sv_force_normal_flags_Perl_sv_free_Perl_sv_free2_Perl_sv_get_backrefs_Perl_sv_gets_Perl_sv_grow_Perl_sv_grow_fresh_Perl_sv_inc_Perl_sv_inc_nomg_Perl_sv_insert_Perl_sv_insert_flags_Perl_sv_isa_Perl_sv_isa_sv_Perl_sv_isobject_Perl_sv_langinfo_Perl_sv_len_Perl_sv_len_utf8_Perl_sv_len_utf8_nomg_Perl_sv_magic_Perl_sv_magicext_Perl_sv_magicext_mglob_Perl_sv_mortalcopy_Perl_sv_mortalcopy_flags_Perl_sv_newmortal_Perl_sv_newref_Perl_sv_nolocking_Perl_sv_nosharing_Perl_sv_nounlocking_Perl_sv_numeq_flags_Perl_sv_peek_Perl_sv_pos_b2u_Perl_sv_pos_b2u_flags_Perl_sv_pos_u2b_Perl_sv_pos_u2b_flags_Perl_sv_pv_Perl_sv_pvbyte_Perl_sv_pvbyten_force_Perl_sv_pvn_force_Perl_sv_pvn_force_flags_Perl_sv_pvutf8_Perl_sv_pvutf8n_force_Perl_sv_recode_to_utf8_Perl_sv_ref_Perl_sv_reftype_Perl_sv_regex_global_pos_clear_Perl_sv_regex_global_pos_get_Perl_sv_regex_global_pos_set_Perl_sv_replace_Perl_sv_report_used_Perl_sv_reset_Perl_sv_rvunweaken_Perl_sv_rvweaken_Perl_sv_set_bool_Perl_sv_set_false_Perl_sv_set_true_Perl_sv_set_undef_Perl_sv_sethek_Perl_sv_setiv_Perl_sv_setiv_mg_Perl_sv_setnv_Perl_sv_setnv_mg_Perl_sv_setpv_Perl_sv_setpv_bufsize_Perl_sv_setpv_mg_Perl_sv_setpvf_Perl_sv_setpvf_mg_Perl_sv_setpvn_Perl_sv_setpvn_fresh_Perl_sv_setpvn_mg_Perl_sv_setref_iv_Perl_sv_setref_nv_Perl_sv_setref_pv_Perl_sv_setref_pvn_Perl_sv_setref_uv_Perl_sv_setrv_inc_Perl_sv_setrv_inc_mg_Perl_sv_setrv_noinc_Perl_sv_setrv_noinc_mg_Perl_sv_setsv_Perl_sv_setsv_cow_Perl_sv_setsv_flags_Perl_sv_setsv_mg_Perl_sv_setuv_Perl_sv_setuv_mg_Perl_sv_streq_flags_Perl_sv_strftime_ints_Perl_sv_strftime_tm_Perl_sv_string_from_errnum_Perl_sv_taint_Perl_sv_tainted_Perl_sv_true_Perl_sv_uni_display_Perl_sv_unmagic_Perl_sv_unmagicext_Perl_sv_unref_Perl_sv_unref_flags_Perl_sv_untaint_Perl_sv_upgrade_Perl_sv_usepvn_Perl_sv_usepvn_flags_Perl_sv_usepvn_mg_Perl_sv_utf8_decode_Perl_sv_utf8_downgrade_Perl_sv_utf8_downgrade_flags_Perl_sv_utf8_encode_Perl_sv_utf8_upgrade_Perl_sv_utf8_upgrade_flags_grow_Perl_sv_vcatpvf_Perl_sv_vcatpvf_mg_Perl_sv_vcatpvfn_Perl_sv_vcatpvfn_flags_Perl_sv_vsetpvf_Perl_sv_vsetpvf_mg_Perl_sv_vsetpvfn_Perl_sv_vstring_get_Perl_switch_to_global_locale_Perl_sync_locale_Perl_sys_init_Perl_sys_init3_Perl_sys_term_Perl_taint_env_Perl_taint_proper_Perl_tmps_grow_p_Perl_to_uni_lower_Perl_to_uni_title_Perl_to_uni_upper_Perl_try_amagic_bin_Perl_try_amagic_un_Perl_uiv_2buf_Perl_unpackstring_Perl_unshare_hek_Perl_unsharepvn_Perl_upg_version_Perl_utf16_to_utf8_Perl_utf16_to_utf8_base_Perl_utf16_to_utf8_reversed_Perl_utf8_length_Perl_utf8_to_bytes_Perl_utf8_to_bytes__Perl_utf8_to_utf16_base_Perl_utf8_to_uv_msgs_helper__Perl_utf8_to_uvchr_Perl_utf8_to_uvuni_Perl_utf8n_to_uvuni_Perl_uvoffuni_to_utf8_flags_Perl_uvoffuni_to_utf8_flags_msgs_Perl_uvuni_to_utf8_Perl_valid_identifier_pve_Perl_valid_identifier_pvn_Perl_valid_identifier_sv_Perl_validate_proto_Perl_vcmp_Perl_vcroak_Perl_vdeb_Perl_vfatal_warner_Perl_vform_Perl_vivify_defelem_Perl_vload_module_Perl_vmess_Perl_vnewSVpvf_Perl_vnormal_Perl_vnumify_Perl_vstringify_Perl_vverify_Perl_vwarn_Perl_vwarner_Perl_warn_Perl_warn_problematic_locale_Perl_warn_sv_Perl_warner_Perl_was_lvalue_sub_Perl_whichsig_pv_Perl_whichsig_pvn_Perl_whichsig_sv_Perl_wrap_infix_plugin_Perl_wrap_keyword_plugin_Perl_wrap_op_checker_Perl_xs_boot_epilog_Perl_xs_handshake_Perl_yylex_XS_DynaLoader_dl_error_XS_DynaLoader_dl_find_symbol_XS_DynaLoader_dl_install_xsub_XS_DynaLoader_dl_load_file_XS_DynaLoader_dl_undef_symbols_XS_DynaLoader_dl_unload_file_XS_Internals_SvREADONLY_XS_Internals_SvREFCNT_XS_Internals_hv_clear_placehold_XS_Internals_stack_refcounted_XS_NamedCapture_FETCH_XS_NamedCapture_FIRSTKEY_XS_NamedCapture_TIEHASH_XS_NamedCapture_flags_XS_NamedCapture_tie_it_XS_PerlIO__Layer__NoWarnings_XS_PerlIO__Layer__find_XS_PerlIO_get_layers_XS_UNIVERSAL_DOES_XS_UNIVERSAL_can_XS_UNIVERSAL_import_unimport_XS_UNIVERSAL_isa_XS_builtin_created_as_number_XS_builtin_created_as_string_XS_builtin_export_lexically_XS_builtin_false_XS_builtin_func1_scalar_XS_builtin_func1_void_XS_builtin_import_XS_builtin_inf_XS_builtin_load_module_XS_builtin_nan_XS_builtin_trim_XS_builtin_true_XS_constant__make_const_XS_mro_method_changed_in_XS_re_is_regexp_XS_re_regexp_pattern_XS_re_regname_XS_re_regnames_XS_re_regnames_count_XS_utf8_decode_XS_utf8_downgrade_XS_utf8_encode_XS_utf8_is_utf8_XS_utf8_native_to_unicode_XS_utf8_unicode_to_native_XS_utf8_upgrade_XS_utf8_valid_boot_DynaLoader_cv_flags_names_deprecated_property_msgs_first_sv_flags_names_gp_flags_imported_names_gp_flags_names_hv_flags_names_injected_constructor_match_uniprop_nonchar_cp_format_op_class_names_op_flags_names_perl_alloc_perl_construct_perl_destruct_perl_free_perl_parse_perl_run_perlsio_binmode_pmflags_flags_names_regexp_core_intflags_names_regexp_extflags_names_second_sv_flags_names_super_cp_format_surrogate_cp_format__DefaultRuneLocale__NSGetEnviron__NSGetExecutablePath____mb_cur_max___chkstk_darwin___error___fpclassifyd___maskrune___memcpy_chk___sprintf_chk___stack_chk_fail___stack_chk_guard___stderrp___stdinp___stdoutp___strlcat_chk___strlcpy_chk___tolower___toupper__exit_abort_accept_access_alarm_atan2_bind_bzero_calloc_chdir_chmod_chown_chroot_clearerr_close_closedir_connect_cos_crypt_dirfd_dlclose_dlerror_dlopen_dlsym_dup_dup2_endgrent_endhostent_endnetent_endprotoent_endpwent_endservent_execl_execv_execvp_exit_exp_fchdir_fchmod_fchown_fclose_fcntl_fdopen_feof_ferror_fflush_fgetc_fileno_flock_fmod_fopen_fork_fread_free_freopen_frexp_fseeko_fstat_ftello_ftruncate_futimes_fwrite_getcwd_getegid_getenv_geteuid_getgid_getgrent_getgrgid_getgrnam_getgroups_gethostbyaddr_gethostbyname_gethostent_getlogin_getnetbyaddr_getnetbyname_getnetent_getpeername_getpgid_getpid_getppid_getpriority_getprotobyname_getprotobynumber_getprotoent_getpwent_getpwnam_getpwuid_getservbyname_getservbyport_getservent_getsockname_getsockopt_gettimeofday_getuid_h_errno_ioctl_isatty_kill_killpg_ldexp_link_linkat_listen_localeconv_localtime_log_lseek_lstat_malloc_malloc_good_size_malloc_size_mbtowc_memchr_memcmp_memcpy_memmem_memmove_memset_memset_pattern16_mkdir_mkstemp_mktime_modf_msgctl_msgget_msgrcv_msgsnd_nl_langinfo_open_opendir_pause_pipe_pow_read_readdir_readlink_realloc_realpath$DARWIN_EXTSN_recvfrom_rename_renameat_rewinddir_rmdir_seekdir_select_semctl_semget_semop_send_sendto_setegid_setenv_seteuid_setgrent_setgroups_sethostent_setlinebuf_setlocale_setnetent_setpgid_setpriority_setprotoent_setpwent_setregid_setreuid_setrgid_setruid_setservent_setsockopt_shmat_shmctl_shmdt_shmget_shutdown_sigaction_siglongjmp_signal_sigprocmask_sigsetjmp_sin_sleep_socket_socketpair_sprintf_stat_strchr_strcmp_strcspn_strerror_strftime_strlcat_strlcpy_strlen_strncmp_strnlen_strpbrk_strrchr_strspn_strstr_strtod_strxfrm_symlink_sysconf_telldir_time_times_truncate_umask_ungetc_unlink_unlinkat_unsetenv_utimes_vfprintf_vsnprintf_waitpid_write_Perl_op_prune_chain_head_S_link_freed_op_Perl_opslab_free_Perl_opslab_free_nopad_Perl_opslab_force_free_Perl_no_bareword_allowed_Perl_no_bareword_filehandle_Perl_allocmy_S_op_clear_gv_Perl_alloc_LOGOP_Perl_scalar_Perl_list_Perl_scalarvoid_Perl_op_varname_Perl_warn_elem_scalar_context_S_gen_constant_list_Perl_check_hash_fields_and_hekify_S_modkids_S_scalar_mod_type_Perl_my_attrs_S_my_kid_Perl_sawparens_Perl_bind_match_Perl_pmruntime_Perl_invert_Perl_cmpchain_start_Perl_cmpchain_extend_Perl_cmpchain_finish_S_fold_constants_Perl_op_unscope_S_voidnonfinal_S_process_optree_Perl_rpp_xpush_1_Perl_localize_Perl_jmaybe_walk_ops_find_labels_walk_ops_forbid_S_force_list_Perl_invmap_dump_S_set_haseval_Perl_package_Perl_package_version_Perl_utilize_Perl_dofile_S_assignment_type_S_new_logop_S_scalarboolean_S_newGIVWHENOP_S_ref_array_or_hash_S_looks_like_bool_Perl_cv_const_sv_or_av_S_move_proto_attr_sbox32_hash_with_state_S_perl_hash_siphash_1_3_with_state_S_op_const_sv_S_already_defined_const_sv_xsub_S_apply_attrs_S_process_special_blocks_Perl_newXS_len_flags_const_av_xsub_Perl_report_redefined_cv_Perl_newSTUB_Perl_oopsAV_Perl_oopsHV_Perl_ck_anoncode_Perl_ck_backtick_Perl_ck_fun_Perl_ck_bitop_Perl_ck_cmp_check_precedence_not_vs_cmp_Perl_ck_scmp_Perl_ck_concat_Perl_ck_spair_Perl_ck_delete_Perl_ck_eof_Perl_ck_eval_Perl_ck_trycatch_Perl_ck_exec_Perl_ck_exists_Perl_ck_helemexistsor_Perl_ck_rvconst_Perl_ck_ftst_Perl_ck_glob_Perl_ck_grep_Perl_ck_index_Perl_ck_lfun_Perl_ck_defined_Perl_ck_rfun_Perl_ck_readline_Perl_ck_listiob_Perl_ck_smartmatch_Perl_ck_sassign_Perl_ck_match_Perl_ck_method_Perl_ck_null_Perl_ck_open_Perl_ck_prototype_Perl_ck_refassign_Perl_ck_repeat_Perl_ck_require_Perl_ck_return_Perl_ck_select_Perl_ck_shift_Perl_ck_sort_Perl_ck_split_Perl_ck_stringify_Perl_ck_join_Perl_find_lexical_cv_Perl_ck_entersub_args_core_Perl_ck_subr_Perl_ck_svconst_Perl_ck_trunc_Perl_ck_substr_Perl_ck_tell_Perl_ck_each_S_last_non_null_kid_Perl_ck_length_Perl_ck_isa_Perl_core_prototype_Perl_coresub_op_Perl_subsignature_start_destroy_subsignature_context_Perl_subsignature_append_positional_Perl_subsignature_append_slurpy_Perl_subsignature_finish_S_cant_declare_S_apply_attrs_my_S_dup_attrlist_S_fold_constants_eval_Perl_croak_memory_wrap_custom_op_register_free_S_init_postdump_symbols_S_run_body_Perl_SvREFCNT_dec_NN_S_my_exit_jump_Perl_sv_setpv_freshbuf_Perl_init_debugger_S_usage_S_incpush_S_moreswitch_m_S_minus_v_Perl_my_unexec_Perl_init_dbargs_Perl_populate_isa_Perl_init_argv_symbols_S_Internals_V_read_e_script_S_sv_derived_from_svpvn_Perl_boot_core_UNIVERSAL_optimize_out_native_convert_function_S_isa_lookup_XS_universal_version_XS_version_noop_XS_version_new_XS_version_stringify_XS_version_numify_XS_version_normal_XS_version_to_decimal_XS_version_to_dotted_decimal_XS_version_vcmp_XS_version_boolean_XS_version_is_alpha_XS_version_qv_XS_version_is_qv_XS_version_tuple_XS_version_from_tuple_S_version_check_key_Perl_SvIV_Perl_croak_memory_wrap_Perl_av_extend_guts_S_adjust_index_Perl_newSV_type_Perl_av_nonelem_Perl_prepare_export_lexical_Perl_finish_export_lexical_Perl_pp_refaddr_Perl_pp_reftype_Perl_pp_ceil_Perl_pp_floor_Perl_XS_builtin_indexed_Perl_SvREFCNT_dec_Perl_import_builtin_bundle_S_import_sym_Perl_boot_core_builtin_ck_builtin_const_ck_builtin_func1_ck_builtin_funcN_Perl_croak_memory_wrap_Perl_pp_initfield_Perl_pp_methstart_invoke_class_seal_Perl_ck_classname_Perl_pp_classname_S_split_attr_nameval_apply_class_attribute_isa_apply_field_attribute_param_apply_field_attribute_reader_apply_field_attribute_writer_Perl_deb_stack_all_Perl_setfd_cloexec_Perl_setfd_inhexec_Perl_setfd_cloexec_for_nonsysfd_Perl_setfd_inhexec_for_sysfd_Perl_setfd_cloexec_or_inhexec_by_sysfdness_Perl_PerlLIO_dup_cloexec_Perl_PerlLIO_dup2_cloexec_Perl_PerlLIO_open_cloexec_Perl_PerlLIO_open3_cloexec_Perl_my_mkstemp_cloexec_Perl_my_mkostemp_cloexec_Perl_PerlProc_pipe_cloexec_Perl_PerlSock_socket_cloexec_Perl_PerlSock_accept_cloexec_Perl_PerlSock_socketpair_cloexec_Perl_do_open_raw_Perl_do_open6_S_openn_setup_S_openn_cleanup_Perl_nextargv_Perl_newSV_type_S_openindirtemp_S_argvout_final_Perl_io_close_Perl_do_eof_Perl_do_tell_Perl_do_seek_Perl_do_sysseek_Perl_mode_from_discipline_Perl_do_print_Perl_do_aexec5_Perl_croak_memory_wrap_Perl_do_exec3_Perl_apply_Perl_cando_Perl_do_ipcget_Perl_do_ipcctl_Perl_do_msgsnd_Perl_do_msgrcv_Perl_do_semop_Perl_do_shmio_Perl_start_glob_S_argvout_free_S_argvout_dup_S_dir_unchanged_Perl_do_trans_Perl_do_vecget_Perl_do_vecset_Perl_do_vop_Perl_do_kv__pv_display_flags_Perl_dump_all_perl_Perl_dump_packsubs_perl_Perl_dump_sub_perl_S_do_pmop_dump_bar_S_do_op_dump_bar_S_sequence_num_S_debprof_S_append_gv_name_S_gv_display_S_deb_padvar_Perl_watch_S_opdump_indent_S_opdump_link_Perl_newSV_type_sbox32_hash_with_state_S_perl_hash_siphash_1_3_with_state_S_gv_fetchmeth_internal_Perl_CvGV_Perl_gv_stashsvpvn_cached_S_gv_init_svtype_S_gv_magicalize_isa_Perl_magic_freeovrld_Perl_amagic_is_enabled_Perl_SvTRUE_NN_S_maybe_add_coresub_core_xsub_S_require_tie_mod_Perl_free_tied_hv_pool_S_new_he_sbox32_hash_with_state_S_perl_hash_siphash_1_3_with_state_S_share_hek_flags_Perl_newSV_type_S_hv_notallowed_S_save_hek_flags_S_clear_placeholders_S_hsplit_Perl_hv_pushkv_Perl_hfree_next_entry_S_unshare_hek_or_pvn_Perl_hv_ename_add_Perl_hv_ename_delete_Perl_hv_backreferences_p_Perl_hv_kill_backrefs_S_refcounted_he_value_Perl_keyword_Perl_force_locale_unlock_S_setlocale_failure_panic_via_i_S_get_category_index_helper_S_mortalized_pv_copy_S_external_call_langinfo_S_ints_to_tm_S_strftime_tm_S_sv_strftime_common_S_new_LC_ALL_S_output_check_environment_warning_S_parse_LC_ALL_string_S_calculate_LC_ALL_string_Perl_mem_collxfrm__S_toggle_locale_i_S_restore_toggled_locale_i_Perl_my_strerror_S_get_locale_string_utf8ness_i_S_get_displayable_string_S_new_ctype_S_new_numeric_S_new_collate_S_is_locale_utf8_S_langinfo_sv_i_S_emulate_langinfo_S_populate_hash_from_C_localeconv_S_populate_hash_from_localeconv_Perl_magic_setutf8_S_restore_magic_Perl_mg_localize_S_mg_free_struct_Perl_magic_regdata_cnt_Perl_magic_regdatum_get_Perl_magic_regdatum_set_Perl_get_extended_os_errno_Perl_magic_get_Perl_magic_getuvar_Perl_magic_setenv_Perl_magic_clearenv_Perl_magic_set_all_env_Perl_magic_clear_all_env_Perl_magic_getsig_Perl_magic_clearsig_Perl_magic_setsig_Perl_sighandler_unblock_sigmask_restore_sigmask_Perl_magic_setsigall_Perl_magic_clearhook_Perl_magic_sethook_Perl_magic_sethookall_Perl_magic_clearhookall_Perl_magic_setisa_Perl_magic_clearisa_Perl_magic_getnkeys_Perl_magic_setnkeys_Perl_magic_methcall_Perl_magic_getpack_Perl_magic_setpack_S_magic_methcall1_Perl_magic_clearpack_Perl_magic_sizepack_Perl_magic_wipepack_Perl_magic_nextpack_Perl_magic_existspack_Perl_magic_scalarpack_Perl_magic_setdbline_Perl_magic_getarylen_Perl_magic_setarylen_Perl_magic_cleararylen_p_Perl_magic_freearylen_p_Perl_magic_getpos_Perl_magic_setpos_Perl_magic_getsubstr_Perl_magic_setsubstr_Perl_magic_gettaint_Perl_magic_settaint_Perl_magic_getvec_Perl_magic_setvec_Perl_defelem_target_Perl_magic_getdefelem_Perl_magic_setdefelem_Perl_magic_setnonelem_Perl_magic_killbackrefs_Perl_magic_setmglob_Perl_magic_freemglob_Perl_magic_setuvar_Perl_magic_setregexp_Perl_magic_setcollxfrm_Perl_magic_freecollxfrm_Perl_magic_freeutf8_Perl_magic_setlvref_Perl_magic_set_Perl_savesvpv_S_set_dollarzero_Perl_sighandler1_Perl_sighandler3_S_unwind_handler_stack_Perl_magic_sethint_S_magic_sethint_feature_Perl_magic_clearhint_Perl_magic_clearhints_Perl_magic_copycallchecker_Perl_magic_setdebugvar_Perl_magic_getdebugvar_Perl_SvREFCNT_dec_NN_Perl_mro_isa_changed_in_S_mro_clean_isarev_S_mro_gather_and_rename_Perl_boot_core_mro_S_mro_get_linear_isa_dfs_S_strtod_Perl_isinfnansv_Perl_newSV_type_Perl_cv_undef_flags_Perl_cv_forget_slab_S_pad_alloc_name_Perl_pad_add_weakref_S_pad_findlex_Perl_pad_block_start_Perl_pad_leavemy_Perl_pad_swipe_Perl_pad_free_Perl_do_dump_pad_S_cv_clone_Perl_cv_clone_into_Perl_pad_fixup_inner_anons_Perl_croak_memory_wrap_Perl_padlist_store_sbox32_hash_with_state_S_perl_hash_siphash_1_3_with_state_S_optimize_op_S_finalize_op_Perl_rpeep_S_maybe_multideref_S_aassign_scan_Perl_peep_S_maybe_multiconcat_S_scalar_slice_warning_Perl_croak_memory_wrap_Perl_boot_core_PerlIO_PerlIOScalar_pushed_PerlIOScalar_popped_PerlIOScalar_open_PerlIOScalar_arg_PerlIOScalar_fileno_PerlIOScalar_dup_PerlIOScalar_read_PerlIOScalar_write_PerlIOScalar_seek_PerlIOScalar_tell_PerlIOScalar_close_PerlIOScalar_flush_PerlIOScalar_fill_PerlIOScalar_get_base_PerlIOScalar_bufsiz_PerlIOScalar_get_ptr_PerlIOScalar_get_cnt_PerlIOScalar_set_ptrcnt_S_lockcnt_dec_Perl_yyparse_S_clear_yystack_Perl_croak_memory_wrap_Perl_savepv_Perl_pp_stub_Perl_gimme_V_Perl_pp_padcv_Perl_rpp_xpush_1_Perl_pp_introcv_Perl_pp_clonecv_Perl_pp_rv2gv_S_rv2gv_Perl_pp_rv2sv_Perl_pp_av2arylen_Perl_newSV_type_Perl_pp_pos_Perl_pp_rv2cv_Perl_pp_prototype_Perl_pp_anoncode_S_refto_Perl_pp_srefgen_Perl_pp_refgen_Perl_pp_ref_Perl_pp_bless_Perl_pp_gelem_Perl_pp_study_Perl_pp_trans_Perl_pp_schop_S_do_chomp_Perl_pp_chop_Perl_pp_undef_Perl_pp_postinc_S_postincdec_common_Perl_pp_postdec_Perl_pp_pow_Perl_pp_multiply_Perl_pp_divide_Perl_pp_modulo_Perl_pp_repeat_Perl_pp_subtract_Perl_pp_left_shift_Perl_pp_right_shift_Perl_pp_lt_Perl_do_ncmp_Perl_pp_gt_Perl_pp_le_Perl_pp_ge_Perl_pp_ne_Perl_pp_ncmp_Perl_pp_sle_Perl_pp_seq_Perl_pp_sne_Perl_pp_scmp_Perl_pp_bit_and_Perl_pp_nbit_and_Perl_pp_sbit_and_Perl_pp_bit_or_Perl_pp_nbit_or_Perl_pp_sbit_or_Perl_pp_negate_S_negate_string_Perl_pp_not_Perl_pp_complement_S_scomplement_Perl_pp_ncomplement_Perl_pp_scomplement_Perl_pp_i_multiply_Perl_pp_i_divide_Perl_pp_i_modulo_Perl_pp_i_add_Perl_pp_i_subtract_Perl_pp_i_lt_Perl_pp_i_gt_Perl_pp_i_le_Perl_pp_i_ge_Perl_pp_i_eq_Perl_pp_i_ne_Perl_pp_i_ncmp_Perl_pp_i_negate_Perl_pp_atan2_Perl_pp_sin_Perl_pp_rand_Perl_SvNV_Perl_pp_srand_Perl_pp_int_Perl_pp_abs_Perl_pp_oct_Perl_pp_length_Perl_translate_substr_offsets_Perl_pp_substr_Perl_SvIV_S_sv_or_pv_pos_u2b_Perl_pp_substr_left_Perl_pp_vec_Perl_pp_index_Perl_pp_sprintf_Perl_pp_ord_Perl_pp_chr_Perl_pp_crypt_Perl_pp_ucfirst_S_variant_under_utf8_count_Perl_pp_uc_Perl_utf8_to_uv_or_die_Perl_pp_lc_Perl_pp_quotemeta_Perl_pp_fc_Perl_pp_aslice_Perl_sv_can_existdelete_Perl_pp_kvaslice_Perl_pp_aeach_Perl_pp_akeys_Perl_pp_each_Perl_pp_delete_Perl_pp_exists_Perl_pp_helemexistsor_Perl_pp_hslice_Perl_pp_kvhslice_Perl_pp_list_Perl_pp_lslice_Perl_pp_anonlist_Perl_pp_emptyavhv_Perl_pp_anonhash_Perl_pp_splice_Perl_croak_memory_wrap_Perl_pp_push_Perl_pp_shift_Perl_pp_unshift_Perl_pp_reverse_Perl_pp_split_Perl_utf8_hop_forward_overshoot_Perl_pp_once_Perl_pp_lock_Perl_unimplemented_op_Perl_pp_coreargs_S_maybe_unwind_defav_Perl_pp_avhvswitch_Perl_pp_runcv_Perl_pp_refassign_S_localise_gv_slot_S_localise_aelem_lval_S_localise_helem_lval_Perl_pp_lvref_Perl_pp_lvrefslice_Perl_pp_lvavref_Perl_pp_anonconst_Perl_pp_argelem_Perl_pp_argdefelem_Perl_pp_argcheck_S_find_runcv_name_Perl_pp_isa_Perl_pp_cmpchain_and_Perl_pp_cmpchain_dup_Perl_pp_is_bool_Perl_pp_is_weak_Perl_pp_weaken_Perl_pp_unweaken_Perl_pp_blessed_Perl_pp_is_tainted_Perl_pp_wantarray_Perl_pp_regcreset_Perl_pp_regcomp_Perl_pp_substcont_Perl_sv_only_taint_gmagic_Perl_rxres_save_Perl_pp_formline_Perl_croak_memory_wrap_Perl_pp_grepstart_Perl_pp_mapwhile_Perl_rpp_xpush_1_Perl_pp_anywhile_Perl_pp_range_Perl_pp_flip_Perl_pp_flop_Perl_cx_popsub_Perl_cx_poploop_Perl_die_unwind_Perl_pop_stackinfo_S_pop_eval_context_maybe_croak_Perl_pp_xor_Perl_pp_caller_Perl_pp_reset_Perl_pp_dbstate_Perl_pp_enter_Perl_pp_leave_Perl_pp_enteriter_Perl_pp_enterloop_Perl_pp_leaveloop_Perl_pp_leavesublv_Perl_pp_return_Perl_pp_leavetry_Perl_pp_leaveeval_Perl_pp_last_S_unwind_loop_Perl_pp_next_Perl_pp_redo_Perl_pp_goto_S_dofindlabel_Perl_pp_exit_Perl_find_runcv_where_Perl_pp_require_S_docatch_Perl_pp_hintseval_Perl_pp_entereval_S_doeval_compile_Perl_pp_entertrycatch_Perl_pp_leavetrycatch_Perl_pp_poptry_Perl_pp_catch_Perl_delete_eval_scope_Perl_create_eval_scope_Perl_pp_entertry_Perl_pp_entergiven_Perl_pp_leavegiven_Perl_pp_smartmatch_S_do_smartmatch_Perl_pp_enterwhen_Perl_SvTRUE_Perl_pp_leavewhen_Perl_pp_continue_Perl_pp_break_Perl_pp_pushdefer_invoke_finally_block_invoke_defer_block_Perl_newSV_type_S_doopen_pm_S_run_user_filter_S_check_type_and_open_S_try_yyparse_S_try_run_unitcheck_Perl_push_stackinfo_S_make_matcher_S_matcher_matches_sv_S_destroy_matcher_Perl_rpp_xpush_2__invoke_defer_block_Perl_pp_const_Perl_pp_nextstate_Perl_pp_gvsv_Perl_pp_null_Perl_pp_pushmark_Perl_pp_stringify_Perl_pp_gv_Perl_pp_and_Perl_pp_padsv_store_Perl_pp_aelemfastlex_store_Perl_pp_sassign_Perl_gimme_V_Perl_pp_cond_expr_Perl_pp_unstack_Perl_pp_concat_S_do_concat_Perl_pp_multiconcat_Perl_rpp_extend_Perl_pp_padrange_S_pushav_Perl_pp_padsv_Perl_vivify_ref_Perl_pp_readline_Perl_do_readline_Perl_pp_eq_Perl_pp_preinc_Perl_pp_predec_Perl_pp_or_Perl_pp_defined_Perl_pp_add_Perl_pp_aelemfast_Perl_pp_join_Perl_pp_print_Perl_croak_memory_wrap_Perl_rpp_xpush_IMM_Perl_pp_padav_Perl_pp_padhv_S_padhv_rv2hv_common_Perl_pp_rv2av_Perl_pp_aassign_S_do_oddball_S_aassign_uid_Perl_pp_qr_Perl_pp_match_Perl_pp_helem_Perl_sv_can_existdelete_Perl_pp_multideref_S_softref2xv_lite_Perl_pp_iter_Perl_pp_subst_Perl_pp_grepwhile_Perl_newSV_type_Perl_pp_leavesub_Perl_pp_entersub_S_croak_undefined_subroutine_Perl_sub_crush_depth_Perl_croak_caller_Perl_pp_aelem_Perl_pp_method_S_opmethod_stash_Perl_pp_method_named_Perl_pp_method_super_Perl_pp_method_redir_Perl_pp_method_redir_super_S_are_we_in_Debug_EXECUTE_r_S_unpack_rec_Perl_pp_unpack_S_pack_rec_Perl_pp_pack_S_next_symbol_utf8_to_byte_S_utf8_to_bytes_S_measure_struct_marked_upgrade_S_sv_check_infnan_S_my_bytes_to_utf8_doencodes_Perl_pp_sort_S_sortcv_xsub_S_sortcv_stacked_S_sortcv_sortsv_amagic_i_ncmp_desc_sortsv_amagic_i_ncmp_sortsv_i_ncmp_desc_sortsv_i_ncmp_sortsv_amagic_ncmp_desc_sortsv_amagic_ncmp_sortsv_ncmp_desc_sortsv_ncmp_sortsv_amagic_cmp_locale_desc_sortsv_amagic_cmp_locale_sortsv_cmp_locale_desc_sortsv_cmp_locale_sortsv_amagic_cmp_desc_sortsv_amagic_cmp_sortsv_cmp_desc_sortsv_cmp_Perl_croak_memory_wrap_S_amagic_i_ncmp_S_amagic_ncmp_S_amagic_cmp_locale_S_amagic_cmp_Perl_pp_backtick_Perl_rpp_extend_Perl_pp_glob_Perl_pp_rcatline_Perl_pp_warn_Perl_pp_die_Perl_tied_method_Perl_pp_open_Perl_pp_close_Perl_pp_pipe_op_Perl_pp_fileno_Perl_pp_umask_Perl_pp_binmode_Perl_pp_tie_Perl_newSV_type_Perl_pp_untie_Perl_pp_tied_Perl_pp_dbmopen_Perl_pp_sselect_Perl_pp_select_Perl_pp_getc_Perl_pp_enterwrite_S_doform_Perl_pp_leavewrite_Perl_savepv_Perl_savesvpv_Perl_savepvn_Perl_pp_prtf_Perl_croak_memory_wrap_Perl_pp_sysopen_Perl_pp_sysread_Perl_pp_syswrite_Perl_pp_eof_Perl_pp_tell_Perl_pp_sysseek_Perl_pp_truncate_Perl_pp_ioctl_Perl_pp_flock_Perl_pp_socket_Perl_pp_sockpair_Perl_pp_bind_Perl_pp_listen_Perl_pp_accept_Perl_pp_shutdown_Perl_pp_ssockopt_Perl_pp_getpeername_Perl_pp_stat_Perl_pp_ftrread_S_try_amagic_ftest_S_ft_return_true_S_ft_return_false_Perl_pp_ftis_Perl_pp_ftrowned_Perl_pp_ftlink_Perl_pp_fttty_Perl_pp_fttext_Perl_pp_chdir_Perl_pp_chown_Perl_pp_chroot_Perl_pp_rename_Perl_pp_link_Perl_pp_readlink_Perl_pp_mkdir_Perl_pp_rmdir_Perl_pp_open_dir_Perl_pp_readdir_S_warn_not_dirhandle_Perl_pp_telldir_Perl_pp_seekdir_Perl_pp_rewinddir_Perl_pp_closedir_Perl_pp_fork_Perl_pp_wait_Perl_pp_waitpid_Perl_pp_system_Perl_pp_exec_Perl_pp_getppid_Perl_pp_getpgrp_Perl_pp_setpgrp_Perl_pp_getpriority_Perl_pp_setpriority_Perl_pp_time_Perl_pp_tms_Perl_pp_gmtime_Perl_pp_alarm_Perl_pp_sleep_Perl_pp_shmwrite_Perl_pp_semget_Perl_pp_semctl_Perl_pp_ghostent_Perl_pp_gnetent_Perl_pp_gprotoent_Perl_pp_gservent_Perl_pp_shostent_Perl_pp_ehostent_Perl_pp_gpwent_Perl_pp_ggrent_Perl_pp_getlogin_Perl_pp_syscall_Perl_reg_add_data_Perl_release_RExC_state_Perl_SvREFCNT_dec_S_concat_pat_Perl_newSV_type_S_pat_upgrade_to_utf8_S_set_regex_pv_S_reg_S_variant_under_utf8_count_Perl_regnext_S_is_ssc_worth_it_S_ssc_finalize_Perl_populate_anyof_bitmap_from_invlist_Perl_add_above_Latin1_folds_Perl_set_ANYOF_arg_S_invlist_highest_Perl_get_regclass_aux_data_S_handle_user_defined_property_Perl_get_ANYOFM_contents_Perl_get_ANYOFHbbm_contents_S_free_codeblocks_Perl_init_uniprops_Perl_croak_memory_wrap_Perl_push_stackinfo_Perl_pop_stackinfo_S_reg_node_S_regtail_S_reg1node_S_nextchar_S_re_croak_S_reg2node_S_handle_named_backref_S_reg_la_OPFAIL_S_reg_la_NOTHING_S_reg_scan_name_S_regbranch_S_handle_regex_sets_S_reginsert_S_change_engine_size_S_skip_to_be_ignored_text_S_regatom_S_get_quantifier_value_S_regclass_S_grok_bslash_N_S_handle_possible_posix_S_output_posix_warnings_S_add_multi_match_S_parse_uniprop_string_Perl_av_push_simple_S_handle_names_wildcard_S_compile_wildcard_S_get_fq_name_S_delete_recursion_entry_Perl_SvTRUE_Perl_populate_bitmap_from_invlist_Perl_populate_invlist_from_bitmap_Perl_croak_memory_wrap_S__append_range_to_invlist_Perl_scan_commit_Perl_ssc_init_S_ssc_anything_Perl_join_exact_Perl_regnext_Perl_study_chunk_S_ssc_or_S_ssc_and_S_unwind_scan_frames_S_get_ANYOF_cp_list_for_ssc_Perl_make_trie_Perl_croak_memory_wrap_Perl_construct_ahocorasick_from_trie_S_to_utf8_substr_S_to_byte_substr_S_reghop3_Perl_utf8_hop_overshoot_S_find_byclass_Perl_utf8_hop_forward_overshoot_S_reg_set_capture_string_S_cleanup_regmatch_info_aux_S_regtry_Perl_is_grapheme_Perl_utf8_to_uv_or_die_S_isGCB_S_reginclass_S_find_next_masked_S_find_span_end_mask_S_foldEQ_latin1_s2_folded_Perl_foldEQ_Perl_foldEQ_locale_S_isLB_S_isSB_S_isWB_Perl_utf8n_to_uvchr_msgs_S_isFOO_utf8_lc_S_isFOO_lc_S_backup_one_LB__S_advance_one_LB_S_backup_one_SB_S_advance_one_SB_S_advance_one_WB__S_backup_one_WB_but_over_Extend_FO_Perl_utf8_hop_S_regmatch_Perl_foldEQ_latin1_S_reg_check_named_buff_matched_S_regcppush_S_regcppop_Perl_cx_popsub_common_Perl_cx_pushsub_Perl_push_stackinfo_Perl_cx_pushblock_Perl_sv_only_taint_gmagic_Perl_SvTRUE_NN_S_set_reg_curpm_S_setup_EXACTISH_ST_S_regrepeat_S_find_span_end_S_backup_one_GCB_Perl_croak_memory_wrap_Perl_newSV_type_Perl_croak_memory_wrap_Perl_magic_freedestruct_Perl_sv_clean_objs_Perl_sv_clean_all_Perl_sv_free_arenas_Perl_hv_auxalloc_S_sv_uncow_Perl_croak_memory_wrap_S_not_a_number_S_sv_2iuv_common_S_glob_2number_Perl_sv_2num_Perl_gv_setref_Perl_av_new_alloc_Perl_av_push_simple_S_croak_sv_setsv_flags_S_glob_assign_glob_Perl_newSV_type_S_sv_unmagicext_flags_Perl_sv_add_backref_Perl_sv_kill_backrefs_S_curse_S_sv_pos_u2b_cached_S_sv_pos_b2u_midway_S_utf8_mg_pos_cache_update_S_not_incrementable_S_perl_hash_siphash_1_3_with_state_Perl_sv_resetpvn_Perl_newSVavdefelem_S_F0convert_S_sv_or_pv_pos_u2b_S_format_hexfp_Perl_init_constants_Perl_varname_S_find_uninit_var_S_sv_display_S_sv_setnv_S_sv_2iuv_non_preserve_S_sv_pos_u2b_midway_S_sv_pos_u2b_forwards_S_croak_overflow_S_find_hash_subscript_S_find_array_subscript_Perl_newSV_type_Perl_is_utf8_string_loclen_Perl_is_utf8_invariant_string_loc_S_yyerror_non_ascii_message_Perl_parser_free_Perl_SvREFCNT_dec_Perl_parser_free_nexttoke_ops_Perl_notify_parser_that_encoding_changed_S_update_debugger_info_Perl_utf8_to_uv_or_die_S_incline_Perl_yyunlex_S_new_constant_Perl_SvREFCNT_dec_NN_Perl_build_infix_plugin_S_sublex_done_S_force_ident_S_intuit_more_S_tokeq_Perl_yyquit_yyl_rightcurly_S_parse_ident_Perl_yyerror_S_apply_builtin_cv_attribute_Perl_abort_execution_Perl_yyerror_pvn_Perl_yyerror_pv_S_parse_recdescent_for_op_S_scan_ident_S_check_uni_Perl_utf8n_to_uvchr_msgs_tokentype_for_plugop_yyl_keylookup_yyl_croak_unrecognised_yyl_fake_eof_Perl_mortal_getenv_yyl_hyphen_yyl_plus_yyl_star_yyl_percent_yyl_caret_yyl_leftsquare_yyl_tilde_yyl_just_a_word_yyl_colon_yyl_leftparen_yyl_rightparen_yyl_rightsquare_yyl_leftcurly_yyl_ampersand_yyl_verticalbar_S_vcs_conflict_marker_yyl_bang_yyl_leftpointy_yyl_rightpointy_yyl_dollar_yyl_snail_yyl_slash_S_warn_expect_operator_yyl_sglquote_yyl_dblquote_yyl_backtick_yyl_backslash_yyl_fatcomma_yyl_word_or_keyword_S_newSV_maybe_utf8_yyl_data_handle_yyl_sub_S_lop_S_force_word_S_force_strict_version_yyl_do_yyl_foreach_S_scan_pat_S_sublex_start_yyl_my_S_tokenize_use_S_checkcomma_S_scan_terminated_yyl_qw_yyl_require_S_scan_subst_S_scan_trans_S_pmflag_S_force_version_S_missingterm_S_add_utf16_textfilter_S_utf16_textfilter_yyl_safe_bareword_S_intuit_method_yyl_strictwarn_bareword_yyl_constant_op_OUTLINED_FUNCTION_0_Perl_utf8_to_uv_msgs_S_new_msg_hv_S_does_utf8_overflow_S_is_utf8_overlong_S_unexpected_non_continuation_text_Perl_newSV_type_Perl_newRV_noinc_Perl__to_upper_title_latin1_S__to_utf8_case_Perl_utf8_to_uv_or_die_S_turkic_uc_S_check_locale_boundary_crossing_S_turkic_lc_S_turkic_fc_Perl_check_utf8_print_Perl_isUTF8_CHAR_Perl_croak_no_mem_ext_Perl_croak_memory_wrap_S_mess_alloc_Perl_closest_cop_Perl_write_to_stderr_Perl_invoke_exception_hook_S_with_queued_errors_Perl_croak_no_mem_Perl_wait4pid_Perl_rsignal_save_Perl_rsignal_restore_Perl_SvREFCNT_dec_Perl_find_script_Perl_savepv_Perl_get_no_modify_Perl_get_opargs_Perl_getenv_len_Perl_report_wrongway_fh_Perl_report_evil_fh_Perl_parse_unicode_opts_Perl_get_hash_seed_Perl_debug_hash_seed_S_gv_has_usable_name_Perl_my_mkostemp_SaveError_Perl_lex_start.cold.1_Perl_lex_next_chunk.cold.1_Perl_yylex.cold.1_Perl_newASSIGNOP.no_list_state_array_passed_to_stat_Perl_custom_op_get_field.xop_null_local_patches_S_Internals_V.non_bincompat_options_Perl_boot_core_UNIVERSAL.file_bodies_by_type_builtin_not_recognised_PL_AMG_namelens_bodies_by_type_S_maybe_add_coresub.file_S_strtab_error_bodies_by_type_categories_Perl_boot_core_mro.file_bodies_by_type_code_point_warning_yytranslate_yypact_yycheck_yydefact_yytable_yyr2_yyr1_yypgoto_yydefgoto_yy_type_tab_yystos_bodies_by_type_bodies_by_type_bodies_by_type_packprops_zero_but_true_bodies_by_type_mph_table_mph_blob__Perl_GCB_invlist__Perl_SB_invlist__Perl_WB_invlist__Perl_LB_invlist__Perl_SCX_invlist_Latin1_invlist_AboveLatin1_invlist_UpperLatin1_invlist_Uppercase_Mapping_invlist_Lowercase_Mapping_invlist_Titlecase_Mapping_invlist_Case_Folding_invlist_Simple_Case_Folding_invlist__Perl_IVCF_invlist__Perl_CCC_non0_non230_invlist_bodies_by_type_S_reg.parens_UNI_ADLM_invlist_UNI_AEGEANNUMBERS_invlist_UNI_AGE__10_invlist_UNI_AGE__11_invlist_UNI_AGE__12_invlist_UNI_AGE__12_DOT_1_invlist_UNI_AGE__13_invlist_UNI_AGE__14_invlist_UNI_AGE__15_invlist_UNI_AGE__15_DOT_1_invlist_UNI_AGE__16_invlist_UNI_AGE__2_invlist_UNI_AGE__2_DOT_1_invlist_UNI_AGE__3_invlist_UNI_AGE__3_DOT_1_invlist_UNI_AGE__3_DOT_2_invlist_UNI_AGE__4_invlist_UNI_AGE__4_DOT_1_invlist_UNI_AGE__5_invlist_UNI_AGE__5_DOT_1_invlist_UNI_AGE__5_DOT_2_invlist_UNI_AGE__6_invlist_UNI_AGE__6_DOT_1_invlist_UNI_AGE__6_DOT_2_invlist_UNI_AGE__6_DOT_3_invlist_UNI_AGE__7_invlist_UNI_AGE__8_invlist_UNI_AGE__9_invlist_UNI_AGHB_invlist_UNI_AHOM_invlist_UNI_ALCHEMICAL_invlist_UNI_ALL_invlist_UNI_ALPHABETICPF_invlist_UNI_ANCIENTGREEKMUSIC_invlist_UNI_ANCIENTGREEKNUMBERS_invlist_UNI_ANCIENTSYMBOLS_invlist_UNI_ANY_invlist_UNI_ARAB_invlist_UNI_ARABICEXTA_invlist_UNI_ARABICEXTB_invlist_UNI_ARABICEXTC_invlist_UNI_ARABICMATH_invlist_UNI_ARABICPFA_invlist_UNI_ARABICPFB_invlist_UNI_ARABICSUP_invlist_UNI_ARMI_invlist_UNI_ARMN_invlist_UNI_ARROWS_invlist_UNI_ASCII_invlist_UNI_ASSIGNED_invlist_UNI_AVST_invlist_UNI_BALI_invlist_UNI_BAMU_invlist_UNI_BAMUMSUP_invlist_UNI_BASS_invlist_UNI_BATK_invlist_UNI_BC__AL_invlist_UNI_BC__AN_invlist_UNI_BC__B_invlist_UNI_BC__BN_invlist_UNI_BC__CS_invlist_UNI_BC__EN_invlist_UNI_BC__ES_invlist_UNI_BC__ET_invlist_UNI_BC__FSI_invlist_UNI_BC__L_invlist_UNI_BC__LRE_invlist_UNI_BC__LRI_invlist_UNI_BC__LRO_invlist_UNI_BC__NSM_invlist_UNI_BC__ON_invlist_UNI_BC__PDF_invlist_UNI_BC__PDI_invlist_UNI_BC__R_invlist_UNI_BC__RLE_invlist_UNI_BC__RLI_invlist_UNI_BC__RLO_invlist_UNI_BC__S_invlist_UNI_BC__WS_invlist_UNI_BENG_invlist_UNI_BHKS_invlist_UNI_BIDIC_invlist_UNI_BIDIM_invlist_UNI_BLOCKELEMENTS_invlist_UNI_BOPO_invlist_UNI_BOPOMOFOEXT_invlist_UNI_BOXDRAWING_invlist_UNI_BPT__C_invlist_UNI_BPT__N_invlist_UNI_BPT__O_invlist_UNI_BRAH_invlist_UNI_BRAI_invlist_UNI_BUGI_invlist_UNI_BUHD_invlist_UNI_BYZANTINEMUSIC_invlist_UNI_C_invlist_UNI_CAKM_invlist_UNI_CANS_invlist_UNI_CARI_invlist_UNI_CASED_invlist_UNI_CASEDLETTER_invlist_UNI_CCC__0_invlist_UNI_CCC__1_invlist_UNI_CCC__10_invlist_UNI_CCC__103_invlist_UNI_CCC__107_invlist_UNI_CCC__11_invlist_UNI_CCC__118_invlist_UNI_CCC__12_invlist_UNI_CCC__122_invlist_UNI_CCC__129_invlist_UNI_CCC__13_invlist_UNI_CCC__130_invlist_UNI_CCC__132_invlist_UNI_CCC__14_invlist_UNI_CCC__15_invlist_UNI_CCC__16_invlist_UNI_CCC__17_invlist_UNI_CCC__18_invlist_UNI_CCC__19_invlist_UNI_CCC__20_invlist_UNI_CCC__202_invlist_UNI_CCC__21_invlist_UNI_CCC__214_invlist_UNI_CCC__216_invlist_UNI_CCC__22_invlist_UNI_CCC__23_invlist_UNI_CCC__24_invlist_UNI_CCC__25_invlist_UNI_CCC__26_invlist_UNI_CCC__27_invlist_UNI_CCC__28_invlist_UNI_CCC__29_invlist_UNI_CCC__30_invlist_UNI_CCC__31_invlist_UNI_CCC__32_invlist_UNI_CCC__33_invlist_UNI_CCC__34_invlist_UNI_CCC__35_invlist_UNI_CCC__36_invlist_UNI_CCC__6_invlist_UNI_CCC__7_invlist_UNI_CCC__8_invlist_UNI_CCC__84_invlist_UNI_CCC__9_invlist_UNI_CCC__91_invlist_UNI_CCC__A_invlist_UNI_CCC__AL_invlist_UNI_CCC__AR_invlist_UNI_CCC__B_invlist_UNI_CCC__BL_invlist_UNI_CCC__BR_invlist_UNI_CCC__DA_invlist_UNI_CCC__DB_invlist_UNI_CCC__IS_invlist_UNI_CCC__L_invlist_UNI_CCC__R_invlist_UNI_CE_invlist_UNI_CF_invlist_UNI_CHAM_invlist_UNI_CHER_invlist_UNI_CHEROKEESUP_invlist_UNI_CHESSSYMBOLS_invlist_UNI_CHRS_invlist_UNI_CI_invlist_UNI_CJK_invlist_UNI_CJKCOMPAT_invlist_UNI_CJKCOMPATFORMS_invlist_UNI_CJKCOMPATIDEOGRAPHS_invlist_UNI_CJKCOMPATIDEOGRAPHSSUP_invlist_UNI_CJKEXTA_invlist_UNI_CJKEXTB_invlist_UNI_CJKEXTC_invlist_UNI_CJKEXTD_invlist_UNI_CJKEXTE_invlist_UNI_CJKEXTF_invlist_UNI_CJKEXTG_invlist_UNI_CJKEXTH_invlist_UNI_CJKEXTI_invlist_UNI_CJKRADICALSSUP_invlist_UNI_CJKSTROKES_invlist_UNI_CJKSYMBOLS_invlist_UNI_CN_invlist_UNI_CO_invlist_UNI_COMPATJAMO_invlist_UNI_COMPEX_invlist_UNI_CONTROLPICTURES_invlist_UNI_COPT_invlist_UNI_COPTICEPACTNUMBERS_invlist_UNI_COUNTINGROD_invlist_UNI_CPMN_invlist_UNI_CPRT_invlist_UNI_CUNEIFORMNUMBERS_invlist_UNI_CURRENCYSYMBOLS_invlist_UNI_CWCF_invlist_UNI_CWCM_invlist_UNI_CWKCF_invlist_UNI_CWL_invlist_UNI_CWT_invlist_UNI_CWU_invlist_UNI_CYPRIOTSYLLABARY_invlist_UNI_CYRILLICEXTA_invlist_UNI_CYRILLICEXTB_invlist_UNI_CYRILLICEXTC_invlist_UNI_CYRILLICEXTD_invlist_UNI_CYRILLICSUP_invlist_UNI_CYRL_invlist_UNI_DASH_invlist_UNI_DEP_invlist_UNI_DEVA_invlist_UNI_DEVANAGARIEXT_invlist_UNI_DEVANAGARIEXTA_invlist_UNI_DI_invlist_UNI_DIA_invlist_UNI_DIACRITICALS_invlist_UNI_DIACRITICALSEXT_invlist_UNI_DIACRITICALSFORSYMBOLS_invlist_UNI_DIACRITICALSSUP_invlist_UNI_DIAK_invlist_UNI_DINGBATS_invlist_UNI_DOGR_invlist_UNI_DOMINO_invlist_UNI_DSRT_invlist_UNI_DT__CAN_invlist_UNI_DT__COM_invlist_UNI_DT__ENC_invlist_UNI_DT__FIN_invlist_UNI_DT__FONT_invlist_UNI_DT__FRA_invlist_UNI_DT__INIT_invlist_UNI_DT__ISO_invlist_UNI_DT__MED_invlist_UNI_DT__NAR_invlist_UNI_DT__NB_invlist_UNI_DT__NONCANON_invlist_UNI_DT__NONE_invlist_UNI_DT__SML_invlist_UNI_DT__SQR_invlist_UNI_DT__SUB_invlist_UNI_DT__SUP_invlist_UNI_DT__VERT_invlist_UNI_DUPL_invlist_UNI_EARLYDYNASTICCUNEIFORM_invlist_UNI_EA__A_invlist_UNI_EA__F_invlist_UNI_EA__H_invlist_UNI_EA__N_invlist_UNI_EA__NA_invlist_UNI_EA__W_invlist_UNI_EBASE_invlist_UNI_ECOMP_invlist_UNI_EGYP_invlist_UNI_EGYPTIANHIEROGLYPHFORMATCONTROLS_invlist_UNI_EGYPTIANHIEROGLYPHSEXTA_invlist_UNI_ELBA_invlist_UNI_ELYM_invlist_UNI_EMOD_invlist_UNI_EMOJI_invlist_UNI_EMOTICONS_invlist_UNI_ENCLOSEDALPHANUM_invlist_UNI_ENCLOSEDALPHANUMSUP_invlist_UNI_ENCLOSEDCJK_invlist_UNI_ENCLOSEDIDEOGRAPHICSUP_invlist_UNI_EPRES_invlist_UNI_ETHI_invlist_UNI_ETHIOPICEXT_invlist_UNI_ETHIOPICEXTA_invlist_UNI_ETHIOPICEXTB_invlist_UNI_ETHIOPICSUP_invlist_UNI_EXT_invlist_UNI_EXTPICT_invlist_UNI_GARA_invlist_UNI_GCB__CN_invlist_UNI_GCB__EX_invlist_UNI_GCB__L_invlist_UNI_GCB__PP_invlist_UNI_GCB__SM_invlist_UNI_GCB__T_invlist_UNI_GCB__V_invlist_UNI_GCB__XX_invlist_UNI_GEOMETRICSHAPES_invlist_UNI_GEOMETRICSHAPESEXT_invlist_UNI_GEOR_invlist_UNI_GEORGIANEXT_invlist_UNI_GEORGIANSUP_invlist_UNI_GLAG_invlist_UNI_GLAGOLITICSUP_invlist_UNI_GONG_invlist_UNI_GONM_invlist_UNI_GOTH_invlist_UNI_GRAN_invlist_UNI_GRBASE_invlist_UNI_GREEKEXT_invlist_UNI_GREK_invlist_UNI_GREXT_invlist_UNI_GUJR_invlist_UNI_GUKH_invlist_UNI_GURU_invlist_UNI_HALFANDFULLFORMS_invlist_UNI_HALFMARKS_invlist_UNI_HAN_invlist_UNI_HANG_invlist_UNI_HANO_invlist_UNI_HATR_invlist_UNI_HEBR_invlist_UNI_HIGHPUSURROGATES_invlist_UNI_HIGHSURROGATES_invlist_UNI_HIRA_invlist_UNI_HLUW_invlist_UNI_HMNG_invlist_UNI_HMNP_invlist_UNI_HST__NA_invlist_UNI_HST__V_invlist_UNI_HUNG_invlist_UNI_HYPHEN_invlist_UNI_IDC_invlist_UNI_IDCOMPATMATHCONTINUE_invlist_UNI_IDCOMPATMATHSTART_invlist_UNI_IDENTIFIERSTATUS__ALLOWED_invlist_UNI_IDENTIFIERSTATUS__RESTRICTED_invlist_UNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlist_UNI_IDENTIFIERTYPE__EXCLUSION_invlist_UNI_IDENTIFIERTYPE__INCLUSION_invlist_UNI_IDENTIFIERTYPE__LIMITEDUSE_invlist_UNI_IDENTIFIERTYPE__NOTCHARACTER_invlist_UNI_IDENTIFIERTYPE__NOTNFKC_invlist_UNI_IDENTIFIERTYPE__NOTXID_invlist_UNI_IDENTIFIERTYPE__OBSOLETE_invlist_UNI_IDENTIFIERTYPE__RECOMMENDED_invlist_UNI_IDENTIFIERTYPE__TECHNICAL_invlist_UNI_IDENTIFIERTYPE__UNCOMMONUSE_invlist_UNI_IDEO_invlist_UNI_IDEOGRAPHICSYMBOLS_invlist_UNI_IDS_invlist_UNI_IDSB_invlist_UNI_IDST_invlist_UNI_IDSU_invlist_UNI_INADLAM_invlist_UNI_INAHOM_invlist_UNI_INANATOLIANHIEROGLYPHS_invlist_UNI_INARABIC_invlist_UNI_INARMENIAN_invlist_UNI_INAVESTAN_invlist_UNI_INBALINESE_invlist_UNI_INBAMUM_invlist_UNI_INBASSAVAH_invlist_UNI_INBATAK_invlist_UNI_INBENGALI_invlist_UNI_INBHAIKSUKI_invlist_UNI_INBOPOMOFO_invlist_UNI_INBRAHMI_invlist_UNI_INBUGINESE_invlist_UNI_INBUHID_invlist_UNI_INCARIAN_invlist_UNI_INCAUCASIANALBANIAN_invlist_UNI_INCB__CONSONANT_invlist_UNI_INCB__EXTEND_invlist_UNI_INCB__LINKER_invlist_UNI_INCB__NONE_invlist_UNI_INCHAKMA_invlist_UNI_INCHAM_invlist_UNI_INCHEROKEE_invlist_UNI_INCHORASMIAN_invlist_UNI_INCOPTIC_invlist_UNI_INCUNEIFORM_invlist_UNI_INCYPROMINOAN_invlist_UNI_INCYRILLIC_invlist_UNI_INDEVANAGARI_invlist_UNI_INDICNUMBERFORMS_invlist_UNI_INDICSIYAQNUMBERS_invlist_UNI_INDIVESAKURU_invlist_UNI_INDOGRA_invlist_UNI_INDUPLOYAN_invlist_UNI_INEGYPTIANHIEROGLYPHS_invlist_UNI_INELBASAN_invlist_UNI_INELYMAIC_invlist_UNI_INETHIOPIC_invlist_UNI_INGARAY_invlist_UNI_INGEORGIAN_invlist_UNI_INGLAGOLITIC_invlist_UNI_INGOTHIC_invlist_UNI_INGRANTHA_invlist_UNI_INGREEK_invlist_UNI_INGUJARATI_invlist_UNI_INGUNJALAGONDI_invlist_UNI_INGURMUKHI_invlist_UNI_INGURUNGKHEMA_invlist_UNI_INHANGUL_invlist_UNI_INHANIFIROHINGYA_invlist_UNI_INHANUNOO_invlist_UNI_INHATRAN_invlist_UNI_INHEBREW_invlist_UNI_INHIRAGANA_invlist_UNI_INIDC_invlist_UNI_INIMPERIALARAMAIC_invlist_UNI_ININSCRIPTIONALPAHLAVI_invlist_UNI_ININSCRIPTIONALPARTHIAN_invlist_UNI_INJAVANESE_invlist_UNI_INKAITHI_invlist_UNI_INKANNADA_invlist_UNI_INKATAKANA_invlist_UNI_INKAWI_invlist_UNI_INKHAROSHTHI_invlist_UNI_INKHITANSMALLSCRIPT_invlist_UNI_INKHMER_invlist_UNI_INKHOJKI_invlist_UNI_INKHUDAWADI_invlist_UNI_INKIRATRAI_invlist_UNI_INLAO_invlist_UNI_INLEPCHA_invlist_UNI_INLIMBU_invlist_UNI_INLINEARA_invlist_UNI_INLISU_invlist_UNI_INLYCIAN_invlist_UNI_INLYDIAN_invlist_UNI_INMAHAJANI_invlist_UNI_INMAKASAR_invlist_UNI_INMALAYALAM_invlist_UNI_INMANDAIC_invlist_UNI_INMANICHAEAN_invlist_UNI_INMARCHEN_invlist_UNI_INMASARAMGONDI_invlist_UNI_INMEDEFAIDRIN_invlist_UNI_INMEETEIMAYEK_invlist_UNI_INMENDEKIKAKUI_invlist_UNI_INMEROITICCURSIVE_invlist_UNI_INMIAO_invlist_UNI_INMODI_invlist_UNI_INMONGOLIAN_invlist_UNI_INMRO_invlist_UNI_INMULTANI_invlist_UNI_INMYANMAR_invlist_UNI_INNABATAEAN_invlist_UNI_INNAGMUNDARI_invlist_UNI_INNANDINAGARI_invlist_UNI_INNEWA_invlist_UNI_INNEWTAILUE_invlist_UNI_INNKO_invlist_UNI_INNUSHU_invlist_UNI_INNYIAKENGPUACHUEHMONG_invlist_UNI_INOGHAM_invlist_UNI_INOLDHUNGARIAN_invlist_UNI_INOLDITALIC_invlist_UNI_INOLDPERMIC_invlist_UNI_INOLDPERSIAN_invlist_UNI_INOLDSOGDIAN_invlist_UNI_INOLDTURKIC_invlist_UNI_INOLDUYGHUR_invlist_UNI_INOLONAL_invlist_UNI_INORIYA_invlist_UNI_INOSAGE_invlist_UNI_INOSMANYA_invlist_UNI_INPAHAWHHMONG_invlist_UNI_INPAUCINHAU_invlist_UNI_INPC__BOTTOM_invlist_UNI_INPC__BOTTOMANDLEFT_invlist_UNI_INPC__BOTTOMANDRIGHT_invlist_UNI_INPC__LEFT_invlist_UNI_INPC__LEFTANDRIGHT_invlist_UNI_INPC__NA_invlist_UNI_INPC__OVERSTRUCK_invlist_UNI_INPC__RIGHT_invlist_UNI_INPC__TOP_invlist_UNI_INPC__TOPANDBOTTOM_invlist_UNI_INPC__TOPANDBOTTOMANDLEFT_invlist_UNI_INPC__TOPANDBOTTOMANDRIGHT_invlist_UNI_INPC__TOPANDLEFT_invlist_UNI_INPC__TOPANDLEFTANDRIGHT_invlist_UNI_INPC__TOPANDRIGHT_invlist_UNI_INPHAGSPA_invlist_UNI_INPHOENICIAN_invlist_UNI_INPSALTERPAHLAVI_invlist_UNI_INPUNCTUATION_invlist_UNI_INREJANG_invlist_UNI_INRUNIC_invlist_UNI_INSAMARITAN_invlist_UNI_INSAURASHTRA_invlist_UNI_INSC__AVAGRAHA_invlist_UNI_INSC__BINDU_invlist_UNI_INSC__BRAHMIJOININGNUMBER_invlist_UNI_INSC__CANTILLATIONMARK_invlist_UNI_INSC__CONSONANT_invlist_UNI_INSC__CONSONANTDEAD_invlist_UNI_INSC__CONSONANTFINAL_invlist_UNI_INSC__CONSONANTHEADLETTER_invlist_UNI_INSC__CONSONANTINITIALPOSTFIXED_invlist_UNI_INSC__CONSONANTKILLER_invlist_UNI_INSC__CONSONANTMEDIAL_invlist_UNI_INSC__CONSONANTPLACEHOLDER_invlist_UNI_INSC__CONSONANTPRECEDINGREPHA_invlist_UNI_INSC__CONSONANTPREFIXED_invlist_UNI_INSC__CONSONANTSUBJOINED_invlist_UNI_INSC__CONSONANTSUCCEEDINGREPHA_invlist_UNI_INSC__CONSONANTWITHSTACKER_invlist_UNI_INSC__GEMINATIONMARK_invlist_UNI_INSC__INVISIBLESTACKER_invlist_UNI_INSC__MODIFYINGLETTER_invlist_UNI_INSC__NONJOINER_invlist_UNI_INSC__NUKTA_invlist_UNI_INSC__NUMBER_invlist_UNI_INSC__NUMBERJOINER_invlist_UNI_INSC__OTHER_invlist_UNI_INSC__PUREKILLER_invlist_UNI_INSC__REGISTERSHIFTER_invlist_UNI_INSC__SYLLABLEMODIFIER_invlist_UNI_INSC__TONELETTER_invlist_UNI_INSC__TONEMARK_invlist_UNI_INSC__VIRAMA_invlist_UNI_INSC__VISARGA_invlist_UNI_INSC__VOWEL_invlist_UNI_INSC__VOWELDEPENDENT_invlist_UNI_INSC__VOWELINDEPENDENT_invlist_UNI_INSIDDHAM_invlist_UNI_INSINHALA_invlist_UNI_INSOGDIAN_invlist_UNI_INSORASOMPENG_invlist_UNI_INSOYOMBO_invlist_UNI_INSUNDANESE_invlist_UNI_INSUNUWAR_invlist_UNI_INSYLOTINAGRI_invlist_UNI_INSYRIAC_invlist_UNI_INTAGALOG_invlist_UNI_INTAGBANWA_invlist_UNI_INTAILE_invlist_UNI_INTAITHAM_invlist_UNI_INTAIVIET_invlist_UNI_INTAKRI_invlist_UNI_INTAMIL_invlist_UNI_INTANGSA_invlist_UNI_INTANGUT_invlist_UNI_INTELUGU_invlist_UNI_INTHAANA_invlist_UNI_INTHAI_invlist_UNI_INTIBETAN_invlist_UNI_INTIFINAGH_invlist_UNI_INTIRHUTA_invlist_UNI_INTODHRI_invlist_UNI_INTOTO_invlist_UNI_INTULUTIGALARI_invlist_UNI_INUGARITIC_invlist_UNI_INVAI_invlist_UNI_INVITHKUQI_invlist_UNI_INVS_invlist_UNI_INWANCHO_invlist_UNI_INWARANGCITI_invlist_UNI_INYEZIDI_invlist_UNI_INZANABAZARSQUARE_invlist_UNI_IN__10_invlist_UNI_IN__11_invlist_UNI_IN__12_invlist_UNI_IN__12_DOT_1_invlist_UNI_IN__13_invlist_UNI_IN__14_invlist_UNI_IN__15_invlist_UNI_IN__15_DOT_1_invlist_UNI_IN__16_invlist_UNI_IN__1_DOT_1_invlist_UNI_IN__2_invlist_UNI_IN__2_DOT_1_invlist_UNI_IN__3_invlist_UNI_IN__3_DOT_1_invlist_UNI_IN__3_DOT_2_invlist_UNI_IN__4_invlist_UNI_IN__4_DOT_1_invlist_UNI_IN__5_invlist_UNI_IN__5_DOT_1_invlist_UNI_IN__5_DOT_2_invlist_UNI_IN__6_invlist_UNI_IN__6_DOT_1_invlist_UNI_IN__6_DOT_2_invlist_UNI_IN__6_DOT_3_invlist_UNI_IN__7_invlist_UNI_IN__8_invlist_UNI_IN__9_invlist_UNI_IN__NA_invlist_UNI_IPAEXT_invlist_UNI_ITAL_invlist_UNI_JAMO_invlist_UNI_JAMOEXTA_invlist_UNI_JAMOEXTB_invlist_UNI_JAVA_invlist_UNI_JG__AFRICANFEH_invlist_UNI_JG__AFRICANNOON_invlist_UNI_JG__AFRICANQAF_invlist_UNI_JG__AIN_invlist_UNI_JG__ALAPH_invlist_UNI_JG__ALEF_invlist_UNI_JG__BEH_invlist_UNI_JG__BETH_invlist_UNI_JG__BURUSHASKIYEHBARREE_invlist_UNI_JG__DAL_invlist_UNI_JG__DALATHRISH_invlist_UNI_JG__E_invlist_UNI_JG__FARSIYEH_invlist_UNI_JG__FE_invlist_UNI_JG__FEH_invlist_UNI_JG__FINALSEMKATH_invlist_UNI_JG__GAF_invlist_UNI_JG__GAMAL_invlist_UNI_JG__HAH_invlist_UNI_JG__HAMZAONHEHGOAL_invlist_UNI_JG__HANIFIROHINGYAKINNAYA_invlist_UNI_JG__HANIFIROHINGYAPA_invlist_UNI_JG__HE_invlist_UNI_JG__HEH_invlist_UNI_JG__HEHGOAL_invlist_UNI_JG__HETH_invlist_UNI_JG__KAF_invlist_UNI_JG__KAPH_invlist_UNI_JG__KASHMIRIYEH_invlist_UNI_JG__KHAPH_invlist_UNI_JG__KNOTTEDHEH_invlist_UNI_JG__LAM_invlist_UNI_JG__LAMADH_invlist_UNI_JG__MALAYALAMBHA_invlist_UNI_JG__MALAYALAMJA_invlist_UNI_JG__MALAYALAMLLA_invlist_UNI_JG__MALAYALAMLLLA_invlist_UNI_JG__MALAYALAMNGA_invlist_UNI_JG__MALAYALAMNNA_invlist_UNI_JG__MALAYALAMNNNA_invlist_UNI_JG__MALAYALAMNYA_invlist_UNI_JG__MALAYALAMRA_invlist_UNI_JG__MALAYALAMSSA_invlist_UNI_JG__MALAYALAMTTA_invlist_UNI_JG__MANICHAEANALEPH_invlist_UNI_JG__MANICHAEANAYIN_invlist_UNI_JG__MANICHAEANBETH_invlist_UNI_JG__MANICHAEANDALETH_invlist_UNI_JG__MANICHAEANDHAMEDH_invlist_UNI_JG__MANICHAEANFIVE_invlist_UNI_JG__MANICHAEANGIMEL_invlist_UNI_JG__MANICHAEANHETH_invlist_UNI_JG__MANICHAEANHUNDRED_invlist_UNI_JG__MANICHAEANKAPH_invlist_UNI_JG__MANICHAEANLAMEDH_invlist_UNI_JG__MANICHAEANMEM_invlist_UNI_JG__MANICHAEANNUN_invlist_UNI_JG__MANICHAEANONE_invlist_UNI_JG__MANICHAEANPE_invlist_UNI_JG__MANICHAEANQOPH_invlist_UNI_JG__MANICHAEANRESH_invlist_UNI_JG__MANICHAEANSADHE_invlist_UNI_JG__MANICHAEANSAMEKH_invlist_UNI_JG__MANICHAEANTAW_invlist_UNI_JG__MANICHAEANTEN_invlist_UNI_JG__MANICHAEANTETH_invlist_UNI_JG__MANICHAEANTHAMEDH_invlist_UNI_JG__MANICHAEANTWENTY_invlist_UNI_JG__MANICHAEANWAW_invlist_UNI_JG__MANICHAEANYODH_invlist_UNI_JG__MANICHAEANZAYIN_invlist_UNI_JG__MEEM_invlist_UNI_JG__MIM_invlist_UNI_JG__NOJOININGGROUP_invlist_UNI_JG__NOON_invlist_UNI_JG__NUN_invlist_UNI_JG__NYA_invlist_UNI_JG__PE_invlist_UNI_JG__QAF_invlist_UNI_JG__QAPH_invlist_UNI_JG__REH_invlist_UNI_JG__REVERSEDPE_invlist_UNI_JG__ROHINGYAYEH_invlist_UNI_JG__SAD_invlist_UNI_JG__SADHE_invlist_UNI_JG__SEEN_invlist_UNI_JG__SEMKATH_invlist_UNI_JG__SHIN_invlist_UNI_JG__STRAIGHTWAW_invlist_UNI_JG__SWASHKAF_invlist_UNI_JG__SYRIACWAW_invlist_UNI_JG__TAH_invlist_UNI_JG__TAW_invlist_UNI_JG__TEHMARBUTA_invlist_UNI_JG__TETH_invlist_UNI_JG__THINYEH_invlist_UNI_JG__VERTICALTAIL_invlist_UNI_JG__WAW_invlist_UNI_JG__YEH_invlist_UNI_JG__YEHBARREE_invlist_UNI_JG__YEHWITHTAIL_invlist_UNI_JG__YUDH_invlist_UNI_JG__YUDHHE_invlist_UNI_JG__ZAIN_invlist_UNI_JG__ZHAIN_invlist_UNI_JOINC_invlist_UNI_JT__C_invlist_UNI_JT__D_invlist_UNI_JT__L_invlist_UNI_JT__R_invlist_UNI_JT__T_invlist_UNI_JT__U_invlist_UNI_KAKTOVIKNUMERALS_invlist_UNI_KALI_invlist_UNI_KANA_invlist_UNI_KANAEXTA_invlist_UNI_KANAEXTB_invlist_UNI_KANASUP_invlist_UNI_KANBUN_invlist_UNI_KANGXI_invlist_UNI_KATAKANAEXT_invlist_UNI_KAWI_invlist_UNI_KEHNOMIRROR_invlist_UNI_KEHNOROTATE_invlist_UNI_KHAR_invlist_UNI_KHMERSYMBOLS_invlist_UNI_KHMR_invlist_UNI_KHOJ_invlist_UNI_KITS_invlist_UNI_KNDA_invlist_UNI_KRAI_invlist_UNI_KTHI_invlist_UNI_L_invlist_UNI_LANA_invlist_UNI_LAO_invlist_UNI_LATIN1_invlist_UNI_LATINEXTA_invlist_UNI_LATINEXTADDITIONAL_invlist_UNI_LATINEXTB_invlist_UNI_LATINEXTC_invlist_UNI_LATINEXTD_invlist_UNI_LATINEXTE_invlist_UNI_LATINEXTF_invlist_UNI_LATINEXTG_invlist_UNI_LATN_invlist_UNI_LB__AI_invlist_UNI_LB__AK_invlist_UNI_LB__AL_invlist_UNI_LB__AP_invlist_UNI_LB__AS_invlist_UNI_LB__B2_invlist_UNI_LB__BA_invlist_UNI_LB__BB_invlist_UNI_LB__BK_invlist_UNI_LB__CB_invlist_UNI_LB__CJ_invlist_UNI_LB__CL_invlist_UNI_LB__CM_invlist_UNI_LB__CP_invlist_UNI_LB__CR_invlist_UNI_LB__EX_invlist_UNI_LB__GL_invlist_UNI_LB__H2_invlist_UNI_LB__H3_invlist_UNI_LB__HL_invlist_UNI_LB__HY_invlist_UNI_LB__ID_invlist_UNI_LB__IN_invlist_UNI_LB__IS_invlist_UNI_LB__LF_invlist_UNI_LB__NL_invlist_UNI_LB__NS_invlist_UNI_LB__NU_invlist_UNI_LB__OP_invlist_UNI_LB__PO_invlist_UNI_LB__PR_invlist_UNI_LB__QU_invlist_UNI_LB__SA_invlist_UNI_LB__SG_invlist_UNI_LB__SP_invlist_UNI_LB__SY_invlist_UNI_LB__VF_invlist_UNI_LB__VI_invlist_UNI_LB__WJ_invlist_UNI_LB__XX_invlist_UNI_LB__ZW_invlist_UNI_LB__ZWJ_invlist_UNI_LEPC_invlist_UNI_LETTERLIKESYMBOLS_invlist_UNI_LIMB_invlist_UNI_LINA_invlist_UNI_LINB_invlist_UNI_LINEARBIDEOGRAMS_invlist_UNI_LINEARBSYLLABARY_invlist_UNI_LISU_invlist_UNI_LISUSUP_invlist_UNI_LM_invlist_UNI_LO_invlist_UNI_LOE_invlist_UNI_LOWERCASELETTER_invlist_UNI_LOWSURROGATES_invlist_UNI_LYCI_invlist_UNI_LYDI_invlist_UNI_M_invlist_UNI_MAHJ_invlist_UNI_MAHJONG_invlist_UNI_MAKA_invlist_UNI_MAND_invlist_UNI_MANI_invlist_UNI_MARC_invlist_UNI_MATH_invlist_UNI_MATHALPHANUM_invlist_UNI_MATHOPERATORS_invlist_UNI_MAYANNUMERALS_invlist_UNI_MC_invlist_UNI_MCM_invlist_UNI_ME_invlist_UNI_MEDF_invlist_UNI_MEETEIMAYEKEXT_invlist_UNI_MEND_invlist_UNI_MERC_invlist_UNI_MERO_invlist_UNI_MIAO_invlist_UNI_MISCARROWS_invlist_UNI_MISCMATHSYMBOLSA_invlist_UNI_MISCMATHSYMBOLSB_invlist_UNI_MISCPICTOGRAPHS_invlist_UNI_MISCSYMBOLS_invlist_UNI_MISCTECHNICAL_invlist_UNI_MLYM_invlist_UNI_MN_invlist_UNI_MODI_invlist_UNI_MODIFIERLETTERS_invlist_UNI_MODIFIERTONELETTERS_invlist_UNI_MONG_invlist_UNI_MONGOLIANSUP_invlist_UNI_MRO_invlist_UNI_MTEI_invlist_UNI_MULT_invlist_UNI_MUSIC_invlist_UNI_MYANMAREXTA_invlist_UNI_MYANMAREXTB_invlist_UNI_MYANMAREXTC_invlist_UNI_MYMR_invlist_UNI_N_invlist_UNI_NAGM_invlist_UNI_NAND_invlist_UNI_NARB_invlist_UNI_NB_invlist_UNI_NBAT_invlist_UNI_NEWA_invlist_UNI_NFCQC__M_invlist_UNI_NFCQC__Y_invlist_UNI_NFDQC__Y_invlist_UNI_NFKCQC__N_invlist_UNI_NFKCQC__Y_invlist_UNI_NFKDQC__N_invlist_UNI_NKO_invlist_UNI_NL_invlist_UNI_NO_invlist_UNI_NSHU_invlist_UNI_NT__DI_invlist_UNI_NT__NU_invlist_UNI_NUMBERFORMS_invlist_UNI_NV__0_invlist_UNI_NV__1_invlist_UNI_NV__10_invlist_UNI_NV__100_invlist_UNI_NV__1000_invlist_UNI_NV__10000_invlist_UNI_NV__100000_invlist_UNI_NV__1000000_invlist_UNI_NV__10000000_invlist_UNI_NV__100000000_invlist_UNI_NV__1000000000_invlist_UNI_NV__10000000000_invlist_UNI_NV__1000000000000_invlist_UNI_NV__10000000000000000_invlist_UNI_NV__11_invlist_UNI_NV__11_SLASH_12_invlist_UNI_NV__11_SLASH_2_invlist_UNI_NV__12_invlist_UNI_NV__13_invlist_UNI_NV__13_SLASH_2_invlist_UNI_NV__14_invlist_UNI_NV__15_invlist_UNI_NV__15_SLASH_2_invlist_UNI_NV__16_invlist_UNI_NV__17_invlist_UNI_NV__17_SLASH_2_invlist_UNI_NV__18_invlist_UNI_NV__19_invlist_UNI_NV__1_SLASH_10_invlist_UNI_NV__1_SLASH_12_invlist_UNI_NV__1_SLASH_16_invlist_UNI_NV__1_SLASH_160_invlist_UNI_NV__1_SLASH_2_invlist_UNI_NV__1_SLASH_20_invlist_UNI_NV__1_SLASH_3_invlist_UNI_NV__1_SLASH_32_invlist_UNI_NV__1_SLASH_320_invlist_UNI_NV__1_SLASH_4_invlist_UNI_NV__1_SLASH_40_invlist_UNI_NV__1_SLASH_5_invlist_UNI_NV__1_SLASH_6_invlist_UNI_NV__1_SLASH_64_invlist_UNI_NV__1_SLASH_7_invlist_UNI_NV__1_SLASH_8_invlist_UNI_NV__1_SLASH_80_invlist_UNI_NV__1_SLASH_9_invlist_UNI_NV__2_invlist_UNI_NV__20_invlist_UNI_NV__200_invlist_UNI_NV__2000_invlist_UNI_NV__20000_invlist_UNI_NV__200000_invlist_UNI_NV__20000000_invlist_UNI_NV__21_invlist_UNI_NV__216000_invlist_UNI_NV__22_invlist_UNI_NV__23_invlist_UNI_NV__24_invlist_UNI_NV__25_invlist_UNI_NV__26_invlist_UNI_NV__27_invlist_UNI_NV__28_invlist_UNI_NV__29_invlist_UNI_NV__2_SLASH_3_invlist_UNI_NV__2_SLASH_5_invlist_UNI_NV__3_invlist_UNI_NV__30_invlist_UNI_NV__300_invlist_UNI_NV__3000_invlist_UNI_NV__30000_invlist_UNI_NV__300000_invlist_UNI_NV__31_invlist_UNI_NV__32_invlist_UNI_NV__33_invlist_UNI_NV__34_invlist_UNI_NV__35_invlist_UNI_NV__36_invlist_UNI_NV__37_invlist_UNI_NV__38_invlist_UNI_NV__39_invlist_UNI_NV__3_SLASH_16_invlist_UNI_NV__3_SLASH_2_invlist_UNI_NV__3_SLASH_20_invlist_UNI_NV__3_SLASH_4_invlist_UNI_NV__3_SLASH_5_invlist_UNI_NV__3_SLASH_64_invlist_UNI_NV__3_SLASH_8_invlist_UNI_NV__3_SLASH_80_invlist_UNI_NV__4_invlist_UNI_NV__40_invlist_UNI_NV__400_invlist_UNI_NV__4000_invlist_UNI_NV__40000_invlist_UNI_NV__400000_invlist_UNI_NV__41_invlist_UNI_NV__42_invlist_UNI_NV__43_invlist_UNI_NV__432000_invlist_UNI_NV__44_invlist_UNI_NV__45_invlist_UNI_NV__46_invlist_UNI_NV__47_invlist_UNI_NV__48_invlist_UNI_NV__49_invlist_UNI_NV__4_SLASH_5_invlist_UNI_NV__5_invlist_UNI_NV__50_invlist_UNI_NV__500_invlist_UNI_NV__5000_invlist_UNI_NV__50000_invlist_UNI_NV__500000_invlist_UNI_NV__5_SLASH_12_invlist_UNI_NV__5_SLASH_2_invlist_UNI_NV__5_SLASH_6_invlist_UNI_NV__5_SLASH_8_invlist_UNI_NV__6_invlist_UNI_NV__60_invlist_UNI_NV__600_invlist_UNI_NV__6000_invlist_UNI_NV__60000_invlist_UNI_NV__600000_invlist_UNI_NV__7_invlist_UNI_NV__70_invlist_UNI_NV__700_invlist_UNI_NV__7000_invlist_UNI_NV__70000_invlist_UNI_NV__700000_invlist_UNI_NV__7_SLASH_12_invlist_UNI_NV__7_SLASH_2_invlist_UNI_NV__7_SLASH_8_invlist_UNI_NV__8_invlist_UNI_NV__80_invlist_UNI_NV__800_invlist_UNI_NV__8000_invlist_UNI_NV__80000_invlist_UNI_NV__800000_invlist_UNI_NV__9_invlist_UNI_NV__90_invlist_UNI_NV__900_invlist_UNI_NV__9000_invlist_UNI_NV__90000_invlist_UNI_NV__900000_invlist_UNI_NV__9_SLASH_2_invlist_UNI_NV__NAN_invlist_UNI_NV___MINUS_1_SLASH_2_invlist_UNI_OCR_invlist_UNI_OGAM_invlist_UNI_OLCK_invlist_UNI_ONAO_invlist_UNI_ORKH_invlist_UNI_ORNAMENTALDINGBATS_invlist_UNI_ORYA_invlist_UNI_OSGE_invlist_UNI_OSMA_invlist_UNI_OTTOMANSIYAQNUMBERS_invlist_UNI_OUGR_invlist_UNI_P_invlist_UNI_PALM_invlist_UNI_PATSYN_invlist_UNI_PAUC_invlist_UNI_PC_invlist_UNI_PCM_invlist_UNI_PD_invlist_UNI_PE_invlist_UNI_PERM_invlist_UNI_PF_invlist_UNI_PHAG_invlist_UNI_PHAISTOS_invlist_UNI_PHLI_invlist_UNI_PHLP_invlist_UNI_PHNX_invlist_UNI_PHONETICEXT_invlist_UNI_PHONETICEXTSUP_invlist_UNI_PI_invlist_UNI_PLAYINGCARDS_invlist_UNI_PO_invlist_UNI_POSIXALNUM_invlist_UNI_POSIXALPHA_invlist_UNI_POSIXBLANK_invlist_UNI_POSIXCNTRL_invlist_UNI_POSIXDIGIT_invlist_UNI_POSIXGRAPH_invlist_UNI_POSIXLOWER_invlist_UNI_POSIXPRINT_invlist_UNI_POSIXPUNCT_invlist_UNI_POSIXSPACE_invlist_UNI_POSIXUPPER_invlist_UNI_POSIXWORD_invlist_UNI_POSIXXDIGIT_invlist_UNI_PRTI_invlist_UNI_PS_invlist_UNI_PUA_invlist_UNI_QAAI_invlist_UNI_QMARK_invlist_UNI_RADICAL_invlist_UNI_RI_invlist_UNI_RJNG_invlist_UNI_ROHG_invlist_UNI_RUMI_invlist_UNI_RUNR_invlist_UNI_S_invlist_UNI_SAMR_invlist_UNI_SARB_invlist_UNI_SAUR_invlist_UNI_SB__AT_invlist_UNI_SB__CL_invlist_UNI_SB__EX_invlist_UNI_SB__FO_invlist_UNI_SB__LE_invlist_UNI_SB__LO_invlist_UNI_SB__NU_invlist_UNI_SB__SC_invlist_UNI_SB__SE_invlist_UNI_SB__SP_invlist_UNI_SB__ST_invlist_UNI_SB__UP_invlist_UNI_SB__XX_invlist_UNI_SC_invlist_UNI_SC__ADLM_invlist_UNI_SC__AGHB_invlist_UNI_SC__ARAB_invlist_UNI_SC__ARMN_invlist_UNI_SC__AVST_invlist_UNI_SC__BENG_invlist_UNI_SC__BOPO_invlist_UNI_SC__BUGI_invlist_UNI_SC__BUHD_invlist_UNI_SC__CAKM_invlist_UNI_SC__CARI_invlist_UNI_SC__CHER_invlist_UNI_SC__COPT_invlist_UNI_SC__CPMN_invlist_UNI_SC__CPRT_invlist_UNI_SC__CYRL_invlist_UNI_SC__DEVA_invlist_UNI_SC__DOGR_invlist_UNI_SC__DUPL_invlist_UNI_SC__ELBA_invlist_UNI_SC__ETHI_invlist_UNI_SC__GARA_invlist_UNI_SC__GEOR_invlist_UNI_SC__GLAG_invlist_UNI_SC__GONG_invlist_UNI_SC__GONM_invlist_UNI_SC__GOTH_invlist_UNI_SC__GRAN_invlist_UNI_SC__GREK_invlist_UNI_SC__GUJR_invlist_UNI_SC__GUKH_invlist_UNI_SC__GURU_invlist_UNI_SC__HAN_invlist_UNI_SC__HANG_invlist_UNI_SC__HANO_invlist_UNI_SC__HEBR_invlist_UNI_SC__HIRA_invlist_UNI_SC__HUNG_invlist_UNI_SC__JAVA_invlist_UNI_SC__KALI_invlist_UNI_SC__KANA_invlist_UNI_SC__KHOJ_invlist_UNI_SC__KNDA_invlist_UNI_SC__KTHI_invlist_UNI_SC__LATN_invlist_UNI_SC__LIMB_invlist_UNI_SC__LINA_invlist_UNI_SC__LINB_invlist_UNI_SC__LISU_invlist_UNI_SC__LYCI_invlist_UNI_SC__LYDI_invlist_UNI_SC__MAHJ_invlist_UNI_SC__MAND_invlist_UNI_SC__MANI_invlist_UNI_SC__MERO_invlist_UNI_SC__MLYM_invlist_UNI_SC__MODI_invlist_UNI_SC__MONG_invlist_UNI_SC__MULT_invlist_UNI_SC__MYMR_invlist_UNI_SC__NAND_invlist_UNI_SC__NKO_invlist_UNI_SC__ONAO_invlist_UNI_SC__ORKH_invlist_UNI_SC__ORYA_invlist_UNI_SC__OSGE_invlist_UNI_SC__OUGR_invlist_UNI_SC__PERM_invlist_UNI_SC__PHAG_invlist_UNI_SC__PHLP_invlist_UNI_SC__QAAI_invlist_UNI_SC__ROHG_invlist_UNI_SC__RUNR_invlist_UNI_SC__SAMR_invlist_UNI_SC__SHAW_invlist_UNI_SC__SHRD_invlist_UNI_SC__SIND_invlist_UNI_SC__SINH_invlist_UNI_SC__SOGD_invlist_UNI_SC__SUNU_invlist_UNI_SC__SYLO_invlist_UNI_SC__SYRC_invlist_UNI_SC__TAGB_invlist_UNI_SC__TAKR_invlist_UNI_SC__TALE_invlist_UNI_SC__TAML_invlist_UNI_SC__TANG_invlist_UNI_SC__TELU_invlist_UNI_SC__TFNG_invlist_UNI_SC__TGLG_invlist_UNI_SC__THAA_invlist_UNI_SC__THAI_invlist_UNI_SC__TIBT_invlist_UNI_SC__TIRH_invlist_UNI_SC__TODR_invlist_UNI_SC__TOTO_invlist_UNI_SC__TUTG_invlist_UNI_SC__YEZI_invlist_UNI_SC__YI_invlist_UNI_SC__ZYYY_invlist_UNI_SD_invlist_UNI_SGNW_invlist_UNI_SHAW_invlist_UNI_SHORTHANDFORMATCONTROLS_invlist_UNI_SHRD_invlist_UNI_SIDD_invlist_UNI_SIND_invlist_UNI_SINH_invlist_UNI_SINHALAARCHAICNUMBERS_invlist_UNI_SK_invlist_UNI_SM_invlist_UNI_SMALLFORMS_invlist_UNI_SMALLKANAEXT_invlist_UNI_SO_invlist_UNI_SOGD_invlist_UNI_SOGO_invlist_UNI_SORA_invlist_UNI_SOYO_invlist_UNI_SPECIALS_invlist_UNI_STERM_invlist_UNI_SUND_invlist_UNI_SUNDANESESUP_invlist_UNI_SUNU_invlist_UNI_SUPARROWSA_invlist_UNI_SUPARROWSB_invlist_UNI_SUPARROWSC_invlist_UNI_SUPERANDSUB_invlist_UNI_SUPMATHOPERATORS_invlist_UNI_SUPPUAA_invlist_UNI_SUPPUAB_invlist_UNI_SUPPUNCTUATION_invlist_UNI_SUPSYMBOLSANDPICTOGRAPHS_invlist_UNI_SUTTONSIGNWRITING_invlist_UNI_SYLO_invlist_UNI_SYMBOLSANDPICTOGRAPHSEXTA_invlist_UNI_SYMBOLSFORLEGACYCOMPUTING_invlist_UNI_SYMBOLSFORLEGACYCOMPUTINGSUP_invlist_UNI_SYRC_invlist_UNI_SYRIACSUP_invlist_UNI_TAGB_invlist_UNI_TAGS_invlist_UNI_TAIXUANJING_invlist_UNI_TAKR_invlist_UNI_TALE_invlist_UNI_TALU_invlist_UNI_TAMILSUP_invlist_UNI_TAML_invlist_UNI_TANG_invlist_UNI_TANGUTCOMPONENTS_invlist_UNI_TANGUTSUP_invlist_UNI_TAVT_invlist_UNI_TELU_invlist_UNI_TERM_invlist_UNI_TFNG_invlist_UNI_TGLG_invlist_UNI_THAA_invlist_UNI_THAI_invlist_UNI_TIBT_invlist_UNI_TIRH_invlist_UNI_TITLE_invlist_UNI_TNSA_invlist_UNI_TODR_invlist_UNI_TOTO_invlist_UNI_TRANSPORTANDMAP_invlist_UNI_TUTG_invlist_UNI_UCAS_invlist_UNI_UCASEXT_invlist_UNI_UCASEXTA_invlist_UNI_UGAR_invlist_UNI_UIDEO_invlist_UNI_UPPERCASELETTER_invlist_UNI_VAI_invlist_UNI_VEDICEXT_invlist_UNI_VERTICALFORMS_invlist_UNI_VERTSPACE_invlist_UNI_VITH_invlist_UNI_VO__R_invlist_UNI_VO__TR_invlist_UNI_VO__TU_invlist_UNI_VO__U_invlist_UNI_VS_invlist_UNI_VSSUP_invlist_UNI_WARA_invlist_UNI_WB__DQ_invlist_UNI_WB__EB_invlist_UNI_WB__EX_invlist_UNI_WB__EXTEND_invlist_UNI_WB__FO_invlist_UNI_WB__KA_invlist_UNI_WB__LE_invlist_UNI_WB__MB_invlist_UNI_WB__ML_invlist_UNI_WB__MN_invlist_UNI_WB__NL_invlist_UNI_WB__NU_invlist_UNI_WB__SQ_invlist_UNI_WB__WSEGSPACE_invlist_UNI_WB__XX_invlist_UNI_WCHO_invlist_UNI_XIDC_invlist_UNI_XIDS_invlist_UNI_XPEO_invlist_UNI_XPOSIXALNUM_invlist_UNI_XPOSIXALPHA_invlist_UNI_XPOSIXBLANK_invlist_UNI_XPOSIXCNTRL_invlist_UNI_XPOSIXDIGIT_invlist_UNI_XPOSIXGRAPH_invlist_UNI_XPOSIXLOWER_invlist_UNI_XPOSIXPRINT_invlist_UNI_XPOSIXPUNCT_invlist_UNI_XPOSIXSPACE_invlist_UNI_XPOSIXUPPER_invlist_UNI_XPOSIXWORD_invlist_UNI_XPOSIXXDIGIT_invlist_UNI_XSUX_invlist_UNI_YEZI_invlist_UNI_YI_invlist_UNI_YIJING_invlist_UNI_YIRADICALS_invlist_UNI_YISYLLABLES_invlist_UNI_Z_invlist_UNI_ZANB_invlist_UNI_ZL_invlist_UNI_ZNAMENNYMUSIC_invlist_UNI_ZP_invlist_UNI_ZS_invlist_UNI_ZYYY_invlist_UNI_ZZZZ_invlist_UNI__PERL_ANY_FOLDS_invlist_UNI__PERL_CHARNAME_BEGIN_invlist_UNI__PERL_CHARNAME_CONTINUE_invlist_UNI__PERL_FOLDS_TO_MULTI_CHAR_invlist_UNI__PERL_IDCONT_invlist_UNI__PERL_IDSTART_invlist_UNI__PERL_IS_IN_MULTI_CHAR_FOLD_invlist_UNI__PERL_NCHAR_invlist_UNI__PERL_PATWS_invlist_UNI__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START_invlist_UNI__PERL_PROBLEMATIC_LOCALE_FOLDS_invlist_UNI__PERL_QUOTEMETA_invlist_UNI__PERL_SURROGATE_invlist__Perl_GCB_invmap__Perl_SCX_invmap_SCX_AUX_TABLE_lengths_script_zeros_sets_utf8_locale_required_b_utf8_locale_required__Perl_LB_invmap__Perl_SB_invmap__Perl_WB_invmap_LB_table_LB_dfa_table_WB_table_WB_dfa_table_GCB_table_GCB_dfa_table_SCX_AUX_TABLE_1_SCX_AUX_TABLE_2_SCX_AUX_TABLE_3_SCX_AUX_TABLE_4_SCX_AUX_TABLE_5_SCX_AUX_TABLE_6_SCX_AUX_TABLE_7_SCX_AUX_TABLE_8_SCX_AUX_TABLE_9_SCX_AUX_TABLE_10_SCX_AUX_TABLE_11_SCX_AUX_TABLE_12_SCX_AUX_TABLE_13_SCX_AUX_TABLE_14_SCX_AUX_TABLE_15_SCX_AUX_TABLE_16_SCX_AUX_TABLE_17_SCX_AUX_TABLE_18_SCX_AUX_TABLE_19_SCX_AUX_TABLE_20_SCX_AUX_TABLE_21_SCX_AUX_TABLE_22_SCX_AUX_TABLE_23_SCX_AUX_TABLE_24_SCX_AUX_TABLE_25_SCX_AUX_TABLE_26_SCX_AUX_TABLE_27_SCX_AUX_TABLE_28_SCX_AUX_TABLE_29_SCX_AUX_TABLE_30_SCX_AUX_TABLE_31_SCX_AUX_TABLE_32_SCX_AUX_TABLE_33_SCX_AUX_TABLE_34_SCX_AUX_TABLE_35_SCX_AUX_TABLE_36_SCX_AUX_TABLE_37_SCX_AUX_TABLE_38_SCX_AUX_TABLE_39_SCX_AUX_TABLE_40_SCX_AUX_TABLE_41_SCX_AUX_TABLE_42_SCX_AUX_TABLE_43_SCX_AUX_TABLE_44_SCX_AUX_TABLE_45_SCX_AUX_TABLE_46_SCX_AUX_TABLE_47_SCX_AUX_TABLE_48_SCX_AUX_TABLE_49_SCX_AUX_TABLE_50_SCX_AUX_TABLE_51_SCX_AUX_TABLE_52_SCX_AUX_TABLE_53_SCX_AUX_TABLE_54_SCX_AUX_TABLE_55_SCX_AUX_TABLE_56_SCX_AUX_TABLE_57_SCX_AUX_TABLE_58_SCX_AUX_TABLE_59_SCX_AUX_TABLE_60_SCX_AUX_TABLE_61_SCX_AUX_TABLE_62_SCX_AUX_TABLE_63_SCX_AUX_TABLE_64_SCX_AUX_TABLE_65_SCX_AUX_TABLE_66_SCX_AUX_TABLE_67_SCX_AUX_TABLE_68_SCX_AUX_TABLE_69_SCX_AUX_TABLE_70_SCX_AUX_TABLE_71_SCX_AUX_TABLE_72_SCX_AUX_TABLE_73_SCX_AUX_TABLE_74_SCX_AUX_TABLE_75_SCX_AUX_TABLE_76_SCX_AUX_TABLE_77_SCX_AUX_TABLE_78_SCX_AUX_TABLE_79_SCX_AUX_TABLE_80_SCX_AUX_TABLE_81_SCX_AUX_TABLE_82_SCX_AUX_TABLE_83_SCX_AUX_TABLE_84_SCX_AUX_TABLE_85_SCX_AUX_TABLE_86_SCX_AUX_TABLE_87_SCX_AUX_TABLE_88_SCX_AUX_TABLE_89_SCX_AUX_TABLE_90_SCX_AUX_TABLE_91_SCX_AUX_TABLE_92_SCX_AUX_TABLE_93_SCX_AUX_TABLE_94_SCX_AUX_TABLE_95_SCX_AUX_TABLE_96_SCX_AUX_TABLE_97_SCX_AUX_TABLE_98_SCX_AUX_TABLE_99_SCX_AUX_TABLE_100_SCX_AUX_TABLE_101_SCX_AUX_TABLE_102_SCX_AUX_TABLE_103_SCX_AUX_TABLE_104_SCX_AUX_TABLE_105_SCX_AUX_TABLE_106_leave_scope_arg_counts_bodies_by_type_bodies_by_type_fake_rv_fake_hv_with_aux_Perl_sv_vcatpvfn_flags.nullstr_int2str_table_S_destroy_length_of_year_days_in_month_julian_days_by_month_safe_years_Perl_scan_num.nvshift_bodies_by_type_ident_too_long_ident_var_zero_multi_digit_no_code_malformed_text_unees_Uppercase_Mapping_invmap_UC_AUX_TABLE_lengths_Titlecase_Mapping_invmap_TC_AUX_TABLE_lengths_Lowercase_Mapping_invmap_LC_AUX_TABLE_lengths_Case_Folding_invmap_CF_AUX_TABLE_lengths_Simple_Case_Folding_invmap__Perl_IVCF_invmap_IVCF_AUX_TABLE_lengths_bodies_by_type_UC_AUX_TABLE_1_UC_AUX_TABLE_2_UC_AUX_TABLE_3_UC_AUX_TABLE_4_UC_AUX_TABLE_5_UC_AUX_TABLE_6_UC_AUX_TABLE_7_UC_AUX_TABLE_8_UC_AUX_TABLE_9_UC_AUX_TABLE_10_UC_AUX_TABLE_11_UC_AUX_TABLE_12_UC_AUX_TABLE_13_UC_AUX_TABLE_14_UC_AUX_TABLE_15_UC_AUX_TABLE_16_UC_AUX_TABLE_17_UC_AUX_TABLE_18_UC_AUX_TABLE_19_UC_AUX_TABLE_20_UC_AUX_TABLE_21_UC_AUX_TABLE_22_UC_AUX_TABLE_23_UC_AUX_TABLE_24_UC_AUX_TABLE_25_UC_AUX_TABLE_26_UC_AUX_TABLE_27_UC_AUX_TABLE_28_UC_AUX_TABLE_29_UC_AUX_TABLE_30_UC_AUX_TABLE_31_UC_AUX_TABLE_32_UC_AUX_TABLE_33_UC_AUX_TABLE_34_UC_AUX_TABLE_35_UC_AUX_TABLE_36_UC_AUX_TABLE_37_UC_AUX_TABLE_38_UC_AUX_TABLE_39_UC_AUX_TABLE_40_UC_AUX_TABLE_41_UC_AUX_TABLE_42_UC_AUX_TABLE_43_UC_AUX_TABLE_44_UC_AUX_TABLE_45_UC_AUX_TABLE_46_UC_AUX_TABLE_47_UC_AUX_TABLE_48_UC_AUX_TABLE_49_UC_AUX_TABLE_50_UC_AUX_TABLE_51_UC_AUX_TABLE_52_UC_AUX_TABLE_53_UC_AUX_TABLE_54_UC_AUX_TABLE_55_UC_AUX_TABLE_56_UC_AUX_TABLE_57_UC_AUX_TABLE_58_UC_AUX_TABLE_59_UC_AUX_TABLE_60_UC_AUX_TABLE_61_UC_AUX_TABLE_62_UC_AUX_TABLE_63_UC_AUX_TABLE_64_UC_AUX_TABLE_65_UC_AUX_TABLE_66_UC_AUX_TABLE_67_UC_AUX_TABLE_68_UC_AUX_TABLE_69_UC_AUX_TABLE_70_UC_AUX_TABLE_71_UC_AUX_TABLE_72_TC_AUX_TABLE_1_TC_AUX_TABLE_2_TC_AUX_TABLE_3_TC_AUX_TABLE_4_TC_AUX_TABLE_5_TC_AUX_TABLE_6_TC_AUX_TABLE_7_TC_AUX_TABLE_8_TC_AUX_TABLE_9_TC_AUX_TABLE_10_TC_AUX_TABLE_11_TC_AUX_TABLE_12_TC_AUX_TABLE_13_TC_AUX_TABLE_14_TC_AUX_TABLE_15_TC_AUX_TABLE_16_TC_AUX_TABLE_17_TC_AUX_TABLE_18_TC_AUX_TABLE_19_TC_AUX_TABLE_20_TC_AUX_TABLE_21_TC_AUX_TABLE_22_TC_AUX_TABLE_23_TC_AUX_TABLE_24_TC_AUX_TABLE_25_TC_AUX_TABLE_26_TC_AUX_TABLE_27_TC_AUX_TABLE_28_TC_AUX_TABLE_29_TC_AUX_TABLE_30_TC_AUX_TABLE_31_TC_AUX_TABLE_32_TC_AUX_TABLE_33_TC_AUX_TABLE_34_TC_AUX_TABLE_35_TC_AUX_TABLE_36_TC_AUX_TABLE_37_TC_AUX_TABLE_38_TC_AUX_TABLE_39_TC_AUX_TABLE_40_TC_AUX_TABLE_41_TC_AUX_TABLE_42_TC_AUX_TABLE_43_TC_AUX_TABLE_44_TC_AUX_TABLE_45_LC_AUX_TABLE_1_CF_AUX_TABLE_1_CF_AUX_TABLE_2_CF_AUX_TABLE_3_CF_AUX_TABLE_4_CF_AUX_TABLE_5_CF_AUX_TABLE_6_CF_AUX_TABLE_7_CF_AUX_TABLE_8_CF_AUX_TABLE_9_CF_AUX_TABLE_10_CF_AUX_TABLE_11_CF_AUX_TABLE_12_CF_AUX_TABLE_13_CF_AUX_TABLE_14_CF_AUX_TABLE_15_CF_AUX_TABLE_16_CF_AUX_TABLE_17_CF_AUX_TABLE_18_CF_AUX_TABLE_19_CF_AUX_TABLE_20_CF_AUX_TABLE_21_CF_AUX_TABLE_22_CF_AUX_TABLE_23_CF_AUX_TABLE_24_CF_AUX_TABLE_25_CF_AUX_TABLE_26_CF_AUX_TABLE_27_CF_AUX_TABLE_28_CF_AUX_TABLE_29_CF_AUX_TABLE_30_CF_AUX_TABLE_31_CF_AUX_TABLE_32_CF_AUX_TABLE_33_CF_AUX_TABLE_34_CF_AUX_TABLE_35_CF_AUX_TABLE_36_CF_AUX_TABLE_37_CF_AUX_TABLE_38_CF_AUX_TABLE_39_CF_AUX_TABLE_40_CF_AUX_TABLE_41_CF_AUX_TABLE_42_CF_AUX_TABLE_43_CF_AUX_TABLE_44_CF_AUX_TABLE_45_CF_AUX_TABLE_46_CF_AUX_TABLE_47_CF_AUX_TABLE_48_CF_AUX_TABLE_49_CF_AUX_TABLE_50_CF_AUX_TABLE_51_CF_AUX_TABLE_52_CF_AUX_TABLE_53_CF_AUX_TABLE_54_CF_AUX_TABLE_55_CF_AUX_TABLE_56_CF_AUX_TABLE_57_CF_AUX_TABLE_58_CF_AUX_TABLE_59_CF_AUX_TABLE_60_CF_AUX_TABLE_61_CF_AUX_TABLE_62_CF_AUX_TABLE_63_CF_AUX_TABLE_64_CF_AUX_TABLE_65_CF_AUX_TABLE_66_CF_AUX_TABLE_67_CF_AUX_TABLE_68_CF_AUX_TABLE_69_CF_AUX_TABLE_70_CF_AUX_TABLE_71_CF_AUX_TABLE_72_CF_AUX_TABLE_73_IVCF_AUX_TABLE_1_IVCF_AUX_TABLE_2_IVCF_AUX_TABLE_3_IVCF_AUX_TABLE_4_IVCF_AUX_TABLE_5_IVCF_AUX_TABLE_6_IVCF_AUX_TABLE_7_IVCF_AUX_TABLE_8_IVCF_AUX_TABLE_9_IVCF_AUX_TABLE_10_IVCF_AUX_TABLE_11_IVCF_AUX_TABLE_12_IVCF_AUX_TABLE_13_IVCF_AUX_TABLE_14_IVCF_AUX_TABLE_15_IVCF_AUX_TABLE_16_IVCF_AUX_TABLE_17_IVCF_AUX_TABLE_18_IVCF_AUX_TABLE_19_IVCF_AUX_TABLE_20_IVCF_AUX_TABLE_21_IVCF_AUX_TABLE_22_IVCF_AUX_TABLE_23_IVCF_AUX_TABLE_24_IVCF_AUX_TABLE_25_IVCF_AUX_TABLE_26_IVCF_AUX_TABLE_27_IVCF_AUX_TABLE_28_Perl_croak_no_mem_ext.oomp_Perl_new_version.underscore_custom_op_register_vtbl_these_details_builtins_field_attributes_argvout_vtbl_svshorttypenames_magic_names_svtypenames_PL_AMG_names_update_functions_category_names_dfs_alg_PerlIO_scalar_context_name_PL_feature_bits_Perl_pp_gmtime.dayname_Perl_pp_gmtime.monname_uni_prop_ptrs_UNI_prop_value_ptrs_UNI_age_values_UNI_ahex_values_UNI_bc_values_UNI_blk_values_UNI_bpt_values_UNI_ccc_values_UNI_dt_values_UNI_ea_values_UNI_gc_values_UNI_gcb_values_UNI_hst_values_UNI_identifierstatus_values_UNI_identifiertype_values_UNI_incb_values_UNI_inpc_values_UNI_insc_values_UNI_jg_values_UNI_jt_values_UNI_lb_values_UNI_nfcqc_values_UNI_nfdqc_values_UNI_nt_values_UNI_nv_values_UNI_sb_values_UNI_sc_values_UNI_vo_values_UNI_wb_values_SCX_AUX_TABLE_ptrs_Perl_scan_num.bases_Perl_scan_num.Bases_Perl_scan_num.maxima_UC_AUX_TABLE_ptrs_TC_AUX_TABLE_ptrs_LC_AUX_TABLE_ptrs_CF_AUX_TABLE_ptrs_IVCF_AUX_TABLE_ptrs_map_LC_ALL_position_to_index__MergedGlobals oZ oFfXw7l`  2libperl.dylibFn hlX_z cP؂'GXofkOX||zڽH,XofkOX||zڽH,>DOa.fmo'K: ݙ .$6r'^efߨLTa!SRSEQO5'}Id4Q,8|T)r#m;0t!4woŃw)*5x`ms,%}uy|a|-Vy5'u?A8UQh YTq=#*Po̔ql U~'/WDzraJ1h?uvTEDxƹwHgty#{ B_{26}ZDV/;ݫ\[Ze~p tĤ)qQGxI@HI=֭ɮ,CA.*AzZ*hiXvDD)k<aq{ILuʦj_:hާDs5)߁z7w^(8o䆉N\93 w]L,~3#]?֓mɛ010\{IJuKTB(][(Ҳ ݾaGՄġ2OT6q#!9 vyQlA?_޷ջ7ˆ/0?T˶(c}n+qh*)l-,`UGQnvMlWRHƜ*X`&ؓĞaܻOq򾡄zo&c12CV>)!,lӜ_u%((ڷ:-q!\;*md69!8Y{R%'ӎoeg]:DP;ޛ(p9zqqjObn'*,F/8\u8o}X;dM)sDg3-ƕ"A~'׋%[[413}'ql茥:v?ѷ nhLLA;0C$PnV"!tOX¼#8GlW|3-0oGgaxu,~.q3f Ao~vdH1PڕZ ̑f-T 0Xvի( i}ɔu*44N7@3 Wz'?RT{T6TU`ȥT]Θ*hH70}+f }c.d1]R.h:n pL< {vv5zZ33;M\XXMOEV98*҃ٞ GuFVS3Xٚ+M#C4b꫅)-c=?D?5>b{3%gF~csC߲HNyNa1#x7ȸt|P G 8 x((IW5kզ2ufc@u%r~u vãXQf9hq9^*}y_ VO'$x97u-c^pC1;S(c[ JF"T2c/Ng>b{ p nuq[_htfs0ڏfru#\kV\9vBCU©a5ߐg{]M#R ;bf DR!1չFzp` NJ&T+ N4sz &,ɎIx֪xف^ZM~yYY2(TNLpƚMH934[E|-:{=$,TNn.v9vZ8mrQ! A;E7W'ñ!EYW{{R0H@ D8qp98=:[9F&?XUgKq ]*)"蚹DjDNuĝGjz([9p IdFu!$MPږCZt: IdHY3X.UI3r"zMYV.T$WxNG646LU-"\tl<$8`Lt)Ԩث[-G CCAI|Q>0PQHZHRw[?ٵ"mΤS-b2Ӆ3M6lEY0&n)9ssb ߚ,;ro#N0!N"@9%CGisS?MObV<:ktD:ڹ?,KQr)$QFb~2GUr)Ÿu\wh<?fOhe5aPB'a%ֵq~I"NnI aZHe4 g7X9 ݃q҈|$W w#uk? !zKgts7;?+U-,UWF󨗱r[sDxo(A\ r]+zeBBR age/3,z{ Qc]3eVy}4h$ɋh߳rc<|-SzhːUۄ4{' u2N|Ek= bMU$tT9dtѤ[G}{ u?*:B{t48nSp]a78@ݶQMI1J&.%x#;:2ƹP}l <%27HklǗR@ q?T!Yj!ΓwZ%ߡ5M?#CxNq3| d;?6`:/*Oujdacz^1[qӗ=[{>މZq &fٻin Ft+۵C,IEy&ާ6&ϰ0'l),UqnjE3U%D(i1Qm5Rh`$ocjO4d+{z'eK)C1Sy inU#yJO[haYOJy~$ k:?])|3oZh,z"no[v,|J Vx5^Q@,pN^ R^v>\]ubW Q,*L7P2[~4\ɳSo!t{&z{K9'(\I(œOp+;d: U˔ N/Tq,&NzgNa\ɷKωvajZO)<TxU=V#gljSS/Iz6}h9+T@{"O":`[ _r6J3Qiؚ eslurB/cw]I|`tK3+aJp®vhp=NhU}F^T;Sc_7qpf!`SZ zw$c-eSO;!+R)\UgTXR8uh臸@i= SvMv㇧0>*^7A(h7LʑCnT.{Q[yϝ< }4?r"ż:˄5e99/-Ʃ戱x#|gMvgR8xWH--=2dpQ ux%D!Uָ),̌j}4n@g3j >ڧ划M:}ꮾk!@yB4Zצ yc+G9/l0RX,c al\_ L@~;+aFMjOlbrStt*{HB$h :ɢr4tUV1 -(R=H-@A$ :@oܛH!<v A?L]xtpQw㸰fG;Ir9TY.f~Z,|ܵu:u<Շ>0 kS;Δ/pJ1!:YܰGd_N֪8%IR?>a}myd+-A([y34~?HkU zKfy16=> \ȨIPRV:6+gѥ4|HQ ӚH9WEF'kk]q*ùY [RfU2j :bpQQ1ɡv+?cmq#K/VBЅ4&B̺0&vM4Q%_đSA7+T밸diט\ b ǰEU-NJŸwu*sLXk89EQM/0ÁϰNs}-=5J qNjaU-ل.p=ӽ9z :˨CO2&v mG@jU\?n<)$|7Gyq66 1# ,GAVgoЂYTh9Ns|b;\7dYM_/Ȼ;{޺ď^emDJB[=g6 I_*0^{@+G\^AtZӞ;QXDz&$~LMųЏ01d_1ɩwпVPL2!C0[6[(5$.)fc9;佴|IZqN2ՌЯHvd-Ć>9uD3WDM8Ԃ{@϶/C _QK\+:?1N))UZp-6h,' DS+\cE #BJ8 |eiZaFwr^*{o"|*4HF_awSfcb;ulYʈ=rՃe}S*@QKk'=鿠 kp?ùH>iEM:L:|ȍZG.ސ;yj)\gpaQ邔UՌ('!EC69=g+[WݭT5'~6Kc-'r/yQ ?8Ŭ;V .Mp~8-dc¼ ĞTPxb,q.fwz{J+ʖJ>s*נ-'qrdh% ϶l^0_dev11|Z+Ȕ{˺f4$s (RbMh4 is[CbPf]EDiZD8|lFFߗ+ȭ#$kD`T  R7q}~y;q-NsqŴ]A:T(f5 w%m%ZN;b srq[ KU)&R9BqAzg>@ }7rt/5vlddCR,:K䒔 @aulBc±ǐ9`n#JJN.8iL3PwcGV BѲΒj fpPT,τ xSqxNsX ɯ@B-좫)Eɗxb,Q eyY-JU+ҔՠNQX̏(S>^~mm[ML=Лbɑ8[A0<)(KcP9 =4qW JԲ⃐qbQ"@[{ MSC4VVf"x:%jjSmRX5Wݺ[{9bKsn,ݻ呉*oU)j^$%;zR EP_>܀n "3 Dwԃ~/B}0 hi@ih74;b|[ಙ5+,_/n+wI,P*\y8azSQIvuy \k uPu Zso %pm !d Ǚgj7u^4Z G|}  6c$% r8bF(WiT2;$jG,uȽg])%<{{j^yݓzE,5{kirX`QT숯@!NɅ-*d`FO ZI"6qo05 #ZQ-&6ge9kUWxk!_t(`Zx)iQ!+rqI<^d؋Y[^6*eE Ix@Ȼ/HJImo̤Sw7nϏB*c X k~6@{4[Nډ3a(RuP[.F FoE.&}ĸ]$WTPZo[=ȳ>(㵘{RaAڬ/:49ϖ i},6ZysFQipz(m@5.WH:1ȟ?AAXmk8Kj~(y:֑ôݱ̪82۩* p% {E2٠B7T-V廙b`TB he{CRA$̪X5m@aW'B%lїٍM_U6`~AϙM.R .i{o믡5U/ަ\_4U/^hԡyZM_ȱ{"%5oFQ / JXaj  -{s xld}U*M??R@USdi(徏`oWme?**=vԲ6} 9ȫ Ts o5ͳT/݅ iB^#kڢil4{cIZ%|Ju[%džOڸr;GtnWVh@r3 -묞C[L;xYM~?H';%"ټ|4xcV5< *t+-Fs%Uq| Kz-3 JOp/b[D-$MBq< )夐K 87.`=a\@λ4wy, L A.Ʃy 4TZG\uZ\B2!g:: .;?)O:N! e" 񣕃U g[!pf'] #V` >6 x܃TiO甗rs22!=/ʹ@W2'A6V}ъ޶™g]9%,Zm):łn>j L*wLW^$4P'֝pK2-;4dBxuBe hf Th8Ң'y9iQp&"@ SLV;G2]_>q!9k2T`W9}4ٽ6>3?'[zWhJG쯙ǚk8 sD?RE _+{W 9RԬKk#P@鎧9P#g:[V{}ğoUdX=^!dW1qVW㖝Fdpq[{ eSL A2Lg!Hܵ*Cžn=B/uQ(6c)@XY(7|3A&8릌!<5*øE )T׋B% FZ+X @4\Н z͵о /)w|HȖ]v8M8X?NhZʮnEVo0MbkEgd:w<TaurrY6tMYȮ_?%<3ɼ?#U (Sg d.OSL(nP92S o+,JfYwHNmЧ.9B̙4Ga!ayۥ&ҺM;fPJ c] x5XG l[͛-{dH|T!-9|adv[㩇E|m!էϮs8!(يD5*y'UZkz̙m]0JK-ywD!l6fв+%`~ ^]US7:UJ;IR~rCϫs] ёQ ):sC&=qx]aCD`F) A(eWJW^NL;anbE@M=pW@nVh1Z@{l|sB@79Jn]HJGvsqc!HMIS5=-7hmY BE;m@: |9 Q]֤MyGٻ9 HZfvZRpj #oU?JXL,Z~XADtg>Q択?߸GWFpЉNf༾YO^uѐEw"bx//aG k[TQ^Z3fSVUG.rغh}T$ˣ@B'YL{PmL3v9yx2r0ʢ6C)2s?LƗI&c#ZF$Fo؍ꩲNh3uwgR. H9(ܷrP <a8ҔdK5r?# `0/r߃(!K񻣼aYhA?ӿ4=!2r^ T:.\>X;GUwfۢWxh*˕%A0dn;80]BKmDp R$ ܹ$4ʟ7&V3rnx*RFf?/螝Ό!FY^EK茅9[50gqTak!|/@ cX*Va]r\PNǡAȡEВb $2*frex {_-eqlCwh"[ۖ iXpAQ#CDv}U 0-א$9O.Nܸ+J^ Cx02Q?km7$8ipRe_; {3`G@hvcSߨ#Ց 8GHk\!:ԸV6;.-ZY%ٺn(+tEǦԬhϲBE~=ÁrJFg[ 9ʎn@#⽣aĂ[ٔ؈`I؈5Jׇ(}LEe/T[ote6Ƥhp&A :fk&]wD05jQrR﹔s svdYP0&ɈJ> !?B^)$WGiN]g"*#7-&98u*Bz~/3NIe4n;/V̦”볷Mz[yh``=_K~ymXnK[kJe`seo4F_ive lՔqt+xŬE@slt5d0,З/]!L(H?z[.aO( 'Nd'*Yy ~6i7\nSwIMgiYnEh8;np7 4;E >a# >nk>>g [_iw=+@ͷ4Av"<.sCÝV9~c80{ʄt8Y $,U sx; f$cԋ|E&v#di?&+{8<{s`$ۙx;/˦gj=Tz9x"#-fnC(lnZ"4gȽr=\~/[eq9S@ÀdC*9p[+kێlzh1U F|dhy^׭n7AN{:"T,keUz 5J,Y ǡ ږ84Vy¢jvcDEy=,O\ 'C+sQ@ wĎִI_{W7b{ G}|z^^m'ܥyt <_h$dɨY7KEP!_Y TIN'7 YyIō[LP\fz9jql:6HBz<^[I ASI2[B߻;I,żYOU!JkC6A+ L >iώѮ8Y+HUyi>:)ij l( QvҺ8(j}R` | #5,b;󙤅g'w/M i;E]3KMޞD}RH̷i]^saPIppL.wzG׆"hri.C^̉sŀR֩EYWiu3 0W .cmiR{Kd;n]VQA|b8ʪAh/"l{7m?< r \'*zC{ `6S~#-l=&0|kg!ъOB%8IfX0Ǯjo-6 2*kX]n2~Oޒڄ7F)s{&Efۣ$t<1V1Kw9]LQ* UbUUo}oC.c4F]%3$Ʌ8K<΅_N"G;k0; %37;۬^o`#zYj6@i+{*Yo D ՙ< y+NݘDhNϛ;x[ #08ڑi^l5;k3ę4l?`aZJJ2QJOP09q܆%1 FNK=8PB\{N%}Z(jrc`]@RUK#8i_p5r (@rŽSC5kvaT}s߶,1}ĂpƮ5YW4?41VMTF[W]-(x.Pm<6\cZ vŒ܆%eIhde,s:v'6pX6f2:z#lzyo\OarR!6`ݷ``ͨ˩?Vu I׆N|^T-|?q+zq] vюj/PzPӵ0SN_:AŗʽZ! g/D`3䋛.]a|ܱدS5ϭdK %>$w> &wKe>2^JE{hsSiECc;&fp w?uw棁EuĞHG4}\st( 1 )i2JOb~iҴP"RżvP*Oဴµ۲F?+K,A "`EM&,%Aˤ1gxF^*AӃիcTBhԣenig06ZRah&y=qKefkӹLz)v @C*L==vpU*G7 6pHOw-j ^4' ";gCW3Vd9at7,I."[yo`Xa*8Eɢ"I6oa/m䩆${d\{fa/ak^ʷ<5V ;mV)v$n w-~Hmܶ_;wnK[ﺛ&QAb'G&)fHLĎx֐ ً-'&C-Dzl&֜%~M_t2weR풁L!'"9htv?u;(.و1 MrZtSz,UiV$B+j rܸ͐:.7mL_' JVy%X̍;' O@vMO1sRy7Z)3NJS\-V٠?&Tpκ`cn$SѬ 0;*A0i)+ r)~|^9y35>X\`xvƻޕ&vTϫ;7pt3g5|5pYRM呄jVU*B@8́As^vD]g !~ZZ'1OR@8{vVVLwiD5({`FG^d-Yb# ER(?ѴBtn|;/6tj  `]k^Bڧ#*7>ǖG0!9\HK!ƻma;^ޜobj4$T*.= RV6bɧbۥKQ)H{;CCF!o!tV! Bh@Trt- kL5Z|[cDgހqaek@) eOri|؜CEf^v*$Mv0u \ld8Lcۉ+jԦIn{[غUjjQLcjLˆ41c;ǽdX#\Fˌ5Yz]˿j^'y;X@ >hfCq3^c,#oLװ_ks+PyY:lެHJv $ ;nfÊ"9M5SȓDYASY#RWł{x=Z)͂94(\B?aj^k~~I ZD- EU YZl.JHW`Fq";aP/mxJXLi1䢙pƁ\x{ZpRt6a!=ݤW7SWL /GzI܅_$E?Q C6(;S'!eg31/VDxI1zr1DHu R}fޓ%Щ=¼-D~͇6YQuZw-TLj?ur>=YŶd XS?ĭz#6oj׫ U%˂A6]#']F|߸,-(T[3E=ks2FBGtugsF9 =V$Y6YZqpzLfl픴]=x$?~tEuMny`rpnEDdM׎Mtib=vpH̎FƼkadM25"/CW?pFI΍;SXR r?'RObz]R斷 Pu~f/Ց=|Ƴ` 4xy8YkpTm~f^Nb~:9btr6]Rqo/vT>^-x۵ _SY~$|IʌTx* ̱8D zKL|UH ?OU쇋0w/Uk%U;k:h*Nצqx2SoY|Pd%UW^T ;Ei Aٳ5VkYFJxdcmV( gRkE3ؗT)xml7knaP֣ȽTqcݼ~tJ] 0KI(j#QK7T X[o2qi{_6~VB̖phR d[*@Ja3-DE#VnTndаfYxS1سh2n X!,X]8?4!iڔ &5ڎ+9odըqjGWif[~-wǦVr\*tS:7j1g٠ݐM!\A6౎/0UY3 {SUgW9a1`ONnɅ/T` yHS*UVU1X|6+ZΝP4y?mF&k 7&v薙8@3[RSJr k578*>Qy7]T8=r" kK{/vħ^rOw'aRO*#nAW)k xxȜw~0 j@d30֯W}H0酡֩'RUn{ϋ{TJicak]+WUG1W12a6-c<^j*{aI_Bh#˽s?M6#e~V#zKłso8nIŋxsh׃2A;_ۗ5"TվgNK&3z'/|@ ;m˝;(UެGKG׼@li3ݖd34~ O3B&dޠ|!|)Uwڷ@rhz) +xuոo|l6彘,75T.RҽG*g3SRf}Ҩ]3?&qEeSF2F*Az.\Lu(DpHZ>^.pCsdv hT( cm[H&+ef9~Z?bgPs_ЬSog uo] 8]}P@cUa3JJ.6+9Z $\L67鯾̥?v {!/SY=6ΞhDXWVn^RR `+A'0=5}6ٟB9vAYMcQeǜiI]"Q . Q[=< S tHޕA V>v?ٛނ jxo08g a1b$w=/Mz)J.9C>HBtsډ냽hXv}1(;^[/\ONsTɄ9ߡQԉuYOfhxG~S͗#';dm#AnxgT/ܸsv뾴*6۹ BLt8ĘPkЗ-ub?J i6lv>|C2atWYK?1"TVPf*t2T ЊRE }S {x\Z&mZ[5qf[)׫Z1d01J#^oDܕO6\ƣ5tA򶰑"XXPlJ[rjS#rHv;|'OE3t~?&C?7NL#7N\W~.:m[9+e&neNB&eU11Cz񎣯>,#8tYqҶR|M!2o'a?M$3TNQs)8beqSS}CZt熤DSuMِwJzF-nyѕ?SklWNٷQ]]+)b#tP\+ZH꡾Qgkp:ihxtRi: 0Cm앆 H*㟫MB_Lc= c̑ r4B(_tJqz72R J7PKI!W[_{n) Y;lS VB"5z; vͺ$. 'J,vو|F#o{zWz_ֿN[l*X5l& 4=α1텦.-1smB7䞌B:G+J:/2fd6bI91H$Oqbs" ̶'QUgҖQU6BxUv3aP 1i\!aPDZ˯>ڐ}MյވLȔ6R0=R%; Tq|L:뮀ʮ{  u:|^rV[gchq$BĮP쩼\K]M(06%Ս0WUɣYib0bf|OO̥Gx]eht#!3";y""#eA(L_ŏٌ 5 X}꒵;oZ0[k~R;b"O N""}.0^Dh4.bKlpmLɣĒThlBCK虶\ZqBn{,JRzK띣2U:#~!Q>D[\m9'4bvH?{*9tz 4"Xmn߹ *x]q2ͦr!uh8z -lH)%!엻=xѓ1Wz+ fmFb2ȂOf!\w}Ѩ_-Phʜ"WYjhSopU5JkD;0$2)v͗뽼2Hc"zIiP^a! Lf K\.+G h }l+bChDԅHiALe8YEbDؿ/iߤk~-rHjr(u=(bCUSOy 7ͷ`E\7W gF"bbYJ 3i&CJ7׵C˗W_n+kk S,8z+ȳҹ1|_xn iNjH&U1wz-p'`9zxr^a=E:\Y\-Jlk"mΕNjn&eWQK?^;}*Vúb_; =u4=4Ozk_;kKͷkrE2X+ڡY ӹG2e<*/,Mn쨪RbZzrV;dqs[ `)v5}e&hpga"!P {^{|U7z#iS >D+ uk$c/{f ߓzNcULihey q+:?ÆzMi/hmi ƥ>ab5ȇ*Н; e?]^1ƯCD˵®'끾 n02H%$BupaǞ3'I,5$WurٍG{2CPP/Ay s0j;Is'RqNabr F1X=%w[ngzyĔ>j{"DAe7eHJTD/"<8zCG.ࢥ=ÕdД`kT*OS_ew2FW<MD^RR-6i;tP@"eK*`,XJ>;PɈDw>xDn A59 k=5tR"Ar42J Pl$^9fDX| ti;+SH}O8ĪsVXUw0N`»h>aBK{F+#)Pg7- lju?jl,el3o^^2 J"wmvԲu *>E?1)\_ݪ b/߃")Jqh=On<0̛(+#m; D!:&-ӑxVT `Bz|E#bvLfF~ԯig52bzb!PƘ7fP]QN#V1n[XRms66>7A^^7DףjB RC]v+HM2Tɖ6LfPP ȅwQPnl] XiC=N;~pVϩ"SZiV\yze EEa 0O8xn!,* ۽쨟/c_# & mp̾NA]F˭v@S0VԤ;Uc_PpRQ8;Hd58 jG2dA:IV[e^Ib^Rqd d9SZ&CGɶȏZzˊqS̭ R ̮_{=) AnhOPubO\2S:oB=.^2Si3 IOl/BÚocdAЌcu.ŖrHUBbjS! 6k(Bfń]ڻ pJIv(&(x?tþtbCϳ=<1B6)#CMLG ra#}y14 _ I]d/a 3{ >"AwNc\ގ3?)zYLE>'=A,R߳ḂX3 [~(UʴIAhFчIoVf.%ry>$oɅr[g{`'^[gfl'wZ(y2 X8ꓚ=^EĽ+{ =P|c0*n`_7Ǡ5WpgMP5^Y3f)(~?!>0vj=*FY' $wb"8-hFMboe•C:-qb-0J Psyz0c9J*.mXoy5yz"7*! V~x,G,%uT1pz?h5~{NZkoS0ɾ-K Z7o ߷ƶQ~\QەPᅍ|⇠PhcIkGs3/8XtW4STsqNe3=P7kQEz'0dnK^P(%עWTZݥ (lD҂dH{[.J8#=[" JMZtoMb} i+f21@Kwh@wF "zH,<"ep D##a94*p,Nvei?C"݇WMZ7k2`-nL2_3ǖ 4j0#*WjX7 {=U@0lozaEK,r&QغdBfuxib;TK|0""Z/_!|[d?IWlnfx?&/a){S,i/F<`v+ynVJ{ Å4%vl D5qϷ2Bg`}XofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,8 X5; ے2R0YWndtgX\`viK}0x3?}XofkOX||zڽH,XofkOX||zڽH,v3Aެ03'Ì;ǩ@|tZ\^{\sOӥC0CZ"?_AFc 8\b41z_=up,FThPzωB1saRYw T)*yMՐ HnSޝAsՑ:fע 8Zi {Pfr' ԚK?E+C.e  W-NJvVH'XղБGK9Z^Mlku2&j >tAw" i_/~A0RGͥwa)JaQ2T'`d;sVsAn {ǮWOqW=VEJx]4Q1xٵ\eyREpU0^f/skr-\6cA\h6' -><32'#&JxpmK`Rܧ"dp ah3A…'qQ.~p:PP=r7$-B9mX/gb~ˁG!KMmޙd=g?jp}ep^=/Ᶎ h ̲o*90EM1ӿyⲫ+tw p1 *QI٫xV~:!ڭ ~9Hߞ輯gnv%R]{}::ma ȓAݽr݁9&8<.^F{7q(C^@gk-rFg`+{6 {awG9ǭ( ܰ]K4@alSI=r^d9Ra.y+?S_ ޿ɞD+]GI7 Jf4u@c&{Q <f ^,sSw-Y֋Bx.C؊=w1a >~`HY(?%9ʪքukz*.{ †fAIF( 8{"E@Wx,GCGȬ|XI.9bSVtnE7!m :j =d=@sS(jk *-3{r2 _؉2`A:QZc" x*hi`^m) g^3 O/!SVP\ϕrg-#ZvKO p_b) h@50@@($6Tx 0@P\lz"4BN`l~ 0@\l|___chkstk_darwin___error___sprintf_chk___stack_chk_fail___stack_chk_guard___stderrp___strcpy_chk_access_bzero_chmod_close_closedir_environ_execve_execvp_exit_fclose_fopen_fork_fprintf_fread_free_fseek_getpid_getpwuid_getuid_lseek_malloc_memcpy_memmove_mkdir_open_opendir_read_readdir_realloc_rename_rmdir_sprintf_stat_strchr_strcmp_strdup_strlen_strncmp_strrchr_strtok_sysctlbyname_system_unlink_vfprintf_waitpid_write_xleanupurrent_exec%̃eArnameGxbasenamec*diMenv_cleanYfindprog_init_envdmktmpdirjsetup_libpathpar_vp_version_infoܹfinalinitupdateanitise_tmpha__mh_execute_header get_username_from_getpwuid mainpread_magicsx,4 t@ @"? [ be*(:pEMU_GisS}TUVWXYZ[\]^_`a b c $d /e :f Eg Ph [i fj qk|lmnopqrstuvwx yz!{,|7}B~MXcny  !!)"4"?#J#U$`$k%v%&&''(())**++,,-&-1.<.G/R/]0h0s1~122334455667 78!8-99œ9E9L2]8AFYS<<edLnA{KD<BMLh\\vc d$-<Nalz #,39BHQZbirx __mh_execute_header_get_username_from_getpwuid_main_par_basename_par_cleanup_par_current_exec_par_die_par_dirname_par_env_clean_par_findprog_par_init_env_par_mktmpdir_par_setup_libpath_pp_version_info_read_magic_sanitise_tmp_sha_final_sha_init_sha_update___chkstk_darwin___error___sprintf_chk___stack_chk_fail___stack_chk_guard___stderrp___strcpy_chk_access_bzero_chmod_close_closedir_environ_execve_execvp_exit_fclose_fopen_fork_fprintf_fread_free_fseek_getpid_getpwuid_getuid_lseek_malloc_memcpy_memmove_mkdir_open_opendir_read_readdir_realloc_rename_rmdir_sprintf_stat_strchr_strcmp_strdup_strlen_strncmp_strrchr_strtok_sysctlbyname_system_unlink_vfprintf_waitpid_write_par_setenv_par_rmtmpdir_extract_embedded_file_sha_transform_embedded_files_PAR_MAGIC_file00_file01_file00_0_file00_1_file00_2_file01_0_file01_1_file01_2_file01_3_file01_4_file01_5_file01_6_file01_7_file01_8_file01_9_file01_10_file01_11_file01_12_file01_13_file01_14_file01_15_file01_16_file01_17_file01_18_file01_19_file01_20_file01_21_file01_22_file01_23_file01_24_file01_25_file01_26_file01_27_file01_28_file01_29_file01_30_file01_31_file01_32_file01_33_file01_34_file01_35_file01_36_file01_37_file01_38_file01_39_file01_40_file01_41_file01_42_file01_43_file01_44_file01_45_file01_46_file01_47_file01_48_file01_49_file01_50_file01_51_file01_52_file01_53_file01_54_file01_55_file01_56_file01_57_file01_58_file01_59_file01_60_file01_61_file01_62_file01_63_file01_64_file01_65_file01_66_file01_67_file01_68_file01_69_file01_70_file01_71_file01_72_file01_73_file01_74_file01_75_file01_76_file01_77_file01_78_file01_79_file01_80_file01_81_file01_82_file01_83_file01_84_file01_85_file01_86_file01_87_file01_88_file01_89_file01_90_file01_91_file01_92_file01_93_file01_94_file01_95_file01_96_file01_97_file01_98_file01_99_file01_100_file01_101_file01_102_file01_103_file01_104_file01_105_file01_106_file01_107_file01_108_file01_109_file01_110_file01_111_par_setenv.alloced t t]X:  ;boot{ulς) p2s6JXofkOX||zڽH,XofkOX||zڽH,v~;!χctŷv8LKceo>@4B#*n+zMgfZ8秮ϱſߥ2*'y]K`6 \&-ؖ;?bĂRq~&A_ 0! tdU7Dp"GR9>J"{e8̭XofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,$˫ݫS9UKy`%3<*XofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,sFG+9W'ci0u{#ҽbgfI6uՖ}l/Sx0 Z$$x'2VcbAa#8&/i3*\}. ԓZ6s/ zk;P}94[!gK0>K7on{d4/)Ąv$1O-cXc?9 9 f)Kx\7 W򈔡ʅ2bak#^VN-r54+;sXF|XofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,r+hD1y[Ĕ ,„XofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,䱈7HT6*Q8|#-;S|oԴܸQ+ ̇vz-#}OE}"myo6@hdiJXofkOX||zڽH,fx↧0.)nS6+`~*a3YR(Da|&[{AWܬE^` :B9;^4fY+!p [. W ݕ*:Hۮ 7'}'$p7Dñk߽?P\S0}lep|mw1Oy[`Oq-=TjIJ(x>SA~x(Z_pB0X4'Tdm=Z>U͹ G^s~.\9pt񵢇0r1l*HFAd.ReH5͝nVfdD$f8mF*aSCM;V;jrN)Y"Lk_CVE8bCWm %LWk c+\)DZ+!yQӕWnbˌ`e7%qG~љZsJrKC 4L3E4 ":6*N` NmMz|_̝dPY2y#vBR:tYS踖1χ]3:sӀE,} .Rc{jwCqtʯ&rBKBx5 24k,AAw"ˀ1"Th[țXlKevR,/,8 u5kW8YW&B{Rl1\؋7~^y>!S%1kLc,$;T(J9pu;:嘾$.MуCƝ`FKw>=!ҚA^YM{cdr%͛Cԑwnf>tRʲ,grD3~y Ư@4|CճT-ס]Nx63hWR$JxMM0d+NYPTO^8ψyTKX7fJG,|牯jbJ f>\*^s:j/،|idKȐ޿hr\3HnxD {'<9yҚ=~˺mVz2V3(\CQ>x9C`¿2 JR ̶*>+u24eȥ`d͛0"?WK[2SNHUOr(Bw[QsL #au v `x"g_|AE&u[\eb" Ɣ &Y̽Жz䗰fXFfYA"o[3 >VUp|A.D}gR!@`QC`~-HQJsrƼ<3l4x&Zs XO@T?{'}_$4)zO@EXSھn?Iѫ"} ~tHP_khP7cQ}ɡZgׅ.SC+]o|ⱚ5[bۗLYU7Z2 MLptqS$9txhNМOn64Y,ppZoXM =kTf$2Ҏ ۂa"H.xdMY~X^ '|c-$'7adž8׶J712i=*;wc :Yeiw96FH֊lqCԁu(QZ|#Lbʜl#.dZ=c/ s=] c?>Dt*y =-7c8Zi4-WȆ(jznuT_j+y'eɨ/B]Nwi275շfJro p5d#agJ-9t&Ya$3VBfYؙJ\mț7gƋ{ƧxH8uS}BLSZo8%5xh u JERZ ̫Z;0;ͳN 9|)H*>*rb;0op!e< ^ыd}|CuRe>iՉ4&&)oj>XJ;8把wl7zΞ! ã& lb{^ zBqL}.7DPzP9|r; 6$Q9 Zcw2b{Td8p1#ůA䝣 {SN^8b4/q{f~WvP#:^HQy5xľ8ɓnO_ #&I:t=]{[ZkKq5I X08E<˖)b,Y`:h,OjL-ݚ.BSMُ]srْ3ol\KWHD<$/dUJL!QUkQ\=&5~ToȯT{ tskJky䒙UגQ`jUsUK*n%d``TsjLd*I>RHúmDZ#'2.%O+%*/ 4 i:#"tn<5ĕ${_>&VWhv!_uEgetf%NL0ڮ@St#l]z3y4f@89 ~Fc !t_nE& I hUx Ro pA6ghC_AuoD!n*Y(d|tLykVD 5l=U+M.tdPpq=Gg@NT 6Dj:PnZ ևi:Xr pń}99 l~39!]DpEbIJ]V/BQTe?>&rq(C>vhQ-Y {!yy7 B@ K]13P:~GgʏOXs`r#:`(0E=}'yȯ!:fpp큦5Hl ׼δ4W|8ŬC:0B CcYߟxZw<)M ,^%&|}P!&QZ'I,Jׂ>Bjz(QO^ޞ,*:e eC6/?S&B0B+|l7/2dqp0˄H2-jBB,[Dk jI[\ֱqtxÀOj+q|c9\?PYif q;+tT ^|g2+3 7oDZ29^a05y̴F=y:bd_Q=-K\EL7HJ۬t1_JmS=FWHU̸~4ZwLbDgw;R1twa:V0;B aߋ :}+ O{t$fl y 3p[Vt%-'0pm:AEx?V:bC6ZfbܢbԭfԣzZQE6Y\3h. Fҹ&*Myk aSL:/J+R>%vlj᝺JL8gK,?ͷ)&GBGBH>j A ׏ ;L:0.?_#q1c#i6A)+zG]G"P5ȗ3[Z#/ \pX7/^n31Z s1G?2,ݱrsAuknNP1pu_\gTfB@niVҚR+r8W Ҕھ\jㄶƬﲠ:i4#Dž0N4`LjaeyܴG6|No>m2 މ D Ev!W,pkj|d8xc&a"ei{^"n;_) *\; \gkd8+9EF:Fe?}9|+1$G.lbtKmaWwAl@x^6]eԹQ^(%x21<LGE La~5aYIQQlqy,vldh_ q-r9bqs\;ΣڝHXtq6w3J"Ʌ4#%gsK#2 㾳~/⺾Xl~OJm*:g1( mܐ!I;ϐPnN0{;8z>u-b91W!7k]u&H NGDu ?JvjܖҖgHmZ3Wl$O#,JDh>\b3>jJ}S azy }(g/$k3!Lg^^8׏B:7KVϿWV4JNJ93ZvMc ^=]vah@޷H $4!$+T.U2=ȳ%|fZd/:26/@ŽR\}[>=Wt#rGgS2lلsG6 N:hhR/)1DL4WQ%m|RDPQRC #Sdרla5 [ݤ\| Egn~|: q`H ď0yG$ ? -jq fY"M :s:o}>!^KpDyš}hڄsFedP KPeCϺX!.'聊Խ<5lTRs~ R`FtQ.S;·yZD$F oXXYʳ{ӗ ӺUa-Q).X溌(v(NSci:ݍ !TcS_`s͡*^OP9]YGXĨs*EvgWpzH$ 13@#znS34*>`b,|֚hlaŲ!ӵ]NZbF5^7{9ZJruk6W`r\}+\IXyYsW ~ư<RW!S15dҬJҐrevc*x-WN'ftQ\ %W;Mb1XD-5 [o=19-Arɥ5ni>ϣ2px9jKR{+ Kh[C]q"sN=.%Ӕ~s&3 E*}!ͧ+:fi՛MCYٞNL/ɭt# 4>}Ma4]os"wMdl 'N~PH,'L jqЏnR< W}>viê3m߶0`4HN{K+ۙ7Q6{ٵlV&flV֍C2t`M!igBG5pr~T7.@:PM8F8aw{pn !; ʖE#bMo$}R,B\30`թ(@,7ɃI06rE> /b-k#W[7=`."1)?Gx|-=gSKt|2\x& !k=bPd yt|W q@73drm X38YG?m޳RxAofeM˶s+<1ҋVa`)R"|RO=\ :|$ CyJJN~`wb[{rd\5iU[&񢳻S&Ÿ9-Vm]u<.'UXԻ`~ _<[F繏No( )={t8qWhUpיg]XJ"ܜˁOh.<G}AWt T[FM7qW`r['S ~}HĒ&_mi?aE> Eo kե{{Z/@#B$ {IZNf93Cg.;c@|^S"y*q̗VY`B2$ hBs*ܪ 7Y`JS}6/B_u\t5Vb7Qѐ}:y囋q+OP')wiH"9u4wW_i9nT%VjU}UjF/t6f:_f>yG8uj.zEBPPѤZULekn } 3?Ւh3K|26=[:l[aX"%Wh ^whsWVƞ5jµg1?0_];g"W yuL!A,U4K=m 9UGܛ鐃H- 8u%MVlwqrz$>vcsY+~Ļt,ܣtKUcq摩Zrld}Rg/cAߕ'PLC ՝4i"pS&*g{fqU>AcI ~t{ v8eʴH l;\VK^ּѥGqQ9O@YgPTCVD*QP.V#H}%k{+ᰓr3iD]H鎺DO-[z>5}Ak KB>NXބq9J?S 8a!EGukNPCҕ4clqK_TY#nUI9G'D}Y@3r -6;[=.g I kbQ ?bTb@ GO' 7y9mNRd;Mc !dN-/ a&4@QA(8J b=ErXǜQf3&YysCݢw % i+b|yB#y7v3gtL0ex9-`*|YF|uE: bR*ԅK\x:=뿅lԑn}{x8|ahVQSF#?EMn%Y4c^-O9Kw#5u[*&x[9EU k,̢]Llgw'Zt <h4'mT`T0!5"nׂc_Gy!}DDO׉%N-ޏkCXʿ3cAd"o4mRC\A%!b +9@~N*HW2hs~CYj&C¬~"Jn\ .kh7ggqqM%oړp?_^)D8XDװQ_*r<$~ãMH80۬Rd%"6),\*o72IIkAR3&tn3ol'[>*pȳKwј(N@0$YDikdv꟝ȣ@4l$> ߑZAQJd. 3P:nt}N sG.,zsrz±D,lc"TNػ[,XqtM ղz6j/6vC8{FJ;,iQ1O= 6$f-*^\ElP .g5'!*${lh^A=.Pӯv -|`_^I-Eh:5c#yZN5*f>C^#kS$];K_.ES fibU_>z5{ M!]'"GVhjƟoiPEQ#ٝy0 #Mͫi6|x>%6;=R(Uxf2퉈EL m_F)Pi+ ={SAD ]t8y*fJ2j8vc :(h/3r*d9%G0&ÔB;!@#@oDBdٛA73|'Ez+[Zt=ZeZ,d~;D:8ђK\93C="$G@@LFKX'*M XnӆV&ر<1=$L(P^PdhBHE2HBoM+-6sjY Z.šn"Q9f*XUz0lcSt)Bj1Ŋw+Yr5Ib)h^QEƏc8Xh"Z'ڪ mkؿsVRГY7,T.ݴy☳&nw."C&vS/BW[].4c2Tq) L3\DZ 86 Pӆ@f'%2Xd4yd煄,OB(b͝&ATK4B| = U_Nsrj8ji,V{2;9R0=`rbB[0AOB;naKn/yʚk~%3!=rroSebεW3L3PZN} oB B@֣n7{naSK;W-Ί8=Dˍ4TXͪ%v*uRekX]X_I*|s~x4CqcqgV!x{/8v5;4u,_:J>qݻCODhw@%w*tDK+ϸKNz2+#JW{%ä!NqVN쉊"=y1x,Z+ , 9!ܘa;PJ :t(= T ( ^fT'u%M:dVCKs&7&^~`pnZP` Kr@QoSaB|Ftpg-آCrk/c+3/?nѻ NxF`S"b'(PZF'w8v;?,&I\S> ʪCِ /.Y"Ӆ308ҦfOѹ\kÅm IZ閰(uKL*mbL7I$n {)@nGU1}cpd HAy.5 Z SU!H/.2GsW%yBP q!`<NpŶ8%Sp qu%~y(G$="Zo& lβAR%(~ yR$'8"h3D {gͥdlk)W븟2x1~rH v?SӰgMQ',tkƮJ#]MJq'WnOa $d0JXld -g/ )Le^u i㬍w-G-fcObz;w(G`OmrG?9R\^ß3F6.N'MRHư5%HB>;܎!ff`|y,ϼ?aֻzԏ~I&C}BmaG@&4`ll M07mj8{eZmnw`'VH@0i m#RbS;;&JO?dd! ?L>o-QD!4+2,a4>ِhbٹX% Jb+Jg )9m'hE{< |A]b\m)ƸSΛ+_YCngVy~ G>eF̀q5/]9ˬ/"4LjOS7eEBPpkF g35.%z:f'OjL|Yl d^^P |x h#YM[2K20yJC'Vx2bwjlu n?ĎQUѥ_ZiRP:A=Xֹ/\Js&+1/Ij0DZD(y-L.hw-6tq.I_IR~ 1R k&8צ!z^}zlٷǟ% 0.N bo:h8Md"ifHh`gRjBV1ʙ#kX^Ȫe D6Iɀ[A)mdRiiFׯrfBT71ǀ}bG>]8M;߲cƼsPF9klEG}PuOy;̒ [|L(M"&6t7[ (W\R&Œ2ԠLlz,KHDV~Jm<ᴣ"UP7m?2 z)dMpBn:}-*t`LЧ&x%@}9$RH{,ț mp7O[؂%("SW6_ڨUj-rzhGFջ*q F."a8,T4,5+.~*d3Fm?{dLZ;_hXNÀazB}fqބI\PNiSh%X=ZIdUk}M=z[ppT#J @J,4eڨk$]khSTXz&iX0@q}/ 윂?6݇S+ xZu"x+TbQ9z 2^5Iq&)Sn+ (k=Dkx{AX?Q5΄ 8)?Pg}tΔKok|c?􍳦'O6:Xm4j+ԅon,E.g3 iZQb/ # )O}:q1RИqx=$# ݟk#;p~/qTB1U؄wh6r6]|B-wyZzFp 5r~7Ku2Gr1 5ؾR|V_1^yiAΰlb .ԢwgY5H-151"&sC:[RnAN n;}(#ƒI) |&ulz/5/Jw:~$?:ҷ %Ew}z 7ޟ>35PdG,sY89g4Zo|[t2%"ޔ0rnTepBe)X3R2)m9J\bZHiy=^+::t!LfS>'A|b%vzȽ*ɀ⋵Js3꼢ְ¼ck}$ykaeT:Q6;?eI5`Y_TFBFhWE`Lf"*SW7fh$sBwc }ZZq "Ê@!-lF/ 1 75ءA k ו*0Ny&5 m@*a&)R&"2Lmq0ȦզRjkyʛzfzDJ6AkZ|N0i5gfQ^kn@u;T&vIyigxH9,k=)lhfYi)~]sbpzJu/'$+ؖ}< hCoqS +8Y>/Gt&j3% T5/A/B|F/vMP# [D { ȩ)eλ)CRMO~\idbCK90arDԓ~U@a9e@mVdۢ 7qS炧ЫBj.4F»"QyVu5D,}&Yo1 jlh ޝ\`Cr$pNmh^̶_:\P >>z7Ȗj.qכ^Oh^~I4l=?@R/6qFb3)%q5BjI3c'AKh YZ@Ҽ}>vwr~MnY+mBߝ a5!Uv,í~g9:=R֣GݞJ0m WwLSbHs7q'9#PDAvM- ALѭ-,}XvAHn_̭Է4Iíz,INP4=|_s5޽POޞ2L]O5;9`4>?q&cwev{6|y,5iX fd[aC=,$?"ҡ]פQ癔t٢3J ::؇cnk H+cAD.2/;2wLZ1tEN/I VRM  O w =5Zsc-= ?lfIV|XA} bg4d/Gأaeϰ7S^|a;mv9;82_h^JnnDgeBU%_WUf1gU˫ɦ*b%<@mHõsa3>U9@ʹzQevzΡi(N&dڒw ʻq9(h}N$~NSoQyz %4^xĤ82=o` &m9{)w= aF٠(G\+1KUT$cҡXca;$S(%ς[U a"G.XPvp_hZ_Z->&}bginU_4(}Q@(D%.FqT%70 0Qq=Q.c|w1)Ǒ,`SؔA5@ehnln%/r@r$ #-\iiAhڒ%]1xWl}gcNДg;]?7bʄ @o,!fGU 9P <46E# "*&{: D¢5wf"H)5&CgEYaC9!{\βɢ$ ,ZdJ;:c!G;9N~EtyA yߺ}-LwY=([_ފc`xC?J87ƧZIb!dXMMۥL |(<orBHN{4>ȓ (@9"c<(Up݇ 9Xx|lÜ~Yko0Sc6{umwQ3w*qGPܞ|En&+Gl+s^h)V ua :nrQ gBĒz4d\ѩIZߪUHZ"^<wy8pz@ӬމTrɃ: -\E'(jXx;pN:LFjEh' tc `E @c\H=.~C9)Š Md8w/i VN1܈gn|-ly!SU@; >S0?ܫ_vX}zT۔ h>r)CKau>WT*`{xJLsWԉ>ɪW}ךڽ&V֗;5x@Úx(P\<}}тM@{W(c -<F :77l1nչ[,[ .,?q. sխJp6IR[ȝvj*RF!l~҅q2~Kl*Uv=DG+>kD)i.ݑ VU"_w3b\2!ld`K ~U; 72P,Q0L$t"+|pXsoh))U@p`ɫ8MrIFf@3$IxXv*L%Sy$+,q  "ĵ{q XV2mdF;& mp!u#m6= ?!1渱H-mu?WfĆ: {IeuB<*N1rG FvguRxGd7N?•wqeU!esI !Rk1k{E3*͚fA[fPAx9?Lv*RP/G q>c6B#' !84O^T2c~A2!yE̻ d6]Nņ!eO. 8quF=S=%wtȧO|:Khe[YS?D_am-PW<>Aad;awKS$0RyWeXT}Hg1乭 j$$E<#Qy hPb:m ҏS_b{!ci I/4әϳ4I:7F߷J:,ʨi*d3;:-V@>\{Kk[{eVRKdǡ,CH:XV wʋ|J 4|t\Rtb)'yMfBUPpA>m4m̦_lnRKU:4HKTWͨJՁaz9@DT ksdʹwښ#̔G@˚ړY{t!l`lŽȞD[_XX|vTv 1"4lrE*fio{zӣ5d/֯?r`ų|V^$@D[z8xotǀt\GM!d POve,0_SC*1R _cΉh5KE,"T `B6?0* W5(pD PFAA>tq\x7n\/3Rn8mj" w`̈́'Ѫ]c!U5RU Flf% *@BT%曟Oc6yeN:ŧͥH1bLV堍(K6nkVawD̲ ° Qiu``xwFZm6!yja5Sj-uj+8[@L߬ NY2^sxljFhdANE5w% qz %aJcIc΋>R¹e.4ҽ $vDfL.%UN%]/sZ\uDpO %=F@$pEuTMxcÅ>B Mk%J* 9ޔc)[!I/3O; Y+m@P/'3 7$1/ r ûrI7 J &Q{ls3RN-GB@9 j L@| TԇEk W7h?NSޢn ?)Ww[KyEbC5q"EγLSG%[mvwγ*|o6cլjPѥaq { δhQ;P$Z qri]httxz >^}6trLdvBzP;kPߖbuAUB umGuε]]G*h mHR %RN' 3̣EjVCToQ 4}y?Cd%zҊ5Qi Gfym\=Qw:-3VYN%||֬'̄{D0.Ѓ.tRB* eH;~VJE(:m)?2;aAVwP4R{rİuHnV FSr]Ubh*ʘ0V0~߳ '~KNC肓hhf`DrW&9&P+3 saMAӇv>~7)ciu:5<[zU ]ƚ@0#BESBּaq0AK[XeiAS%!ґ{0hUY$,Y5 AM`^ 7e;=yd ռiZ6z>3>pF-.4SXb:fb"wn;.T=^j@HkFjƮM)(n B2i6'DG,@1(!# GT8xLqMTj;8(Kݎ>3Q1m۰;"OMmî[=+(IQR=㠢q2h|uB+e^ͧSIXx%!D.`8sX;< 6  #rەRɝ IQwm/W(V"Y2Idsb1 HSff"Dm 9S"Q`چ6 6M'Ks>"r'z9Z <^܈ű[ǠG񃁏4[@G/,T!nϻQ0rm:  h c A#Z fbL> sg~e^6Q{N/gl,wɀAMf%uw +XfX0 @K<J%FP+4 k\oH{dB8Ͷڣߘpg`b<Ҝf@ /BBnK%> ^/V/\>Z1*MQ([ dZ"?[&)QU["WǠt"piz}L3*bɪ 4gb̧48>L{X;X9:O8ύFY4 On?^ m5& pOyVaRy*<%J_> Z^h҂rlB*H&x/}nƏe/`KoO&nCFW]&gM, Os rtڷ?U6C"EP,Ȫ-rqqد xosKoɳE8O+9:Eܴ= TbWYh͸fd}($_3fO sT<'$w O B3xŦCa3h";[VPQٖnV?JߟreiAO(sF-L ۗ$*9탐(!kp^E3[}1!셓>ZkK"^2˩a$fA\_].^[_~3C]x5!0T؄Ϫ\[ lm/c_h4ҕWkR w\"X0S&$!yDnM 628? eePe֊'sߪ #oԐ^:() bCkc#zgD<euc~*l[YħǗlHF&&^Щ' N)uѦ4C3O)Ps.&sM U>LkcMN8SwP5ki3LIN-_Y$ #QoXofkOX||zڽH,XofkOX||zڽH,LBv=ޤLec1[BdLoHe]U%灡>e5)yTY94a2%f0<%h>U9v7N4SKXofkOX||zڽH,ϼ<{kGǁ"gWs.Iԗ"x1KnCg <67VdM~Y^G*D<_;!Il#Womy ՉhbnCȦT +:ƈDȽ:u0DJdr2fY{9K {F,~?Auo=j@RWls]z,# bB xBYk,J ?UD/0,^,Cښ/W@@~"0? ~[|AOmnf0? 1L!2UR-VylTtx {-? m=đ {&ZGC{FE1rYQsNX$,T!OIP@ioF~{XYYaYgRG#O:xҏc@&l;QĭҦsJIO/>X:mrN͘6/h b \TKuv1? /L (:v> ֙OÆ1{W|m-#vɦ;;ypA-C0g$WZr./V21[H2{}p-j&Ŵ~WvT0Fٵ's 2.o=V̬~=zZi;:r[Ʒ(dt@oCm ?ndƿp$Q*?v0KzlPKoߘ[Wi>3γFј.GΚbCa؆ɽ9Eנ~TjJ@+x _eeB`~F+m-'yvr}ZU`Z-2X,6O|b5 r*J2W*@zm^9ڼMg.`ouj2^@;x8b/2h٪vFǎ$R0) Ɨ 3DS8)cbL٬"^ڽq}fVZA'+\Mɡ tv+m;a1d9fpvQEĨG6,+mķ#Д8%KnWmMv4ӋT>T=LZAZAڡɬ̜r0P&X ~p)mDںNɷK\ZJ31pUD*P܂#x+UZҜ1)-kIƹqMi^9import(':glob'); $CSH_GLOB = File::BSDGlob::GLOB_CSH(); *globber = \&File::BSDGlob::csh_glob; } else { require File::Glob; File::Glob->import(':glob'); $CSH_GLOB = File::Glob::GLOB_CSH(); #*globber = \&File::Glob::bsd_glob; *globber = \&File::Glob::csh_glob; } } our ($Error); our ($VERSION, @EXPORT_OK); $VERSION = '1.001'; @EXPORT_OK = qw( globmap ); our ($noPreBS, $metachars, $matchMetaRE, %mapping, %wildCount); $noPreBS = '(? '([^/]*)', '?' => '([^/])', '.' => '\.', '[' => '([', '(' => '(', ')' => ')', ); %wildCount = map { $_ => 1 } qw/ * ? . { ( [ /; sub globmap ($$;) { my $inputGlob = shift ; my $outputGlob = shift ; my $obj = File::GlobMapper->new($inputGlob, $outputGlob, @_) or croak "globmap: $Error" ; return $obj->getFileMap(); } sub new { my $class = shift ; my $inputGlob = shift ; my $outputGlob = shift ; # TODO -- flags needs to default to whatever File::Glob does my $flags = shift || $CSH_GLOB ; #my $flags = shift ; $inputGlob =~ s/^\s*\<\s*//; $inputGlob =~ s/\s*\>\s*$//; $outputGlob =~ s/^\s*\<\s*//; $outputGlob =~ s/\s*\>\s*$//; my %object = ( InputGlob => $inputGlob, OutputGlob => $outputGlob, GlobFlags => $flags, Braces => 0, WildCount => 0, Pairs => [], Sigil => '#', ); my $self = bless \%object, ref($class) || $class ; $self->_parseInputGlob() or return undef ; $self->_parseOutputGlob() or return undef ; my @inputFiles = globber($self->{InputGlob}, $flags) ; if (GLOB_ERROR) { $Error = $!; return undef ; } #if (whatever) { my $missing = grep { ! -e $_ } @inputFiles ; if ($missing) { $Error = "$missing input files do not exist"; return undef ; } } $self->{InputFiles} = \@inputFiles ; $self->_getFiles() or return undef ; return $self; } sub _retError { my $string = shift ; $Error = "$string in input fileglob" ; return undef ; } sub _unmatched { my $delimeter = shift ; _retError("Unmatched $delimeter"); return undef ; } sub _parseBit { my $self = shift ; my $string = shift ; my $out = ''; my $depth = 0 ; while ($string =~ s/(.*?)$noPreBS(,|$matchMetaRE)//) { $out .= quotemeta($1) ; $out .= $mapping{$2} if defined $mapping{$2}; ++ $self->{WildCount} if $wildCount{$2} ; if ($2 eq ',') { return _unmatched("(") if $depth ; $out .= '|'; } elsif ($2 eq '(') { ++ $depth ; } elsif ($2 eq ')') { return _unmatched(")") if ! $depth ; -- $depth ; } elsif ($2 eq '[') { # TODO -- quotemeta & check no '/' # TODO -- check for \] & other \ within the [] $string =~ s#(.*?\])## or return _unmatched("["); $out .= "$1)" ; } elsif ($2 eq ']') { return _unmatched("]"); } elsif ($2 eq '{' || $2 eq '}') { return _retError("Nested {} not allowed"); } } $out .= quotemeta $string; return _unmatched("(") if $depth ; return $out ; } sub _parseInputGlob { my $self = shift ; my $string = $self->{InputGlob} ; my $inGlob = ''; # Multiple concatenated *'s don't make sense #$string =~ s#\*\*+#*# ; # TODO -- Allow space to delimit patterns? #my @strings = split /\s+/, $string ; #for my $str (@strings) my $out = ''; my $depth = 0 ; while ($string =~ s/(.*?)$noPreBS($matchMetaRE)//) { $out .= quotemeta($1) ; $out .= $mapping{$2} if defined $mapping{$2}; ++ $self->{WildCount} if $wildCount{$2} ; if ($2 eq '(') { ++ $depth ; } elsif ($2 eq ')') { return _unmatched(")") if ! $depth ; -- $depth ; } elsif ($2 eq '[') { # TODO -- quotemeta & check no '/' or '(' or ')' # TODO -- check for \] & other \ within the [] $string =~ s#(.*?\])## or return _unmatched("["); $out .= "$1)" ; } elsif ($2 eq ']') { return _unmatched("]"); } elsif ($2 eq '}') { return _unmatched("}"); } elsif ($2 eq '{') { # TODO -- check no '/' within the {} # TODO -- check for \} & other \ within the {} my $tmp ; unless ( $string =~ s/(.*?)$noPreBS\}//) { return _unmatched("{"); } #$string =~ s#(.*?)\}##; #my $alt = join '|', # map { quotemeta $_ } # split "$noPreBS,", $1 ; my $alt = $self->_parseBit($1); defined $alt or return 0 ; $out .= "($alt)" ; ++ $self->{Braces} ; } } return _unmatched("(") if $depth ; $out .= quotemeta $string ; $self->{InputGlob} =~ s/$noPreBS[\(\)]//g; $self->{InputPattern} = $out ; #print "# INPUT '$self->{InputGlob}' => '$out'\n"; return 1 ; } sub _parseOutputGlob { my $self = shift ; my $string = $self->{OutputGlob} ; my $maxwild = $self->{WildCount}; if ($self->{GlobFlags} & GLOB_TILDE) #if (1) { $string =~ s{ ^ ~ # find a leading tilde ( # save this in $1 [^/] # a non-slash character * # repeated 0 or more times (0 means me) ) }{ $1 ? (getpwnam($1))[7] : ( $ENV{HOME} || $ENV{LOGDIR} ) }ex; } # max #1 must be == to max no of '*' in input while ( $string =~ m/#(\d)/g ) { croak "Max wild is #$maxwild, you tried #$1" if $1 > $maxwild ; } my $noPreBS = '(?{OutputGlob}' => '$string'\n"; $self->{OutputPattern} = $string ; return 1 ; } sub _getFiles { my $self = shift ; my %outInMapping = (); my %inFiles = () ; foreach my $inFile (@{ $self->{InputFiles} }) { next if $inFiles{$inFile} ++ ; my $outFile = $inFile ; if ( $inFile =~ m/$self->{InputPattern}/ ) { no warnings 'uninitialized'; eval "\$outFile = $self->{OutputPattern};" ; if (defined $outInMapping{$outFile}) { $Error = "multiple input files map to one output file"; return undef ; } $outInMapping{$outFile} = $inFile; push @{ $self->{Pairs} }, [$inFile, $outFile]; } } return 1 ; } sub getFileMap { my $self = shift ; return $self->{Pairs} ; } sub getHash { my $self = shift ; return { map { $_->[0] => $_->[1] } @{ $self->{Pairs} } } ; } 1; __END__ =head1 NAME File::GlobMapper - Extend File Glob to Allow Input and Output Files =head1 SYNOPSIS use File::GlobMapper qw( globmap ); my $aref = globmap $input => $output or die $File::GlobMapper::Error ; my $gm = File::GlobMapper->new( $input => $output ) or die $File::GlobMapper::Error ; =head1 DESCRIPTION This module needs Perl5.005 or better. This module takes the existing C module as a starting point and extends it to allow new filenames to be derived from the files matched by C. This can be useful when carrying out batch operations on multiple files that have both an input filename and output filename and the output file can be derived from the input filename. Examples of operations where this can be useful include, file renaming, file copying and file compression. =head2 Behind The Scenes To help explain what C does, consider what code you would write if you wanted to rename all files in the current directory that ended in C<.tar.gz> to C<.tgz>. So say these files are in the current directory alpha.tar.gz beta.tar.gz gamma.tar.gz and they need renamed to this alpha.tgz beta.tgz gamma.tgz Below is a possible implementation of a script to carry out the rename (error cases have been omitted) foreach my $old ( glob "*.tar.gz" ) { my $new = $old; $new =~ s#(.*)\.tar\.gz$#$1.tgz# ; rename $old => $new or die "Cannot rename '$old' to '$new': $!\n; } Notice that a file glob pattern C<*.tar.gz> was used to match the C<.tar.gz> files, then a fairly similar regular expression was used in the substitute to allow the new filename to be created. Given that the file glob is just a cut-down regular expression and that it has already done a lot of the hard work in pattern matching the filenames, wouldn't it be handy to be able to use the patterns in the fileglob to drive the new filename? Well, that's I what C does. Here is same snippet of code rewritten using C for my $pair (globmap '<*.tar.gz>' => '<#1.tgz>' ) { my ($from, $to) = @$pair; rename $from => $to or die "Cannot rename '$old' to '$new': $!\n; } So how does it work? Behind the scenes the C function does a combination of a file glob to match existing filenames followed by a substitute to create the new filenames. Notice how both parameters to C are strings that are delimited by <>. This is done to make them look more like file globs - it is just syntactic sugar, but it can be handy when you want the strings to be visually distinctive. The enclosing <> are optional, so you don't have to use them - in fact the first thing globmap will do is remove these delimiters if they are present. The first parameter to C, C<*.tar.gz>, is an I. Once the enclosing "< ... >" is removed, this is passed (more or less) unchanged to C to carry out a file match. Next the fileglob C<*.tar.gz> is transformed behind the scenes into a full Perl regular expression, with the additional step of wrapping each transformed wildcard metacharacter sequence in parenthesis. In this case the input fileglob C<*.tar.gz> will be transformed into this Perl regular expression ([^/]*)\.tar\.gz Wrapping with parenthesis allows the wildcard parts of the Input File Glob to be referenced by the second parameter to C, C<#1.tgz>, the I. This parameter operates just like the replacement part of a substitute command. The difference is that the C<#1> syntax is used to reference sub-patterns matched in the input fileglob, rather than the C<$1> syntax that is used with perl regular expressions. In this case C<#1> is used to refer to the text matched by the C<*> in the Input File Glob. This makes it easier to use this module where the parameters to C are typed at the command line. The final step involves passing each filename matched by the C<*.tar.gz> file glob through the derived Perl regular expression in turn and expanding the output fileglob using it. The end result of all this is a list of pairs of filenames. By default that is what is returned by C. In this example the data structure returned will look like this ( ['alpha.tar.gz' => 'alpha.tgz'], ['beta.tar.gz' => 'beta.tgz' ], ['gamma.tar.gz' => 'gamma.tgz'] ) Each pair is an array reference with two elements - namely the I filename, that C has matched, and a I filename that is derived from the I filename. =head2 Limitations C has been kept simple deliberately, so it isn't intended to solve all filename mapping operations. Under the hood C (or for older versions of Perl, C) is used to match the files, so you will never have the flexibility of full Perl regular expression. =head2 Input File Glob The syntax for an Input FileGlob is identical to C, except for the following =over 5 =item 1. No nested {} =item 2. Whitespace does not delimit fileglobs. =item 3. The use of parenthesis can be used to capture parts of the input filename. =item 4. If an Input glob matches the same file more than once, only the first will be used. =back The syntax =over 5 =item B<~> =item B<~user> =item B<.> Matches a literal '.'. Equivalent to the Perl regular expression \. =item B<*> Matches zero or more characters, except '/'. Equivalent to the Perl regular expression [^/]* =item B Matches zero or one character, except '/'. Equivalent to the Perl regular expression [^/]? =item B<\> Backslash is used, as usual, to escape the next character. =item B<[]> Character class. =item B<{,}> Alternation =item B<()> Capturing parenthesis that work just like perl =back Any other character it taken literally. =head2 Output File Glob The Output File Glob is a normal string, with 2 glob-like features. The first is the '*' metacharacter. This will be replaced by the complete filename matched by the input file glob. So *.c *.Z The second is Output FileGlobs take the =over 5 =item "*" The "*" character will be replaced with the complete input filename. =item #1 Patterns of the form /#\d/ will be replaced with the =back =head2 Returned Data =head1 EXAMPLES =head2 A Rename script Below is a simple "rename" script that uses C to determine the source and destination filenames. use File::GlobMapper qw(globmap) ; use File::Copy; die "rename: Usage rename 'from' 'to'\n" unless @ARGV == 2 ; my $fromGlob = shift @ARGV; my $toGlob = shift @ARGV; my $pairs = globmap($fromGlob, $toGlob) or die $File::GlobMapper::Error; for my $pair (@$pairs) { my ($from, $to) = @$pair; move $from => $to ; } Here is an example that renames all c files to cpp. $ rename '*.c' '#1.cpp' =head2 A few example globmaps Below are a few examples of globmaps To copy all your .c file to a backup directory '' '' If you want to compress all '' '<*.gz>' To uncompress '' '' =head1 SEE ALSO L =head1 AUTHOR The I module was written by Paul Marquess, F. =head1 COPYRIGHT AND LICENSE Copyright (c) 2005 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILEb585357c/File/Find.pmIpackage File::Find; use 5.006; use strict; use warnings; use warnings::register; use Exporter 'import'; require Cwd; require File::Basename; require File::Spec; our $VERSION = '1.44'; our @EXPORT = qw(find finddepth); my $Is_VMS = $^O eq 'VMS'; my $Is_Win32 = $^O eq 'MSWin32'; # Should ideally be my() not our() but local() currently # refuses to operate on lexicals our %SLnkSeen; our ($wanted_callback, $avoid_nlink, $bydepth, $no_chdir, $follow, $follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat, $pre_process, $post_process, $dangling_symlinks); sub contract_name { my ($cdir,$fn) = @_; return substr($cdir,0,rindex($cdir,'/')) if $fn eq $File::Find::current_dir; $cdir = substr($cdir,0,rindex($cdir,'/')+1); $fn =~ s|^\./||; my $abs_name= $cdir . $fn; if (substr($fn,0,3) eq '../') { 1 while $abs_name =~ s!/[^/]*/\.\./+!/!; } return $abs_name; } sub _is_absolute { return $_[0] =~ m|^(?:[A-Za-z]:)?/| if $Is_Win32; return substr($_[0], 0, 1) eq '/'; } sub _is_root { return $_[0] =~ m|^(?:[A-Za-z]:)?/\z| if $Is_Win32; return $_[0] eq '/'; } sub PathCombine($$) { my ($Base,$Name) = @_; my $AbsName; if (_is_absolute($Name)) { $AbsName= $Name; } else { $AbsName= contract_name($Base,$Name); } # (simple) check for recursion my $newlen= length($AbsName); if ($newlen <= length($Base)) { if (($newlen == length($Base) || substr($Base,$newlen,1) eq '/') && $AbsName eq substr($Base,0,$newlen)) { return undef; } } return $AbsName; } sub Follow_SymLink($) { my ($AbsName) = @_; my ($NewName,$DEV, $INO); ($DEV, $INO)= lstat $AbsName; while (-l _) { if ($SLnkSeen{$DEV, $INO}++) { if ($follow_skip < 2) { die "$AbsName is encountered a second time"; } else { return undef; } } my $Link = readlink($AbsName); # canonicalize directory separators $Link =~ s|\\|/|g if $Is_Win32; $NewName= PathCombine($AbsName, $Link); unless(defined $NewName) { if ($follow_skip < 2) { die "$AbsName is a recursive symbolic link"; } else { return undef; } } else { $AbsName= $NewName; } ($DEV, $INO) = lstat($AbsName); return undef unless defined $DEV; # dangling symbolic link } if ($full_check && defined $DEV && $SLnkSeen{$DEV, $INO}++) { if ( ($follow_skip < 1) || ((-d _) && ($follow_skip < 2)) ) { die "$AbsName encountered a second time"; } else { return undef; } } return $AbsName; } our($dir, $name, $fullname, $prune); sub _find_dir_symlnk($$$); sub _find_dir($$$); # check whether or not a scalar variable is tainted # (code straight from the Camel, 3rd ed., page 561) sub is_tainted_pp { my $arg = shift; my $nada = substr($arg, 0, 0); # zero-length local $@; eval { eval "# $nada" }; return length($@) != 0; } sub _find_opt { my $wanted = shift; return unless @_; die "invalid top directory" unless defined $_[0]; # This function must local()ize everything because callbacks may # call find() or finddepth() local %SLnkSeen; local ($wanted_callback, $avoid_nlink, $bydepth, $no_chdir, $follow, $follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat, $pre_process, $post_process, $dangling_symlinks); local($dir, $name, $fullname, $prune); local *_ = \my $a; my $cwd = $wanted->{bydepth} ? Cwd::fastcwd() : Cwd::getcwd(); if ($Is_VMS) { # VMS returns this by default in VMS format which just doesn't # work for the rest of this module. $cwd = VMS::Filespec::unixpath($cwd); # Apparently this is not expected to have a trailing space. # To attempt to make VMS/UNIX conversions mostly reversible, # a trailing slash is needed. The run-time functions ignore the # resulting double slash, but it causes the perl tests to fail. $cwd =~ s#/\z##; # This comes up in upper case now, but should be lower. # In the future this could be exact case, no need to change. } my $cwd_untainted = $cwd; my $check_t_cwd = 1; $wanted_callback = $wanted->{wanted}; $bydepth = $wanted->{bydepth}; $pre_process = $wanted->{preprocess}; $post_process = $wanted->{postprocess}; $no_chdir = $wanted->{no_chdir}; $full_check = $wanted->{follow}; $follow = $full_check || $wanted->{follow_fast}; $follow_skip = $wanted->{follow_skip}; $untaint = $wanted->{untaint}; $untaint_pat = $wanted->{untaint_pattern}; $untaint_skip = $wanted->{untaint_skip}; $dangling_symlinks = $wanted->{dangling_symlinks}; # for compatibility reasons (find.pl, find2perl) local our ($topdir, $topdev, $topino, $topmode, $topnlink); # a symbolic link to a directory doesn't increase the link count $avoid_nlink = $follow || $File::Find::dont_use_nlink; my ($abs_dir, $Is_Dir); Proc_Top_Item: foreach my $TOP (@_) { my $top_item = $TOP; $top_item = VMS::Filespec::unixify($top_item) if $Is_VMS; ($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item; # canonicalize directory separators $top_item =~ s|[/\\]|/|g if $Is_Win32; # no trailing / unless path is root $top_item =~ s|/\z|| unless _is_root($top_item); $Is_Dir= 0; if ($follow) { if (_is_absolute($top_item)) { $abs_dir = $top_item; } elsif ($top_item eq $File::Find::current_dir) { $abs_dir = $cwd; } else { # care about any ../ $top_item =~ s/\.dir\z//i if $Is_VMS; $abs_dir = contract_name("$cwd/",$top_item); } $abs_dir= Follow_SymLink($abs_dir); unless (defined $abs_dir) { if ($dangling_symlinks) { if (ref $dangling_symlinks eq 'CODE') { $dangling_symlinks->($top_item, $cwd); } else { warnings::warnif "$top_item is a dangling symbolic link\n"; } } next Proc_Top_Item; } if (-d _) { $top_item =~ s/\.dir\z//i if $Is_VMS; _find_dir_symlnk($wanted, $abs_dir, $top_item); $Is_Dir= 1; } } else { # no follow $topdir = $top_item; unless (defined $topnlink) { warnings::warnif "Can't stat $top_item: $!\n"; next Proc_Top_Item; } if (-d _) { $top_item =~ s/\.dir\z//i if $Is_VMS; _find_dir($wanted, $top_item, $topnlink); $Is_Dir= 1; } else { $abs_dir= $top_item; } } unless ($Is_Dir) { unless (($_,$dir) = File::Basename::fileparse($abs_dir)) { ($dir,$_) = ('./', $top_item); } $abs_dir = $dir; if (( $untaint ) && (is_tainted($dir) )) { ( $abs_dir ) = $dir =~ m|$untaint_pat|; unless (defined $abs_dir) { if ($untaint_skip == 0) { die "directory $dir is still tainted"; } else { next Proc_Top_Item; } } } unless ($no_chdir || chdir $abs_dir) { warnings::warnif "Couldn't chdir $abs_dir: $!\n"; next Proc_Top_Item; } $name = $abs_dir . $_; # $File::Find::name $_ = $name if $no_chdir; { $wanted_callback->() }; # protect against wild "next" } unless ( $no_chdir ) { if ( ($check_t_cwd) && (($untaint) && (is_tainted($cwd) )) ) { ( $cwd_untainted ) = $cwd =~ m|$untaint_pat|; unless (defined $cwd_untainted) { die "insecure cwd in find(depth)"; } $check_t_cwd = 0; } unless (chdir $cwd_untainted) { die "Can't cd to $cwd: $!\n"; } } } } # API: # $wanted # $p_dir : "parent directory" # $nlink : what came back from the stat # preconditions: # chdir (if not no_chdir) to dir sub _find_dir($$$) { my ($wanted, $p_dir, $nlink) = @_; my ($CdLvl,$Level) = (0,0); my @Stack; my @filenames; my ($subcount,$sub_nlink); my $SE= []; my $dir_name= $p_dir; my $dir_pref; my $dir_rel = $File::Find::current_dir; my $tainted = 0; my $no_nlink; if ($Is_VMS) { # VMS is returning trailing .dir on directories # and trailing . on files and symbolic links # in UNIX syntax. # $p_dir =~ s/\.(dir)?$//i unless $p_dir eq '.'; $dir_pref = ($p_dir =~ m/[\]>]+$/ ? $p_dir : "$p_dir/" ); } else { $dir_pref = _is_root($p_dir) ? $p_dir : "$p_dir/"; } local ($dir, $name, $prune); unless ( $no_chdir || ($p_dir eq $File::Find::current_dir)) { my $udir = $p_dir; if (( $untaint ) && (is_tainted($p_dir) )) { ( $udir ) = $p_dir =~ m|$untaint_pat|; unless (defined $udir) { if ($untaint_skip == 0) { die "directory $p_dir is still tainted"; } else { return; } } } unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) { warnings::warnif "Can't cd to $udir: $!\n"; return; } } # push the starting directory push @Stack,[$CdLvl,$p_dir,$dir_rel,-1] if $bydepth; while (defined $SE) { unless ($bydepth) { $dir= $p_dir; # $File::Find::dir $name= $dir_name; # $File::Find::name $_= ($no_chdir ? $dir_name : $dir_rel ); # $_ # prune may happen here $prune= 0; { $wanted_callback->() }; # protect against wild "next" next if $prune; } # change to that directory unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) { my $udir= $dir_rel; if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_rel) )) ) { ( $udir ) = $dir_rel =~ m|$untaint_pat|; unless (defined $udir) { if ($untaint_skip == 0) { die "directory (" . ($p_dir ne '/' ? $p_dir : '') . "/) $dir_rel is still tainted"; } else { # $untaint_skip == 1 next; } } } unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) { warnings::warnif "Can't cd to (" . ($p_dir ne '/' ? $p_dir : '') . "/) $udir: $!\n"; next; } $CdLvl++; } $dir= $dir_name; # $File::Find::dir # Get the list of files in the current directory. my $dh; unless (opendir $dh, ($no_chdir ? $dir_name : $File::Find::current_dir)) { warnings::warnif "Can't opendir($dir_name): $!\n"; next; } @filenames = readdir $dh; closedir($dh); @filenames = $pre_process->(@filenames) if $pre_process; push @Stack,[$CdLvl,$dir_name,"",-2] if $post_process; # default: use whatever was specified # (if $nlink >= 2, and $avoid_nlink == 0, this will switch back) $no_nlink = $avoid_nlink; # if dir has wrong nlink count, force switch to slower stat method $no_nlink = 1 if ($nlink < 2); if ($nlink == 2 && !$no_nlink) { # This dir has no subdirectories. for my $FN (@filenames) { if ($Is_VMS) { # Big hammer here - Compensate for VMS trailing . and .dir # No win situation until this is changed, but this # will handle the majority of the cases with breaking the fewest $FN =~ s/\.dir\z//i; $FN =~ s#\.$## if ($FN ne '.'); } next if $FN =~ $File::Find::skip_pattern; $name = $dir_pref . $FN; # $File::Find::name $_ = ($no_chdir ? $name : $FN); # $_ { $wanted_callback->() }; # protect against wild "next" } } else { # This dir has subdirectories. $subcount = $nlink - 2; # HACK: insert directories at this position, so as to preserve # the user pre-processed ordering of files (thus ensuring # directory traversal is in user sorted order, not at random). my $stack_top = @Stack; for my $FN (@filenames) { next if $FN =~ $File::Find::skip_pattern; if ($subcount > 0 || $no_nlink) { # Seen all the subdirs? # check for directoriness. # stat is faster for a file in the current directory $sub_nlink = (lstat ($no_chdir ? $dir_pref . $FN : $FN))[3]; if (-d _) { --$subcount; $FN =~ s/\.dir\z//i if $Is_VMS; # HACK: replace push to preserve dir traversal order #push @Stack,[$CdLvl,$dir_name,$FN,$sub_nlink]; splice @Stack, $stack_top, 0, [$CdLvl,$dir_name,$FN,$sub_nlink]; } else { $name = $dir_pref . $FN; # $File::Find::name $_= ($no_chdir ? $name : $FN); # $_ { $wanted_callback->() }; # protect against wild "next" } } else { $name = $dir_pref . $FN; # $File::Find::name $_= ($no_chdir ? $name : $FN); # $_ { $wanted_callback->() }; # protect against wild "next" } } } } continue { while ( defined ($SE = pop @Stack) ) { ($Level, $p_dir, $dir_rel, $nlink) = @$SE; if ($CdLvl > $Level && !$no_chdir) { my $tmp; if ($Is_VMS) { $tmp = '[' . ('-' x ($CdLvl-$Level)) . ']'; } else { $tmp = join('/',('..') x ($CdLvl-$Level)); } die "Can't cd to $tmp from $dir_name: $!" unless chdir ($tmp); $CdLvl = $Level; } if ($^O eq 'VMS') { if ($p_dir =~ m/[\]>]+$/) { $dir_name = $p_dir; $dir_name =~ s/([\]>]+)$/.$dir_rel$1/; $dir_pref = $dir_name; } else { $dir_name = "$p_dir/$dir_rel"; $dir_pref = "$dir_name/"; } } else { $dir_name = _is_root($p_dir) ? "$p_dir$dir_rel" : "$p_dir/$dir_rel"; $dir_pref = "$dir_name/"; } if ( $nlink == -2 ) { $name = $dir = $p_dir; # $File::Find::name / dir $_ = $File::Find::current_dir; $post_process->(); # End-of-directory processing } elsif ( $nlink < 0 ) { # must be finddepth, report dirname now $name = $dir_name; if ( substr($name,-2) eq '/.' ) { substr($name, length($name) == 2 ? -1 : -2) = ''; } $dir = $p_dir; $_ = ($no_chdir ? $dir_name : $dir_rel ); if ( substr($_,-2) eq '/.' ) { substr($_, length($_) == 2 ? -1 : -2) = ''; } { $wanted_callback->() }; # protect against wild "next" } else { push @Stack,[$CdLvl,$p_dir,$dir_rel,-1] if $bydepth; last; } } } } # API: # $wanted # $dir_loc : absolute location of a dir # $p_dir : "parent directory" # preconditions: # chdir (if not no_chdir) to dir sub _find_dir_symlnk($$$) { my ($wanted, $dir_loc, $p_dir) = @_; # $dir_loc is the absolute directory my @Stack; my @filenames; my $new_loc; my $updir_loc = $dir_loc; # untainted parent directory my $SE = []; my $dir_name = $p_dir; my $dir_pref; my $loc_pref; my $dir_rel = $File::Find::current_dir; my $byd_flag; # flag for pending stack entry if $bydepth my $tainted = 0; my $ok = 1; $dir_pref = _is_root($p_dir) ? $p_dir : "$p_dir/"; $loc_pref = _is_root($dir_loc) ? $dir_loc : "$dir_loc/"; local ($dir, $name, $fullname, $prune); unless ($no_chdir) { # untaint the topdir if (( $untaint ) && (is_tainted($dir_loc) )) { ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|; # parent dir, now untainted # once untainted, $updir_loc is pushed on the stack (as parent directory); # hence, we don't need to untaint the parent directory every time we chdir # to it later unless (defined $updir_loc) { if ($untaint_skip == 0) { die "directory $dir_loc is still tainted"; } else { return; } } } $ok = chdir($updir_loc) unless ($p_dir eq $File::Find::current_dir); unless ($ok) { warnings::warnif "Can't cd to $updir_loc: $!\n"; return; } } push @Stack,[$dir_loc,$updir_loc,$p_dir,$dir_rel,-1] if $bydepth; while (defined $SE) { unless ($bydepth) { # change (back) to parent directory (always untainted) unless ($no_chdir) { unless (chdir $updir_loc) { warnings::warnif "Can't cd to $updir_loc: $!\n"; next; } } $dir= $p_dir; # $File::Find::dir $name= $dir_name; # $File::Find::name $_= ($no_chdir ? $dir_name : $dir_rel ); # $_ $fullname= $dir_loc; # $File::Find::fullname # prune may happen here $prune= 0; lstat($_); # make sure file tests with '_' work { $wanted_callback->() }; # protect against wild "next" next if $prune; } # change to that directory unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) { $updir_loc = $dir_loc; if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_loc) )) ) { # untaint $dir_loc, what will be pushed on the stack as (untainted) parent dir ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|; unless (defined $updir_loc) { if ($untaint_skip == 0) { die "directory $dir_loc is still tainted"; } else { next; } } } unless (chdir $updir_loc) { warnings::warnif "Can't cd to $updir_loc: $!\n"; next; } } $dir = $dir_name; # $File::Find::dir # Get the list of files in the current directory. my $dh; unless (opendir $dh, ($no_chdir ? $dir_loc : $File::Find::current_dir)) { warnings::warnif "Can't opendir($dir_loc): $!\n"; next; } @filenames = readdir $dh; closedir($dh); for my $FN (@filenames) { if ($Is_VMS) { # Big hammer here - Compensate for VMS trailing . and .dir # No win situation until this is changed, but this # will handle the majority of the cases with breaking the fewest. $FN =~ s/\.dir\z//i; $FN =~ s#\.$## if ($FN ne '.'); } next if $FN =~ $File::Find::skip_pattern; # follow symbolic links / do an lstat $new_loc = Follow_SymLink($loc_pref.$FN); # ignore if invalid symlink unless (defined $new_loc) { if (!defined -l _ && $dangling_symlinks) { $fullname = undef; if (ref $dangling_symlinks eq 'CODE') { $dangling_symlinks->($FN, $dir_pref); } else { warnings::warnif "$dir_pref$FN is a dangling symbolic link\n"; } } else { $fullname = $loc_pref . $FN; } $name = $dir_pref . $FN; $_ = ($no_chdir ? $name : $FN); { $wanted_callback->() }; next; } if (-d _) { if ($Is_VMS) { $FN =~ s/\.dir\z//i; $FN =~ s#\.$## if ($FN ne '.'); $new_loc =~ s/\.dir\z//i; $new_loc =~ s#\.$## if ($new_loc ne '.'); } push @Stack,[$new_loc,$updir_loc,$dir_name,$FN,1]; } else { $fullname = $new_loc; # $File::Find::fullname $name = $dir_pref . $FN; # $File::Find::name $_ = ($no_chdir ? $name : $FN); # $_ { $wanted_callback->() }; # protect against wild "next" } } } continue { while (defined($SE = pop @Stack)) { ($dir_loc, $updir_loc, $p_dir, $dir_rel, $byd_flag) = @$SE; $dir_name = _is_root($p_dir) ? "$p_dir$dir_rel" : "$p_dir/$dir_rel"; $dir_pref = "$dir_name/"; $loc_pref = "$dir_loc/"; if ( $byd_flag < 0 ) { # must be finddepth, report dirname now unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) { unless (chdir $updir_loc) { # $updir_loc (parent dir) is always untainted warnings::warnif "Can't cd to $updir_loc: $!\n"; next; } } $fullname = $dir_loc; # $File::Find::fullname $name = $dir_name; # $File::Find::name if ( substr($name,-2) eq '/.' ) { substr($name, length($name) == 2 ? -1 : -2) = ''; # $File::Find::name } $dir = $p_dir; # $File::Find::dir $_ = ($no_chdir ? $dir_name : $dir_rel); # $_ if ( substr($_,-2) eq '/.' ) { substr($_, length($_) == 2 ? -1 : -2) = ''; } lstat($_); # make sure file tests with '_' work { $wanted_callback->() }; # protect against wild "next" } else { push @Stack,[$dir_loc, $updir_loc, $p_dir, $dir_rel,-1] if $bydepth; last; } } } } sub wrap_wanted { my $wanted = shift; if ( ref($wanted) eq 'HASH' ) { # RT #122547 my %valid_options = map {$_ => 1} qw( wanted bydepth preprocess postprocess follow follow_fast follow_skip dangling_symlinks no_chdir untaint untaint_pattern untaint_skip ); my @invalid_options = (); for my $v (keys %{$wanted}) { push @invalid_options, $v unless exists $valid_options{$v}; } warn "Invalid option(s): @invalid_options" if @invalid_options; unless( exists $wanted->{wanted} and ref( $wanted->{wanted} ) eq 'CODE' ) { die 'no &wanted subroutine given'; } if ( $wanted->{follow} || $wanted->{follow_fast}) { $wanted->{follow_skip} = 1 unless defined $wanted->{follow_skip}; } if ( $wanted->{untaint} ) { $wanted->{untaint_pattern} = $File::Find::untaint_pattern unless defined $wanted->{untaint_pattern}; $wanted->{untaint_skip} = 0 unless defined $wanted->{untaint_skip}; } return $wanted; } elsif( ref( $wanted ) eq 'CODE' ) { return { wanted => $wanted }; } else { die 'no &wanted subroutine given'; } } sub find { my $wanted = shift; _find_opt(wrap_wanted($wanted), @_); } sub finddepth { my $wanted = wrap_wanted(shift); $wanted->{bydepth} = 1; _find_opt($wanted, @_); } # default $File::Find::skip_pattern = qr/^\.{1,2}\z/; $File::Find::untaint_pattern = qr|^([-+@\w./]+)$|; # this _should_ work properly on all platforms # where File::Find can be expected to work $File::Find::current_dir = File::Spec->curdir || '.'; $File::Find::dont_use_nlink = 1; # We need a function that checks if a scalar is tainted. Either use the # Scalar::Util module's tainted() function or our (slower) pure Perl # fallback is_tainted_pp() { local $@; eval { require Scalar::Util }; *is_tainted = $@ ? \&is_tainted_pp : \&Scalar::Util::tainted; } 1; __END__ =head1 NAME File::Find - Traverse a directory tree. =head1 SYNOPSIS use File::Find; find(\&wanted, @directories_to_search); sub wanted { ... } use File::Find; finddepth(\&wanted, @directories_to_search); sub wanted { ... } use File::Find; find({ wanted => \&process, follow => 1 }, '.'); =head1 DESCRIPTION These are functions for searching through directory trees doing work on each file found similar to the Unix L command. C exports two functions, C and C. They work similarly but have subtle differences. =over 4 =item B find(\&wanted, @directories); find(\%options, @directories); C does a depth-first search over the given C<@directories> in the order they are given. For each file or directory found, it calls the C<&wanted> subroutine. (See below for details on how to use the C<&wanted> function). Additionally, for each directory found, it will C into that directory and continue the search, invoking the C<&wanted> function on each file or subdirectory in the directory. =item B finddepth(\&wanted, @directories); finddepth(\%options, @directories); C works just like C except that it invokes the C<&wanted> function for a directory I invoking it for the directory's contents. It does a postorder traversal instead of a preorder traversal, working from the bottom of the directory tree up where C works from the top of the tree down. =back Despite the name of the C function, both C and C perform a depth-first search of the directory hierarchy. =head2 C<%options> The first argument to C is either a code reference to your C<&wanted> function, or a hash reference describing the operations to be performed for each file. The code reference is described in L below. Here are the possible B for the hash: =over 4 =item C The value should be a code reference. This code reference is described in L below. The C<&wanted> subroutine is mandatory. =item C Reports the name of a directory only AFTER all its entries have been reported. Entry point C is a shortcut for specifying C<< { bydepth => 1 } >> in the first argument of C. =item C The value should be a code reference. This code reference is used to preprocess the current directory. The name of the currently processed directory is in C<$File::Find::dir>. Your preprocessing function is called after C, but before the loop that calls the C function. It is called with a list of strings (actually file/directory names) and is expected to return a list of strings. The code can be used to sort the file/directory names alphabetically, numerically, or to filter out directory entries based on their name alone. When C or C are in effect, C is a no-op. =item C The value should be a code reference. It is invoked just before leaving the currently processed directory. It is called in void context with no arguments. The name of the current directory is in C<$File::Find::dir>. This hook is handy for summarizing a directory, such as calculating its disk usage. When C or C are in effect, C is a no-op. =item C Causes symbolic links to be followed. Since directory trees with symbolic links (followed) may contain files more than once and may even have cycles, a hash has to be built up with an entry for each file. This might be expensive both in space and time for a large directory tree. See L and L below. If either C or C is in effect: =over 4 =item * It is guaranteed that an C has been called before the user's C function is called. This enables fast file checks involving C<_>. Note that this guarantee no longer holds if C or C are not set. =item * There is a variable C<$File::Find::fullname> which holds the absolute pathname of the file with all symbolic links resolved. If the link is a dangling symbolic link, then fullname will be set to C. =back =item C This is similar to C except that it may report some files more than once. It does detect cycles, however. Since only symbolic links have to be hashed, this is much cheaper both in space and time. If processing a file more than once (by the user's C function) is worse than just taking time, the option C should be used. =item C C, which is the default, causes all files which are neither directories nor symbolic links to be ignored if they are about to be processed a second time. If a directory or a symbolic link are about to be processed a second time, C dies. C causes C to die if any file is about to be processed a second time. C causes C to ignore any duplicate files and directories but to proceed normally otherwise. =item C Specifies what to do with symbolic links whose target doesn't exist. If true and a code reference, will be called with the symbolic link name and the directory it lives in as arguments. Otherwise, if true and warnings are on, a warning of the form C<"symbolic_link_name is a dangling symbolic link\n"> will be issued. If false, the dangling symbolic link will be silently ignored. =item C Does not C to each directory as it recurses. The C function will need to be aware of this, of course. In this case, C<$_> will be the same as C<$File::Find::name>. =item C If find is used in L (C<-T> command line switch or C or C), then internally directory names have to be untainted before they can be C'd to. Therefore they are checked against a regular expression C. Note that all names passed to the user's C function are still tainted. If this option is used while not in taint-mode, C is a no-op. =item C See above. This should be set using the C quoting operator. The default is set to C. Note that the parentheses are vital. =item C If set, a directory which fails the C is skipped, including all its sub-directories. The default is to C in such a case. =back =head2 The wanted function The C function does whatever verifications you want on each file and directory. Note that despite its name, the C function is a generic callback function, and does B tell C if a file is "wanted" or not. In fact, its return value is ignored. The C function takes no arguments but rather does its work through a collection of variables. =over 4 =item C<$File::Find::dir> is the current directory name, =item C<$_> is the current filename within that directory =item C<$File::Find::name> is the complete pathname to the file. =back The above variables have all been localized and may be changed without affecting data outside of the wanted function. For example, when examining the file F you will have: $File::Find::dir = /some/path/ $_ = foo.ext $File::Find::name = /some/path/foo.ext You are C'd to C<$File::Find::dir> when the function is called, unless C was specified. Note that when changing to directories is in effect, the root directory (F) is a somewhat special case inasmuch as the concatenation of C<$File::Find::dir>, C<'/'> and C<$_> is not literally equal to C<$File::Find::name>. The table below summarizes all variants: $File::Find::name $File::Find::dir $_ default / / . no_chdir=>0 /etc / etc /etc/x /etc x no_chdir=>1 / / / /etc / /etc /etc/x /etc /etc/x When C or C are in effect, there is also a C<$File::Find::fullname>. The function may set C<$File::Find::prune> to prune the tree unless C was specified. Unless C or C is specified, for compatibility reasons (C, L) there are in addition the following globals available: C<$File::Find::topdir>, C<$File::Find::topdev>, C<$File::Find::topino>, C<$File::Find::topmode> and C<$File::Find::topnlink>. This library is useful for the C tool (distributed with the L CPAN module), which when fed: find2perl / -name .nfs\* -mtime +7 \ -exec rm -f {} \; -o -fstype nfs -prune produces something like: sub wanted { /^\.nfs.*\z/s && (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_)) && int(-M _) > 7 && unlink($_) || ($nlink || (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_))) && $dev < 0 && ($File::Find::prune = 1); } Notice the C<_> in the above C: the C<_> is a magical filehandle that caches the information from the preceding C, C, or filetest. Here's another interesting wanted function. It will find all symbolic links that don't resolve: sub wanted { -l && !-e && print "bogus link: $File::Find::name\n"; } Note that you may mix directories and (non-directory) files in the list of directories to be searched by the C function. find(\&wanted, "./foo", "./bar", "./baz/epsilon"); In the example above, no file in F<./baz/> other than F<./baz/epsilon> will be evaluated by C. See also the script C on CPAN for a nice application of this module. =head1 WARNINGS If you run your program with the C<-w> switch, or if you use the C pragma, File::Find will report warnings for several weird situations. You can disable these warnings by putting the statement no warnings 'File::Find'; in the appropriate scope. See L for more info about lexical warnings. =head1 BUGS AND CAVEATS =over 4 =item C<$dont_use_nlink> You can set the variable C<$File::Find::dont_use_nlink> to C<0> if you are sure the filesystem you are scanning reflects the number of subdirectories in the parent directory's C count. If you do set C<$File::Find::dont_use_nlink> to 0, you may notice an improvement in speed at the risk of not recursing into subdirectories if a filesystem doesn't populate C as expected. C<$File::Find::dont_use_nlink> now defaults to 1 on all platforms. =item Symlinks Be aware that the option to follow symbolic links can be dangerous. Depending on the structure of the directory tree (including symbolic links to directories) you might traverse a given (physical) directory more than once (only if C is in effect). Furthermore, deleting or changing files in a symbolically linked directory might cause very unpleasant surprises, since you delete or change files in an unknown directory. =back =head1 HISTORY C used to produce incorrect results if called recursively. During the development of perl 5.8 this bug was fixed. The first fixed version of C was 1.01. =head1 SEE ALSO L, L =cut FILEcbb56b69/File/Copy.pm?0# File/Copy.pm. Written in 1994 by Aaron Sherman . This # source code has been placed in the public domain by the author. # Please be kind and preserve the documentation. # # Additions copyright 1996 by Charles Bailey. Permission is granted # to distribute the revised code under the same terms as Perl itself. package File::Copy; use 5.035007; use strict; use warnings; no warnings 'newline'; no warnings 'experimental::builtin'; use builtin 'blessed'; use overload; use File::Spec; use Config; # We want HiRes stat and utime if available BEGIN { eval q{ use Time::HiRes qw( stat utime ) } }; our(@ISA, @EXPORT, @EXPORT_OK, $VERSION, $Too_Big, $Syscopy_is_copy); sub copy; sub syscopy; sub cp; sub mv; $VERSION = '2.41'; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(copy move); @EXPORT_OK = qw(cp mv); $Too_Big = 1024 * 1024 * 2; sub croak { require Carp; goto &Carp::croak; } sub carp { require Carp; goto &Carp::carp; } sub _catname { my($from, $to) = @_; if (not defined &basename) { require File::Basename; File::Basename->import( 'basename' ); } return File::Spec->catfile($to, basename($from)); } # _eq($from, $to) tells whether $from and $to are identical sub _eq { my ($from, $to) = map { blessed($_) && overload::Method($_, q{""}) ? "$_" : $_ } (@_); return '' if ( (ref $from) xor (ref $to) ); return $from == $to if ref $from; return $from eq $to; } sub copy { croak("Usage: copy(FROM, TO [, BUFFERSIZE]) ") unless(@_ == 2 || @_ == 3); my $from = shift; my $to = shift; my $size; if (@_) { $size = shift(@_) + 0; croak("Bad buffer size for copy: $size\n") unless ($size > 0); } my $from_a_handle = (ref($from) ? (ref($from) eq 'GLOB' || UNIVERSAL::isa($from, 'GLOB') || UNIVERSAL::isa($from, 'IO::Handle')) : (ref(\$from) eq 'GLOB')); my $to_a_handle = (ref($to) ? (ref($to) eq 'GLOB' || UNIVERSAL::isa($to, 'GLOB') || UNIVERSAL::isa($to, 'IO::Handle')) : (ref(\$to) eq 'GLOB')); if (_eq($from, $to)) { # works for references, too carp("'$from' and '$to' are identical (not copied)"); return 0; } if (!$from_a_handle && !$to_a_handle && -d $to && ! -d $from) { $to = _catname($from, $to); } if ((($Config{d_symlink} && $Config{d_readlink}) || $Config{d_link}) && !($^O eq 'os2')) { my @fs = stat($from); if (@fs) { my @ts = stat($to); if (@ts && $fs[0] == $ts[0] && $fs[1] eq $ts[1] && !-p $from) { carp("'$from' and '$to' are identical (not copied)"); return 0; } } } elsif (_eq($from, $to)) { carp("'$from' and '$to' are identical (not copied)"); return 0; } if (defined &syscopy && !$Syscopy_is_copy && !$to_a_handle && !($from_a_handle && $^O eq 'os2' ) # OS/2 cannot handle handles && !($from_a_handle && $^O eq 'MSWin32') ) { if ($^O eq 'VMS' && -e $from && ! -d $to && ! -d $from) { # VMS natively inherits path components from the source of a # copy, but we want the Unixy behavior of inheriting from # the current working directory. Also, default in a trailing # dot for null file types. $to = VMS::Filespec::rmsexpand(VMS::Filespec::vmsify($to), '.'); # Get rid of the old versions to be like UNIX 1 while unlink $to; } return syscopy($from, $to) || 0; } my $closefrom = 0; my $closeto = 0; my ($status, $r, $buf); local($\) = ''; my $from_h; if ($from_a_handle) { $from_h = $from; } else { open $from_h, "<", $from or goto fail_open1; binmode $from_h or die "($!,$^E)"; $closefrom = 1; } # Seems most logical to do this here, in case future changes would want to # make this croak for some reason. unless (defined $size) { $size = tied(*$from_h) ? 0 : -s $from_h || 0; $size = 1024 if ($size < 512); $size = $Too_Big if ($size > $Too_Big); } my $to_h; if ($to_a_handle) { $to_h = $to; } else { $to_h = \do { local *FH }; # XXX is this line obsolete? open $to_h, ">", $to or goto fail_open2; binmode $to_h or die "($!,$^E)"; $closeto = 1; } $! = 0; for (;;) { my ($r, $w, $t); defined($r = sysread($from_h, $buf, $size)) or goto fail_inner; last unless $r; for ($w = 0; $w < $r; $w += $t) { $t = syswrite($to_h, $buf, $r - $w, $w) or goto fail_inner; } } close($to_h) || goto fail_open2 if $closeto; close($from_h) || goto fail_open1 if $closefrom; # Use this idiom to avoid uninitialized value warning. return 1; # All of these contortions try to preserve error messages... fail_inner: if ($closeto) { $status = $!; $! = 0; close $to_h; $! = $status unless $!; } fail_open2: if ($closefrom) { $status = $!; $! = 0; close $from_h; $! = $status unless $!; } fail_open1: return 0; } sub cp { my($from,$to) = @_; my(@fromstat) = stat $from; my(@tostat) = stat $to; my $perm; return 0 unless copy(@_) and @fromstat; if (@tostat) { $perm = $tostat[2]; } else { $perm = $fromstat[2] & ~(umask || 0); @tostat = stat $to; } # Might be more robust to look for S_I* in Fcntl, but we're # trying to avoid dependence on any XS-containing modules, # since File::Copy is used during the Perl build. $perm &= 07777; if ($perm & 06000) { croak("Unable to check setuid/setgid permissions for $to: $!") unless @tostat; if ($perm & 04000 and # setuid $fromstat[4] != $tostat[4]) { # owner must match $perm &= ~06000; } if ($perm & 02000 && $> != 0) { # if not root, setgid my $ok = $fromstat[5] == $tostat[5]; # group must match if ($ok) { # and we must be in group $ok = grep { $_ == $fromstat[5] } split /\s+/, $) } $perm &= ~06000 unless $ok; } } return 0 unless @tostat; return 1 if $perm == ($tostat[2] & 07777); return eval { chmod $perm, $to; } ? 1 : 0; } sub _move { croak("Usage: move(FROM, TO) ") unless @_ == 3; my($from,$to,$fallback) = @_; my($fromsz,$tosz1,$tomt1,$tosz2,$tomt2,$sts,$ossts); if (-d $to && ! -d $from) { $to = _catname($from, $to); } ($tosz1,$tomt1) = (stat($to))[7,9]; $fromsz = -s $from; if ($^O eq 'os2' and defined $tosz1 and defined $fromsz) { # will not rename with overwrite unlink $to; } if ($^O eq 'VMS' && -e $from && ! -d $to && ! -d $from) { # VMS natively inherits path components from the source of a # copy, but we want the Unixy behavior of inheriting from # the current working directory. Also, default in a trailing # dot for null file types. $to = VMS::Filespec::rmsexpand(VMS::Filespec::vmsify($to), '.'); # Get rid of the old versions to be like UNIX 1 while unlink $to; } return 1 if rename $from, $to; # Did rename return an error even though it succeeded, because $to # is on a remote NFS file system, and NFS lost the server's ack? return 1 if defined($fromsz) && !-e $from && # $from disappeared (($tosz2,$tomt2) = (stat($to))[7,9]) && # $to's there ((!defined $tosz1) || # not before or ($tosz1 != $tosz2 or $tomt1 != $tomt2)) && # was changed $tosz2 == $fromsz; # it's all there ($tosz1,$tomt1) = (stat($to))[7,9]; # just in case rename did something { local $@; eval { local $SIG{__DIE__}; $fallback->($from,$to) or die; my($atime, $mtime) = (stat($from))[8,9]; utime($atime, $mtime, $to); unlink($from) or die; }; return 1 unless $@; } ($sts,$ossts) = ($! + 0, $^E + 0); ($tosz2,$tomt2) = ((stat($to))[7,9],0,0) if defined $tomt1; unlink($to) if !defined($tomt1) or $tomt1 != $tomt2 or $tosz1 != $tosz2; ($!,$^E) = ($sts,$ossts); return 0; } sub move { _move(@_,\©); } sub mv { _move(@_,\&cp); } # &syscopy is an XSUB under OS/2 unless (defined &syscopy) { if ($^O eq 'VMS') { *syscopy = \&rmscopy; } elsif ($^O eq 'MSWin32' && defined &DynaLoader::boot_DynaLoader) { # Win32::CopyFile() fill only work if we can load Win32.xs *syscopy = sub { return 0 unless @_ == 2; return Win32::CopyFile(@_, 1); }; } else { $Syscopy_is_copy = 1; *syscopy = \© } } 1; __END__ =head1 NAME File::Copy - Copy files or filehandles =head1 SYNOPSIS use File::Copy; copy("sourcefile", "destinationfile") or die "Copy failed: $!"; copy("Copy.pm", \*STDOUT); move("/dev1/sourcefile", "/dev2/destinationfile"); use File::Copy "cp"; my $n = FileHandle->new("/a/file", "r"); cp($n, "x"); =head1 DESCRIPTION The File::Copy module provides two basic functions, C and C, which are useful for getting the contents of a file from one place to another. =over 4 =item copy X X The C function takes two parameters: a file to copy from and a file to copy to. Either argument may be a string, a FileHandle reference or a FileHandle glob. Obviously, if the first argument is a filehandle of some sort, it will be read from, and if it is a file I it will be opened for reading. Likewise, the second argument will be written to. If the second argument does not exist but the parent directory does exist, then it will be created. Trying to copy a file into a non-existent directory is an error. Trying to copy a file on top of itself is also an error. C will not overwrite read-only files. If the destination (second argument) already exists and is a directory, and the source (first argument) is not a filehandle, then the source file will be copied into the directory specified by the destination, using the same base name as the source file. It's a failure to have a filehandle as the source when the destination is a directory. B Files are opened in binary mode where applicable. To get a consistent behaviour when copying from a filehandle to a file, use C on the filehandle. An optional third parameter can be used to specify the buffer size used for copying. This is the number of bytes from the first file, that will be held in memory at any given time, before being written to the second file. The default buffer size depends upon the file, but will generally be the whole file (up to 2MB), or 1k for filehandles that do not reference files (eg. sockets). You may use the syntax C to get at the C alias for this function. The syntax is I the same. The behavior is nearly the same as well: as of version 2.15, C will preserve the source file's permission bits like the shell utility C would do with default options, while C uses the default permissions for the target file (which may depend on the process' C, file ownership, inherited ACLs, etc.). That is, if the destination file already exists, C will leave its permissions unchanged; otherwise the permissions are taken from the source file and modified by the C. If an error occurs in setting permissions, C will return 0, regardless of whether the file was successfully copied. =item move X X X The C function also takes two parameters: the current name and the intended name of the file to be moved. If the destination already exists and is a directory, and the source is not a directory, then the source file will be renamed into the directory specified by the destination. If possible, move() will simply rename the file. Otherwise, it copies the file to the new location and deletes the original. If an error occurs during this copy-and-delete process, you may be left with a (possibly partial) copy of the file under the destination name. You may use the C alias for this function in the same way that you may use the C alias for C. =item syscopy X File::Copy also provides the C routine, which copies the file specified in the first parameter to the file specified in the second parameter, preserving OS-specific attributes and file structure. For Unix systems, this is equivalent to the simple C routine, which doesn't preserve OS-specific attributes. For VMS systems, this calls the C routine (see below). For OS/2 systems, this calls the C XSUB directly. For Win32 systems, this calls C. B is defined (OS/2, VMS and Win32)>: If both arguments to C are not file handles, then C will perform a "system copy" of the input file to a new output file, in order to preserve file attributes, indexed file structure, I The buffer size parameter is ignored. If either argument to C is a handle to an opened file, then data is copied using Perl operators, and no effort is made to preserve file attributes or record structure. The system copy routine may also be called directly under VMS and OS/2 as C (or under VMS as C, which is the routine that does the actual work for syscopy). =item rmscopy($from,$to[,$date_flag]) X The first and second arguments may be strings, typeglobs, typeglob references, or objects inheriting from IO::Handle; they are used in all cases to obtain the I of the input and output files, respectively. The name and type of the input file are used as defaults for the output file, if necessary. A new version of the output file is always created, which inherits the structure and RMS attributes of the input file, except for owner and protections (and possibly timestamps; see below). All data from the input file is copied to the output file; if either of the first two parameters to C is a file handle, its position is unchanged. (Note that this means a file handle pointing to the output file will be associated with an old version of that file after C returns, not the newly created version.) The third parameter is an integer flag, which tells C how to handle timestamps. If it is E 0, none of the input file's timestamps are propagated to the output file. If it is E 0, then it is interpreted as a bitmask: if bit 0 (the LSB) is set, then timestamps other than the revision date are propagated; if bit 1 is set, the revision date is propagated. If the third parameter to C is 0, then it behaves much like the DCL COPY command: if the name or type of the output file was explicitly specified, then no timestamps are propagated, but if they were taken implicitly from the input filespec, then all timestamps other than the revision date are propagated. If this parameter is not supplied, it defaults to 0. C is VMS specific and cannot be exported; it must be referenced by its full name, e.g.: File::Copy::rmscopy($from, $to) or die $!; Like C, C returns 1 on success. If an error occurs, it sets C<$!>, deletes the output file, and returns 0. =back =head1 RETURN All functions return 1 on success, 0 on failure. $! will be set if an error was encountered. =head1 NOTES Before calling copy() or move() on a filehandle, the caller should close or flush() the file to avoid writes being lost. Note that this is the case even for move(), because it may actually copy the file, depending on the OS-specific implementation, and the underlying filesystem(s). =head1 AUTHOR File::Copy was written by Aaron Sherman Iajs@ajs.comE> in 1995, and updated by Charles Bailey Ibailey@newman.upenn.eduE> in 1996. =cut FILE75585812/File/Basename.pm+=head1 NAME File::Basename - Parse file paths into directory, filename and suffix. =head1 SYNOPSIS use File::Basename; my ($name, $path, $suffix) = fileparse($fullname, @suffixlist); my $name = fileparse($fullname, @suffixlist); my $basename = basename($fullname, @suffixlist); my $dirname = dirname($fullname); =head1 DESCRIPTION These routines allow you to parse file paths into their directory, filename and suffix. B: C and C emulate the behaviours, and quirks, of the shell and C functions of the same name. See each function's documentation for details. If your concern is just parsing paths it is safer to use L's C and C methods. It is guaranteed that # Where $path_separator is / for Unix, \ for Windows, etc... dirname($path) . $path_separator . basename($path); is equivalent to the original path for all systems but VMS. =cut package File::Basename; # File::Basename is used during the Perl build, when the re extension may # not be available, but we only actually need it if running under tainting. BEGIN { if (${^TAINT}) { require re; re->import('taint'); } } use strict; use 5.006; use warnings; our(@ISA, @EXPORT, $VERSION, $Fileparse_fstype, $Fileparse_igncase); require Exporter; @ISA = qw(Exporter); @EXPORT = qw(fileparse fileparse_set_fstype basename dirname); $VERSION = "2.86"; fileparse_set_fstype($^O); =over 4 =item C X my($filename, $dirs, $suffix) = fileparse($path); my($filename, $dirs, $suffix) = fileparse($path, @suffixes); my $filename = fileparse($path, @suffixes); The C routine divides a file path into its $dirs, $filename and (optionally) the filename $suffix. $dirs contains everything up to and including the last directory separator in the $path including the volume (if applicable). The remainder of the $path is the $filename. # On Unix returns ("baz", "/foo/bar/", "") fileparse("/foo/bar/baz"); # On Windows returns ("baz", 'C:\foo\bar\', "") fileparse('C:\foo\bar\baz'); # On Unix returns ("", "/foo/bar/baz/", "") fileparse("/foo/bar/baz/"); If @suffixes are given each element is a pattern (either a string or a C) matched against the end of the $filename. The matching portion is removed and becomes the $suffix. # On Unix returns ("baz", "/foo/bar/", ".txt") fileparse("/foo/bar/baz.txt", qr/\.[^.]*/); If type is non-Unix (see L) then the pattern matching for suffix removal is performed case-insensitively, since those systems are not case-sensitive when opening existing files. You are guaranteed that C<$dirs . $filename . $suffix> will denote the same location as the original $path. =cut sub fileparse { my($fullname,@suffices) = @_; unless (defined $fullname) { require Carp; Carp::croak("fileparse(): need a valid pathname"); } my $orig_type = ''; my($type,$igncase) = ($Fileparse_fstype, $Fileparse_igncase); my($taint) = substr($fullname,0,0); # Is $fullname tainted? if ($type eq "VMS" and $fullname =~ m{/} ) { # We're doing Unix emulation $orig_type = $type; $type = 'Unix'; } my($dirpath, $basename); if (grep { $type eq $_ } qw(MSDOS DOS MSWin32 Epoc)) { ($dirpath,$basename) = ($fullname =~ /^((?:.*[:\\\/])?)(.*)/s); $dirpath .= '.\\' unless $dirpath =~ /[\\\/]\z/; } elsif ($type eq "OS2") { ($dirpath,$basename) = ($fullname =~ m#^((?:.*[:\\/])?)(.*)#s); $dirpath = './' unless $dirpath; # Can't be 0 $dirpath .= '/' unless $dirpath =~ m#[\\/]\z#; } elsif ($type eq "MacOS") { ($dirpath,$basename) = ($fullname =~ /^(.*:)?(.*)/s); $dirpath = ':' unless $dirpath; } elsif ($type eq "AmigaOS") { ($dirpath,$basename) = ($fullname =~ /(.*[:\/])?(.*)/s); $dirpath = './' unless $dirpath; } elsif ($type eq 'VMS' ) { ($dirpath,$basename) = ($fullname =~ /^(.*[:>\]])?(.*)/s); $dirpath ||= ''; # should always be defined } else { # Default to Unix semantics. ($dirpath,$basename) = ($fullname =~ m{^(.*/)?(.*)}s); if ($orig_type eq 'VMS' and $fullname =~ m{^(/[^/]+/000000(/|$))(.*)}) { # dev:[000000] is top of VMS tree, similar to Unix '/' # so strip it off and treat the rest as "normal" my $devspec = $1; my $remainder = $3; ($dirpath,$basename) = ($remainder =~ m{^(.*/)?(.*)}s); $dirpath ||= ''; # should always be defined $dirpath = $devspec.$dirpath; } $dirpath = './' unless $dirpath; } my $tail = ''; my $suffix = ''; if (@suffices) { foreach $suffix (@suffices) { my $pat = ($igncase ? '(?i)' : '') . "($suffix)\$"; if ($basename =~ s/$pat//s) { $taint .= substr($suffix,0,0); $tail = $1 . $tail; } } } # Ensure taint is propagated from the path to its pieces. $tail .= $taint; wantarray ? ($basename .= $taint, $dirpath .= $taint, $tail) : ($basename .= $taint); } =item C X X my $filename = basename($path); my $filename = basename($path, @suffixes); This function is provided for compatibility with the Unix shell command C. It does B always return the file name portion of a path as you might expect. To be safe, if you want the file name portion of a path use C. C returns the last level of a filepath even if the last level is clearly directory. In effect, it is acting like C for paths. This differs from C's behaviour. # Both return "bar" basename("/foo/bar"); basename("/foo/bar/"); @suffixes work as in C except all regex metacharacters are quoted. # These two function calls are equivalent. my $filename = basename("/foo/bar/baz.txt", ".txt"); my $filename = fileparse("/foo/bar/baz.txt", qr/\Q.txt\E/); Also note that in order to be compatible with the shell command, C does not strip off a suffix if it is identical to the remaining characters in the filename. =cut sub basename { my($path) = shift; # From BSD basename(1) # The basename utility deletes any prefix ending with the last slash '/' # character present in string (after first stripping trailing slashes) _strip_trailing_sep($path); my($basename, $dirname, $suffix) = fileparse( $path, map("\Q$_\E",@_) ); # From BSD basename(1) # The suffix is not stripped if it is identical to the remaining # characters in string. if( length $suffix and !length $basename ) { $basename = $suffix; } # Ensure that basename '/' == '/' if( !length $basename ) { $basename = $dirname; } return $basename; } =item C X This function is provided for compatibility with the Unix shell command C and has inherited some of its quirks. In spite of its name it does B always return the directory name as you might expect. To be safe, if you want the directory name of a path use C. Only on VMS (where there is no ambiguity between the file and directory portions of a path) and AmigaOS (possibly due to an implementation quirk in this module) does C work like C, returning just the $dirs. # On VMS and AmigaOS my $dirs = dirname($path); When using Unix or MSDOS syntax this emulates the C shell function which is subtly different from how C works. It returns all but the last level of a file path even if the last level is clearly a directory. In effect, it is not returning the directory portion but simply the path one level up acting like C for file paths. Also unlike C, C does not include a trailing slash on its returned path. # returns /foo/bar. fileparse() would return /foo/bar/ dirname("/foo/bar/baz"); # also returns /foo/bar despite the fact that baz is clearly a # directory. fileparse() would return /foo/bar/baz/ dirname("/foo/bar/baz/"); # returns '.'. fileparse() would return 'foo/' dirname("foo/"); Under VMS, if there is no directory information in the $path, then the current default device and directory is used. =cut sub dirname { my $path = shift; my($type) = $Fileparse_fstype; if( $type eq 'VMS' and $path =~ m{/} ) { # Parse as Unix local($File::Basename::Fileparse_fstype) = ''; return dirname($path); } my($basename, $dirname) = fileparse($path); if ($type eq 'VMS') { $dirname ||= $ENV{DEFAULT}; } elsif ($type eq 'MacOS') { if( !length($basename) && $dirname !~ /^[^:]+:\z/) { _strip_trailing_sep($dirname); ($basename,$dirname) = fileparse $dirname; } $dirname .= ":" unless $dirname =~ /:\z/; } elsif (grep { $type eq $_ } qw(MSDOS DOS MSWin32 OS2)) { _strip_trailing_sep($dirname); unless( length($basename) ) { ($basename,$dirname) = fileparse $dirname; _strip_trailing_sep($dirname); } } elsif ($type eq 'AmigaOS') { if ( $dirname =~ /:\z/) { return $dirname } chop $dirname; $dirname =~ s{[^:/]+\z}{} unless length($basename); } else { _strip_trailing_sep($dirname); unless( length($basename) ) { ($basename,$dirname) = fileparse $dirname; _strip_trailing_sep($dirname); } } $dirname; } # Strip the trailing path separator. sub _strip_trailing_sep { my $type = $Fileparse_fstype; if ($type eq 'MacOS') { $_[0] =~ s/([^:]):\z/$1/s; } elsif (grep { $type eq $_ } qw(MSDOS DOS MSWin32 OS2)) { $_[0] =~ s/([^:])[\\\/]*\z/$1/; } else { $_[0] =~ s{(.)/*\z}{$1}s; } } =item C X my $type = fileparse_set_fstype(); my $previous_type = fileparse_set_fstype($type); Normally File::Basename will assume a file path type native to your current operating system (ie. /foo/bar style on Unix, \foo\bar on Windows, etc...). With this function you can override that assumption. Valid $types are "MacOS", "VMS", "AmigaOS", "OS2", "RISCOS", "MSWin32", "DOS" (also "MSDOS" for backwards bug compatibility), "Epoc" and "Unix" (all case-insensitive). If an unrecognized $type is given "Unix" will be assumed. If you've selected VMS syntax, and the file specification you pass to one of these routines contains a "/", they assume you are using Unix emulation and apply the Unix syntax rules instead, for that function call only. =back =cut BEGIN { my @Ignore_Case = qw(MacOS VMS AmigaOS OS2 RISCOS MSWin32 MSDOS DOS Epoc); my @Types = (@Ignore_Case, qw(Unix)); sub fileparse_set_fstype { my $old = $Fileparse_fstype; if (@_) { my $new_type = shift; $Fileparse_fstype = 'Unix'; # default foreach my $type (@Types) { $Fileparse_fstype = $type if $new_type =~ /^$type/i; } $Fileparse_igncase = (grep $Fileparse_fstype eq $_, @Ignore_Case) ? 1 : 0; } return $old; } } 1; =head1 SEE ALSO L, L, L FILE57006cdb/Carp/Heavy.pmpackage Carp::Heavy; use Carp (); our $VERSION = '1.54'; $VERSION =~ tr/_//d; # Carp::Heavy was merged into Carp in version 1.12. Any mismatched versions # after this point are not significant and can be ignored. if(($Carp::VERSION || 0) < 1.12) { my $cv = defined($Carp::VERSION) ? $Carp::VERSION : "undef"; die "Version mismatch between Carp $cv ($INC{q(Carp.pm)}) and Carp::Heavy $VERSION ($INC{q(Carp/Heavy.pm)}). Did you alter \@INC after Carp was loaded?\n"; } 1; # Most of the machinery of Carp used to be here. # It has been moved in Carp.pm now, but this placeholder remains for # the benefit of modules that like to preload Carp::Heavy directly. # This must load Carp, because some modules rely on the historical # behaviour of Carp::Heavy loading Carp. FILEfc7a47f7/Compress/Zlib.pm/ package Compress::Zlib; require 5.006 ; require Exporter; use Carp ; use IO::Handle ; use Scalar::Util qw(dualvar); use IO::Compress::Base::Common 2.213 ; use Compress::Raw::Zlib 2.213 ; use IO::Compress::Gzip 2.213 ; use IO::Uncompress::Gunzip 2.213 ; use strict ; use warnings ; use bytes ; our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); $VERSION = '2.213'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @ISA = qw(Exporter); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. @EXPORT = qw( deflateInit inflateInit compress uncompress gzopen $gzerrno ); push @EXPORT, @Compress::Raw::Zlib::EXPORT ; @EXPORT_OK = qw(memGunzip memGzip zlib_version); %EXPORT_TAGS = ( ALL => \@EXPORT ); BEGIN { *zlib_version = \&Compress::Raw::Zlib::zlib_version; } use constant FLAG_APPEND => 1 ; use constant FLAG_CRC => 2 ; use constant FLAG_ADLER => 4 ; use constant FLAG_CONSUME_INPUT => 8 ; our (@my_z_errmsg); @my_z_errmsg = ( "need dictionary", # Z_NEED_DICT 2 "stream end", # Z_STREAM_END 1 "", # Z_OK 0 "file error", # Z_ERRNO (-1) "stream error", # Z_STREAM_ERROR (-2) "data error", # Z_DATA_ERROR (-3) "insufficient memory", # Z_MEM_ERROR (-4) "buffer error", # Z_BUF_ERROR (-5) "incompatible version",# Z_VERSION_ERROR(-6) ); sub _set_gzerr { my $value = shift ; if ($value == 0) { $Compress::Zlib::gzerrno = 0 ; } elsif ($value == Z_ERRNO() || $value > 2) { $Compress::Zlib::gzerrno = $! ; } else { $Compress::Zlib::gzerrno = dualvar($value+0, $my_z_errmsg[2 - $value]); } return $value ; } sub _set_gzerr_undef { _set_gzerr(@_); return undef; } sub _save_gzerr { my $gz = shift ; my $test_eof = shift ; my $value = $gz->errorNo() || 0 ; my $eof = $gz->eof() ; if ($test_eof) { # gzread uses Z_STREAM_END to denote a successful end $value = Z_STREAM_END() if $gz->eof() && $value == 0 ; } _set_gzerr($value) ; } sub gzopen($$) { my ($file, $mode) = @_ ; my $gz ; my %defOpts = (Level => Z_DEFAULT_COMPRESSION(), Strategy => Z_DEFAULT_STRATEGY(), ); my $writing ; $writing = ! ($mode =~ /r/i) ; $writing = ($mode =~ /[wa]/i) ; $defOpts{Level} = $1 if $mode =~ /(\d)/; $defOpts{Strategy} = Z_FILTERED() if $mode =~ /f/i; $defOpts{Strategy} = Z_HUFFMAN_ONLY() if $mode =~ /h/i; $defOpts{Append} = 1 if $mode =~ /a/i; my $infDef = $writing ? 'deflate' : 'inflate'; my @params = () ; croak "gzopen: file parameter is not a filehandle or filename" unless isaFilehandle $file || isaFilename $file || (ref $file && ref $file eq 'SCALAR'); return undef unless $mode =~ /[rwa]/i ; _set_gzerr(0) ; if ($writing) { $gz = IO::Compress::Gzip->new($file, Minimal => 1, AutoClose => 1, %defOpts) or $Compress::Zlib::gzerrno = $IO::Compress::Gzip::GzipError; } else { $gz = IO::Uncompress::Gunzip->new($file, Transparent => 1, Append => 0, AutoClose => 1, MultiStream => 1, Strict => 0) or $Compress::Zlib::gzerrno = $IO::Uncompress::Gunzip::GunzipError; } return undef if ! defined $gz ; bless [$gz, $infDef], 'Compress::Zlib::gzFile'; } sub Compress::Zlib::gzFile::gzread { my $self = shift ; return _set_gzerr(Z_STREAM_ERROR()) if $self->[1] ne 'inflate'; my $len = defined $_[1] ? $_[1] : 4096 ; my $gz = $self->[0] ; if ($self->gzeof() || $len == 0) { # Zap the output buffer to match ver 1 behaviour. $_[0] = "" ; _save_gzerr($gz, 1); return 0 ; } my $status = $gz->read($_[0], $len) ; _save_gzerr($gz, 1); return $status ; } sub Compress::Zlib::gzFile::gzreadline { my $self = shift ; my $gz = $self->[0] ; { # Maintain backward compatibility with 1.x behaviour # It didn't support $/, so this can't either. local $/ = "\n" ; $_[0] = $gz->getline() ; } _save_gzerr($gz, 1); return defined $_[0] ? length $_[0] : 0 ; } sub Compress::Zlib::gzFile::gzwrite { my $self = shift ; my $gz = $self->[0] ; return _set_gzerr(Z_STREAM_ERROR()) if $self->[1] ne 'deflate'; $] >= 5.008 and (utf8::downgrade($_[0], 1) or croak "Wide character in gzwrite"); my $status = $gz->write($_[0]) ; _save_gzerr($gz); return $status ; } sub Compress::Zlib::gzFile::gztell { my $self = shift ; my $gz = $self->[0] ; my $status = $gz->tell() ; _save_gzerr($gz); return $status ; } sub Compress::Zlib::gzFile::gzseek { my $self = shift ; my $offset = shift ; my $whence = shift ; my $gz = $self->[0] ; my $status ; eval { local $SIG{__DIE__}; $status = $gz->seek($offset, $whence) ; }; if ($@) { my $error = $@; $error =~ s/^.*: /gzseek: /; $error =~ s/ at .* line \d+\s*$//; croak $error; } _save_gzerr($gz); return $status ; } sub Compress::Zlib::gzFile::gzflush { my $self = shift ; my $f = shift ; my $gz = $self->[0] ; my $status = $gz->flush($f) ; my $err = _save_gzerr($gz); return $status ? 0 : $err; } sub Compress::Zlib::gzFile::gzclose { my $self = shift ; my $gz = $self->[0] ; my $status = $gz->close() ; my $err = _save_gzerr($gz); return $status ? 0 : $err; } sub Compress::Zlib::gzFile::gzeof { my $self = shift ; my $gz = $self->[0] ; return 0 if $self->[1] ne 'inflate'; my $status = $gz->eof() ; _save_gzerr($gz); return $status ; } sub Compress::Zlib::gzFile::gzsetparams { my $self = shift ; croak "Usage: Compress::Zlib::gzFile::gzsetparams(file, level, strategy)" unless @_ eq 2 ; my $gz = $self->[0] ; my $level = shift ; my $strategy = shift; return _set_gzerr(Z_STREAM_ERROR()) if $self->[1] ne 'deflate'; my $status = *$gz->{Compress}->deflateParams(-Level => $level, -Strategy => $strategy); _save_gzerr($gz); return $status ; } sub Compress::Zlib::gzFile::gzerror { my $self = shift ; my $gz = $self->[0] ; return $Compress::Zlib::gzerrno ; } sub compress($;$) { my ($x, $output, $err, $in) =('', '', '', '') ; if (ref $_[0] ) { $in = $_[0] ; croak "not a scalar reference" unless ref $in eq 'SCALAR' ; } else { $in = \$_[0] ; } $] >= 5.008 and (utf8::downgrade($$in, 1) or croak "Wide character in compress"); my $level = (@_ == 2 ? $_[1] : Z_DEFAULT_COMPRESSION() ); $x = Compress::Raw::Zlib::_deflateInit(FLAG_APPEND, $level, Z_DEFLATED, MAX_WBITS, MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY, 4096, '') or return undef ; $err = $x->deflate($in, $output) ; return undef unless $err == Z_OK() ; $err = $x->flush($output) ; return undef unless $err == Z_OK() ; return $output ; } sub uncompress($) { my ($output, $in) =('', '') ; if (ref $_[0] ) { $in = $_[0] ; croak "not a scalar reference" unless ref $in eq 'SCALAR' ; } else { $in = \$_[0] ; } $] >= 5.008 and (utf8::downgrade($$in, 1) or croak "Wide character in uncompress"); my ($obj, $status) = Compress::Raw::Zlib::_inflateInit(0, MAX_WBITS, 4096, "") ; $status == Z_OK or return undef; $obj->inflate($in, $output) == Z_STREAM_END or return undef; return $output; } sub deflateInit(@) { my ($got) = ParseParameters(0, { 'bufsize' => [IO::Compress::Base::Common::Parse_unsigned, 4096], 'level' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_COMPRESSION()], 'method' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFLATED()], 'windowbits' => [IO::Compress::Base::Common::Parse_signed, MAX_WBITS()], 'memlevel' => [IO::Compress::Base::Common::Parse_unsigned, MAX_MEM_LEVEL()], 'strategy' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFAULT_STRATEGY()], 'dictionary' => [IO::Compress::Base::Common::Parse_any, ""], }, @_ ) ; croak "Compress::Zlib::deflateInit: Bufsize must be >= 1, you specified " . $got->getValue('bufsize') unless $got->getValue('bufsize') >= 1; my $obj ; my $status = 0 ; ($obj, $status) = Compress::Raw::Zlib::_deflateInit(0, $got->getValue('level'), $got->getValue('method'), $got->getValue('windowbits'), $got->getValue('memlevel'), $got->getValue('strategy'), $got->getValue('bufsize'), $got->getValue('dictionary')) ; my $x = ($status == Z_OK() ? bless $obj, "Zlib::OldDeflate" : undef) ; return wantarray ? ($x, $status) : $x ; } sub inflateInit(@) { my ($got) = ParseParameters(0, { 'bufsize' => [IO::Compress::Base::Common::Parse_unsigned, 4096], 'windowbits' => [IO::Compress::Base::Common::Parse_signed, MAX_WBITS()], 'dictionary' => [IO::Compress::Base::Common::Parse_any, ""], }, @_) ; croak "Compress::Zlib::inflateInit: Bufsize must be >= 1, you specified " . $got->getValue('bufsize') unless $got->getValue('bufsize') >= 1; my $status = 0 ; my $obj ; ($obj, $status) = Compress::Raw::Zlib::_inflateInit(FLAG_CONSUME_INPUT, $got->getValue('windowbits'), $got->getValue('bufsize'), $got->getValue('dictionary')) ; my $x = ($status == Z_OK() ? bless $obj, "Zlib::OldInflate" : undef) ; wantarray ? ($x, $status) : $x ; } package Zlib::OldDeflate ; our (@ISA); @ISA = qw(Compress::Raw::Zlib::deflateStream); sub deflate { my $self = shift ; my $output ; my $status = $self->SUPER::deflate($_[0], $output) ; wantarray ? ($output, $status) : $output ; } sub flush { my $self = shift ; my $output ; my $flag = shift || Compress::Zlib::Z_FINISH(); my $status = $self->SUPER::flush($output, $flag) ; wantarray ? ($output, $status) : $output ; } package Zlib::OldInflate ; our (@ISA); @ISA = qw(Compress::Raw::Zlib::inflateStream); sub inflate { my $self = shift ; my $output ; my $status = $self->SUPER::inflate($_[0], $output) ; wantarray ? ($output, $status) : $output ; } package Compress::Zlib ; use IO::Compress::Gzip::Constants 2.213 ; sub memGzip($) { _set_gzerr(0); my $x = Compress::Raw::Zlib::_deflateInit(FLAG_APPEND|FLAG_CRC, Z_BEST_COMPRESSION, Z_DEFLATED, -MAX_WBITS(), MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY, 4096, '') or return undef ; # if the deflation buffer isn't a reference, make it one my $string = (ref $_[0] ? $_[0] : \$_[0]) ; $] >= 5.008 and (utf8::downgrade($$string, 1) or croak "Wide character in memGzip"); my $out; my $status ; $x->deflate($string, $out) == Z_OK or return undef ; $x->flush($out) == Z_OK or return undef ; return IO::Compress::Gzip::Constants::GZIP_MINIMUM_HEADER . $out . pack("V V", $x->crc32(), $x->total_in()); } sub _removeGzipHeader($) { my $string = shift ; return Z_DATA_ERROR() if length($$string) < GZIP_MIN_HEADER_SIZE ; my ($magic1, $magic2, $method, $flags, $time, $xflags, $oscode) = unpack ('CCCCVCC', $$string); return Z_DATA_ERROR() unless $magic1 == GZIP_ID1 and $magic2 == GZIP_ID2 and $method == Z_DEFLATED() and !($flags & GZIP_FLG_RESERVED) ; substr($$string, 0, GZIP_MIN_HEADER_SIZE) = '' ; # skip extra field if ($flags & GZIP_FLG_FEXTRA) { return Z_DATA_ERROR() if length($$string) < GZIP_FEXTRA_HEADER_SIZE ; my ($extra_len) = unpack ('v', $$string); $extra_len += GZIP_FEXTRA_HEADER_SIZE; return Z_DATA_ERROR() if length($$string) < $extra_len ; substr($$string, 0, $extra_len) = ''; } # skip orig name if ($flags & GZIP_FLG_FNAME) { my $name_end = index ($$string, GZIP_NULL_BYTE); return Z_DATA_ERROR() if $name_end == -1 ; substr($$string, 0, $name_end + 1) = ''; } # skip comment if ($flags & GZIP_FLG_FCOMMENT) { my $comment_end = index ($$string, GZIP_NULL_BYTE); return Z_DATA_ERROR() if $comment_end == -1 ; substr($$string, 0, $comment_end + 1) = ''; } # skip header crc if ($flags & GZIP_FLG_FHCRC) { return Z_DATA_ERROR() if length ($$string) < GZIP_FHCRC_SIZE ; substr($$string, 0, GZIP_FHCRC_SIZE) = ''; } return Z_OK(); } sub _ret_gun_error { $Compress::Zlib::gzerrno = $IO::Uncompress::Gunzip::GunzipError; return undef; } sub memGunzip($) { # if the buffer isn't a reference, make it one my $string = (ref $_[0] ? $_[0] : \$_[0]); $] >= 5.008 and (utf8::downgrade($$string, 1) or croak "Wide character in memGunzip"); _set_gzerr(0); my $status = _removeGzipHeader($string) ; $status == Z_OK() or return _set_gzerr_undef($status); my $bufsize = length $$string > 4096 ? length $$string : 4096 ; my $x = Compress::Raw::Zlib::_inflateInit(FLAG_CRC | FLAG_CONSUME_INPUT, -MAX_WBITS(), $bufsize, '') or return _ret_gun_error(); my $output = '' ; $status = $x->inflate($string, $output); if ( $status == Z_OK() ) { _set_gzerr(Z_DATA_ERROR()); return undef; } return _ret_gun_error() if ($status != Z_STREAM_END()); if (length $$string >= 8) { my ($crc, $len) = unpack ("VV", substr($$string, 0, 8)); substr($$string, 0, 8) = ''; return _set_gzerr_undef(Z_DATA_ERROR()) unless $len == length($output) and $crc == Compress::Raw::Zlib::crc32($output); } else { $$string = ''; } return $output; } # Autoload methods go after __END__, and are processed by the autosplit program. 1; __END__ =head1 NAME Compress::Zlib - Interface to zlib compression library =head1 SYNOPSIS use Compress::Zlib ; ($d, $status) = deflateInit( [OPT] ) ; $status = $d->deflate($input, $output) ; $status = $d->flush([$flush_type]) ; $d->deflateParams(OPTS) ; $d->deflateTune(OPTS) ; $d->dict_adler() ; $d->crc32() ; $d->adler32() ; $d->total_in() ; $d->total_out() ; $d->msg() ; $d->get_Strategy(); $d->get_Level(); $d->get_BufSize(); ($i, $status) = inflateInit( [OPT] ) ; $status = $i->inflate($input, $output [, $eof]) ; $status = $i->inflateSync($input) ; $i->dict_adler() ; $d->crc32() ; $d->adler32() ; $i->total_in() ; $i->total_out() ; $i->msg() ; $d->get_BufSize(); $dest = compress($source) ; $dest = uncompress($source) ; $gz = gzopen($filename or filehandle, $mode) ; $bytesread = $gz->gzread($buffer [,$size]) ; $bytesread = $gz->gzreadline($line) ; $byteswritten = $gz->gzwrite($buffer) ; $status = $gz->gzflush($flush) ; $offset = $gz->gztell() ; $status = $gz->gzseek($offset, $whence) ; $status = $gz->gzclose() ; $status = $gz->gzeof() ; $status = $gz->gzsetparams($level, $strategy) ; $errstring = $gz->gzerror() ; $gzerrno $dest = Compress::Zlib::memGzip($buffer) ; $dest = Compress::Zlib::memGunzip($buffer) ; $crc = adler32($buffer [,$crc]) ; $crc = crc32($buffer [,$crc]) ; $crc = crc32_combine($crc1, $crc2, $len2); $adler = adler32_combine($adler1, $adler2, $len2); my $version = Compress::Raw::Zlib::zlib_version(); =head1 DESCRIPTION The I module provides a Perl interface to the I compression library (see L for details about where to get I). The C module can be split into two general areas of functionality, namely a simple read/write interface to I files and a low-level in-memory compression/decompression interface. Each of these areas will be discussed in the following sections. =head2 Notes for users of Compress::Zlib version 1 The main change in C version 2.x is that it does not now interface directly to the zlib library. Instead it uses the C and C modules for reading/writing gzip files, and the C module for some low-level zlib access. The interface provided by version 2 of this module should be 100% backward compatible with version 1. If you find a difference in the expected behaviour please contact the author (See L). See L With the creation of the C and C modules no new features are planned for C - the new modules do everything that C does and then some. Development on C will be limited to bug fixes only. If you are writing new code, your first port of call should be one of the new C or C modules. =head1 GZIP INTERFACE A number of functions are supplied in I for reading and writing I files that conform to RFC 1952. This module provides an interface to most of them. If you have previously used C 1.x, the following enhancements/changes have been made to the C interface: =over 5 =item 1 If you want to open either STDIN or STDOUT with C, you can now optionally use the special filename "C<->" as a synonym for C<\*STDIN> and C<\*STDOUT>. =item 2 In C version 1.x, C used the zlib library to open the underlying file. This made things especially tricky when a Perl filehandle was passed to C. Behind the scenes the numeric C file descriptor had to be extracted from the Perl filehandle and this passed to the zlib library. Apart from being non-portable to some operating systems, this made it difficult to use C in situations where you wanted to extract/create a gzip data stream that is embedded in a larger file, without having to resort to opening and closing the file multiple times. It also made it impossible to pass a perl filehandle that wasn't associated with a real filesystem file, like, say, an C. In C version 2.x, the C interface has been completely rewritten to use the L for writing gzip files and L for reading gzip files. None of the limitations mentioned above apply. =item 3 Addition of C to provide a restricted C interface. =item 4. Added C. =back A more complete and flexible interface for reading/writing gzip files/buffers is included with the module C. See L and L for more details. =over 5 =item B<$gz = gzopen($filename, $mode)> =item B<$gz = gzopen($filehandle, $mode)> This function opens either the I file C<$filename> for reading or writing or attaches to the opened filehandle, C<$filehandle>. It returns an object on success and C on failure. When writing a gzip file this interface will I create the smallest possible gzip header (exactly 10 bytes). If you want greater control over what gets stored in the gzip header (like the original filename or a comment) use L instead. Similarly if you want to read the contents of the gzip header use L. The second parameter, C<$mode>, is used to specify whether the file is opened for reading or writing and to optionally specify a compression level and compression strategy when writing. The format of the C<$mode> parameter is similar to the mode parameter to the 'C' function C, so "rb" is used to open for reading, "wb" for writing and "ab" for appending (writing at the end of the file). To specify a compression level when writing, append a digit between 0 and 9 to the mode string -- 0 means no compression and 9 means maximum compression. If no compression level is specified Z_DEFAULT_COMPRESSION is used. To specify the compression strategy when writing, append 'f' for filtered data, 'h' for Huffman only compression, or 'R' for run-length encoding. If no strategy is specified Z_DEFAULT_STRATEGY is used. So, for example, "wb9" means open for writing with the maximum compression using the default strategy and "wb4R" means open for writing with compression level 4 and run-length encoding. Refer to the I documentation for the exact format of the C<$mode> parameter. =item B<$bytesread = $gz-Egzread($buffer [, $size]) ;> Reads C<$size> bytes from the compressed file into C<$buffer>. If C<$size> is not specified, it will default to 4096. If the scalar C<$buffer> is not large enough, it will be extended automatically. Returns the number of bytes actually read. On EOF it returns 0 and in the case of an error, -1. =item B<$bytesread = $gz-Egzreadline($line) ;> Reads the next line from the compressed file into C<$line>. Returns the number of bytes actually read. On EOF it returns 0 and in the case of an error, -1. It is legal to intermix calls to C and C. To maintain backward compatibility with version 1.x of this module C ignores the C<$/> variable - it I uses the string C<"\n"> as the line delimiter. If you want to read a gzip file a line at a time and have it respect the C<$/> variable (or C<$INPUT_RECORD_SEPARATOR>, or C<$RS> when C is in use) see L. =item B<$byteswritten = $gz-Egzwrite($buffer) ;> Writes the contents of C<$buffer> to the compressed file. Returns the number of bytes actually written, or 0 on error. =item B<$status = $gz-Egzflush($flush_type) ;> Flushes all pending output into the compressed file. This method takes an optional parameter, C<$flush_type>, that controls how the flushing will be carried out. By default the C<$flush_type> used is C. Other valid values for C<$flush_type> are C, C, C and C. It is strongly recommended that you only set the C parameter if you fully understand the implications of what it does - overuse of C can seriously degrade the level of compression achieved. See the C documentation for details. Returns 0 on success. =item B<$offset = $gz-Egztell() ;> Returns the uncompressed file offset. =item B<$status = $gz-Egzseek($offset, $whence) ;> Provides a sub-set of the C functionality, with the restriction that it is only legal to seek forward in the compressed file. It is a fatal error to attempt to seek backward. When opened for writing, empty parts of the file will have NULL (0x00) bytes written to them. The C<$whence> parameter should be one of SEEK_SET, SEEK_CUR or SEEK_END. Returns 1 on success, 0 on failure. =item B<$gz-Egzclose> Closes the compressed file. Any pending data is flushed to the file before it is closed. Returns 0 on success. =item B<$gz-Egzsetparams($level, $strategy> Change settings for the deflate stream C<$gz>. The list of the valid options is shown below. Options not specified will remain unchanged. Note: This method is only available if you are running zlib 1.0.6 or better. =over 5 =item B<$level> Defines the compression level. Valid values are 0 through 9, C, C, C, and C. =item B<$strategy> Defines the strategy used to tune the compression. The valid values are C, C and C. =back =item B<$gz-Egzerror> Returns the I error message or number for the last operation associated with C<$gz>. The return value will be the I error number when used in a numeric context and the I error message when used in a string context. The I error number constants, shown below, are available for use. Z_OK Z_STREAM_END Z_ERRNO Z_STREAM_ERROR Z_DATA_ERROR Z_MEM_ERROR Z_BUF_ERROR =item B<$gzerrno> The C<$gzerrno> scalar holds the error code associated with the most recent I routine. Note that unlike C, the error is I associated with a particular file. As with C it returns an error number in numeric context and an error message in string context. Unlike C though, the error message will correspond to the I message when the error is associated with I itself, or the UNIX error message when it is not (i.e. I returned C). As there is an overlap between the error numbers used by I and UNIX, C<$gzerrno> should only be used to check for the presence of I error in numeric context. Use C to check for specific I errors. The I example below shows how the variable can be used safely. =back =head2 Examples Here is an example script which uses the interface. It implements a I function. use strict ; use warnings ; use Compress::Zlib ; # use stdin if no files supplied @ARGV = '-' unless @ARGV ; foreach my $file (@ARGV) { my $buffer ; my $gz = gzopen($file, "rb") or die "Cannot open $file: $gzerrno\n" ; print $buffer while $gz->gzread($buffer) > 0 ; die "Error reading from $file: $gzerrno" . ($gzerrno+0) . "\n" if $gzerrno != Z_STREAM_END ; $gz->gzclose() ; } Below is a script which makes use of C. It implements a very simple I like script. use strict ; use warnings ; use Compress::Zlib ; die "Usage: gzgrep pattern [file...]\n" unless @ARGV >= 1; my $pattern = shift ; # use stdin if no files supplied @ARGV = '-' unless @ARGV ; foreach my $file (@ARGV) { my $gz = gzopen($file, "rb") or die "Cannot open $file: $gzerrno\n" ; while ($gz->gzreadline($_) > 0) { print if /$pattern/ ; } die "Error reading from $file: $gzerrno\n" if $gzerrno != Z_STREAM_END ; $gz->gzclose() ; } This script, I, does the opposite of the I script above. It reads from standard input and writes a gzip data stream to standard output. use strict ; use warnings ; use Compress::Zlib ; binmode STDOUT; # gzopen only sets it on the fd my $gz = gzopen(\*STDOUT, "wb") or die "Cannot open stdout: $gzerrno\n" ; while (<>) { $gz->gzwrite($_) or die "error writing: $gzerrno\n" ; } $gz->gzclose ; =head2 Compress::Zlib::memGzip This function is used to create an in-memory gzip file with the minimum possible gzip header (exactly 10 bytes). $dest = Compress::Zlib::memGzip($buffer) or die "Cannot compress: $gzerrno\n"; If successful, it returns the in-memory gzip file. Otherwise it returns C and the C<$gzerrno> variable will store the zlib error code. The C<$buffer> parameter can either be a scalar or a scalar reference. See L for an alternative way to carry out in-memory gzip compression. =head2 Compress::Zlib::memGunzip This function is used to uncompress an in-memory gzip file. $dest = Compress::Zlib::memGunzip($buffer) or die "Cannot uncompress: $gzerrno\n"; If successful, it returns the uncompressed gzip file. Otherwise it returns C and the C<$gzerrno> variable will store the zlib error code. The C<$buffer> parameter can either be a scalar or a scalar reference. The contents of the C<$buffer> parameter are destroyed after calling this function. If C<$buffer> consists of multiple concatenated gzip data streams only the first will be uncompressed. Use C with the C option in the C module if you need to deal with concatenated data streams. See L for an alternative way to carry out in-memory gzip uncompression. =head1 COMPRESS/UNCOMPRESS Two functions are provided to perform in-memory compression/uncompression of RFC 1950 data streams. They are called C and C. =over 5 =item B<$dest = compress($source [, $level] ) ;> Compresses C<$source>. If successful it returns the compressed data. Otherwise it returns I. The source buffer, C<$source>, can either be a scalar or a scalar reference. The C<$level> parameter defines the compression level. Valid values are 0 through 9, C, C, C, and C. If C<$level> is not specified C will be used. =item B<$dest = uncompress($source) ;> Uncompresses C<$source>. If successful it returns the uncompressed data. Otherwise it returns I. The source buffer can either be a scalar or a scalar reference. =back Please note: the two functions defined above are I compatible with the Unix commands of the same name. See L and L included with this distribution for an alternative interface for reading/writing RFC 1950 files/buffers. =head1 Deflate Interface This section defines an interface that allows in-memory compression using the I interface provided by zlib. Here is a definition of the interface available: =head2 B<($d, $status) = deflateInit( [OPT] )> Initialises a deflation stream. It combines the features of the I functions C, C and C. If successful, it will return the initialised deflation stream, C<$d> and C<$status> of C in a list context. In scalar context it returns the deflation stream, C<$d>, only. If not successful, the returned deflation stream (C<$d>) will be I and C<$status> will hold the exact I error code. The function optionally takes a number of named options specified as C<< -Name=>value >> pairs. This allows individual options to be tailored without having to specify them all in the parameter list. For backward compatibility, it is also possible to pass the parameters as a reference to a hash containing the name=>value pairs. The function takes one optional parameter, a reference to a hash. The contents of the hash allow the deflation interface to be tailored. Here is a list of the valid options: =over 5 =item B<-Level> Defines the compression level. Valid values are 0 through 9, C, C, C, and C. The default is Z_DEFAULT_COMPRESSION. =item B<-Method> Defines the compression method. The only valid value at present (and the default) is Z_DEFLATED. =item B<-WindowBits> To create an RFC 1950 data stream, set C to a positive number. To create an RFC 1951 data stream, set C to C<-MAX_WBITS>. For a full definition of the meaning and valid values for C refer to the I documentation for I. Defaults to MAX_WBITS. =item B<-MemLevel> For a definition of the meaning and valid values for C refer to the I documentation for I. Defaults to MAX_MEM_LEVEL. =item B<-Strategy> Defines the strategy used to tune the compression. The valid values are C, C and C. The default is Z_DEFAULT_STRATEGY. =item B<-Dictionary> When a dictionary is specified I will automatically call C directly after calling C. The Adler32 value for the dictionary can be obtained by calling the method C<< $d->dict_adler() >>. The default is no dictionary. =item B<-Bufsize> Sets the initial size for the deflation buffer. If the buffer has to be reallocated to increase the size, it will grow in increments of C. The default is 4096. =back Here is an example of using the C optional parameter list to override the default buffer size and compression level. All other options will take their default values. deflateInit( -Bufsize => 300, -Level => Z_BEST_SPEED ) ; =head2 B<($out, $status) = $d-Edeflate($buffer)> Deflates the contents of C<$buffer>. The buffer can either be a scalar or a scalar reference. When finished, C<$buffer> will be completely processed (assuming there were no errors). If the deflation was successful it returns the deflated output, C<$out>, and a status value, C<$status>, of C. On error, C<$out> will be I and C<$status> will contain the I error code. In a scalar context C will return C<$out> only. As with the I function in I, it is not necessarily the case that any output will be produced by this method. So don't rely on the fact that C<$out> is empty for an error test. =head2 B<($out, $status) = $d-Eflush()> =head2 B<($out, $status) = $d-Eflush($flush_type)> Typically used to finish the deflation. Any pending output will be returned via C<$out>. C<$status> will have a value C if successful. In a scalar context C will return C<$out> only. Note that flushing can seriously degrade the compression ratio, so it should only be used to terminate a decompression (using C) or when you want to create a I (using C). By default the C used is C. Other valid values for C are C, C, C and C. It is strongly recommended that you only set the C parameter if you fully understand the implications of what it does. See the C documentation for details. =head2 B<$status = $d-EdeflateParams([OPT])> Change settings for the deflate stream C<$d>. The list of the valid options is shown below. Options not specified will remain unchanged. =over 5 =item B<-Level> Defines the compression level. Valid values are 0 through 9, C, C, C, and C. =item B<-Strategy> Defines the strategy used to tune the compression. The valid values are C, C and C. =back =head2 B<$d-Edict_adler()> Returns the adler32 value for the dictionary. =head2 B<$d-Emsg()> Returns the last error message generated by zlib. =head2 B<$d-Etotal_in()> Returns the total number of bytes uncompressed bytes input to deflate. =head2 B<$d-Etotal_out()> Returns the total number of compressed bytes output from deflate. =head2 Example Here is a trivial example of using C. It simply reads standard input, deflates it and writes it to standard output. use strict ; use warnings ; use Compress::Zlib ; binmode STDIN; binmode STDOUT; my $x = deflateInit() or die "Cannot create a deflation stream\n" ; my ($output, $status) ; while (<>) { ($output, $status) = $x->deflate($_) ; $status == Z_OK or die "deflation failed\n" ; print $output ; } ($output, $status) = $x->flush() ; $status == Z_OK or die "deflation failed\n" ; print $output ; =head1 Inflate Interface This section defines the interface available that allows in-memory uncompression using the I interface provided by zlib. Here is a definition of the interface: =head2 B<($i, $status) = inflateInit()> Initialises an inflation stream. In a list context it returns the inflation stream, C<$i>, and the I status code in C<$status>. In a scalar context it returns the inflation stream only. If successful, C<$i> will hold the inflation stream and C<$status> will be C. If not successful, C<$i> will be I and C<$status> will hold the I error code. The function optionally takes a number of named options specified as C<< -Name=>value >> pairs. This allows individual options to be tailored without having to specify them all in the parameter list. For backward compatibility, it is also possible to pass the parameters as a reference to a hash containing the name=>value pairs. The function takes one optional parameter, a reference to a hash. The contents of the hash allow the deflation interface to be tailored. Here is a list of the valid options: =over 5 =item B<-WindowBits> To uncompress an RFC 1950 data stream, set C to a positive number. To uncompress an RFC 1951 data stream, set C to C<-MAX_WBITS>. For a full definition of the meaning and valid values for C refer to the I documentation for I. Defaults to MAX_WBITS. =item B<-Bufsize> Sets the initial size for the inflation buffer. If the buffer has to be reallocated to increase the size, it will grow in increments of C. Default is 4096. =item B<-Dictionary> The default is no dictionary. =back Here is an example of using the C optional parameter to override the default buffer size. inflateInit( -Bufsize => 300 ) ; =head2 B<($out, $status) = $i-Einflate($buffer)> Inflates the complete contents of C<$buffer>. The buffer can either be a scalar or a scalar reference. Returns C if successful and C if the end of the compressed data has been successfully reached. If not successful, C<$out> will be I and C<$status> will hold the I error code. The C<$buffer> parameter is modified by C. On completion it will contain what remains of the input buffer after inflation. This means that C<$buffer> will be an empty string when the return status is C. When the return status is C the C<$buffer> parameter will contains what (if anything) was stored in the input buffer after the deflated data stream. This feature is useful when processing a file format that encapsulates a compressed data stream (e.g. gzip, zip). =head2 B<$status = $i-EinflateSync($buffer)> Scans C<$buffer> until it reaches either a I or the end of the buffer. If a I is found, C is returned and C<$buffer> will be have all data up to the flush point removed. This can then be passed to the C method. Any other return code means that a flush point was not found. If more data is available, C can be called repeatedly with more compressed data until the flush point is found. =head2 B<$i-Edict_adler()> Returns the adler32 value for the dictionary. =head2 B<$i-Emsg()> Returns the last error message generated by zlib. =head2 B<$i-Etotal_in()> Returns the total number of bytes compressed bytes input to inflate. =head2 B<$i-Etotal_out()> Returns the total number of uncompressed bytes output from inflate. =head2 Example Here is an example of using C. use strict ; use warnings ; use Compress::Zlib ; my $x = inflateInit() or die "Cannot create a inflation stream\n" ; my $input = '' ; binmode STDIN; binmode STDOUT; my ($output, $status) ; while (read(STDIN, $input, 4096)) { ($output, $status) = $x->inflate(\$input) ; print $output if $status == Z_OK or $status == Z_STREAM_END ; last if $status != Z_OK ; } die "inflation failed\n" unless $status == Z_STREAM_END ; =head1 CHECKSUM FUNCTIONS Two functions are provided by I to calculate checksums. For the Perl interface, the order of the two parameters in both functions has been reversed. This allows both running checksums and one off calculations to be done. $crc = adler32($buffer [,$crc]) ; $crc = crc32($buffer [,$crc]) ; The buffer parameters can either be a scalar or a scalar reference. If the $crc parameters is C, the crc value will be reset. If you have built this module with zlib 1.2.3 or better, two more CRC-related functions are available. $crc = crc32_combine($crc1, $crc2, $len2); $adler = adler32_combine($adler1, $adler2, $len2); These functions allow checksums to be merged. Refer to the I documentation for more details. =head1 Misc =head2 my $version = Compress::Zlib::zlib_version(); Returns the version of the zlib library. =head1 CONSTANTS All the I constants are automatically imported when you make use of I. =head1 SUPPORT General feedback/questions/bug reports should be sent to L (preferred) or L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L L L, L, L, L For RFC 1950, 1951 and 1952 see L, L and L The I compression library was written by Jean-loup Gailly C and Mark Adler C. The primary site for the I compression library is L. The primary site for the I compression library is L. The primary site for gzip is L. =head1 AUTHOR This module was written by Paul Marquess, C. =head1 MODIFICATION HISTORY See the Changes file. =head1 COPYRIGHT AND LICENSE Copyright (c) 1995-2024 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILE3f6ee9b5/Exporter.pmK package Exporter; use strict; no strict 'refs'; our $Debug = 0; our $ExportLevel = 0; our $Verbose ||= 0; our $VERSION = '5.79'; our %Cache; sub as_heavy { require Exporter::Heavy; # Unfortunately, this does not work if the caller is aliased as *name = \&foo # Thus the need to create a lot of identical subroutines my $c = (caller(1))[3]; $c =~ s/.*:://; \&{"Exporter::Heavy::heavy_$c"}; } sub export { goto &{as_heavy()}; } sub import { my $pkg = shift; my $callpkg = caller($ExportLevel); if ($pkg eq "Exporter" and @_ and $_[0] eq "import") { *{$callpkg."::import"} = \&import; return; } # We *need* to treat @{"$pkg\::EXPORT_FAIL"} since Carp uses it :-( my $exports = \@{"$pkg\::EXPORT"}; # But, avoid creating things if they don't exist, which saves a couple of # hundred bytes per package processed. my $fail = ${$pkg . '::'}{EXPORT_FAIL} && \@{"$pkg\::EXPORT_FAIL"}; return export $pkg, $callpkg, @_ if $Verbose or $Debug or $fail && @$fail > 1; my $export_cache = ($Cache{$pkg} ||= {}); my $args = @_ or @_ = @$exports; if ($args and not %$export_cache) { s/^&//, $export_cache->{$_} = 1 foreach (@$exports, @{"$pkg\::EXPORT_OK"}); } my $heavy; # Try very hard not to use {} and hence have to enter scope on the foreach # We bomb out of the loop with last as soon as heavy is set. if ($args or $fail) { ($heavy = (/\W/ or $args and not exists $export_cache->{$_} or $fail and @$fail and $_ eq $fail->[0])) and last foreach (@_); } else { ($heavy = /\W/) and last foreach (@_); } return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy; local $SIG{__WARN__} = sub {require Carp; &Carp::carp} if not $SIG{__WARN__}; # shortcut for the common case of no type character *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_; } # Default methods sub export_fail { my $self = shift; @_; } # Unfortunately, caller(1)[3] "does not work" if the caller is aliased as # *name = \&foo. Thus the need to create a lot of identical subroutines # Otherwise we could have aliased them to export(). sub export_to_level { goto &{as_heavy()}; } sub export_tags { goto &{as_heavy()}; } sub export_ok_tags { goto &{as_heavy()}; } sub require_version { goto &{as_heavy()}; } 1; __END__ =head1 NAME Exporter - Implements default import method for modules =head1 SYNOPSIS In module F: package YourModule; use Exporter 'import'; our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request or package YourModule; require Exporter; our @ISA = qw(Exporter); # inherit all of Exporter's methods our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request or package YourModule; use parent 'Exporter'; # inherit all of Exporter's methods our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request In other files which wish to use C: use YourModule qw(frobnicate); # import listed symbols frobnicate ($left, $right) # calls YourModule::frobnicate Take a look at L for some variants you will like to use in modern Perl code. =head1 DESCRIPTION The Exporter module implements an C method which allows a module to export functions and variables to its users' namespaces. Many modules use Exporter rather than implementing their own C method because Exporter provides a highly flexible interface, with an implementation optimised for the common case. Perl automatically calls the C method when processing a C statement for a module. Modules and C are documented in L and L. Understanding the concept of modules and how the C statement operates is important to understanding the Exporter. =head2 How to Export The arrays C<@EXPORT> and C<@EXPORT_OK> in a module hold lists of symbols that are going to be exported into the users name space by default, or which they can request to be exported, respectively. The symbols can represent functions, scalars, arrays, hashes, or typeglobs. The symbols must be given by full name with the exception that the ampersand in front of a function is optional, e.g. our @EXPORT = qw(afunc $scalar @array); # afunc is a function our @EXPORT_OK = qw(&bfunc %hash *typeglob); # explicit prefix on &bfunc If you are only exporting function names it is recommended to omit the ampersand, as the implementation is faster this way. =head2 Selecting What to Export Do B export method names! Do B export anything else by default without a good reason! Exports pollute the namespace of the module user. If you must export try to use C<@EXPORT_OK> in preference to C<@EXPORT> and avoid short or common symbol names to reduce the risk of name clashes. Generally anything not exported is still accessible from outside the module using the C (or C<< $blessed_ref->method >>) syntax. By convention you can use a leading underscore on names to informally indicate that they are 'internal' and not for public use. (It is actually possible to get private functions by saying: my $subref = sub { ... }; $subref->(@args); # Call it as a function $obj->$subref(@args); # Use it as a method However if you use them for methods it is up to you to figure out how to make inheritance work.) As a general rule, if the module is trying to be object oriented then export nothing. If it's just a collection of functions then C<@EXPORT_OK> anything but use C<@EXPORT> with caution. For function and method names use barewords in preference to names prefixed with ampersands for the export lists. Other module design guidelines can be found in L. =head2 How to Import In other files which wish to use your module there are three basic ways for them to load your module and import its symbols: =over 4 =item C This imports all the symbols from YourModule's C<@EXPORT> into the namespace of the C statement. =item C This causes perl to load your module but does not import any symbols. =item C This imports only the symbols listed by the caller into their namespace. All listed symbols must be in your C<@EXPORT> or C<@EXPORT_OK>, else an error occurs. The advanced export features of Exporter are accessed like this, but with list entries that are syntactically distinct from symbol names. =back Unless you want to use its advanced features, this is probably all you need to know to use Exporter. =head1 Advanced Features =head2 Specialised Import Lists If any of the entries in an import list begins with !, : or / then the list is treated as a series of specifications which either add to or delete from the list of names to import. They are processed left to right. Specifications are in the form: [!]name This name only [!]:DEFAULT All names in @EXPORT [!]:tag All names in $EXPORT_TAGS{tag} anonymous array [!]/pattern/ All names in @EXPORT and @EXPORT_OK which match A leading ! indicates that matching names should be deleted from the list of names to import. If the first specification is a deletion it is treated as though preceded by :DEFAULT. If you just want to import extra names in addition to the default set you will still need to include :DEFAULT explicitly. e.g., F defines: our @EXPORT = qw(A1 A2 A3 A4 A5); our @EXPORT_OK = qw(B1 B2 B3 B4 B5); our %EXPORT_TAGS = (T1 => [qw(A1 A2 B1 B2)], T2 => [qw(A1 A2 B3 B4)]); Note that you cannot use tags in @EXPORT or @EXPORT_OK. Names in EXPORT_TAGS must also appear in @EXPORT or @EXPORT_OK. An application using Module can say something like: use Module qw(:DEFAULT :T2 !B3 A3); Other examples include: use Socket qw(!/^[AP]F_/ !SOMAXCONN !SOL_SOCKET); use POSIX qw(:errno_h :termios_h !TCSADRAIN !/^EXIT/); Remember that most patterns (using //) will need to be anchored with a leading ^, e.g., C rather than C. You can say C to see how the specifications are being processed and what is actually being imported into modules. =head2 Exporting Without Using Exporter's import Method Exporter has a special method, 'export_to_level' which is used in situations where you can't directly call Exporter's import method. The export_to_level method looks like: MyPackage->export_to_level( $where_to_export, $package, @what_to_export ); where C<$where_to_export> is an integer telling how far up the calling stack to export your symbols, and C<@what_to_export> is an array telling what symbols *to* export (usually this is C<@_>). The C<$package> argument is currently unused. For example, suppose that you have a module, A, which already has an import function: package A; our @ISA = qw(Exporter); our @EXPORT_OK = qw($b); sub import { $A::b = 1; # not a very useful import method } and you want to Export symbol C<$A::b> back to the module that called package A. Since Exporter relies on the import method to work, via inheritance, as it stands Exporter::import() will never get called. Instead, say the following: package A; our @ISA = qw(Exporter); our @EXPORT_OK = qw($b); sub import { $A::b = 1; A->export_to_level(1, @_); } This will export the symbols one level 'above' the current package - ie: to the program or module that used package A. Note: Be careful not to modify C<@_> at all before you call export_to_level - or people using your package will get very unexplained results! =head2 Exporting Without Inheriting from Exporter By including Exporter in your C<@ISA> you inherit an Exporter's import() method but you also inherit several other helper methods which you probably don't want and complicate the inheritance tree. To avoid this you can do: package YourModule; use Exporter qw(import); which will export Exporter's own import() method into YourModule. Everything will work as before but you won't need to include Exporter in C<@YourModule::ISA>. Note: This feature was introduced in version 5.57 of Exporter, released with perl 5.8.3. =head2 Module Version Checking The Exporter module will convert an attempt to import a number from a module into a call to C<< $module_name->VERSION($value) >>. This can be used to validate that the version of the module being used is greater than or equal to the required version. For historical reasons, Exporter supplies a C method that simply delegates to C. Originally, before C existed, Exporter would call C. Since the C method treats the C<$VERSION> number as a simple numeric value it will regard version 1.10 as lower than 1.9. For this reason it is strongly recommended that you use numbers with at least two decimal places, e.g., 1.09. =head2 Managing Unknown Symbols In some situations you may want to prevent certain symbols from being exported. Typically this applies to extensions which have functions or constants that may not exist on some systems. The names of any symbols that cannot be exported should be listed in the C<@EXPORT_FAIL> array. If a module attempts to import any of these symbols the Exporter will give the module an opportunity to handle the situation before generating an error. The Exporter will call an export_fail method with a list of the failed symbols: @failed_symbols = $module_name->export_fail(@failed_symbols); If the C method returns an empty list then no error is recorded and all the requested symbols are exported. If the returned list is not empty then an error is generated for each symbol and the export fails. The Exporter provides a default C method which simply returns the list unchanged. Uses for the C method include giving better error messages for some symbols and performing lazy architectural checks (put more symbols into C<@EXPORT_FAIL> by default and then take them out if someone actually tries to use them and an expensive check shows that they are usable on that platform). =head2 Tag Handling Utility Functions Since the symbols listed within C<%EXPORT_TAGS> must also appear in either C<@EXPORT> or C<@EXPORT_OK>, two utility functions are provided which allow you to easily add tagged sets of symbols to C<@EXPORT> or C<@EXPORT_OK>: our %EXPORT_TAGS = (foo => [qw(aa bb cc)], bar => [qw(aa cc dd)]); Exporter::export_tags('foo'); # add aa, bb and cc to @EXPORT Exporter::export_ok_tags('bar'); # add aa, cc and dd to @EXPORT_OK Any names which are not tags are added to C<@EXPORT> or C<@EXPORT_OK> unchanged but will trigger a warning (with C<-w>) to avoid misspelt tags names being silently added to C<@EXPORT> or C<@EXPORT_OK>. Future versions may make this a fatal error. =head2 Generating Combined Tags If several symbol categories exist in C<%EXPORT_TAGS>, it's usually useful to create the utility ":all" to simplify "use" statements. The simplest way to do this is: our %EXPORT_TAGS = (foo => [qw(aa bb cc)], bar => [qw(aa cc dd)]); # add all the other ":class" tags to the ":all" class, # deleting duplicates { my %seen; push @{$EXPORT_TAGS{all}}, grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach keys %EXPORT_TAGS; } F creates an ":all" tag which contains some (but not really all) of its categories. That could be done with one small change: # add some of the other ":class" tags to the ":all" class, # deleting duplicates { my %seen; push @{$EXPORT_TAGS{all}}, grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach qw/html2 html3 netscape form cgi internal/; } Note that the tag names in C<%EXPORT_TAGS> don't have the leading ':'. =head2 Ced Constants Many modules make use of Cing for constant subroutines to avoid having to compile and waste memory on rarely used values (see L for details on constant subroutines). Calls to such constant subroutines are not optimized away at compile time because they can't be checked at compile time for constancy. Even if a prototype is available at compile time, the body of the subroutine is not (it hasn't been Ced yet). perl needs to examine both the C<()> prototype and the body of a subroutine at compile time to detect that it can safely replace calls to that subroutine with the constant value. A workaround for this is to call the constants once in a C block: package My ; use Socket ; foo( SO_LINGER ); ## SO_LINGER NOT optimized away; called at runtime BEGIN { SO_LINGER } foo( SO_LINGER ); ## SO_LINGER optimized away at compile time. This forces the C for C to take place before SO_LINGER is encountered later in C package. If you are writing a package that Cs, consider forcing an C for any constants explicitly imported by other packages or which are usually used when your package is Cd. =head1 Good Practices =head2 Declaring C<@EXPORT_OK> and Friends When using C with the standard C and C pragmas, the C keyword is needed to declare the package variables C<@EXPORT_OK>, C<@EXPORT>, C<@ISA>, etc. our @ISA = qw(Exporter); our @EXPORT_OK = qw(munge frobnicate); If backward compatibility for Perls B 5.6 is important, one must write instead a C statement. use vars qw(@ISA @EXPORT_OK); @ISA = qw(Exporter); @EXPORT_OK = qw(munge frobnicate); =head2 Playing Safe There are some caveats with the use of runtime statements like C and the assignment to package variables, which can be very subtle for the unaware programmer. This may happen for instance with mutually recursive modules, which are affected by the time the relevant constructions are executed. The ideal way to never have to think about that is to use C blocks and the simple import method. So the first part of the L code could be rewritten as: package YourModule; use strict; use warnings; use Exporter 'import'; BEGIN { our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request } Or if you need to inherit from Exporter: package YourModule; use strict; use warnings; BEGIN { require Exporter; our @ISA = qw(Exporter); # inherit all of Exporter's methods our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request } The C will assure that the loading of F and the assignments to C<@ISA> and C<@EXPORT_OK> happen immediately like C, leaving no room for something to get awry or just plain wrong. With respect to loading C and inheriting, there are alternatives with the use of modules like C and C. use base qw(Exporter); # or use parent qw(Exporter); Any of these statements are nice replacements for C with the same compile-time effect. The basic difference is that C code interacts with declared C while C is a streamlined version of the older C code to just establish the IS-A relationship. For more details, see the documentation and code of L and L. Another thorough remedy to that runtime vs. compile-time trap is to use L, which is a wrapper of Exporter that allows all boilerplate code at a single gulp in the use statement. use Exporter::Easy ( OK => [ qw(munge frobnicate) ], ); # @ISA setup is automatic # all assignments happen at compile time =head2 What Not to Export You have been warned already in L to not export: =over 4 =item * method names (because you don't need to and that's likely to not do what you want), =item * anything by default (because you don't want to surprise your users... badly) =item * anything you don't need to (because less is more) =back There's one more item to add to this list. Do B export variable names. Just because C lets you do that, it does not mean you should. @EXPORT_OK = qw($svar @avar %hvar); # DON'T! Exporting variables is not a good idea. They can change under the hood, provoking horrible effects at-a-distance that are too hard to track and to fix. Trust me: they are not worth it. To provide the capability to set/get class-wide settings, it is best instead to provide accessors as subroutines or class methods instead. =head1 SEE ALSO C is definitely not the only module with symbol exporter capabilities. At CPAN, you may find a bunch of them. Some are lighter. Some provide improved APIs and features. Pick the one that fits your needs. The following is a sample list of such modules. Exporter::Easy Exporter::Lite Exporter::Renaming Exporter::Tidy Sub::Exporter / Sub::Installer Perl6::Export / Perl6::Export::Attrs =head1 LICENSE This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut FILE81b1434e/Carp.pmpackage Carp; { use 5.006; } use strict; use warnings; BEGIN { # Very old versions of warnings.pm load Carp. This can go wrong due # to the circular dependency. If warnings is invoked before Carp, # then warnings starts by loading Carp, then Carp (above) tries to # invoke warnings, and gets nothing because warnings is in the process # of loading and hasn't defined its import method yet. If we were # only turning on warnings ("use warnings" above) this wouldn't be too # bad, because Carp would just gets the state of the -w switch and so # might not get some warnings that it wanted. The real problem is # that we then want to turn off Unicode warnings, but "no warnings # 'utf8'" won't be effective if we're in this circular-dependency # situation. So, if warnings.pm is an affected version, we turn # off all warnings ourselves by directly setting ${^WARNING_BITS}. # On unaffected versions, we turn off just Unicode warnings, via # the proper API. if(!defined($warnings::VERSION) || eval($warnings::VERSION) < 1.06) { ${^WARNING_BITS} = ""; } else { "warnings"->unimport("utf8"); } } sub _fetch_sub { # fetch sub without autovivifying my($pack, $sub) = @_; $pack .= '::'; # only works with top-level packages return unless exists($::{$pack}); for ($::{$pack}) { return unless ref \$_ eq 'GLOB' && *$_{HASH} && exists $$_{$sub}; for ($$_{$sub}) { return ref \$_ eq 'GLOB' ? *$_{CODE} : undef } } } # UTF8_REGEXP_PROBLEM is a compile-time constant indicating whether Carp # must avoid applying a regular expression to an upgraded (is_utf8) # string. There are multiple problems, on different Perl versions, # that require this to be avoided. All versions prior to 5.13.8 will # load utf8_heavy.pl for the swash system, even if the regexp doesn't # use character classes. Perl 5.6 and Perls [5.11.2, 5.13.11) exhibit # specific problems when Carp is being invoked in the aftermath of a # syntax error. BEGIN { if("$]" < 5.013011) { *UTF8_REGEXP_PROBLEM = sub () { 1 }; } else { *UTF8_REGEXP_PROBLEM = sub () { 0 }; } } # is_utf8() is essentially the utf8::is_utf8() function, which indicates # whether a string is represented in the upgraded form (using UTF-8 # internally). As utf8::is_utf8() is only available from Perl 5.8 # onwards, extra effort is required here to make it work on Perl 5.6. BEGIN { if(defined(my $sub = _fetch_sub utf8 => 'is_utf8')) { *is_utf8 = $sub; } else { # black magic for perl 5.6 *is_utf8 = sub { unpack("C", "\xaa".$_[0]) != 170 }; } } # The downgrade() function defined here is to be used for attempts to # downgrade where it is acceptable to fail. It must be called with a # second argument that is a true value. BEGIN { if(defined(my $sub = _fetch_sub utf8 => 'downgrade')) { *downgrade = \&{"utf8::downgrade"}; } else { *downgrade = sub { my $r = ""; my $l = length($_[0]); for(my $i = 0; $i != $l; $i++) { my $o = ord(substr($_[0], $i, 1)); return if $o > 255; $r .= chr($o); } $_[0] = $r; }; } } # is_safe_printable_codepoint() indicates whether a character, specified # by integer codepoint, is OK to output literally in a trace. Generally # this is if it is a printable character in the ancestral character set # (ASCII or EBCDIC). This is used on some Perls in situations where a # regexp can't be used. BEGIN { *is_safe_printable_codepoint = "$]" >= 5.007_003 ? eval(q(sub ($) { my $u = utf8::native_to_unicode($_[0]); $u >= 0x20 && $u <= 0x7e; })) : ord("A") == 65 ? sub ($) { $_[0] >= 0x20 && $_[0] <= 0x7e } : sub ($) { # Early EBCDIC # 3 EBCDIC code pages supported then; all controls but one # are the code points below SPACE. The other one is 0x5F on # POSIX-BC; FF on the other two. # FIXME: there are plenty of unprintable codepoints other # than those that this code and the comment above identifies # as "controls". $_[0] >= ord(" ") && $_[0] <= 0xff && $_[0] != (ord ("^") == 106 ? 0x5f : 0xff); } ; } sub _univ_mod_loaded { return 0 unless exists($::{"UNIVERSAL::"}); for ($::{"UNIVERSAL::"}) { return 0 unless ref \$_ eq "GLOB" && *$_{HASH} && exists $$_{"$_[0]::"}; for ($$_{"$_[0]::"}) { return 0 unless ref \$_ eq "GLOB" && *$_{HASH} && exists $$_{"VERSION"}; for ($$_{"VERSION"}) { return 0 unless ref \$_ eq "GLOB"; return ${*$_{SCALAR}}; } } } } # _maybe_isa() is usually the UNIVERSAL::isa function. We have to avoid # the latter if the UNIVERSAL::isa module has been loaded, to avoid infi- # nite recursion; in that case _maybe_isa simply returns true. my $isa; BEGIN { if (_univ_mod_loaded('isa')) { *_maybe_isa = sub { 1 } } else { # Since we have already done the check, record $isa for use below # when defining _StrVal. *_maybe_isa = $isa = _fetch_sub(UNIVERSAL => "isa"); } } # We need an overload::StrVal or equivalent function, but we must avoid # loading any modules on demand, as Carp is used from __DIE__ handlers and # may be invoked after a syntax error. # We can copy recent implementations of overload::StrVal and use # overloading.pm, which is the fastest implementation, so long as # overloading is available. If it is not available, we use our own pure- # Perl StrVal. We never actually use overload::StrVal, for various rea- # sons described below. # overload versions are as follows: # undef-1.00 (up to perl 5.8.0) uses bless (avoid!) # 1.01-1.17 (perl 5.8.1 to 5.14) uses Scalar::Util # 1.18+ (perl 5.16+) uses overloading # The ancient 'bless' implementation (that inspires our pure-Perl version) # blesses unblessed references and must be avoided. Those using # Scalar::Util use refaddr, possibly the pure-Perl implementation, which # has the same blessing bug, and must be avoided. Also, Scalar::Util is # loaded on demand. Since we avoid the Scalar::Util implementations, we # end up having to implement our own overloading.pm-based version for perl # 5.10.1 to 5.14. Since it also works just as well in more recent ver- # sions, we use it there, too. BEGIN { if (eval { require "overloading.pm" }) { *_StrVal = eval 'sub { no overloading; "$_[0]" }' } else { # Work around the UNIVERSAL::can/isa modules to avoid recursion. # _mycan is either UNIVERSAL::can, or, in the presence of an # override, overload::mycan. *_mycan = _univ_mod_loaded('can') ? do { require "overload.pm"; _fetch_sub overload => 'mycan' } : \&UNIVERSAL::can; # _blessed is either UNIVERSAL::isa(...), or, in the presence of an # override, a hideous, but fairly reliable, workaround. *_blessed = $isa ? sub { &$isa($_[0], "UNIVERSAL") } : sub { my $probe = "UNIVERSAL::Carp_probe_" . rand; no strict 'refs'; local *$probe = sub { "unlikely string" }; local $@; local $SIG{__DIE__} = sub{}; (eval { $_[0]->$probe } || '') eq 'unlikely string' }; *_StrVal = sub { my $pack = ref $_[0]; # Perl's overload mechanism uses the presence of a special # "method" named "((" or "()" to signal it is in effect. # This test seeks to see if it has been set up. "((" post- # dates overloading.pm, so we can skip it. return "$_[0]" unless _mycan($pack, "()"); # Even at this point, the invocant may not be blessed, so # check for that. return "$_[0]" if not _blessed($_[0]); bless $_[0], "Carp"; my $str = "$_[0]"; bless $_[0], $pack; $pack . substr $str, index $str, "="; } } } our $VERSION = '1.54'; $VERSION =~ tr/_//d; our $MaxEvalLen = 0; our $Verbose = 0; our $CarpLevel = 0; our $MaxArgLen = 64; # How much of each argument to print. 0 = all. our $MaxArgNums = 8; # How many arguments to print. 0 = all. our $RefArgFormatter = undef; # allow caller to format reference arguments require Exporter; our @ISA = ('Exporter'); our @EXPORT = qw(confess croak carp); our @EXPORT_OK = qw(cluck verbose longmess shortmess); our @EXPORT_FAIL = qw(verbose); # hook to enable verbose mode # The members of %Internal are packages that are internal to perl. # Carp will not report errors from within these packages if it # can. The members of %CarpInternal are internal to Perl's warning # system. Carp will not report errors from within these packages # either, and will not report calls *to* these packages for carp and # croak. They replace $CarpLevel, which is deprecated. The # $Max(EvalLen|(Arg(Len|Nums)) variables are used to specify how the eval # text and function arguments should be formatted when printed. our %CarpInternal; our %Internal; # disable these by default, so they can live w/o require Carp $CarpInternal{Carp}++; $CarpInternal{warnings}++; $Internal{Exporter}++; $Internal{'Exporter::Heavy'}++; # if the caller specifies verbose usage ("perl -MCarp=verbose script.pl") # then the following method will be called by the Exporter which knows # to do this thanks to @EXPORT_FAIL, above. $_[1] will contain the word # 'verbose'. sub export_fail { shift; $Verbose = shift if $_[0] eq 'verbose'; @_ } sub _cgc { no strict 'refs'; return \&{"CORE::GLOBAL::caller"} if defined &{"CORE::GLOBAL::caller"}; return; } sub longmess { local($!, $^E); # Icky backwards compatibility wrapper. :-( # # The story is that the original implementation hard-coded the # number of call levels to go back, so calls to longmess were off # by one. Other code began calling longmess and expecting this # behaviour, so the replacement has to emulate that behaviour. my $cgc = _cgc(); my $call_pack = $cgc ? $cgc->() : caller(); if ( $Internal{$call_pack} or $CarpInternal{$call_pack} ) { return longmess_heavy(@_); } else { local $CarpLevel = $CarpLevel + 1; return longmess_heavy(@_); } } our @CARP_NOT; sub shortmess { local($!, $^E); my $cgc = _cgc(); # Icky backwards compatibility wrapper. :-( local @CARP_NOT = scalar( $cgc ? $cgc->() : caller() ); shortmess_heavy(@_); } sub croak { die shortmess @_ } sub confess { die longmess @_ } sub carp { warn shortmess @_ } sub cluck { warn longmess @_ } BEGIN { if("$]" >= 5.015002 || ("$]" >= 5.014002 && "$]" < 5.015) || ("$]" >= 5.012005 && "$]" < 5.013)) { *CALLER_OVERRIDE_CHECK_OK = sub () { 1 }; } else { *CALLER_OVERRIDE_CHECK_OK = sub () { 0 }; } } sub caller_info { my $i = shift(@_) + 1; my %call_info; my $cgc = _cgc(); { # Some things override caller() but forget to implement the # @DB::args part of it, which we need. We check for this by # pre-populating @DB::args with a sentinel which no-one else # has the address of, so that we can detect whether @DB::args # has been properly populated. However, on earlier versions # of perl this check tickles a bug in CORE::caller() which # leaks memory. So we only check on fixed perls. @DB::args = \$i if CALLER_OVERRIDE_CHECK_OK; package DB; @call_info{ qw(pack file line sub has_args wantarray evaltext is_require) } = $cgc ? $cgc->($i) : caller($i); } unless ( defined $call_info{file} ) { return (); } my $sub_name = Carp::get_subname( \%call_info ); if ( $call_info{has_args} ) { # Guard our serialization of the stack from stack refcounting bugs # NOTE this is NOT a complete solution, we cannot 100% guard against # these bugs. However in many cases Perl *is* capable of detecting # them and throws an error when it does. Unfortunately serializing # the arguments on the stack is a perfect way of finding these bugs, # even when they would not affect normal program flow that did not # poke around inside the stack. Inside of Carp.pm it makes little # sense reporting these bugs, as Carp's job is to report the callers # errors, not the ones it might happen to tickle while doing so. # See: https://rt.perl.org/Public/Bug/Display.html?id=131046 # and: https://rt.perl.org/Public/Bug/Display.html?id=52610 # for more details and discussion. - Yves my @args = map { my $arg; local $@= $@; eval { $arg = $_; 1; } or do { $arg = '** argument not available anymore **'; }; $arg; } @DB::args; if (CALLER_OVERRIDE_CHECK_OK && @args == 1 && ref $args[0] eq ref \$i && $args[0] == \$i ) { @args = (); # Don't let anyone see the address of $i local $@; my $where = eval { my $func = $cgc or return ''; my $gv = (_fetch_sub B => 'svref_2object' or return '') ->($func)->GV; my $package = $gv->STASH->NAME; my $subname = $gv->NAME; return unless defined $package && defined $subname; # returning CORE::GLOBAL::caller isn't useful for tracing the cause: return if $package eq 'CORE::GLOBAL' && $subname eq 'caller'; " in &${package}::$subname"; } || ''; @args = "** Incomplete caller override detected$where; \@DB::args were not set **"; } else { my $overflow; if ( $MaxArgNums and @args > $MaxArgNums ) { # More than we want to show? $#args = $MaxArgNums - 1; $overflow = 1; } @args = map { Carp::format_arg($_) } @args; if ($overflow) { push @args, '...'; } } # Push the args onto the subroutine $sub_name .= '(' . join( ', ', @args ) . ')'; } $call_info{sub_name} = $sub_name; return wantarray() ? %call_info : \%call_info; } # Transform an argument to a function into a string. our $in_recurse; sub format_arg { my $arg = shift; if ( my $pack= ref($arg) ) { # legitimate, let's not leak it. if (!$in_recurse && _maybe_isa( $arg, 'UNIVERSAL' ) && do { local $@; local $in_recurse = 1; local $SIG{__DIE__} = sub{}; eval {$arg->can('CARP_TRACE') } }) { return $arg->CARP_TRACE(); } elsif (!$in_recurse && defined($RefArgFormatter) && do { local $@; local $in_recurse = 1; local $SIG{__DIE__} = sub{}; eval {$arg = $RefArgFormatter->($arg); 1} }) { return $arg; } else { # Argument may be blessed into a class with overloading, and so # might have an overloaded stringification. We don't want to # risk getting the overloaded stringification, so we need to # use _StrVal, our overload::StrVal()-equivalent. return _StrVal $arg; } } return "undef" if !defined($arg); downgrade($arg, 1); return $arg if !(UTF8_REGEXP_PROBLEM && is_utf8($arg)) && $arg =~ /\A-?[0-9]+(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?\z/; my $suffix = ""; if ( 2 < $MaxArgLen and $MaxArgLen < length($arg) ) { substr ( $arg, $MaxArgLen - 3 ) = ""; $suffix = "..."; } if(UTF8_REGEXP_PROBLEM && is_utf8($arg)) { for(my $i = length($arg); $i--; ) { my $c = substr($arg, $i, 1); my $x = substr($arg, 0, 0); # work around bug on Perl 5.8.{1,2} if($c eq "\"" || $c eq "\\" || $c eq "\$" || $c eq "\@") { substr $arg, $i, 0, "\\"; next; } my $o = ord($c); substr $arg, $i, 1, sprintf("\\x{%x}", $o) unless is_safe_printable_codepoint($o); } } else { $arg =~ s/([\"\\\$\@])/\\$1/g; # This is all the ASCII printables spelled-out. It is portable to all # Perl versions and platforms (such as EBCDIC). There are other more # compact ways to do this, but may not work everywhere every version. $arg =~ s/([^ !"#\$\%\&'()*+,\-.\/0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz\{|}~])/sprintf("\\x{%x}",ord($1))/eg; } downgrade($arg, 1); return "\"".$arg."\"".$suffix; } sub Regexp::CARP_TRACE { my $arg = "$_[0]"; downgrade($arg, 1); if(UTF8_REGEXP_PROBLEM && is_utf8($arg)) { for(my $i = length($arg); $i--; ) { my $o = ord(substr($arg, $i, 1)); my $x = substr($arg, 0, 0); # work around bug on Perl 5.8.{1,2} substr $arg, $i, 1, sprintf("\\x{%x}", $o) unless is_safe_printable_codepoint($o); } } else { # See comment in format_arg() about this same regex. $arg =~ s/([^ !"#\$\%\&'()*+,\-.\/0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz\{|}~])/sprintf("\\x{%x}",ord($1))/eg; } downgrade($arg, 1); my $suffix = ""; if($arg =~ /\A\(\?\^?([a-z]*)(?:-[a-z]*)?:(.*)\)\z/s) { ($suffix, $arg) = ($1, $2); } if ( 2 < $MaxArgLen and $MaxArgLen < length($arg) ) { substr ( $arg, $MaxArgLen - 3 ) = ""; $suffix = "...".$suffix; } return "qr($arg)$suffix"; } # Takes an inheritance cache and a package and returns # an anon hash of known inheritances and anon array of # inheritances which consequences have not been figured # for. sub get_status { my $cache = shift; my $pkg = shift; $cache->{$pkg} ||= [ { $pkg => $pkg }, [ trusts_directly($pkg) ] ]; return @{ $cache->{$pkg} }; } # Takes the info from caller() and figures out the name of # the sub/require/eval sub get_subname { my $info = shift; if ( defined( $info->{evaltext} ) ) { my $eval = $info->{evaltext}; if ( $info->{is_require} ) { return "require $eval"; } else { $eval =~ s/([\\\'])/\\$1/g; return "eval '" . str_len_trim( $eval, $MaxEvalLen ) . "'"; } } # this can happen on older perls when the sub (or the stash containing it) # has been deleted if ( !defined( $info->{sub} ) ) { return '__ANON__::__ANON__'; } return ( $info->{sub} eq '(eval)' ) ? 'eval {...}' : $info->{sub}; } # Figures out what call (from the point of view of the caller) # the long error backtrace should start at. sub long_error_loc { my $i; my $lvl = $CarpLevel; { ++$i; my $cgc = _cgc(); my @caller = $cgc ? $cgc->($i) : caller($i); my $pkg = $caller[0]; unless ( defined($pkg) ) { # This *shouldn't* happen. if (%Internal) { local %Internal; $i = long_error_loc(); last; } elsif (defined $caller[2]) { # this can happen when the stash has been deleted # in that case, just assume that it's a reasonable place to # stop (the file and line data will still be intact in any # case) - the only issue is that we can't detect if the # deleted package was internal (so don't do that then) # -doy redo unless 0 > --$lvl; last; } else { return 2; } } redo if $CarpInternal{$pkg}; redo unless 0 > --$lvl; redo if $Internal{$pkg}; } return $i - 1; } sub longmess_heavy { if ( ref( $_[0] ) ) { # don't break references as exceptions return wantarray ? @_ : $_[0]; } my $i = long_error_loc(); return ret_backtrace( $i, @_ ); } BEGIN { if("$]" >= 5.017004) { # The LAST_FH constant is a reference to the variable. $Carp::{LAST_FH} = \eval '\${^LAST_FH}'; } else { eval '*LAST_FH = sub () { 0 }'; } } # Returns a full stack backtrace starting from where it is # told. sub ret_backtrace { my ( $i, @error ) = @_; my $mess; my $err = join '', @error; $i++; my $tid_msg = ''; if ( defined &threads::tid ) { my $tid = threads->tid; $tid_msg = " thread $tid" if $tid; } my %i = caller_info($i); $mess = "$err at $i{file} line $i{line}$tid_msg"; if( $. ) { # Use ${^LAST_FH} if available. if (LAST_FH) { if (${+LAST_FH}) { $mess .= sprintf ", <%s> %s %d", *${+LAST_FH}{NAME}, ($/ eq "\n" ? "line" : "chunk"), $. } } else { local $@ = ''; local $SIG{__DIE__}; eval { CORE::die; }; if($@ =~ /^Died at .*(, <.*?> (?:line|chunk) \d+).$/ ) { $mess .= $1; } } } $mess .= "\.\n"; while ( my %i = caller_info( ++$i ) ) { $mess .= "\t$i{sub_name} called at $i{file} line $i{line}$tid_msg\n"; } return $mess; } sub ret_summary { my ( $i, @error ) = @_; my $err = join '', @error; $i++; my $tid_msg = ''; if ( defined &threads::tid ) { my $tid = threads->tid; $tid_msg = " thread $tid" if $tid; } my %i = caller_info($i); return "$err at $i{file} line $i{line}$tid_msg\.\n"; } sub short_error_loc { # You have to create your (hash)ref out here, rather than defaulting it # inside trusts *on a lexical*, as you want it to persist across calls. # (You can default it on $_[2], but that gets messy) my $cache = {}; my $i = 1; my $lvl = $CarpLevel; { my $cgc = _cgc(); my $called = $cgc ? $cgc->($i) : caller($i); $i++; my $caller = $cgc ? $cgc->($i) : caller($i); if (!defined($caller)) { my @caller = $cgc ? $cgc->($i) : caller($i); if (@caller) { # if there's no package but there is other caller info, then # the package has been deleted - treat this as a valid package # in this case redo if defined($called) && $CarpInternal{$called}; redo unless 0 > --$lvl; last; } else { return 0; } } redo if $Internal{$caller}; redo if $CarpInternal{$caller}; redo if $CarpInternal{$called}; redo if trusts( $called, $caller, $cache ); redo if trusts( $caller, $called, $cache ); redo unless 0 > --$lvl; } return $i - 1; } sub shortmess_heavy { return longmess_heavy(@_) if $Verbose; return @_ if ref( $_[0] ); # don't break references as exceptions my $i = short_error_loc(); if ($i) { ret_summary( $i, @_ ); } else { longmess_heavy(@_); } } # If a string is too long, trims it with ... sub str_len_trim { my $str = shift; my $max = shift || 0; if ( 2 < $max and $max < length($str) ) { substr( $str, $max - 3 ) = '...'; } return $str; } # Takes two packages and an optional cache. Says whether the # first inherits from the second. # # Recursive versions of this have to work to avoid certain # possible endless loops, and when following long chains of # inheritance are less efficient. sub trusts { my $child = shift; my $parent = shift; my $cache = shift; my ( $known, $partial ) = get_status( $cache, $child ); # Figure out consequences until we have an answer while ( @$partial and not exists $known->{$parent} ) { my $anc = shift @$partial; next if exists $known->{$anc}; $known->{$anc}++; my ( $anc_knows, $anc_partial ) = get_status( $cache, $anc ); my @found = keys %$anc_knows; @$known{@found} = (); push @$partial, @$anc_partial; } return exists $known->{$parent}; } # Takes a package and gives a list of those trusted directly sub trusts_directly { my $class = shift; no strict 'refs'; my $stash = \%{"$class\::"}; for my $var (qw/ CARP_NOT ISA /) { # Don't try using the variable until we know it exists, # to avoid polluting the caller's namespace. if ( $stash->{$var} && ref \$stash->{$var} eq 'GLOB' && *{$stash->{$var}}{ARRAY} && @{$stash->{$var}} ) { return @{$stash->{$var}} } } return; } if(!defined($warnings::VERSION) || do { no warnings "numeric"; $warnings::VERSION < 1.03 }) { # Very old versions of warnings.pm import from Carp. This can go # wrong due to the circular dependency. If Carp is invoked before # warnings, then Carp starts by loading warnings, then warnings # tries to import from Carp, and gets nothing because Carp is in # the process of loading and hasn't defined its import method yet. # So we work around that by manually exporting to warnings here. no strict "refs"; *{"warnings::$_"} = \&$_ foreach @EXPORT; } 1; __END__ =head1 NAME Carp - alternative warn and die for modules =head1 SYNOPSIS use Carp; # warn user (from perspective of caller) carp "string trimmed to 80 chars"; # die of errors (from perspective of caller) croak "We're outta here!"; # die of errors with stack backtrace confess "not implemented"; # cluck, longmess and shortmess not exported by default use Carp qw(cluck longmess shortmess); cluck "This is how we got here!"; # warn with stack backtrace my $long_message = longmess( "message from cluck() or confess()" ); my $short_message = shortmess( "message from carp() or croak()" ); =head1 DESCRIPTION The Carp routines are useful in your own modules because they act like C or C, but with a message which is more likely to be useful to a user of your module. In the case of C and C, that context is a summary of every call in the call-stack; C returns the contents of the error message. For a shorter message you can use C or C which report the error as being from where your module was called. C returns the contents of this error message. There is no guarantee that that is where the error was, but it is a good educated guess. C takes care not to clobber the status variables C<$!> and C<$^E> in the course of assembling its error messages. This means that a C<$SIG{__DIE__}> or C<$SIG{__WARN__}> handler can capture the error information held in those variables, if it is required to augment the error message, and if the code calling C left useful values there. Of course, C can't guarantee the latter. You can also alter the way the output and logic of C works, by changing some global variables in the C namespace. See the section on L below. Here is a more complete description of how C and C work. What they do is search the call-stack for a function call stack where they have not been told that there shouldn't be an error. If every call is marked safe, they give up and give a full stack backtrace instead. In other words they presume that the first likely looking potential suspect is guilty. Their rules for telling whether a call shouldn't generate errors work as follows: =over 4 =item 1. Any call from a package to itself is safe. =item 2. Packages claim that there won't be errors on calls to or from packages explicitly marked as safe by inclusion in C<@CARP_NOT>, or (if that array is empty) C<@ISA>. The ability to override what @ISA says is new in 5.8. =item 3. The trust in item 2 is transitive. If A trusts B, and B trusts C, then A trusts C. So if you do not override C<@ISA> with C<@CARP_NOT>, then this trust relationship is identical to, "inherits from". =item 4. Any call from an internal Perl module is safe. (Nothing keeps user modules from marking themselves as internal to Perl, but this practice is discouraged.) =item 5. Any call to Perl's warning system (eg Carp itself) is safe. (This rule is what keeps it from reporting the error at the point where you call C or C.) =item 6. C<$Carp::CarpLevel> can be set to skip a fixed number of additional call levels. Using this is not recommended because it is very difficult to get it to behave correctly. =back =head2 Forcing a Stack Trace As a debugging aid, you can force Carp to treat a croak as a confess and a carp as a cluck across I modules. In other words, force a detailed stack trace to be given. This can be very helpful when trying to understand why, or from where, a warning or error is being generated. This feature is enabled by 'importing' the non-existent symbol 'verbose'. You would typically enable it by saying perl -MCarp=verbose script.pl or by including the string C<-MCarp=verbose> in the PERL5OPT environment variable. Alternately, you can set the global variable C<$Carp::Verbose> to true. See the L section below. =head2 Stack Trace formatting At each stack level, the subroutine's name is displayed along with its parameters. For simple scalars, this is sufficient. For complex data types, such as objects and other references, this can simply display C<'HASH(0x1ab36d8)'>. Carp gives two ways to control this. =over 4 =item 1. For objects, a method, C, will be called, if it exists. If this method doesn't exist, or it recurses into C, or it otherwise throws an exception, this is skipped, and Carp moves on to the next option, otherwise checking stops and the string returned is used. It is recommended that the object's type is part of the string to make debugging easier. =item 2. For any type of reference, C<$Carp::RefArgFormatter> is checked (see below). This variable is expected to be a code reference, and the current parameter is passed in. If this function doesn't exist (the variable is undef), or it recurses into C, or it otherwise throws an exception, this is skipped, and Carp moves on to the next option, otherwise checking stops and the string returned is used. =item 3. Otherwise, if neither C nor C<$Carp::RefArgFormatter> is available, stringify the value ignoring any overloading. =back =head1 GLOBAL VARIABLES =head2 $Carp::MaxEvalLen This variable determines how many characters of a string-eval are to be shown in the output. Use a value of C<0> to show all text. Defaults to C<0>. =head2 $Carp::MaxArgLen This variable determines how many characters of each argument to a function to print. Use a value of C<0> to show the full length of the argument. Defaults to C<64>. =head2 $Carp::MaxArgNums This variable determines how many arguments to each function to show. Use a false value to show all arguments to a function call. To suppress all arguments, use C<-1> or C<'0 but true'>. Defaults to C<8>. =head2 $Carp::Verbose This variable makes C and C generate stack backtraces just like C and C. This is how C is implemented internally. Defaults to C<0>. =head2 $Carp::RefArgFormatter This variable sets a general argument formatter to display references. Plain scalars and objects that implement C will not go through this formatter. Calling C from within this function is not supported. local $Carp::RefArgFormatter = sub { require Data::Dumper; Data::Dumper->Dump($_[0]); # not necessarily safe }; =head2 @CARP_NOT This variable, I, says which packages are I to be considered as the location of an error. The C and C functions will skip over callers when reporting where an error occurred. NB: This variable must be in the package's symbol table, thus: # These work our @CARP_NOT; # file scope use vars qw(@CARP_NOT); # package scope @My::Package::CARP_NOT = ... ; # explicit package variable # These don't work sub xyz { ... @CARP_NOT = ... } # w/o declarations above my @CARP_NOT; # even at top-level Example of use: package My::Carping::Package; use Carp; our @CARP_NOT; sub bar { .... or _error('Wrong input') } sub _error { # temporary control of where'ness, __PACKAGE__ is implicit local @CARP_NOT = qw(My::Friendly::Caller); carp(@_) } This would make C report the error as coming from a caller not in C, nor from C. Also read the L section above, about how C decides where the error is reported from. Use C<@CARP_NOT>, instead of C<$Carp::CarpLevel>. Overrides C's use of C<@ISA>. =head2 %Carp::Internal This says what packages are internal to Perl. C will never report an error as being from a line in a package that is internal to Perl. For example: $Carp::Internal{ (__PACKAGE__) }++; # time passes... sub foo { ... or confess("whatever") }; would give a full stack backtrace starting from the first caller outside of __PACKAGE__. (Unless that package was also internal to Perl.) =head2 %Carp::CarpInternal This says which packages are internal to Perl's warning system. For generating a full stack backtrace this is the same as being internal to Perl, the stack backtrace will not start inside packages that are listed in C<%Carp::CarpInternal>. But it is slightly different for the summary message generated by C or C. There errors will not be reported on any lines that are calling packages in C<%Carp::CarpInternal>. For example C itself is listed in C<%Carp::CarpInternal>. Therefore the full stack backtrace from C will not start inside of C, and the short message from calling C is not placed on the line where C was called. =head2 $Carp::CarpLevel This variable determines how many additional call frames are to be skipped that would not otherwise be when reporting where an error occurred on a call to one of C's functions. It is fairly easy to count these call frames on calls that generate a full stack backtrace. However it is much harder to do this accounting for calls that generate a short message. Usually people skip too many call frames. If they are lucky they skip enough that C goes all of the way through the call stack, realizes that something is wrong, and then generates a full stack backtrace. If they are unlucky then the error is reported from somewhere misleading very high in the call stack. Therefore it is best to avoid C<$Carp::CarpLevel>. Instead use C<@CARP_NOT>, C<%Carp::Internal> and C<%Carp::CarpInternal>. Defaults to C<0>. =head1 BUGS The Carp routines don't handle exception objects currently. If called with a first argument that is a reference, they simply call die() or warn(), as appropriate. =head1 SEE ALSO L, L =head1 CONTRIBUTING L is maintained by the perl 5 porters as part of the core perl 5 version control repository. Please see the L perldoc for how to submit patches and contribute to it. =head1 AUTHOR The Carp module first appeared in Larry Wall's perl 5.000 distribution. Since then it has been modified by several of the perl 5 porters. Andrew Main (Zefram) divested Carp into an independent distribution. =head1 COPYRIGHT Copyright (C) 1994-2013 Larry Wall Copyright (C) 2011, 2012, 2013 Andrew Main (Zefram) =head1 LICENSE This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILEb956cb79/Digest/base.pmpackage Digest::base; use strict; use warnings; our $VERSION = "1.20"; # subclass is supposed to implement at least these sub new; sub clone; sub add; sub digest; sub reset { my $self = shift; $self->new(@_); # ugly } sub addfile { my ( $self, $handle ) = @_; my $n; my $buf = ""; while ( ( $n = read( $handle, $buf, 4 * 1024 ) ) ) { $self->add($buf); } unless ( defined $n ) { require Carp; Carp::croak("Read failed: $!"); } $self; } sub add_bits { my $self = shift; my $bits; my $nbits; if ( @_ == 1 ) { my $arg = shift; $bits = pack( "B*", $arg ); $nbits = length($arg); } else { ( $bits, $nbits ) = @_; } if ( ( $nbits % 8 ) != 0 ) { require Carp; Carp::croak("Number of bits must be multiple of 8 for this algorithm"); } return $self->add( substr( $bits, 0, $nbits / 8 ) ); } sub hexdigest { my $self = shift; return unpack( "H*", $self->digest(@_) ); } sub b64digest { my $self = shift; my $b64 = $self->base64_padded_digest; $b64 =~ s/=+$//; return $b64; } sub base64_padded_digest { my $self = shift; require MIME::Base64; return MIME::Base64::encode( $self->digest(@_), "" ); } 1; __END__ =head1 NAME Digest::base - Digest base class =head1 SYNOPSIS package Digest::Foo; use base 'Digest::base'; =head1 DESCRIPTION The C class provide implementations of the methods C and C in terms of C, and of the methods C and C in terms of C. Digest implementations might want to inherit from this class to get this implementations of the alternative I and I methods. A minimal subclass needs to implement the following methods by itself: new clone add digest The arguments and expected behaviour of these methods are described in L. =head1 SEE ALSO L FILEffbea4bc/Exporter/Heavy.pm9package Exporter::Heavy; use strict; no strict 'refs'; our $VERSION = '5.79'; =head1 NAME Exporter::Heavy - Exporter guts =head1 SYNOPSIS (internal use only) =head1 DESCRIPTION No user-serviceable parts inside. =cut # # We go to a lot of trouble not to 'require Carp' at file scope, # because Carp requires Exporter, and something has to give. # sub _rebuild_cache { my ($pkg, $exports, $cache) = @_; s/^&// foreach @$exports; @{$cache}{@$exports} = (1) x @$exports; my $ok = \@{"${pkg}::EXPORT_OK"}; if (@$ok) { s/^&// foreach @$ok; @{$cache}{@$ok} = (1) x @$ok; } } sub heavy_export { # Save the old __WARN__ handler in case it was defined my $oldwarn = $SIG{__WARN__} || sub { warn $_[0] }; # First make import warnings look like they're coming from the "use". local $SIG{__WARN__} = sub { my $text = shift; if ($text =~ s/ at \S*Exporter\S*.pm line \d+.*\n//) { require Carp; local $Carp::CarpLevel = 1; # ignore package calling us too. $oldwarn->(Carp::shortmess($text)); } else { $oldwarn->($text); } }; local $SIG{__DIE__} = sub { require Carp; local $Carp::CarpLevel = 1; # ignore package calling us too. Carp::croak("$_[0]Illegal null symbol in \@${1}::EXPORT") if $_[0] =~ /^Unable to create sub named "(.*?)::"/; }; my($pkg, $callpkg, @imports) = @_; my($type, $sym, $cache_is_current, $oops); my($exports, $export_cache) = (\@{"${pkg}::EXPORT"}, $Exporter::Cache{$pkg} ||= {}); if (@imports) { if (!%$export_cache) { _rebuild_cache ($pkg, $exports, $export_cache); $cache_is_current = 1; } if (grep m{^[/!:]}, @imports) { my $tagsref = \%{"${pkg}::EXPORT_TAGS"}; my $tagdata; my %imports; my($remove, $spec, @names, @allexports); # negated first item implies starting with default set: unshift @imports, ':DEFAULT' if $imports[0] =~ m/^!/; foreach $spec (@imports){ $remove = $spec =~ s/^!//; if ($spec =~ s/^://){ if ($spec eq 'DEFAULT'){ @names = @$exports; } elsif ($tagdata = $tagsref->{$spec}) { @names = @$tagdata; } else { warn qq["$spec" is not defined in %${pkg}::EXPORT_TAGS]; ++$oops; next; } } elsif ($spec =~ m:^/(.*)/$:){ my $patn = $1; @allexports = keys %$export_cache unless @allexports; # only do keys once @names = grep(/$patn/, @allexports); # not anchored by default } else { @names = ($spec); # is a normal symbol name } warn "Import ".($remove ? "del":"add").": @names " if $Exporter::Verbose; if ($remove) { foreach $sym (@names) { delete $imports{$sym} } } else { @imports{@names} = (1) x @names; } } @imports = keys %imports; } my @carp; foreach $sym (@imports) { if (!$export_cache->{$sym}) { if ($sym =~ m/^\d/) { $pkg->VERSION($sym); # inherit from UNIVERSAL # If the version number was the only thing specified # then we should act as if nothing was specified: if (@imports == 1) { @imports = @$exports; last; } # We need a way to emulate 'use Foo ()' but still # allow an easy version check: "use Foo 1.23, ''"; if (@imports == 2 and !$imports[1]) { @imports = (); last; } } elsif ($sym !~ s/^&// || !$export_cache->{$sym}) { # Last chance - see if they've updated EXPORT_OK since we # cached it. unless ($cache_is_current) { %$export_cache = (); _rebuild_cache ($pkg, $exports, $export_cache); $cache_is_current = 1; } if (!$export_cache->{$sym}) { # accumulate the non-exports push @carp, qq["$sym" is not exported by the $pkg module]; $oops++; } } } } if ($oops) { require Carp; Carp::croak(join("\n", @carp, "Can't continue after import errors")); } } else { @imports = @$exports; } my($fail, $fail_cache) = (\@{"${pkg}::EXPORT_FAIL"}, $Exporter::FailCache{$pkg} ||= {}); if (@$fail) { if (!%$fail_cache) { # Build cache of symbols. Optimise the lookup by adding # barewords twice... both with and without a leading &. # (Technique could be applied to $export_cache at cost of memory) my @expanded = map { /^\w/ ? ($_, '&'.$_) : $_ } @$fail; warn "${pkg}::EXPORT_FAIL cached: @expanded" if $Exporter::Verbose; @{$fail_cache}{@expanded} = (1) x @expanded; } my @failed; foreach $sym (@imports) { push(@failed, $sym) if $fail_cache->{$sym} } if (@failed) { @failed = $pkg->export_fail(@failed); foreach $sym (@failed) { require Carp; Carp::carp(qq["$sym" is not implemented by the $pkg module ], "on this architecture"); } if (@failed) { require Carp; Carp::croak("Can't continue after import errors"); } } } warn "Importing into $callpkg from $pkg: ", join(", ",sort @imports) if $Exporter::Verbose; foreach $sym (@imports) { # shortcut for the common case of no type character (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next) unless $sym =~ s/^(\W)//; $type = $1; no warnings 'once'; *{"${callpkg}::$sym"} = $type eq '&' ? \&{"${pkg}::$sym"} : $type eq '$' ? \${"${pkg}::$sym"} : $type eq '@' ? \@{"${pkg}::$sym"} : $type eq '%' ? \%{"${pkg}::$sym"} : $type eq '*' ? *{"${pkg}::$sym"} : do { require Carp; Carp::croak("Can't export symbol: $type$sym") }; } } sub heavy_export_to_level { my $pkg = shift; my $level = shift; (undef) = shift; # XXX redundant arg my $callpkg = caller($level); $pkg->export($callpkg, @_); } # Utility functions sub _push_tags { my($pkg, $var, $syms) = @_; my @nontag = (); my $export_tags = \%{"${pkg}::EXPORT_TAGS"}; push(@{"${pkg}::$var"}, map { $export_tags->{$_} ? @{$export_tags->{$_}} : scalar(push(@nontag,$_),$_) } (@$syms) ? @$syms : keys %$export_tags); if (@nontag and $^W) { # This may change to a die one day require Carp; Carp::carp(join(", ", @nontag)." are not tags of $pkg"); } } sub heavy_require_version { my($self, $wanted) = @_; my $pkg = ref $self || $self; return ${pkg}->VERSION($wanted); } sub heavy_export_tags { _push_tags((caller)[0], "EXPORT", \@_); } sub heavy_export_ok_tags { _push_tags((caller)[0], "EXPORT_OK", \@_); } 1; FILE8902686e/File/Path.pmpackage File::Path; use 5.005_04; use strict; use Cwd 'getcwd'; use File::Basename (); use File::Spec (); BEGIN { if ( $] < 5.006 ) { # can't say 'opendir my $dh, $dirname' # need to initialise $dh eval 'use Symbol'; } } use Exporter (); use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); $VERSION = '2.18'; $VERSION = eval $VERSION; @ISA = qw(Exporter); @EXPORT = qw(mkpath rmtree); @EXPORT_OK = qw(make_path remove_tree); BEGIN { for (qw(VMS MacOS MSWin32 os2)) { no strict 'refs'; *{"_IS_\U$_"} = $^O eq $_ ? sub () { 1 } : sub () { 0 }; } # These OSes complain if you want to remove a file that you have no # write permission to: *_FORCE_WRITABLE = ( grep { $^O eq $_ } qw(amigaos dos epoc MSWin32 MacOS os2) ) ? sub () { 1 } : sub () { 0 }; # Unix-like systems need to stat each directory in order to detect # race condition. MS-Windows is immune to this particular attack. *_NEED_STAT_CHECK = !(_IS_MSWIN32()) ? sub () { 1 } : sub () { 0 }; } sub _carp { require Carp; goto &Carp::carp; } sub _croak { require Carp; goto &Carp::croak; } sub _error { my $arg = shift; my $message = shift; my $object = shift; if ( $arg->{error} ) { $object = '' unless defined $object; $message .= ": $!" if $!; push @{ ${ $arg->{error} } }, { $object => $message }; } else { _carp( defined($object) ? "$message for $object: $!" : "$message: $!" ); } } sub __is_arg { my ($arg) = @_; # If client code blessed an array ref to HASH, this will not work # properly. We could have done $arg->isa() wrapped in eval, but # that would be expensive. This implementation should suffice. # We could have also used Scalar::Util:blessed, but we choose not # to add this dependency return ( ref $arg eq 'HASH' ); } sub make_path { push @_, {} unless @_ and __is_arg( $_[-1] ); goto &mkpath; } sub mkpath { my $old_style = !( @_ and __is_arg( $_[-1] ) ); my $data; my $paths; if ($old_style) { my ( $verbose, $mode ); ( $paths, $verbose, $mode ) = @_; $paths = [$paths] unless UNIVERSAL::isa( $paths, 'ARRAY' ); $data->{verbose} = $verbose; $data->{mode} = defined $mode ? $mode : oct '777'; } else { my %args_permitted = map { $_ => 1 } ( qw| chmod error group mask mode owner uid user verbose | ); my %not_on_win32_args = map { $_ => 1 } ( qw| group owner uid user | ); my @bad_args = (); my @win32_implausible_args = (); my $arg = pop @_; for my $k (sort keys %{$arg}) { if (! $args_permitted{$k}) { push @bad_args, $k; } elsif ($not_on_win32_args{$k} and _IS_MSWIN32) { push @win32_implausible_args, $k; } else { $data->{$k} = $arg->{$k}; } } _carp("Unrecognized option(s) passed to mkpath() or make_path(): @bad_args") if @bad_args; _carp("Option(s) implausible on Win32 passed to mkpath() or make_path(): @win32_implausible_args") if @win32_implausible_args; $data->{mode} = delete $data->{mask} if exists $data->{mask}; $data->{mode} = oct '777' unless exists $data->{mode}; ${ $data->{error} } = [] if exists $data->{error}; unless (@win32_implausible_args) { $data->{owner} = delete $data->{user} if exists $data->{user}; $data->{owner} = delete $data->{uid} if exists $data->{uid}; if ( exists $data->{owner} and $data->{owner} =~ /\D/ ) { my $uid = ( getpwnam $data->{owner} )[2]; if ( defined $uid ) { $data->{owner} = $uid; } else { _error( $data, "unable to map $data->{owner} to a uid, ownership not changed" ); delete $data->{owner}; } } if ( exists $data->{group} and $data->{group} =~ /\D/ ) { my $gid = ( getgrnam $data->{group} )[2]; if ( defined $gid ) { $data->{group} = $gid; } else { _error( $data, "unable to map $data->{group} to a gid, group ownership not changed" ); delete $data->{group}; } } if ( exists $data->{owner} and not exists $data->{group} ) { $data->{group} = -1; # chown will leave group unchanged } if ( exists $data->{group} and not exists $data->{owner} ) { $data->{owner} = -1; # chown will leave owner unchanged } } $paths = [@_]; } return _mkpath( $data, $paths ); } sub _mkpath { my $data = shift; my $paths = shift; my ( @created ); foreach my $path ( @{$paths} ) { next unless defined($path) and length($path); $path .= '/' if _IS_OS2 and $path =~ /^\w:\z/s; # feature of CRT # Logic wants Unix paths, so go with the flow. if (_IS_VMS) { next if $path eq '/'; $path = VMS::Filespec::unixify($path); } next if -d $path; my $parent = File::Basename::dirname($path); # Coverage note: It's not clear how we would test the condition: # '-d $parent or $path eq $parent' unless ( -d $parent or $path eq $parent ) { push( @created, _mkpath( $data, [$parent] ) ); } print "mkdir $path\n" if $data->{verbose}; if ( mkdir( $path, $data->{mode} ) ) { push( @created, $path ); if ( exists $data->{owner} ) { # NB: $data->{group} guaranteed to be set during initialisation if ( !chown $data->{owner}, $data->{group}, $path ) { _error( $data, "Cannot change ownership of $path to $data->{owner}:$data->{group}" ); } } if ( exists $data->{chmod} ) { # Coverage note: It's not clear how we would trigger the next # 'if' block. Failure of 'chmod' might first result in a # system error: "Permission denied". if ( !chmod $data->{chmod}, $path ) { _error( $data, "Cannot change permissions of $path to $data->{chmod}" ); } } } else { my $save_bang = $!; # From 'perldoc perlvar': $EXTENDED_OS_ERROR ($^E) is documented # as: # Error information specific to the current operating system. At the # moment, this differs from "$!" under only VMS, OS/2, and Win32 # (and for MacPerl). On all other platforms, $^E is always just the # same as $!. my ( $e, $e1 ) = ( $save_bang, $^E ); $e .= "; $e1" if $e ne $e1; # allow for another process to have created it meanwhile if ( ! -d $path ) { $! = $save_bang; if ( $data->{error} ) { push @{ ${ $data->{error} } }, { $path => $e }; } else { _croak("mkdir $path: $e"); } } } } return @created; } sub remove_tree { push @_, {} unless @_ and __is_arg( $_[-1] ); goto &rmtree; } sub _is_subdir { my ( $dir, $test ) = @_; my ( $dv, $dd ) = File::Spec->splitpath( $dir, 1 ); my ( $tv, $td ) = File::Spec->splitpath( $test, 1 ); # not on same volume return 0 if $dv ne $tv; my @d = File::Spec->splitdir($dd); my @t = File::Spec->splitdir($td); # @t can't be a subdir if it's shorter than @d return 0 if @t < @d; return join( '/', @d ) eq join( '/', splice @t, 0, +@d ); } sub rmtree { my $old_style = !( @_ and __is_arg( $_[-1] ) ); my ($arg, $data, $paths); if ($old_style) { my ( $verbose, $safe ); ( $paths, $verbose, $safe ) = @_; $data->{verbose} = $verbose; $data->{safe} = defined $safe ? $safe : 0; if ( defined($paths) and length($paths) ) { $paths = [$paths] unless UNIVERSAL::isa( $paths, 'ARRAY' ); } else { _carp("No root path(s) specified\n"); return 0; } } else { my %args_permitted = map { $_ => 1 } ( qw| error keep_root result safe verbose | ); my @bad_args = (); my $arg = pop @_; for my $k (sort keys %{$arg}) { if (! $args_permitted{$k}) { push @bad_args, $k; } else { $data->{$k} = $arg->{$k}; } } _carp("Unrecognized option(s) passed to remove_tree(): @bad_args") if @bad_args; ${ $data->{error} } = [] if exists $data->{error}; ${ $data->{result} } = [] if exists $data->{result}; # Wouldn't it make sense to do some validation on @_ before assigning # to $paths here? # In the $old_style case we guarantee that each path is both defined # and non-empty. We don't check that here, which means we have to # check it later in the first condition in this line: # if ( $ortho_root_length && _is_subdir( $ortho_root, $ortho_cwd ) ) { # Granted, that would be a change in behavior for the two # non-old-style interfaces. $paths = [@_]; } $data->{prefix} = ''; $data->{depth} = 0; my @clean_path; $data->{cwd} = getcwd() or do { _error( $data, "cannot fetch initial working directory" ); return 0; }; for ( $data->{cwd} ) { /\A(.*)\Z/s; $_ = $1 } # untaint for my $p (@$paths) { # need to fixup case and map \ to / on Windows my $ortho_root = _IS_MSWIN32 ? _slash_lc($p) : $p; my $ortho_cwd = _IS_MSWIN32 ? _slash_lc( $data->{cwd} ) : $data->{cwd}; my $ortho_root_length = length($ortho_root); $ortho_root_length-- if _IS_VMS; # don't compare '.' with ']' if ( $ortho_root_length && _is_subdir( $ortho_root, $ortho_cwd ) ) { local $! = 0; _error( $data, "cannot remove path when cwd is $data->{cwd}", $p ); next; } if (_IS_MACOS) { $p = ":$p" unless $p =~ /:/; $p .= ":" unless $p =~ /:\z/; } elsif ( _IS_MSWIN32 ) { $p =~ s{[/\\]\z}{}; } else { $p =~ s{/\z}{}; } push @clean_path, $p; } @{$data}{qw(device inode)} = ( lstat $data->{cwd} )[ 0, 1 ] or do { _error( $data, "cannot stat initial working directory", $data->{cwd} ); return 0; }; return _rmtree( $data, \@clean_path ); } sub _rmtree { my $data = shift; my $paths = shift; my $count = 0; my $curdir = File::Spec->curdir(); my $updir = File::Spec->updir(); my ( @files, $root ); ROOT_DIR: foreach my $root (@$paths) { # since we chdir into each directory, it may not be obvious # to figure out where we are if we generate a message about # a file name. We therefore construct a semi-canonical # filename, anchored from the directory being unlinked (as # opposed to being truly canonical, anchored from the root (/). my $canon = $data->{prefix} ? File::Spec->catfile( $data->{prefix}, $root ) : $root; my ( $ldev, $lino, $perm ) = ( lstat $root )[ 0, 1, 2 ] or next ROOT_DIR; if ( -d _ ) { $root = VMS::Filespec::vmspath( VMS::Filespec::pathify($root) ) if _IS_VMS; if ( !chdir($root) ) { # see if we can escalate privileges to get in # (e.g. funny protection mask such as -w- instead of rwx) # This uses fchmod to avoid traversing outside of the proper # location (CVE-2017-6512) my $root_fh; if (open($root_fh, '<', $root)) { my ($fh_dev, $fh_inode) = (stat $root_fh )[0,1]; $perm &= oct '7777'; my $nperm = $perm | oct '700'; local $@; if ( !( $data->{safe} or $nperm == $perm or !-d _ or $fh_dev ne $ldev or $fh_inode ne $lino or eval { chmod( $nperm, $root_fh ) } ) ) { _error( $data, "cannot make child directory read-write-exec", $canon ); next ROOT_DIR; } close $root_fh; } if ( !chdir($root) ) { _error( $data, "cannot chdir to child", $canon ); next ROOT_DIR; } } my ( $cur_dev, $cur_inode, $perm ) = ( stat $curdir )[ 0, 1, 2 ] or do { _error( $data, "cannot stat current working directory", $canon ); next ROOT_DIR; }; if (_NEED_STAT_CHECK) { ( $ldev eq $cur_dev and $lino eq $cur_inode ) or _croak( "directory $canon changed before chdir, expected dev=$ldev ino=$lino, actual dev=$cur_dev ino=$cur_inode, aborting." ); } $perm &= oct '7777'; # don't forget setuid, setgid, sticky bits my $nperm = $perm | oct '700'; # notabene: 0700 is for making readable in the first place, # it's also intended to change it to writable in case we have # to recurse in which case we are better than rm -rf for # subtrees with strange permissions if ( !( $data->{safe} or $nperm == $perm or chmod( $nperm, $curdir ) ) ) { _error( $data, "cannot make directory read+writeable", $canon ); $nperm = $perm; } my $d; $d = gensym() if $] < 5.006; if ( !opendir $d, $curdir ) { _error( $data, "cannot opendir", $canon ); @files = (); } else { if ( !defined ${^TAINT} or ${^TAINT} ) { # Blindly untaint dir names if taint mode is active @files = map { /\A(.*)\z/s; $1 } readdir $d; } else { @files = readdir $d; } closedir $d; } if (_IS_VMS) { # Deleting large numbers of files from VMS Files-11 # filesystems is faster if done in reverse ASCIIbetical order. # include '.' to '.;' from blead patch #31775 @files = map { $_ eq '.' ? '.;' : $_ } reverse @files; } @files = grep { $_ ne $updir and $_ ne $curdir } @files; if (@files) { # remove the contained files before the directory itself my $narg = {%$data}; @{$narg}{qw(device inode cwd prefix depth)} = ( $cur_dev, $cur_inode, $updir, $canon, $data->{depth} + 1 ); $count += _rmtree( $narg, \@files ); } # restore directory permissions of required now (in case the rmdir # below fails), while we are still in the directory and may do so # without a race via '.' if ( $nperm != $perm and not chmod( $perm, $curdir ) ) { _error( $data, "cannot reset chmod", $canon ); } # don't leave the client code in an unexpected directory chdir( $data->{cwd} ) or _croak("cannot chdir to $data->{cwd} from $canon: $!, aborting."); # ensure that a chdir upwards didn't take us somewhere other # than we expected (see CVE-2002-0435) ( $cur_dev, $cur_inode ) = ( stat $curdir )[ 0, 1 ] or _croak( "cannot stat prior working directory $data->{cwd}: $!, aborting." ); if (_NEED_STAT_CHECK) { ( $data->{device} eq $cur_dev and $data->{inode} eq $cur_inode ) or _croak( "previous directory $data->{cwd} " . "changed before entering $canon, " . "expected dev=$ldev ino=$lino, " . "actual dev=$cur_dev ino=$cur_inode, aborting." ); } if ( $data->{depth} or !$data->{keep_root} ) { if ( $data->{safe} && ( _IS_VMS ? !&VMS::Filespec::candelete($root) : !-w $root ) ) { print "skipped $root\n" if $data->{verbose}; next ROOT_DIR; } if ( _FORCE_WRITABLE and !chmod $perm | oct '700', $root ) { _error( $data, "cannot make directory writeable", $canon ); } print "rmdir $root\n" if $data->{verbose}; if ( rmdir $root ) { push @{ ${ $data->{result} } }, $root if $data->{result}; ++$count; } else { _error( $data, "cannot remove directory", $canon ); if ( _FORCE_WRITABLE && !chmod( $perm, ( _IS_VMS ? VMS::Filespec::fileify($root) : $root ) ) ) { _error( $data, sprintf( "cannot restore permissions to 0%o", $perm ), $canon ); } } } } else { # not a directory $root = VMS::Filespec::vmsify("./$root") if _IS_VMS && !File::Spec->file_name_is_absolute($root) && ( $root !~ m/(?]+/ ); # not already in VMS syntax if ( $data->{safe} && ( _IS_VMS ? !&VMS::Filespec::candelete($root) : !( -l $root || -w $root ) ) ) { print "skipped $root\n" if $data->{verbose}; next ROOT_DIR; } my $nperm = $perm & oct '7777' | oct '600'; if ( _FORCE_WRITABLE and $nperm != $perm and not chmod $nperm, $root ) { _error( $data, "cannot make file writeable", $canon ); } print "unlink $canon\n" if $data->{verbose}; # delete all versions under VMS for ( ; ; ) { if ( unlink $root ) { push @{ ${ $data->{result} } }, $root if $data->{result}; } else { _error( $data, "cannot unlink file", $canon ); _FORCE_WRITABLE and chmod( $perm, $root ) or _error( $data, sprintf( "cannot restore permissions to 0%o", $perm ), $canon ); last; } ++$count; last unless _IS_VMS && lstat $root; } } } return $count; } sub _slash_lc { # fix up slashes and case on MSWin32 so that we can determine that # c:\path\to\dir is underneath C:/Path/To my $path = shift; $path =~ tr{\\}{/}; return lc($path); } 1; __END__ =head1 NAME File::Path - Create or remove directory trees =head1 VERSION 2.18 - released November 4 2020. =head1 SYNOPSIS use File::Path qw(make_path remove_tree); @created = make_path('foo/bar/baz', '/zug/zwang'); @created = make_path('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711, }); make_path('foo/bar/baz', '/zug/zwang', { chmod => 0777, }); $removed_count = remove_tree('foo/bar/baz', '/zug/zwang', { verbose => 1, error => \my $err_list, safe => 1, }); # legacy (interface promoted before v2.00) @created = mkpath('/foo/bar/baz'); @created = mkpath('/foo/bar/baz', 1, 0711); @created = mkpath(['/foo/bar/baz', 'blurfl/quux'], 1, 0711); $removed_count = rmtree('foo/bar/baz', 1, 1); $removed_count = rmtree(['foo/bar/baz', 'blurfl/quux'], 1, 1); # legacy (interface promoted before v2.06) @created = mkpath('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711 }); $removed_count = rmtree('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711 }); =head1 DESCRIPTION This module provides a convenient way to create directories of arbitrary depth and to delete an entire directory subtree from the filesystem. The following functions are provided: =over =item make_path( $dir1, $dir2, .... ) =item make_path( $dir1, $dir2, ...., \%opts ) The C function creates the given directories if they don't exist before, much like the Unix command C. The function accepts a list of directories to be created. Its behaviour may be tuned by an optional hashref appearing as the last parameter on the call. The function returns the list of directories actually created during the call; in scalar context the number of directories created. The following keys are recognised in the option hash: =over =item mode => $num The numeric permissions mode to apply to each created directory (defaults to C<0777>), to be modified by the current C. If the directory already exists (and thus does not need to be created), the permissions will not be modified. C is recognised as an alias for this parameter. =item chmod => $num Takes a numeric mode to apply to each created directory (not modified by the current C). If the directory already exists (and thus does not need to be created), the permissions will not be modified. =item verbose => $bool If present, will cause C to print the name of each directory as it is created. By default nothing is printed. =item error => \$err If present, it should be a reference to a scalar. This scalar will be made to reference an array, which will be used to store any errors that are encountered. See the L section for more information. If this parameter is not used, certain error conditions may raise a fatal error that will cause the program to halt, unless trapped in an C block. =item owner => $owner =item user => $owner =item uid => $owner If present, will cause any created directory to be owned by C<$owner>. If the value is numeric, it will be interpreted as a uid; otherwise a username is assumed. An error will be issued if the username cannot be mapped to a uid, the uid does not exist or the process lacks the privileges to change ownership. Ownership of directories that already exist will not be changed. C and C are aliases of C. =item group => $group If present, will cause any created directory to be owned by the group C<$group>. If the value is numeric, it will be interpreted as a gid; otherwise a group name is assumed. An error will be issued if the group name cannot be mapped to a gid, the gid does not exist or the process lacks the privileges to change group ownership. Group ownership of directories that already exist will not be changed. make_path '/var/tmp/webcache', {owner=>'nobody', group=>'nogroup'}; =back =item mkpath( $dir ) =item mkpath( $dir, $verbose, $mode ) =item mkpath( [$dir1, $dir2,...], $verbose, $mode ) =item mkpath( $dir1, $dir2,..., \%opt ) The C function provide the legacy interface of C with a different interpretation of the arguments passed. The behaviour and return value of the function is otherwise identical to C. =item remove_tree( $dir1, $dir2, .... ) =item remove_tree( $dir1, $dir2, ...., \%opts ) The C function deletes the given directories and any files and subdirectories they might contain, much like the Unix command C or the Windows commands C and C. The function accepts a list of directories to be removed. (In point of fact, it will also accept filesystem entries which are not directories, such as regular files and symlinks. But, as its name suggests, its intent is to remove trees rather than individual files.) C's behaviour may be tuned by an optional hashref appearing as the last parameter on the call. If an empty string is passed to C, an error will occur. B For security reasons, we strongly advise use of the hashref-as-final-argument syntax -- specifically, with a setting of the C element to a true value. remove_tree( $dir1, $dir2, ...., { safe => 1, ... # other key-value pairs }, ); The function returns the number of files successfully deleted. The following keys are recognised in the option hash: =over =item verbose => $bool If present, will cause C to print the name of each file as it is unlinked. By default nothing is printed. =item safe => $bool When set to a true value, will cause C to skip the files for which the process lacks the required privileges needed to delete files, such as delete privileges on VMS. In other words, the code will make no attempt to alter file permissions. Thus, if the process is interrupted, no filesystem object will be left in a more permissive mode. =item keep_root => $bool When set to a true value, will cause all files and subdirectories to be removed, except the initially specified directories. This comes in handy when cleaning out an application's scratch directory. remove_tree( '/tmp', {keep_root => 1} ); =item result => \$res If present, it should be a reference to a scalar. This scalar will be made to reference an array, which will be used to store all files and directories unlinked during the call. If nothing is unlinked, the array will be empty. remove_tree( '/tmp', {result => \my $list} ); print "unlinked $_\n" for @$list; This is a useful alternative to the C key. =item error => \$err If present, it should be a reference to a scalar. This scalar will be made to reference an array, which will be used to store any errors that are encountered. See the L section for more information. Removing things is a much more dangerous proposition than creating things. As such, there are certain conditions that C may encounter that are so dangerous that the only sane action left is to kill the program. Use C to trap all that is reasonable (problems with permissions and the like), and let it die if things get out of hand. This is the safest course of action. =back =item rmtree( $dir ) =item rmtree( $dir, $verbose, $safe ) =item rmtree( [$dir1, $dir2,...], $verbose, $safe ) =item rmtree( $dir1, $dir2,..., \%opt ) The C function provide the legacy interface of C with a different interpretation of the arguments passed. The behaviour and return value of the function is otherwise identical to C. B For security reasons, we strongly advise use of the hashref-as-final-argument syntax, specifically with a setting of the C element to a true value. rmtree( $dir1, $dir2, ...., { safe => 1, ... # other key-value pairs }, ); =back =head2 ERROR HANDLING =over 4 =item B The following error handling mechanism is consistent throughout all code paths EXCEPT in cases where the ROOT node is nonexistent. In version 2.11 the maintainers attempted to rectify this inconsistency but too many downstream modules encountered problems. In such case, if you require root node evaluation or error checking prior to calling C or C, you should take additional precautions. =back If C or C encounters an error, a diagnostic message will be printed to C via C (for non-fatal errors) or via C (for fatal errors). If this behaviour is not desirable, the C attribute may be used to hold a reference to a variable, which will be used to store the diagnostics. The variable is made a reference to an array of hash references. Each hash contain a single key/value pair where the key is the name of the file, and the value is the error message (including the contents of C<$!> when appropriate). If a general error is encountered the diagnostic key will be empty. An example usage looks like: remove_tree( 'foo/bar', 'bar/rat', {error => \my $err} ); if ($err && @$err) { for my $diag (@$err) { my ($file, $message) = %$diag; if ($file eq '') { print "general error: $message\n"; } else { print "problem unlinking $file: $message\n"; } } } else { print "No error encountered\n"; } Note that if no errors are encountered, C<$err> will reference an empty array. This means that C<$err> will always end up TRUE; so you need to test C<@$err> to determine if errors occurred. =head2 NOTES C blindly exports C and C into the current namespace. These days, this is considered bad style, but to change it now would break too much code. Nonetheless, you are invited to specify what it is you are expecting to use: use File::Path 'rmtree'; The routines C and C are B exported by default. You must specify which ones you want to use. use File::Path 'remove_tree'; Note that a side-effect of the above is that C and C are no longer exported at all. This is due to the way the C module works. If you are migrating a codebase to use the new interface, you will have to list everything explicitly. But that's just good practice anyway. use File::Path qw(remove_tree rmtree); =head3 API CHANGES The API was changed in the 2.0 branch. For a time, C and C tried, unsuccessfully, to deal with the two different calling mechanisms. This approach was considered a failure. The new semantics are now only available with C and C. The old semantics are only available through C and C. Users are strongly encouraged to upgrade to at least 2.08 in order to avoid surprises. =head3 SECURITY CONSIDERATIONS There were race conditions in the 1.x implementations of File::Path's C function (although sometimes patched depending on the OS distribution or platform). The 2.0 version contains code to avoid the problem mentioned in CVE-2002-0435. See the following pages for more information: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=286905 http://www.nntp.perl.org/group/perl.perl5.porters/2005/01/msg97623.html http://www.debian.org/security/2005/dsa-696 Additionally, unless the C parameter is set (or the third parameter in the traditional interface is TRUE), should a C be interrupted, files that were originally in read-only mode may now have their permissions set to a read-write (or "delete OK") mode. The following CVE reports were previously filed against File-Path and are believed to have been addressed: =over 4 =item * L =item * L =back In February 2017 the cPanel Security Team reported an additional vulnerability in File-Path. The C logic to make directories traversable can be abused to set the mode on an attacker-chosen file to an attacker-chosen value. This is due to the time-of-check-to-time-of-use (TOCTTOU) race condition (L) between the C that decides the inode is a directory and the C that tries to make it user-rwx. CPAN versions 2.13 and later incorporate a patch provided by John Lightsey to address this problem. This vulnerability has been reported as CVE-2017-6512. =head1 DIAGNOSTICS FATAL errors will cause the program to halt (C), since the problem is so severe that it would be dangerous to continue. (This can always be trapped with C, but it's not a good idea. Under the circumstances, dying is the best thing to do). SEVERE errors may be trapped using the modern interface. If the they are not trapped, or if the old interface is used, such an error will cause the program will halt. All other errors may be trapped using the modern interface, otherwise they will be Ced about. Program execution will not be halted. =over 4 =item mkdir [path]: [errmsg] (SEVERE) C was unable to create the path. Probably some sort of permissions error at the point of departure or insufficient resources (such as free inodes on Unix). =item No root path(s) specified C was not given any paths to create. This message is only emitted if the routine is called with the traditional interface. The modern interface will remain silent if given nothing to do. =item No such file or directory On Windows, if C gives you this warning, it may mean that you have exceeded your filesystem's maximum path length. =item cannot fetch initial working directory: [errmsg] C attempted to determine the initial directory by calling C, but the call failed for some reason. No attempt will be made to delete anything. =item cannot stat initial working directory: [errmsg] C attempted to stat the initial directory (after having successfully obtained its name via C), however, the call failed for some reason. No attempt will be made to delete anything. =item cannot chdir to [dir]: [errmsg] C attempted to set the working directory in order to begin deleting the objects therein, but was unsuccessful. This is usually a permissions issue. The routine will continue to delete other things, but this directory will be left intact. =item directory [dir] changed before chdir, expected dev=[n] ino=[n], actual dev=[n] ino=[n], aborting. (FATAL) C recorded the device and inode of a directory, and then moved into it. It then performed a C on the current directory and detected that the device and inode were no longer the same. As this is at the heart of the race condition problem, the program will die at this point. =item cannot make directory [dir] read+writeable: [errmsg] C attempted to change the permissions on the current directory to ensure that subsequent unlinkings would not run into problems, but was unable to do so. The permissions remain as they were, and the program will carry on, doing the best it can. =item cannot read [dir]: [errmsg] C tried to read the contents of the directory in order to acquire the names of the directory entries to be unlinked, but was unsuccessful. This is usually a permissions issue. The program will continue, but the files in this directory will remain after the call. =item cannot reset chmod [dir]: [errmsg] C, after having deleted everything in a directory, attempted to restore its permissions to the original state but failed. The directory may wind up being left behind. =item cannot remove [dir] when cwd is [dir] The current working directory of the program is F and you are attempting to remove an ancestor, such as F. The directory tree is left untouched. The solution is to C out of the child directory to a place outside the directory tree to be removed. =item cannot chdir to [parent-dir] from [child-dir]: [errmsg], aborting. (FATAL) C, after having deleted everything and restored the permissions of a directory, was unable to chdir back to the parent. The program halts to avoid a race condition from occurring. =item cannot stat prior working directory [dir]: [errmsg], aborting. (FATAL) C was unable to stat the parent directory after having returned from the child. Since there is no way of knowing if we returned to where we think we should be (by comparing device and inode) the only way out is to C. =item previous directory [parent-dir] changed before entering [child-dir], expected dev=[n] ino=[n], actual dev=[n] ino=[n], aborting. (FATAL) When C returned from deleting files in a child directory, a check revealed that the parent directory it returned to wasn't the one it started out from. This is considered a sign of malicious activity. =item cannot make directory [dir] writeable: [errmsg] Just before removing a directory (after having successfully removed everything it contained), C attempted to set the permissions on the directory to ensure it could be removed and failed. Program execution continues, but the directory may possibly not be deleted. =item cannot remove directory [dir]: [errmsg] C attempted to remove a directory, but failed. This may be because some objects that were unable to be removed remain in the directory, or it could be a permissions issue. The directory will be left behind. =item cannot restore permissions of [dir] to [0nnn]: [errmsg] After having failed to remove a directory, C was unable to restore its permissions from a permissive state back to a possibly more restrictive setting. (Permissions given in octal). =item cannot make file [file] writeable: [errmsg] C attempted to force the permissions of a file to ensure it could be deleted, but failed to do so. It will, however, still attempt to unlink the file. =item cannot unlink file [file]: [errmsg] C failed to remove a file. Probably a permissions issue. =item cannot restore permissions of [file] to [0nnn]: [errmsg] After having failed to remove a file, C was also unable to restore the permissions on the file to a possibly less permissive setting. (Permissions given in octal). =item unable to map [owner] to a uid, ownership not changed"); C was instructed to give the ownership of created directories to the symbolic name [owner], but C did not return the corresponding numeric uid. The directory will be created, but ownership will not be changed. =item unable to map [group] to a gid, group ownership not changed C was instructed to give the group ownership of created directories to the symbolic name [group], but C did not return the corresponding numeric gid. The directory will be created, but group ownership will not be changed. =back =head1 SEE ALSO =over 4 =item * L Allows files and directories to be moved to the Trashcan/Recycle Bin (where they may later be restored if necessary) if the operating system supports such functionality. This feature may one day be made available directly in C. =item * L When removing directory trees, if you want to examine each file to decide whether to delete it (and possibly leaving large swathes alone), F offers a convenient and flexible approach to examining directory trees. =back =head1 BUGS AND LIMITATIONS The following describes F limitations and how to report bugs. =head2 MULTITHREADED APPLICATIONS F C and C will not work with multithreaded applications due to its use of C. At this time, no warning or error is generated in this situation. You will certainly encounter unexpected results. The implementation that surfaces this limitation will not be changed. See the F module for functionality similar to F but which does not C. =head2 NFS Mount Points F is not responsible for triggering the automounts, mirror mounts, and the contents of network mounted filesystems. If your NFS implementation requires an action to be performed on the filesystem in order for F to perform operations, it is strongly suggested you assure filesystem availability by reading the root of the mounted filesystem. =head2 REPORTING BUGS Please report all bugs on the RT queue, either via the web interface: L or by email: bug-File-Path@rt.cpan.org In either case, please B patches to the bug report rather than including them inline in the web post or the body of the email. You can also send pull requests to the Github repository: L =head1 ACKNOWLEDGEMENTS Paul Szabo identified the race condition originally, and Brendan O'Dea wrote an implementation for Debian that addressed the problem. That code was used as a basis for the current code. Their efforts are greatly appreciated. Gisle Aas made a number of improvements to the documentation for 2.07 and his advice and assistance is also greatly appreciated. =head1 AUTHORS Prior authors and maintainers: Tim Bunce, Charles Bailey, and David Landgren >. Current maintainers are Richard Elberger > and James (Jim) Keenan >. =head1 CONTRIBUTORS Contributors to File::Path, in alphabetical order by first name. =over 1 =item > =item Charlie Gonzalez > =item Craig A. Berry > =item James E Keenan > =item John Lightsey > =item Nigel Horne > =item Richard Elberger > =item Ryan Yee > =item Skye Shaw > =item Tom Lutz > =item Will Sheppard > =back =head1 COPYRIGHT This module is copyright (C) Charles Bailey, Tim Bunce, David Landgren, James Keenan and Richard Elberger 1995-2020. All rights reserved. =head1 LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut FILE66058cac/File/Temp.pm]package File::Temp; # git description: v0.2310-3-gc7148fe # ABSTRACT: return name and handle of a temporary file safely our $VERSION = '0.2311'; #pod =begin :__INTERNALS #pod #pod =head1 PORTABILITY #pod #pod This section is at the top in order to provide easier access to #pod porters. It is not expected to be rendered by a standard pod #pod formatting tool. Please skip straight to the SYNOPSIS section if you #pod are not trying to port this module to a new platform. #pod #pod This module is designed to be portable across operating systems and it #pod currently supports Unix, VMS, DOS, OS/2, Windows and Mac OS #pod (Classic). When porting to a new OS there are generally three main #pod issues that have to be solved: #pod #pod =over 4 #pod #pod =item * #pod #pod Can the OS unlink an open file? If it can not then the #pod C<_can_unlink_opened_file> method should be modified. #pod #pod =item * #pod #pod Are the return values from C reliable? By default all the #pod return values from C are compared when unlinking a temporary #pod file using the filename and the handle. Operating systems other than #pod unix do not always have valid entries in all fields. If utility function #pod C fails then the C comparison should be #pod modified accordingly. #pod #pod =item * #pod #pod Security. Systems that can not support a test for the sticky bit #pod on a directory can not use the MEDIUM and HIGH security tests. #pod The C<_can_do_level> method should be modified accordingly. #pod #pod =back #pod #pod =end :__INTERNALS #pod #pod =head1 SYNOPSIS #pod #pod use File::Temp qw/ tempfile tempdir /; #pod #pod $fh = tempfile(); #pod ($fh, $filename) = tempfile(); #pod #pod ($fh, $filename) = tempfile( $template, DIR => $dir); #pod ($fh, $filename) = tempfile( $template, SUFFIX => '.dat'); #pod ($fh, $filename) = tempfile( $template, TMPDIR => 1 ); #pod #pod binmode( $fh, ":utf8" ); #pod #pod $dir = tempdir( CLEANUP => 1 ); #pod ($fh, $filename) = tempfile( DIR => $dir ); #pod #pod Object interface: #pod #pod require File::Temp; #pod use File::Temp (); #pod use File::Temp qw/ :seekable /; #pod #pod $fh = File::Temp->new(); #pod $fname = $fh->filename; #pod #pod $fh = File::Temp->new(TEMPLATE => $template); #pod $fname = $fh->filename; #pod #pod $tmp = File::Temp->new( UNLINK => 0, SUFFIX => '.dat' ); #pod print $tmp "Some data\n"; #pod print "Filename is $tmp\n"; #pod $tmp->seek( 0, SEEK_END ); #pod #pod $dir = File::Temp->newdir(); # CLEANUP => 1 by default #pod #pod The following interfaces are provided for compatibility with #pod existing APIs. They should not be used in new code. #pod #pod MkTemp family: #pod #pod use File::Temp qw/ :mktemp /; #pod #pod ($fh, $file) = mkstemp( "tmpfileXXXXX" ); #pod ($fh, $file) = mkstemps( "tmpfileXXXXXX", $suffix); #pod #pod $tmpdir = mkdtemp( $template ); #pod #pod $unopened_file = mktemp( $template ); #pod #pod POSIX functions: #pod #pod use File::Temp qw/ :POSIX /; #pod #pod $file = tmpnam(); #pod $fh = tmpfile(); #pod #pod ($fh, $file) = tmpnam(); #pod #pod Compatibility functions: #pod #pod $unopened_file = File::Temp::tempnam( $dir, $pfx ); #pod #pod =head1 DESCRIPTION #pod #pod C can be used to create and open temporary files in a safe #pod way. There is both a function interface and an object-oriented #pod interface. The File::Temp constructor or the tempfile() function can #pod be used to return the name and the open filehandle of a temporary #pod file. The tempdir() function can be used to create a temporary #pod directory. #pod #pod The security aspect of temporary file creation is emphasized such that #pod a filehandle and filename are returned together. This helps guarantee #pod that a race condition can not occur where the temporary file is #pod created by another process between checking for the existence of the #pod file and its opening. Additional security levels are provided to #pod check, for example, that the sticky bit is set on world writable #pod directories. See L<"safe_level"> for more information. #pod #pod For compatibility with popular C library functions, Perl implementations of #pod the mkstemp() family of functions are provided. These are, mkstemp(), #pod mkstemps(), mkdtemp() and mktemp(). #pod #pod Additionally, implementations of the standard L #pod tmpnam() and tmpfile() functions are provided if required. #pod #pod Implementations of mktemp(), tmpnam(), and tempnam() are provided, #pod but should be used with caution since they return only a filename #pod that was valid when function was called, so cannot guarantee #pod that the file will not exist by the time the caller opens the filename. #pod #pod Filehandles returned by these functions support the seekable methods. #pod #pod =cut # Toolchain targets v5.8.1, but we'll try to support back to v5.6 anyway. # It might be possible to make this v5.5, but many v5.6isms are creeping # into the code and tests. use 5.006; use strict; use Carp; use File::Spec 0.8; use Cwd (); use File::Path 2.06 qw/ rmtree /; use Fcntl 1.03; use IO::Seekable; # For SEEK_* use Errno; use Scalar::Util 'refaddr'; require VMS::Stdio if $^O eq 'VMS'; # pre-emptively load Carp::Heavy. If we don't when we run out of file # handles and attempt to call croak() we get an error message telling # us that Carp::Heavy won't load rather than an error telling us we # have run out of file handles. We either preload croak() or we # switch the calls to croak from _gettemp() to use die. eval { require Carp::Heavy; }; # Need the Symbol package if we are running older perl require Symbol if $] < 5.006; ### For the OO interface use parent 0.221 qw/ IO::Handle IO::Seekable /; use overload '""' => "STRINGIFY", '0+' => "NUMIFY", fallback => 1; our $DEBUG = 0; our $KEEP_ALL = 0; # We are exporting functions use Exporter 5.57 'import'; # 5.57 lets us import 'import' # Export list - to allow fine tuning of export table our @EXPORT_OK = qw{ tempfile tempdir tmpnam tmpfile mktemp mkstemp mkstemps mkdtemp unlink0 cleanup SEEK_SET SEEK_CUR SEEK_END }; # Groups of functions for export our %EXPORT_TAGS = ( 'POSIX' => [qw/ tmpnam tmpfile /], 'mktemp' => [qw/ mktemp mkstemp mkstemps mkdtemp/], 'seekable' => [qw/ SEEK_SET SEEK_CUR SEEK_END /], ); # add contents of these tags to @EXPORT Exporter::export_tags('POSIX','mktemp','seekable'); # This is a list of characters that can be used in random filenames my @CHARS = (qw/ 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 c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 _ /); # Maximum number of tries to make a temp file before failing use constant MAX_TRIES => 1000; # Minimum number of X characters that should be in a template use constant MINX => 4; # Default template when no template supplied use constant TEMPXXX => 'X' x 10; # Constants for the security level use constant STANDARD => 0; use constant MEDIUM => 1; use constant HIGH => 2; # OPENFLAGS. If we defined the flag to use with Sysopen here this gives # us an optimisation when many temporary files are requested my $OPENFLAGS = O_CREAT | O_EXCL | O_RDWR; my $LOCKFLAG; unless ($^O eq 'MacOS') { for my $oflag (qw/ NOFOLLOW BINARY LARGEFILE NOINHERIT /) { my ($bit, $func) = (0, "Fcntl::O_" . $oflag); no strict 'refs'; $OPENFLAGS |= $bit if eval { # Make sure that redefined die handlers do not cause problems # e.g. CGI::Carp local $SIG{__DIE__} = sub {}; local $SIG{__WARN__} = sub {}; $bit = &$func(); 1; }; } # Special case O_EXLOCK $LOCKFLAG = eval { local $SIG{__DIE__} = sub {}; local $SIG{__WARN__} = sub {}; &Fcntl::O_EXLOCK(); }; } # On some systems the O_TEMPORARY flag can be used to tell the OS # to automatically remove the file when it is closed. This is fine # in most cases but not if tempfile is called with UNLINK=>0 and # the filename is requested -- in the case where the filename is to # be passed to another routine. This happens on windows. We overcome # this by using a second open flags variable my $OPENTEMPFLAGS = $OPENFLAGS; unless ($^O eq 'MacOS') { for my $oflag (qw/ TEMPORARY /) { my ($bit, $func) = (0, "Fcntl::O_" . $oflag); local($@); no strict 'refs'; $OPENTEMPFLAGS |= $bit if eval { # Make sure that redefined die handlers do not cause problems # e.g. CGI::Carp local $SIG{__DIE__} = sub {}; local $SIG{__WARN__} = sub {}; $bit = &$func(); 1; }; } } # Private hash tracking which files have been created by each process id via the OO interface my %FILES_CREATED_BY_OBJECT; # INTERNAL ROUTINES - not to be used outside of package # Generic routine for getting a temporary filename # modelled on OpenBSD _gettemp() in mktemp.c # The template must contain X's that are to be replaced # with the random values # Arguments: # TEMPLATE - string containing the XXXXX's that is converted # to a random filename and opened if required # Optionally, a hash can also be supplied containing specific options # "open" => if true open the temp file, else just return the name # default is 0 # "mkdir"=> if true, we are creating a temp directory rather than tempfile # default is 0 # "suffixlen" => number of characters at end of PATH to be ignored. # default is 0. # "unlink_on_close" => indicates that, if possible, the OS should remove # the file as soon as it is closed. Usually indicates # use of the O_TEMPORARY flag to sysopen. # Usually irrelevant on unix # "use_exlock" => Indicates that O_EXLOCK should be used. Default is false. # "file_permissions" => file permissions for sysopen(). Default is 0600. # Optionally a reference to a scalar can be passed into the function # On error this will be used to store the reason for the error # "ErrStr" => \$errstr # "open" and "mkdir" can not both be true # "unlink_on_close" is not used when "mkdir" is true. # The default options are equivalent to mktemp(). # Returns: # filehandle - open file handle (if called with doopen=1, else undef) # temp name - name of the temp file or directory # For example: # ($fh, $name) = _gettemp($template, "open" => 1); # for the current version, failures are associated with # stored in an error string and returned to give the reason whilst debugging # This routine is not called by any external function sub _gettemp { croak 'Usage: ($fh, $name) = _gettemp($template, OPTIONS);' unless scalar(@_) >= 1; # the internal error string - expect it to be overridden # Need this in case the caller decides not to supply us a value # need an anonymous scalar my $tempErrStr; # Default options my %options = ( "open" => 0, "mkdir" => 0, "suffixlen" => 0, "unlink_on_close" => 0, "use_exlock" => 0, "ErrStr" => \$tempErrStr, "file_permissions" => undef, ); # Read the template my $template = shift; if (ref($template)) { # Use a warning here since we have not yet merged ErrStr carp "File::Temp::_gettemp: template must not be a reference"; return (); } # Check that the number of entries on stack are even if (scalar(@_) % 2 != 0) { # Use a warning here since we have not yet merged ErrStr carp "File::Temp::_gettemp: Must have even number of options"; return (); } # Read the options and merge with defaults %options = (%options, @_) if @_; # Make sure the error string is set to undef ${$options{ErrStr}} = undef; # Can not open the file and make a directory in a single call if ($options{"open"} && $options{"mkdir"}) { ${$options{ErrStr}} = "doopen and domkdir can not both be true\n"; return (); } # Find the start of the end of the Xs (position of last X) # Substr starts from 0 my $start = length($template) - 1 - $options{"suffixlen"}; # Check that we have at least MINX x X (e.g. 'XXXX") at the end of the string # (taking suffixlen into account). Any fewer is insecure. # Do it using substr - no reason to use a pattern match since # we know where we are looking and what we are looking for if (substr($template, $start - MINX + 1, MINX) ne 'X' x MINX) { ${$options{ErrStr}} = "The template must end with at least ". MINX . " 'X' characters\n"; return (); } # Replace all the X at the end of the substring with a # random character or just all the XX at the end of a full string. # Do it as an if, since the suffix adjusts which section to replace # and suffixlen=0 returns nothing if used in the substr directly # and generate a full path from the template my $path = _replace_XX($template, $options{"suffixlen"}); # Split the path into constituent parts - eventually we need to check # whether the directory exists # We need to know whether we are making a temp directory # or a tempfile my ($volume, $directories, $file); my $parent; # parent directory if ($options{"mkdir"}) { # There is no filename at the end ($volume, $directories, $file) = File::Spec->splitpath( $path, 1); # The parent is then $directories without the last directory # Split the directory and put it back together again my @dirs = File::Spec->splitdir($directories); # If @dirs only has one entry (i.e. the directory template) that means # we are in the current directory if ($#dirs == 0) { $parent = File::Spec->curdir; } else { if ($^O eq 'VMS') { # need volume to avoid relative dir spec $parent = File::Spec->catdir($volume, @dirs[0..$#dirs-1]); $parent = 'sys$disk:[]' if $parent eq ''; } else { # Put it back together without the last one $parent = File::Spec->catdir(@dirs[0..$#dirs-1]); # ...and attach the volume (no filename) $parent = File::Spec->catpath($volume, $parent, ''); } } } else { # Get rid of the last filename (use File::Basename for this?) ($volume, $directories, $file) = File::Spec->splitpath( $path ); # Join up without the file part $parent = File::Spec->catpath($volume,$directories,''); # If $parent is empty replace with curdir $parent = File::Spec->curdir unless $directories ne ''; } # Check that the parent directories exist # Do this even for the case where we are simply returning a name # not a file -- no point returning a name that includes a directory # that does not exist or is not writable unless (-e $parent) { ${$options{ErrStr}} = "Parent directory ($parent) does not exist"; return (); } unless (-d $parent) { ${$options{ErrStr}} = "Parent directory ($parent) is not a directory"; return (); } # Check the stickiness of the directory and chown giveaway if required # If the directory is world writable the sticky bit # must be set if (File::Temp->safe_level == MEDIUM) { my $safeerr; unless (_is_safe($parent,\$safeerr)) { ${$options{ErrStr}} = "Parent directory ($parent) is not safe ($safeerr)"; return (); } } elsif (File::Temp->safe_level == HIGH) { my $safeerr; unless (_is_verysafe($parent, \$safeerr)) { ${$options{ErrStr}} = "Parent directory ($parent) is not safe ($safeerr)"; return (); } } my $perms = $options{file_permissions}; my $has_perms = defined $perms; $perms = 0600 unless $has_perms; # Now try MAX_TRIES time to open the file for (my $i = 0; $i < MAX_TRIES; $i++) { # Try to open the file if requested if ($options{"open"}) { my $fh; # If we are running before perl5.6.0 we can not auto-vivify if ($] < 5.006) { $fh = &Symbol::gensym; } # Try to make sure this will be marked close-on-exec # XXX: Win32 doesn't respect this, nor the proper fcntl, # but may have O_NOINHERIT. This may or may not be in Fcntl. local $^F = 2; # Attempt to open the file my $open_success = undef; if ( $^O eq 'VMS' and $options{"unlink_on_close"} && !$KEEP_ALL) { # make it auto delete on close by setting FAB$V_DLT bit $fh = VMS::Stdio::vmssysopen($path, $OPENFLAGS, $perms, 'fop=dlt'); $open_success = $fh; } else { my $flags = ( ($options{"unlink_on_close"} && !$KEEP_ALL) ? $OPENTEMPFLAGS : $OPENFLAGS ); $flags |= $LOCKFLAG if (defined $LOCKFLAG && $options{use_exlock}); $open_success = sysopen($fh, $path, $flags, $perms); } if ( $open_success ) { # in case of odd umask force rw chmod($perms, $path) unless $has_perms; # Opened successfully - return file handle and name return ($fh, $path); } else { # Error opening file - abort with error # if the reason was anything but EEXIST unless ($!{EEXIST}) { ${$options{ErrStr}} = "Could not create temp file $path: $!"; return (); } # Loop round for another try } } elsif ($options{"mkdir"}) { # Open the temp directory if (mkdir( $path, 0700)) { # in case of odd umask chmod(0700, $path); return undef, $path; } else { # Abort with error if the reason for failure was anything # except EEXIST unless ($!{EEXIST}) { ${$options{ErrStr}} = "Could not create directory $path: $!"; return (); } # Loop round for another try } } else { # Return true if the file can not be found # Directory has been checked previously return (undef, $path) unless -e $path; # Try again until MAX_TRIES } # Did not successfully open the tempfile/dir # so try again with a different set of random letters # No point in trying to increment unless we have only # 1 X say and the randomness could come up with the same # file MAX_TRIES in a row. # Store current attempt - in principle this implies that the # 3rd time around the open attempt that the first temp file # name could be generated again. Probably should store each # attempt and make sure that none are repeated my $original = $path; my $counter = 0; # Stop infinite loop my $MAX_GUESS = 50; do { # Generate new name from original template $path = _replace_XX($template, $options{"suffixlen"}); $counter++; } until ($path ne $original || $counter > $MAX_GUESS); # Check for out of control looping if ($counter > $MAX_GUESS) { ${$options{ErrStr}} = "Tried to get a new temp name different to the previous value $MAX_GUESS times.\nSomething wrong with template?? ($template)"; return (); } } # If we get here, we have run out of tries ${ $options{ErrStr} } = "Have exceeded the maximum number of attempts (" . MAX_TRIES . ") to open temp file/dir"; return (); } # Internal routine to replace the XXXX... with random characters # This has to be done by _gettemp() every time it fails to # open a temp file/dir # Arguments: $template (the template with XXX), # $ignore (number of characters at end to ignore) # Returns: modified template sub _replace_XX { croak 'Usage: _replace_XX($template, $ignore)' unless scalar(@_) == 2; my ($path, $ignore) = @_; # Do it as an if, since the suffix adjusts which section to replace # and suffixlen=0 returns nothing if used in the substr directly # Alternatively, could simply set $ignore to length($path)-1 # Don't want to always use substr when not required though. my $end = ( $] >= 5.006 ? "\\z" : "\\Z" ); if ($ignore) { substr($path, 0, - $ignore) =~ s/X(?=X*$end)/$CHARS[ int( rand( @CHARS ) ) ]/ge; } else { $path =~ s/X(?=X*$end)/$CHARS[ int( rand( @CHARS ) ) ]/ge; } return $path; } # Internal routine to force a temp file to be writable after # it is created so that we can unlink it. Windows seems to occasionally # force a file to be readonly when written to certain temp locations sub _force_writable { my $file = shift; chmod 0600, $file; } # internal routine to check to see if the directory is safe # First checks to see if the directory is not owned by the # current user or root. Then checks to see if anyone else # can write to the directory and if so, checks to see if # it has the sticky bit set # Will not work on systems that do not support sticky bit #Args: directory path to check # Optionally: reference to scalar to contain error message # Returns true if the path is safe and false otherwise. # Returns undef if can not even run stat() on the path # This routine based on version written by Tom Christiansen # Presumably, by the time we actually attempt to create the # file or directory in this directory, it may not be safe # anymore... Have to run _is_safe directly after the open. sub _is_safe { my $path = shift; my $err_ref = shift; # Stat path my @info = stat($path); unless (scalar(@info)) { $$err_ref = "stat(path) returned no values"; return 0; } ; return 1 if $^O eq 'VMS'; # owner delete control at file level # Check to see whether owner is neither superuser (or a system uid) nor me # Use the effective uid from the $> variable # UID is in [4] if ($info[4] > File::Temp->top_system_uid() && $info[4] != $>) { Carp::cluck(sprintf "uid=$info[4] topuid=%s euid=$> path='$path'", File::Temp->top_system_uid()); $$err_ref = "Directory owned neither by root nor the current user" if ref($err_ref); return 0; } # check whether group or other can write file # use 066 to detect either reading or writing # use 022 to check writability # Do it with S_IWOTH and S_IWGRP for portability (maybe) # mode is in info[2] if (($info[2] & &Fcntl::S_IWGRP) || # Is group writable? ($info[2] & &Fcntl::S_IWOTH) ) { # Is world writable? # Must be a directory unless (-d $path) { $$err_ref = "Path ($path) is not a directory" if ref($err_ref); return 0; } # Must have sticky bit set unless (-k $path) { $$err_ref = "Sticky bit not set on $path when dir is group|world writable" if ref($err_ref); return 0; } } return 1; } # Internal routine to check whether a directory is safe # for temp files. Safer than _is_safe since it checks for # the possibility of chown giveaway and if that is a possibility # checks each directory in the path to see if it is safe (with _is_safe) # If _PC_CHOWN_RESTRICTED is not set, does the full test of each # directory anyway. # Takes optional second arg as scalar ref to error reason sub _is_verysafe { # Need POSIX - but only want to bother if really necessary due to overhead require POSIX; my $path = shift; print "_is_verysafe testing $path\n" if $DEBUG; return 1 if $^O eq 'VMS'; # owner delete control at file level my $err_ref = shift; # Should Get the value of _PC_CHOWN_RESTRICTED if it is defined # and If it is not there do the extensive test local($@); my $chown_restricted; $chown_restricted = &POSIX::_PC_CHOWN_RESTRICTED() if eval { &POSIX::_PC_CHOWN_RESTRICTED(); 1}; # If chown_resticted is set to some value we should test it if (defined $chown_restricted) { # Return if the current directory is safe return _is_safe($path,$err_ref) if POSIX::sysconf( $chown_restricted ); } # To reach this point either, the _PC_CHOWN_RESTRICTED symbol # was not available or the symbol was there but chown giveaway # is allowed. Either way, we now have to test the entire tree for # safety. # Convert path to an absolute directory if required unless (File::Spec->file_name_is_absolute($path)) { $path = File::Spec->rel2abs($path); } # Split directory into components - assume no file my ($volume, $directories, undef) = File::Spec->splitpath( $path, 1); # Slightly less efficient than having a function in File::Spec # to chop off the end of a directory or even a function that # can handle ../ in a directory tree # Sometimes splitdir() returns a blank at the end # so we will probably check the bottom directory twice in some cases my @dirs = File::Spec->splitdir($directories); # Concatenate one less directory each time around foreach my $pos (0.. $#dirs) { # Get a directory name my $dir = File::Spec->catpath($volume, File::Spec->catdir(@dirs[0.. $#dirs - $pos]), '' ); print "TESTING DIR $dir\n" if $DEBUG; # Check the directory return 0 unless _is_safe($dir,$err_ref); } return 1; } # internal routine to determine whether unlink works on this # platform for files that are currently open. # Returns true if we can, false otherwise. # Currently WinNT, OS/2 and VMS can not unlink an opened file # On VMS this is because the O_EXCL flag is used to open the # temporary file. Currently I do not know enough about the issues # on VMS to decide whether O_EXCL is a requirement. sub _can_unlink_opened_file { if (grep $^O eq $_, qw/MSWin32 os2 VMS dos MacOS haiku/) { return 0; } else { return 1; } } # internal routine to decide which security levels are allowed # see safe_level() for more information on this # Controls whether the supplied security level is allowed # $cando = _can_do_level( $level ) sub _can_do_level { # Get security level my $level = shift; # Always have to be able to do STANDARD return 1 if $level == STANDARD; # Currently, the systems that can do HIGH or MEDIUM are identical if ( $^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'cygwin' || $^O eq 'dos' || $^O eq 'MacOS' || $^O eq 'mpeix') { return 0; } else { return 1; } } # This routine sets up a deferred unlinking of a specified # filename and filehandle. It is used in the following cases: # - Called by unlink0 if an opened file can not be unlinked # - Called by tempfile() if files are to be removed on shutdown # - Called by tempdir() if directories are to be removed on shutdown # Arguments: # _deferred_unlink( $fh, $fname, $isdir ); # # - filehandle (so that it can be explicitly closed if open # - filename (the thing we want to remove) # - isdir (flag to indicate that we are being given a directory) # [and hence no filehandle] # Status is not referred to since all the magic is done with an END block { # Will set up two lexical variables to contain all the files to be # removed. One array for files, another for directories They will # only exist in this block. # This means we only have to set up a single END block to remove # all files. # in order to prevent child processes inadvertently deleting the parent # temp files we use a hash to store the temp files and directories # created by a particular process id. # %files_to_unlink contains values that are references to an array of # array references containing the filehandle and filename associated with # the temp file. my (%files_to_unlink, %dirs_to_unlink); # Set up an end block to use these arrays END { local($., $@, $!, $^E, $?); cleanup(at_exit => 1); } # Cleanup function. Always triggered on END (with at_exit => 1) but # can be invoked manually. sub cleanup { my %h = @_; my $at_exit = delete $h{at_exit}; $at_exit = 0 if not defined $at_exit; { my @k = sort keys %h; die "unrecognized parameters: @k" if @k } if (!$KEEP_ALL) { # Files my @files = (exists $files_to_unlink{$$} ? @{ $files_to_unlink{$$} } : () ); foreach my $file (@files) { # close the filehandle without checking its state # in order to make real sure that this is closed # if its already closed then I don't care about the answer # probably a better way to do this close($file->[0]); # file handle is [0] if (-f $file->[1]) { # file name is [1] _force_writable( $file->[1] ); # for windows unlink $file->[1] or warn "Error removing ".$file->[1]; } } # Dirs my @dirs = (exists $dirs_to_unlink{$$} ? @{ $dirs_to_unlink{$$} } : () ); my ($cwd, $cwd_to_remove); foreach my $dir (@dirs) { if (-d $dir) { # Some versions of rmtree will abort if you attempt to remove # the directory you are sitting in. For automatic cleanup # at program exit, we avoid this by chdir()ing out of the way # first. If not at program exit, it's best not to mess with the # current directory, so just let it fail with a warning. if ($at_exit) { $cwd = Cwd::abs_path(File::Spec->curdir) if not defined $cwd; my $abs = Cwd::abs_path($dir); if ($abs eq $cwd) { $cwd_to_remove = $dir; next; } } eval { rmtree($dir, $DEBUG, 0); }; warn $@ if ($@ && $^W); } } if (defined $cwd_to_remove) { # We do need to clean up the current directory, and everything # else is done, so get out of there and remove it. chdir $cwd_to_remove or die "cannot chdir to $cwd_to_remove: $!"; my $updir = File::Spec->updir; chdir $updir or die "cannot chdir to $updir: $!"; eval { rmtree($cwd_to_remove, $DEBUG, 0); }; warn $@ if ($@ && $^W); } # clear the arrays @{ $files_to_unlink{$$} } = () if exists $files_to_unlink{$$}; @{ $dirs_to_unlink{$$} } = () if exists $dirs_to_unlink{$$}; } } # This is the sub called to register a file for deferred unlinking # This could simply store the input parameters and defer everything # until the END block. For now we do a bit of checking at this # point in order to make sure that (1) we have a file/dir to delete # and (2) we have been called with the correct arguments. sub _deferred_unlink { croak 'Usage: _deferred_unlink($fh, $fname, $isdir)' unless scalar(@_) == 3; my ($fh, $fname, $isdir) = @_; warn "Setting up deferred removal of $fname\n" if $DEBUG; # make sure we save the absolute path for later cleanup # OK to untaint because we only ever use this internally # as a file path, never interpolating into the shell $fname = Cwd::abs_path($fname); ($fname) = $fname =~ /^(.*)$/; # If we have a directory, check that it is a directory if ($isdir) { if (-d $fname) { # Directory exists so store it # first on VMS turn []foo into [.foo] for rmtree $fname = VMS::Filespec::vmspath($fname) if $^O eq 'VMS'; $dirs_to_unlink{$$} = [] unless exists $dirs_to_unlink{$$}; push (@{ $dirs_to_unlink{$$} }, $fname); } else { carp "Request to remove directory $fname could not be completed since it does not exist!\n" if $^W; } } else { if (-f $fname) { # file exists so store handle and name for later removal $files_to_unlink{$$} = [] unless exists $files_to_unlink{$$}; push(@{ $files_to_unlink{$$} }, [$fh, $fname]); } else { carp "Request to remove file $fname could not be completed since it is not there!\n" if $^W; } } } } # normalize argument keys to upper case and do consistent handling # of leading template vs TEMPLATE sub _parse_args { my $leading_template = (scalar(@_) % 2 == 1 ? shift(@_) : '' ); my %args = @_; %args = map +(uc($_) => $args{$_}), keys %args; # template (store it in an array so that it will # disappear from the arg list of tempfile) my @template = ( exists $args{TEMPLATE} ? $args{TEMPLATE} : $leading_template ? $leading_template : () ); delete $args{TEMPLATE}; return( \@template, \%args ); } #pod =head1 OBJECT-ORIENTED INTERFACE #pod #pod This is the primary interface for interacting with #pod C. Using the OO interface a temporary file can be created #pod when the object is constructed and the file can be removed when the #pod object is no longer required. #pod #pod Note that there is no method to obtain the filehandle from the #pod C object. The object itself acts as a filehandle. The object #pod isa C and isa C so all those methods are #pod available. #pod #pod Also, the object is configured such that it stringifies to the name of the #pod temporary file and so can be compared to a filename directly. It numifies #pod to the C the same as other handles and so can be compared to other #pod handles with C<==>. #pod #pod $fh eq $filename # as a string #pod $fh != \*STDOUT # as a number #pod #pod Available since 0.14. #pod #pod =over 4 #pod #pod =item B #pod #pod Create a temporary file object. #pod #pod my $tmp = File::Temp->new(); #pod #pod by default the object is constructed as if C #pod was called without options, but with the additional behaviour #pod that the temporary file is removed by the object destructor #pod if UNLINK is set to true (the default). #pod #pod Supported arguments are the same as for C: UNLINK #pod (defaulting to true), DIR, EXLOCK, PERMS and SUFFIX. #pod Additionally, the filename #pod template is specified using the TEMPLATE option. The OPEN option #pod is not supported (the file is always opened). #pod #pod $tmp = File::Temp->new( TEMPLATE => 'tempXXXXX', #pod DIR => 'mydir', #pod SUFFIX => '.dat'); #pod #pod Arguments are case insensitive. #pod #pod Can call croak() if an error occurs. #pod #pod Available since 0.14. #pod #pod TEMPLATE available since 0.23 #pod #pod =cut sub new { my $proto = shift; my $class = ref($proto) || $proto; my ($maybe_template, $args) = _parse_args(@_); # see if they are unlinking (defaulting to yes) my $unlink = (exists $args->{UNLINK} ? $args->{UNLINK} : 1 ); delete $args->{UNLINK}; # Protect OPEN delete $args->{OPEN}; # Open the file and retain file handle and file name my ($fh, $path) = tempfile( @$maybe_template, %$args ); print "Tmp: $fh - $path\n" if $DEBUG; # Store the filename in the scalar slot ${*$fh} = $path; # Cache the filename by pid so that the destructor can decide whether to remove it $FILES_CREATED_BY_OBJECT{$$}{$path} = 1; # Store unlink information in hash slot (plus other constructor info) %{*$fh} = %$args; # create the object bless $fh, $class; # final method-based configuration $fh->unlink_on_destroy( $unlink ); return $fh; } #pod =item B #pod #pod Create a temporary directory using an object oriented interface. #pod #pod $dir = File::Temp->newdir(); #pod #pod By default the directory is deleted when the object goes out of scope. #pod #pod Supports the same options as the C function. Note that directories #pod created with this method default to CLEANUP => 1. #pod #pod $dir = File::Temp->newdir( $template, %options ); #pod #pod A template may be specified either with a leading template or #pod with a TEMPLATE argument. #pod #pod Available since 0.19. #pod #pod TEMPLATE available since 0.23. #pod #pod =cut sub newdir { my $self = shift; my ($maybe_template, $args) = _parse_args(@_); # handle CLEANUP without passing CLEANUP to tempdir my $cleanup = (exists $args->{CLEANUP} ? $args->{CLEANUP} : 1 ); delete $args->{CLEANUP}; my $tempdir = tempdir( @$maybe_template, %$args); # get a safe absolute path for cleanup, just like # happens in _deferred_unlink my $real_dir = Cwd::abs_path( $tempdir ); ($real_dir) = $real_dir =~ /^(.*)$/; return bless { DIRNAME => $tempdir, REALNAME => $real_dir, CLEANUP => $cleanup, LAUNCHPID => $$, }, "File::Temp::Dir"; } #pod =item B #pod #pod Return the name of the temporary file associated with this object #pod (if the object was created using the "new" constructor). #pod #pod $filename = $tmp->filename; #pod #pod This method is called automatically when the object is used as #pod a string. #pod #pod Current API available since 0.14 #pod #pod =cut sub filename { my $self = shift; return ${*$self}; } sub STRINGIFY { my $self = shift; return $self->filename; } # For reference, can't use '0+'=>\&Scalar::Util::refaddr directly because # refaddr() demands one parameter only, whereas overload.pm calls with three # even for unary operations like '0+'. sub NUMIFY { return refaddr($_[0]); } #pod =item B #pod #pod Return the name of the temporary directory associated with this #pod object (if the object was created using the "newdir" constructor). #pod #pod $dirname = $tmpdir->dirname; #pod #pod This method is called automatically when the object is used in string context. #pod #pod =item B #pod #pod Control whether the file is unlinked when the object goes out of scope. #pod The file is removed if this value is true and $KEEP_ALL is not. #pod #pod $fh->unlink_on_destroy( 1 ); #pod #pod Default is for the file to be removed. #pod #pod Current API available since 0.15 #pod #pod =cut sub unlink_on_destroy { my $self = shift; if (@_) { ${*$self}{UNLINK} = shift; } return ${*$self}{UNLINK}; } #pod =item B #pod #pod When the object goes out of scope, the destructor is called. This #pod destructor will attempt to unlink the file (using L) #pod if the constructor was called with UNLINK set to 1 (the default state #pod if UNLINK is not specified). #pod #pod No error is given if the unlink fails. #pod #pod If the object has been passed to a child process during a fork, the #pod file will be deleted when the object goes out of scope in the parent. #pod #pod For a temporary directory object the directory will be removed unless #pod the CLEANUP argument was used in the constructor (and set to false) or #pod C was modified after creation. Note that if a temp #pod directory is your current directory, it cannot be removed - a warning #pod will be given in this case. C out of the directory before #pod letting the object go out of scope. #pod #pod If the global variable $KEEP_ALL is true, the file or directory #pod will not be removed. #pod #pod =cut sub DESTROY { local($., $@, $!, $^E, $?); my $self = shift; # Make sure we always remove the file from the global hash # on destruction. This prevents the hash from growing uncontrollably # and post-destruction there is no reason to know about the file. my $file = $self->filename; my $was_created_by_proc; if (exists $FILES_CREATED_BY_OBJECT{$$}{$file}) { $was_created_by_proc = 1; delete $FILES_CREATED_BY_OBJECT{$$}{$file}; } if (${*$self}{UNLINK} && !$KEEP_ALL) { print "# ---------> Unlinking $self\n" if $DEBUG; # only delete if this process created it return unless $was_created_by_proc; # The unlink1 may fail if the file has been closed # by the caller. This leaves us with the decision # of whether to refuse to remove the file or simply # do an unlink without test. Seems to be silly # to do this when we are trying to be careful # about security _force_writable( $file ); # for windows unlink1( $self, $file ) or unlink($file); } } #pod =back #pod #pod =head1 FUNCTIONS #pod #pod This section describes the recommended interface for generating #pod temporary files and directories. #pod #pod =over 4 #pod #pod =item B #pod #pod This is the basic function to generate temporary files. #pod The behaviour of the file can be changed using various options: #pod #pod $fh = tempfile(); #pod ($fh, $filename) = tempfile(); #pod #pod Create a temporary file in the directory specified for temporary #pod files, as specified by the tmpdir() function in L. #pod #pod ($fh, $filename) = tempfile($template); #pod #pod Create a temporary file in the current directory using the supplied #pod template. Trailing `X' characters are replaced with random letters to #pod generate the filename. At least four `X' characters must be present #pod at the end of the template. #pod #pod ($fh, $filename) = tempfile($template, SUFFIX => $suffix) #pod #pod Same as previously, except that a suffix is added to the template #pod after the `X' translation. Useful for ensuring that a temporary #pod filename has a particular extension when needed by other applications. #pod But see the WARNING at the end. #pod #pod ($fh, $filename) = tempfile($template, DIR => $dir); #pod #pod Translates the template as before except that a directory name #pod is specified. #pod #pod ($fh, $filename) = tempfile($template, TMPDIR => 1); #pod #pod Equivalent to specifying a DIR of "File::Spec->tmpdir", writing the file #pod into the same temporary directory as would be used if no template was #pod specified at all. #pod #pod ($fh, $filename) = tempfile($template, UNLINK => 1); #pod #pod Return the filename and filehandle as before except that the file is #pod automatically removed when the program exits (dependent on #pod $KEEP_ALL). Default is for the file to be removed if a file handle is #pod requested and to be kept if the filename is requested. In a scalar #pod context (where no filename is returned) the file is always deleted #pod either (depending on the operating system) on exit or when it is #pod closed (unless $KEEP_ALL is true when the temp file is created). #pod #pod Use the object-oriented interface if fine-grained control of when #pod a file is removed is required. #pod #pod If the template is not specified, a template is always #pod automatically generated. This temporary file is placed in tmpdir() #pod (L) unless a directory is specified explicitly with the #pod DIR option. #pod #pod $fh = tempfile( DIR => $dir ); #pod #pod If called in scalar context, only the filehandle is returned and the #pod file will automatically be deleted when closed on operating systems #pod that support this (see the description of tmpfile() elsewhere in this #pod document). This is the preferred mode of operation, as if you only #pod have a filehandle, you can never create a race condition by fumbling #pod with the filename. On systems that can not unlink an open file or can #pod not mark a file as temporary when it is opened (for example, Windows #pod NT uses the C flag) the file is marked for deletion when #pod the program ends (equivalent to setting UNLINK to 1). The C #pod flag is ignored if present. #pod #pod (undef, $filename) = tempfile($template, OPEN => 0); #pod #pod This will return the filename based on the template but #pod will not open this file. Cannot be used in conjunction with #pod UNLINK set to true. Default is to always open the file #pod to protect from possible race conditions. A warning is issued #pod if warnings are turned on. Consider using the tmpnam() #pod and mktemp() functions described elsewhere in this document #pod if opening the file is not required. #pod #pod To open the temporary filehandle with O_EXLOCK (open with exclusive #pod file lock) use C<< EXLOCK=>1 >>. This is supported only by some #pod operating systems (most notably BSD derived systems). By default #pod EXLOCK will be false. Former C versions set EXLOCK to #pod true, so to be sure to get an unlocked filehandle also with older #pod versions, explicitly set C<< EXLOCK=>0 >>. #pod #pod ($fh, $filename) = tempfile($template, EXLOCK => 1); #pod #pod By default, the temp file is created with 0600 file permissions. #pod Use C to change this: #pod #pod ($fh, $filename) = tempfile($template, PERMS => 0666); #pod #pod Options can be combined as required. #pod #pod Will croak() if there is an error. #pod #pod Available since 0.05. #pod #pod UNLINK flag available since 0.10. #pod #pod TMPDIR flag available since 0.19. #pod #pod EXLOCK flag available since 0.19. #pod #pod PERMS flag available since 0.2310. #pod #pod =cut sub tempfile { if ( @_ && $_[0] eq 'File::Temp' ) { croak "'tempfile' can't be called as a method"; } # Can not check for argument count since we can have any # number of args # Default options my %options = ( "DIR" => undef, # Directory prefix "SUFFIX" => '', # Template suffix "UNLINK" => 0, # Do not unlink file on exit "OPEN" => 1, # Open file "TMPDIR" => 0, # Place tempfile in tempdir if template specified "EXLOCK" => 0, # Open file with O_EXLOCK "PERMS" => undef, # File permissions ); # Check to see whether we have an odd or even number of arguments my ($maybe_template, $args) = _parse_args(@_); my $template = @$maybe_template ? $maybe_template->[0] : undef; # Read the options and merge with defaults %options = (%options, %$args); # First decision is whether or not to open the file if (! $options{"OPEN"}) { warn "tempfile(): temporary filename requested but not opened.\nPossibly unsafe, consider using tempfile() with OPEN set to true\n" if $^W; } if ($options{"DIR"} and $^O eq 'VMS') { # on VMS turn []foo into [.foo] for concatenation $options{"DIR"} = VMS::Filespec::vmspath($options{"DIR"}); } # Construct the template # Have a choice of trying to work around the mkstemp/mktemp/tmpnam etc # functions or simply constructing a template and using _gettemp() # explicitly. Go for the latter # First generate a template if not defined and prefix the directory # If no template must prefix the temp directory if (defined $template) { # End up with current directory if neither DIR not TMPDIR are set if ($options{"DIR"}) { $template = File::Spec->catfile($options{"DIR"}, $template); } elsif ($options{TMPDIR}) { $template = File::Spec->catfile(_wrap_file_spec_tmpdir(), $template ); } } else { if ($options{"DIR"}) { $template = File::Spec->catfile($options{"DIR"}, TEMPXXX); } else { $template = File::Spec->catfile(_wrap_file_spec_tmpdir(), TEMPXXX); } } # Now add a suffix $template .= $options{"SUFFIX"}; # Determine whether we should tell _gettemp to unlink the file # On unix this is irrelevant and can be worked out after the file is # opened (simply by unlinking the open filehandle). On Windows or VMS # we have to indicate temporary-ness when we open the file. In general # we only want a true temporary file if we are returning just the # filehandle - if the user wants the filename they probably do not # want the file to disappear as soon as they close it (which may be # important if they want a child process to use the file) # For this reason, tie unlink_on_close to the return context regardless # of OS. my $unlink_on_close = ( wantarray ? 0 : 1); # Create the file my ($fh, $path, $errstr); croak "Error in tempfile() using template $template: $errstr" unless (($fh, $path) = _gettemp($template, "open" => $options{OPEN}, "mkdir" => 0, "unlink_on_close" => $unlink_on_close, "suffixlen" => length($options{SUFFIX}), "ErrStr" => \$errstr, "use_exlock" => $options{EXLOCK}, "file_permissions" => $options{PERMS}, ) ); # Set up an exit handler that can do whatever is right for the # system. This removes files at exit when requested explicitly or when # system is asked to unlink_on_close but is unable to do so because # of OS limitations. # The latter should be achieved by using a tied filehandle. # Do not check return status since this is all done with END blocks. _deferred_unlink($fh, $path, 0) if $options{"UNLINK"}; # Return if (wantarray()) { if ($options{'OPEN'}) { return ($fh, $path); } else { return (undef, $path); } } else { # Unlink the file. It is up to unlink0 to decide what to do with # this (whether to unlink now or to defer until later) unlink0($fh, $path) or croak "Error unlinking file $path using unlink0"; # Return just the filehandle. return $fh; } } # On Windows under taint mode, File::Spec could suggest "C:\" as a tempdir # which might not be writable. If that is the case, we fallback to a # user directory. See https://rt.cpan.org/Ticket/Display.html?id=60340 { my ($alt_tmpdir, $checked); sub _wrap_file_spec_tmpdir { return File::Spec->tmpdir unless $^O eq "MSWin32" && ${^TAINT}; if ( $checked ) { return $alt_tmpdir ? $alt_tmpdir : File::Spec->tmpdir; } # probe what File::Spec gives and find a fallback my $xxpath = _replace_XX( "X" x 10, 0 ); # First, see if File::Spec->tmpdir is writable my $tmpdir = File::Spec->tmpdir; my $testpath = File::Spec->catdir( $tmpdir, $xxpath ); if (mkdir( $testpath, 0700) ) { $checked = 1; rmdir $testpath; return $tmpdir; } # Next, see if CSIDL_LOCAL_APPDATA is writable require Win32; my $local_app = File::Spec->catdir( Win32::GetFolderPath( Win32::CSIDL_LOCAL_APPDATA() ), 'Temp' ); $testpath = File::Spec->catdir( $local_app, $xxpath ); if ( -e $local_app or mkdir( $local_app, 0700 ) ) { if (mkdir( $testpath, 0700) ) { $checked = 1; rmdir $testpath; return $alt_tmpdir = $local_app; } } # Can't find something writable croak << "HERE"; Couldn't find a writable temp directory in taint mode. Tried: $tmpdir $local_app Try setting and untainting the TMPDIR environment variable. HERE } } #pod =item B #pod #pod This is the recommended interface for creation of temporary #pod directories. By default the directory will not be removed on exit #pod (that is, it won't be temporary; this behaviour can not be changed #pod because of issues with backwards compatibility). To enable removal #pod either use the CLEANUP option which will trigger removal on program #pod exit, or consider using the "newdir" method in the object interface which #pod will allow the directory to be cleaned up when the object goes out of #pod scope. #pod #pod The behaviour of the function depends on the arguments: #pod #pod $tempdir = tempdir(); #pod #pod Create a directory in tmpdir() (see L). #pod #pod $tempdir = tempdir( $template ); #pod #pod Create a directory from the supplied template. This template is #pod similar to that described for tempfile(). `X' characters at the end #pod of the template are replaced with random letters to construct the #pod directory name. At least four `X' characters must be in the template. #pod #pod $tempdir = tempdir ( DIR => $dir ); #pod #pod Specifies the directory to use for the temporary directory. #pod The temporary directory name is derived from an internal template. #pod #pod $tempdir = tempdir ( $template, DIR => $dir ); #pod #pod Prepend the supplied directory name to the template. The template #pod should not include parent directory specifications itself. Any parent #pod directory specifications are removed from the template before #pod prepending the supplied directory. #pod #pod $tempdir = tempdir ( $template, TMPDIR => 1 ); #pod #pod Using the supplied template, create the temporary directory in #pod a standard location for temporary files. Equivalent to doing #pod #pod $tempdir = tempdir ( $template, DIR => File::Spec->tmpdir); #pod #pod but shorter. Parent directory specifications are stripped from the #pod template itself. The C option is ignored if C is set #pod explicitly. Additionally, C is implied if neither a template #pod nor a directory are supplied. #pod #pod $tempdir = tempdir( $template, CLEANUP => 1); #pod #pod Create a temporary directory using the supplied template, but #pod attempt to remove it (and all files inside it) when the program #pod exits. Note that an attempt will be made to remove all files from #pod the directory even if they were not created by this module (otherwise #pod why ask to clean it up?). The directory removal is made with #pod the rmtree() function from the L module. #pod Of course, if the template is not specified, the temporary directory #pod will be created in tmpdir() and will also be removed at program exit. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut # ' sub tempdir { if ( @_ && $_[0] eq 'File::Temp' ) { croak "'tempdir' can't be called as a method"; } # Can not check for argument count since we can have any # number of args # Default options my %options = ( "CLEANUP" => 0, # Remove directory on exit "DIR" => '', # Root directory "TMPDIR" => 0, # Use tempdir with template ); # Check to see whether we have an odd or even number of arguments my ($maybe_template, $args) = _parse_args(@_); my $template = @$maybe_template ? $maybe_template->[0] : undef; # Read the options and merge with defaults %options = (%options, %$args); # Modify or generate the template # Deal with the DIR and TMPDIR options if (defined $template) { # Need to strip directory path if using DIR or TMPDIR if ($options{'TMPDIR'} || $options{'DIR'}) { # Strip parent directory from the filename # # There is no filename at the end $template = VMS::Filespec::vmspath($template) if $^O eq 'VMS'; my ($volume, $directories, undef) = File::Spec->splitpath( $template, 1); # Last directory is then our template $template = (File::Spec->splitdir($directories))[-1]; # Prepend the supplied directory or temp dir if ($options{"DIR"}) { $template = File::Spec->catdir($options{"DIR"}, $template); } elsif ($options{TMPDIR}) { # Prepend tmpdir $template = File::Spec->catdir(_wrap_file_spec_tmpdir(), $template); } } } else { if ($options{"DIR"}) { $template = File::Spec->catdir($options{"DIR"}, TEMPXXX); } else { $template = File::Spec->catdir(_wrap_file_spec_tmpdir(), TEMPXXX); } } # Create the directory my $tempdir; my $suffixlen = 0; if ($^O eq 'VMS') { # dir names can end in delimiters $template =~ m/([\.\]:>]+)$/; $suffixlen = length($1); } if ( ($^O eq 'MacOS') && (substr($template, -1) eq ':') ) { # dir name has a trailing ':' ++$suffixlen; } my $errstr; croak "Error in tempdir() using $template: $errstr" unless ((undef, $tempdir) = _gettemp($template, "open" => 0, "mkdir"=> 1 , "suffixlen" => $suffixlen, "ErrStr" => \$errstr, ) ); # Install exit handler; must be dynamic to get lexical if ( $options{'CLEANUP'} && -d $tempdir) { _deferred_unlink(undef, $tempdir, 1); } # Return the dir name return $tempdir; } #pod =back #pod #pod =head1 MKTEMP FUNCTIONS #pod #pod The following functions are Perl implementations of the #pod mktemp() family of temp file generation system calls. #pod #pod =over 4 #pod #pod =item B #pod #pod Given a template, returns a filehandle to the temporary file and the name #pod of the file. #pod #pod ($fh, $name) = mkstemp( $template ); #pod #pod In scalar context, just the filehandle is returned. #pod #pod The template may be any filename with some number of X's appended #pod to it, for example F. The trailing X's are replaced #pod with unique alphanumeric combinations. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut sub mkstemp { croak "Usage: mkstemp(template)" if scalar(@_) != 1; my $template = shift; my ($fh, $path, $errstr); croak "Error in mkstemp using $template: $errstr" unless (($fh, $path) = _gettemp($template, "open" => 1, "mkdir"=> 0 , "suffixlen" => 0, "ErrStr" => \$errstr, ) ); if (wantarray()) { return ($fh, $path); } else { return $fh; } } #pod =item B #pod #pod Similar to mkstemp(), except that an extra argument can be supplied #pod with a suffix to be appended to the template. #pod #pod ($fh, $name) = mkstemps( $template, $suffix ); #pod #pod For example a template of C and suffix of C<.dat> #pod would generate a file similar to F. #pod #pod Returns just the filehandle alone when called in scalar context. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut sub mkstemps { croak "Usage: mkstemps(template, suffix)" if scalar(@_) != 2; my $template = shift; my $suffix = shift; $template .= $suffix; my ($fh, $path, $errstr); croak "Error in mkstemps using $template: $errstr" unless (($fh, $path) = _gettemp($template, "open" => 1, "mkdir"=> 0 , "suffixlen" => length($suffix), "ErrStr" => \$errstr, ) ); if (wantarray()) { return ($fh, $path); } else { return $fh; } } #pod =item B #pod #pod Create a directory from a template. The template must end in #pod X's that are replaced by the routine. #pod #pod $tmpdir_name = mkdtemp($template); #pod #pod Returns the name of the temporary directory created. #pod #pod Directory must be removed by the caller. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut #' # for emacs sub mkdtemp { croak "Usage: mkdtemp(template)" if scalar(@_) != 1; my $template = shift; my $suffixlen = 0; if ($^O eq 'VMS') { # dir names can end in delimiters $template =~ m/([\.\]:>]+)$/; $suffixlen = length($1); } if ( ($^O eq 'MacOS') && (substr($template, -1) eq ':') ) { # dir name has a trailing ':' ++$suffixlen; } my ($junk, $tmpdir, $errstr); croak "Error creating temp directory from template $template\: $errstr" unless (($junk, $tmpdir) = _gettemp($template, "open" => 0, "mkdir"=> 1 , "suffixlen" => $suffixlen, "ErrStr" => \$errstr, ) ); return $tmpdir; } #pod =item B #pod #pod Returns a valid temporary filename but does not guarantee #pod that the file will not be opened by someone else. #pod #pod $unopened_file = mktemp($template); #pod #pod Template is the same as that required by mkstemp(). #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut sub mktemp { croak "Usage: mktemp(template)" if scalar(@_) != 1; my $template = shift; my ($tmpname, $junk, $errstr); croak "Error getting name to temp file from template $template: $errstr" unless (($junk, $tmpname) = _gettemp($template, "open" => 0, "mkdir"=> 0 , "suffixlen" => 0, "ErrStr" => \$errstr, ) ); return $tmpname; } #pod =back #pod #pod =head1 POSIX FUNCTIONS #pod #pod This section describes the re-implementation of the tmpnam() #pod and tmpfile() functions described in L #pod using the mkstemp() from this module. #pod #pod Unlike the L implementations, the directory used #pod for the temporary file is not specified in a system include #pod file (C) but simply depends on the choice of tmpdir() #pod returned by L. On some implementations this #pod location can be set using the C environment variable, which #pod may not be secure. #pod If this is a problem, simply use mkstemp() and specify a template. #pod #pod =over 4 #pod #pod =item B #pod #pod When called in scalar context, returns the full name (including path) #pod of a temporary file (uses mktemp()). The only check is that the file does #pod not already exist, but there is no guarantee that that condition will #pod continue to apply. #pod #pod $file = tmpnam(); #pod #pod When called in list context, a filehandle to the open file and #pod a filename are returned. This is achieved by calling mkstemp() #pod after constructing a suitable template. #pod #pod ($fh, $file) = tmpnam(); #pod #pod If possible, this form should be used to prevent possible #pod race conditions. #pod #pod See L for information on the choice of temporary #pod directory for a particular operating system. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut sub tmpnam { # Retrieve the temporary directory name my $tmpdir = _wrap_file_spec_tmpdir(); # XXX I don't know under what circumstances this occurs, -- xdg 2016-04-02 croak "Error temporary directory is not writable" if $tmpdir eq ''; # Use a ten character template and append to tmpdir my $template = File::Spec->catfile($tmpdir, TEMPXXX); if (wantarray() ) { return mkstemp($template); } else { return mktemp($template); } } #pod =item B #pod #pod Returns the filehandle of a temporary file. #pod #pod $fh = tmpfile(); #pod #pod The file is removed when the filehandle is closed or when the program #pod exits. No access to the filename is provided. #pod #pod If the temporary file can not be created undef is returned. #pod Currently this command will probably not work when the temporary #pod directory is on an NFS file system. #pod #pod Will croak() if there is an error. #pod #pod Available since 0.05. #pod #pod Returning undef if unable to create file added in 0.12. #pod #pod =cut sub tmpfile { # Simply call tmpnam() in a list context my ($fh, $file) = tmpnam(); # Make sure file is removed when filehandle is closed # This will fail on NFS unlink0($fh, $file) or return undef; return $fh; } #pod =back #pod #pod =head1 ADDITIONAL FUNCTIONS #pod #pod These functions are provided for backwards compatibility #pod with common tempfile generation C library functions. #pod #pod They are not exported and must be addressed using the full package #pod name. #pod #pod =over 4 #pod #pod =item B #pod #pod Return the name of a temporary file in the specified directory #pod using a prefix. The file is guaranteed not to exist at the time #pod the function was called, but such guarantees are good for one #pod clock tick only. Always use the proper form of C #pod with C if you must open such a filename. #pod #pod $filename = File::Temp::tempnam( $dir, $prefix ); #pod #pod Equivalent to running mktemp() with $dir/$prefixXXXXXXXX #pod (using unix file convention as an example) #pod #pod Because this function uses mktemp(), it can suffer from race conditions. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut sub tempnam { croak 'Usage tempnam($dir, $prefix)' unless scalar(@_) == 2; my ($dir, $prefix) = @_; # Add a string to the prefix $prefix .= 'XXXXXXXX'; # Concatenate the directory to the file my $template = File::Spec->catfile($dir, $prefix); return mktemp($template); } #pod =back #pod #pod =head1 UTILITY FUNCTIONS #pod #pod Useful functions for dealing with the filehandle and filename. #pod #pod =over 4 #pod #pod =item B #pod #pod Given an open filehandle and the associated filename, make a safe #pod unlink. This is achieved by first checking that the filename and #pod filehandle initially point to the same file and that the number of #pod links to the file is 1 (all fields returned by stat() are compared). #pod Then the filename is unlinked and the filehandle checked once again to #pod verify that the number of links on that file is now 0. This is the #pod closest you can come to making sure that the filename unlinked was the #pod same as the file whose descriptor you hold. #pod #pod unlink0($fh, $path) #pod or die "Error unlinking file $path safely"; #pod #pod Returns false on error but croaks() if there is a security #pod anomaly. The filehandle is not closed since on some occasions this is #pod not required. #pod #pod On some platforms, for example Windows NT, it is not possible to #pod unlink an open file (the file must be closed first). On those #pod platforms, the actual unlinking is deferred until the program ends and #pod good status is returned. A check is still performed to make sure that #pod the filehandle and filename are pointing to the same thing (but not at #pod the time the end block is executed since the deferred removal may not #pod have access to the filehandle). #pod #pod Additionally, on Windows NT not all the fields returned by stat() can #pod be compared. For example, the C and C fields seem to be #pod different. Also, it seems that the size of the file returned by stat() #pod does not always agree, with C being more accurate than #pod C, presumably because of caching issues even when #pod using autoflush (this is usually overcome by waiting a while after #pod writing to the tempfile before attempting to C it). #pod #pod Finally, on NFS file systems the link count of the file handle does #pod not always go to zero immediately after unlinking. Currently, this #pod command is expected to fail on NFS disks. #pod #pod This function is disabled if the global variable $KEEP_ALL is true #pod and an unlink on open file is supported. If the unlink is to be deferred #pod to the END block, the file is still registered for removal. #pod #pod This function should not be called if you are using the object oriented #pod interface since the it will interfere with the object destructor deleting #pod the file. #pod #pod Available Since 0.05. #pod #pod If can not unlink open file, defer removal until later available since 0.06. #pod #pod =cut sub unlink0 { croak 'Usage: unlink0(filehandle, filename)' unless scalar(@_) == 2; # Read args my ($fh, $path) = @_; cmpstat($fh, $path) or return 0; # attempt remove the file (does not work on some platforms) if (_can_unlink_opened_file()) { # return early (Without unlink) if we have been instructed to retain files. return 1 if $KEEP_ALL; # XXX: do *not* call this on a directory; possible race # resulting in recursive removal croak "unlink0: $path has become a directory!" if -d $path; unlink($path) or return 0; # Stat the filehandle my @fh = stat $fh; print "Link count = $fh[3] \n" if $DEBUG; # Make sure that the link count is zero # - Cygwin provides deferred unlinking, however, # on Win9x the link count remains 1 # On NFS the link count may still be 1 but we can't know that # we are on NFS. Since we can't be sure, we'll defer it return 1 if $fh[3] == 0 || $^O eq 'cygwin'; } # fall-through if we can't unlink now _deferred_unlink($fh, $path, 0); return 1; } #pod =item B #pod #pod Compare C of filehandle with C of provided filename. This #pod can be used to check that the filename and filehandle initially point #pod to the same file and that the number of links to the file is 1 (all #pod fields returned by stat() are compared). #pod #pod cmpstat($fh, $path) #pod or die "Error comparing handle with file"; #pod #pod Returns false if the stat information differs or if the link count is #pod greater than 1. Calls croak if there is a security anomaly. #pod #pod On certain platforms, for example Windows, not all the fields returned by stat() #pod can be compared. For example, the C and C fields seem to be #pod different in Windows. Also, it seems that the size of the file #pod returned by stat() does not always agree, with C being more #pod accurate than C, presumably because of caching issues #pod even when using autoflush (this is usually overcome by waiting a while #pod after writing to the tempfile before attempting to C it). #pod #pod Not exported by default. #pod #pod Current API available since 0.14. #pod #pod =cut sub cmpstat { croak 'Usage: cmpstat(filehandle, filename)' unless scalar(@_) == 2; # Read args my ($fh, $path) = @_; warn "Comparing stat\n" if $DEBUG; # Stat the filehandle - which may be closed if someone has manually # closed the file. Can not turn off warnings without using $^W # unless we upgrade to 5.006 minimum requirement my @fh; { local ($^W) = 0; @fh = stat $fh; } return unless @fh; if ($fh[3] > 1 && $^W) { carp "unlink0: fstat found too many links; SB=@fh" if $^W; } # Stat the path my @path = stat $path; unless (@path) { carp "unlink0: $path is gone already" if $^W; return; } # this is no longer a file, but may be a directory, or worse unless (-f $path) { confess "panic: $path is no longer a file: SB=@fh"; } # Do comparison of each member of the array # On WinNT dev and rdev seem to be different # depending on whether it is a file or a handle. # Cannot simply compare all members of the stat return # Select the ones we can use my @okstat = (0..$#fh); # Use all by default if ($^O eq 'MSWin32') { @okstat = (1,2,3,4,5,7,8,9,10); } elsif ($^O eq 'os2') { @okstat = (0, 2..$#fh); } elsif ($^O eq 'VMS') { # device and file ID are sufficient @okstat = (0, 1); } elsif ($^O eq 'dos') { @okstat = (0,2..7,11..$#fh); } elsif ($^O eq 'mpeix') { @okstat = (0..4,8..10); } # Now compare each entry explicitly by number for (@okstat) { print "Comparing: $_ : $fh[$_] and $path[$_]\n" if $DEBUG; # Use eq rather than == since rdev, blksize, and blocks (6, 11, # and 12) will be '' on platforms that do not support them. This # is fine since we are only comparing integers. unless ($fh[$_] eq $path[$_]) { warn "Did not match $_ element of stat\n" if $DEBUG; return 0; } } return 1; } #pod =item B #pod #pod Similar to C except after file comparison using cmpstat, the #pod filehandle is closed prior to attempting to unlink the file. This #pod allows the file to be removed without using an END block, but does #pod mean that the post-unlink comparison of the filehandle state provided #pod by C is not available. #pod #pod unlink1($fh, $path) #pod or die "Error closing and unlinking file"; #pod #pod Usually called from the object destructor when using the OO interface. #pod #pod Not exported by default. #pod #pod This function is disabled if the global variable $KEEP_ALL is true. #pod #pod Can call croak() if there is a security anomaly during the stat() #pod comparison. #pod #pod Current API available since 0.14. #pod #pod =cut sub unlink1 { croak 'Usage: unlink1(filehandle, filename)' unless scalar(@_) == 2; # Read args my ($fh, $path) = @_; cmpstat($fh, $path) or return 0; # Close the file close( $fh ) or return 0; # Make sure the file is writable (for windows) _force_writable( $path ); # return early (without unlink) if we have been instructed to retain files. return 1 if $KEEP_ALL; # remove the file return unlink($path); } #pod =item B #pod #pod Calling this function will cause any temp files or temp directories #pod that are registered for removal to be removed. This happens automatically #pod when the process exits but can be triggered manually if the caller is sure #pod that none of the temp files are required. This method can be registered as #pod an Apache callback. #pod #pod Note that if a temp directory is your current directory, it cannot be #pod removed. C out of the directory first before calling #pod C. (For the cleanup at program exit when the CLEANUP flag #pod is set, this happens automatically.) #pod #pod On OSes where temp files are automatically removed when the temp file #pod is closed, calling this function will have no effect other than to remove #pod temporary directories (which may include temporary files). #pod #pod File::Temp::cleanup(); #pod #pod Not exported by default. #pod #pod Current API available since 0.15. #pod #pod =back #pod #pod =head1 PACKAGE VARIABLES #pod #pod These functions control the global state of the package. #pod #pod =over 4 #pod #pod =item B #pod #pod Controls the lengths to which the module will go to check the safety of the #pod temporary file or directory before proceeding. #pod Options are: #pod #pod =over 8 #pod #pod =item STANDARD #pod #pod Do the basic security measures to ensure the directory exists and is #pod writable, that temporary files are opened only if they do not already #pod exist, and that possible race conditions are avoided. Finally the #pod L function is used to remove files safely. #pod #pod =item MEDIUM #pod #pod In addition to the STANDARD security, the output directory is checked #pod to make sure that it is owned either by root or the user running the #pod program. If the directory is writable by group or by other, it is then #pod checked to make sure that the sticky bit is set. #pod #pod Will not work on platforms that do not support the C<-k> test #pod for sticky bit. #pod #pod =item HIGH #pod #pod In addition to the MEDIUM security checks, also check for the #pod possibility of ``chown() giveaway'' using the L #pod sysconf() function. If this is a possibility, each directory in the #pod path is checked in turn for safeness, recursively walking back to the #pod root directory. #pod #pod For platforms that do not support the L #pod C<_PC_CHOWN_RESTRICTED> symbol (for example, Windows NT) it is #pod assumed that ``chown() giveaway'' is possible and the recursive test #pod is performed. #pod #pod =back #pod #pod The level can be changed as follows: #pod #pod File::Temp->safe_level( File::Temp::HIGH ); #pod #pod The level constants are not exported by the module. #pod #pod Currently, you must be running at least perl v5.6.0 in order to #pod run with MEDIUM or HIGH security. This is simply because the #pod safety tests use functions from L that are not #pod available in older versions of perl. The problem is that the version #pod number for Fcntl is the same in perl 5.6.0 and in 5.005_03 even though #pod they are different versions. #pod #pod On systems that do not support the HIGH or MEDIUM safety levels #pod (for example Win NT or OS/2) any attempt to change the level will #pod be ignored. The decision to ignore rather than raise an exception #pod allows portable programs to be written with high security in mind #pod for the systems that can support this without those programs failing #pod on systems where the extra tests are irrelevant. #pod #pod If you really need to see whether the change has been accepted #pod simply examine the return value of C. #pod #pod $newlevel = File::Temp->safe_level( File::Temp::HIGH ); #pod die "Could not change to high security" #pod if $newlevel != File::Temp::HIGH; #pod #pod Available since 0.05. #pod #pod =cut { # protect from using the variable itself my $LEVEL = STANDARD; sub safe_level { my $self = shift; if (@_) { my $level = shift; if (($level != STANDARD) && ($level != MEDIUM) && ($level != HIGH)) { carp "safe_level: Specified level ($level) not STANDARD, MEDIUM or HIGH - ignoring\n" if $^W; } else { # Don't allow this on perl 5.005 or earlier if ($] < 5.006 && $level != STANDARD) { # Cant do MEDIUM or HIGH checks croak "Currently requires perl 5.006 or newer to do the safe checks"; } # Check that we are allowed to change level # Silently ignore if we can not. $LEVEL = $level if _can_do_level($level); } } return $LEVEL; } } #pod =item TopSystemUID #pod #pod This is the highest UID on the current system that refers to a root #pod UID. This is used to make sure that the temporary directory is #pod owned by a system UID (C, C, C etc) rather than #pod simply by root. #pod #pod This is required since on many unix systems C is not owned #pod by root. #pod #pod Default is to assume that any UID less than or equal to 10 is a root #pod UID. #pod #pod File::Temp->top_system_uid(10); #pod my $topid = File::Temp->top_system_uid; #pod #pod This value can be adjusted to reduce security checking if required. #pod The value is only relevant when C is set to MEDIUM or higher. #pod #pod Available since 0.05. #pod #pod =cut { my $TopSystemUID = 10; $TopSystemUID = 197108 if $^O eq 'interix'; # "Administrator" sub top_system_uid { my $self = shift; if (@_) { my $newuid = shift; croak "top_system_uid: UIDs should be numeric" unless $newuid =~ /^\d+$/s; $TopSystemUID = $newuid; } return $TopSystemUID; } } #pod =item B<$KEEP_ALL> #pod #pod Controls whether temporary files and directories should be retained #pod regardless of any instructions in the program to remove them #pod automatically. This is useful for debugging but should not be used in #pod production code. #pod #pod $File::Temp::KEEP_ALL = 1; #pod #pod Default is for files to be removed as requested by the caller. #pod #pod In some cases, files will only be retained if this variable is true #pod when the file is created. This means that you can not create a temporary #pod file, set this variable and expect the temp file to still be around #pod when the program exits. #pod #pod =item B<$DEBUG> #pod #pod Controls whether debugging messages should be enabled. #pod #pod $File::Temp::DEBUG = 1; #pod #pod Default is for debugging mode to be disabled. #pod #pod Available since 0.15. #pod #pod =back #pod #pod =head1 WARNING #pod #pod For maximum security, endeavour always to avoid ever looking at, #pod touching, or even imputing the existence of the filename. You do not #pod know that that filename is connected to the same file as the handle #pod you have, and attempts to check this can only trigger more race #pod conditions. It's far more secure to use the filehandle alone and #pod dispense with the filename altogether. #pod #pod If you need to pass the handle to something that expects a filename #pod then on a unix system you can use C<"/dev/fd/" . fileno($fh)> for #pod arbitrary programs. Perl code that uses the 2-argument version of #pod C<< open >> can be passed C<< "+<=&" . fileno($fh) >>. Otherwise you #pod will need to pass the filename. You will have to clear the #pod close-on-exec bit on that file descriptor before passing it to another #pod process. #pod #pod use Fcntl qw/F_SETFD F_GETFD/; #pod fcntl($tmpfh, F_SETFD, 0) #pod or die "Can't clear close-on-exec flag on temp fh: $!\n"; #pod #pod =head2 Temporary files and NFS #pod #pod Some problems are associated with using temporary files that reside #pod on NFS file systems and it is recommended that a local filesystem #pod is used whenever possible. Some of the security tests will most probably #pod fail when the temp file is not local. Additionally, be aware that #pod the performance of I/O operations over NFS will not be as good as for #pod a local disk. #pod #pod =head2 Forking #pod #pod In some cases files created by File::Temp are removed from within an #pod END block. Since END blocks are triggered when a child process exits #pod (unless C is used by the child) File::Temp takes care #pod to only remove those temp files created by a particular process ID. This #pod means that a child will not attempt to remove temp files created by the #pod parent process. #pod #pod If you are forking many processes in parallel that are all creating #pod temporary files, you may need to reset the random number seed using #pod srand(EXPR) in each child else all the children will attempt to walk #pod through the same set of random file names and may well cause #pod themselves to give up if they exceed the number of retry attempts. #pod #pod =head2 Directory removal #pod #pod Note that if you have chdir'ed into the temporary directory and it is #pod subsequently cleaned up (either in the END block or as part of object #pod destruction), then you will get a warning from File::Path::rmtree(). #pod #pod =head2 Taint mode #pod #pod If you need to run code under taint mode, updating to the latest #pod L is highly recommended. On Windows, if the directory #pod given by L isn't writable, File::Temp will attempt #pod to fallback to the user's local application data directory or croak #pod with an error. #pod #pod =head2 BINMODE #pod #pod The file returned by File::Temp will have been opened in binary mode #pod if such a mode is available. If that is not correct, use the C #pod function to change the mode of the filehandle. #pod #pod Note that you can modify the encoding of a file opened by File::Temp #pod also by using C. #pod #pod =head1 HISTORY #pod #pod Originally began life in May 1999 as an XS interface to the system #pod mkstemp() function. In March 2000, the OpenBSD mkstemp() code was #pod translated to Perl for total control of the code's #pod security checking, to ensure the presence of the function regardless of #pod operating system and to help with portability. The module was shipped #pod as a standard part of perl from v5.6.1. #pod #pod Thanks to Tom Christiansen for suggesting that this module #pod should be written and providing ideas for code improvements and #pod security enhancements. #pod #pod =head1 SEE ALSO #pod #pod L, L, L, L #pod #pod See L and L, L for #pod different implementations of temporary file handling. #pod #pod See L for an alternative object-oriented wrapper for #pod the C function. #pod #pod =cut package ## hide from PAUSE File::Temp::Dir; our $VERSION = '0.2311'; use File::Path qw/ rmtree /; use strict; use overload '""' => "STRINGIFY", '0+' => \&File::Temp::NUMIFY, fallback => 1; # private class specifically to support tempdir objects # created by File::Temp->newdir # ostensibly the same method interface as File::Temp but without # inheriting all the IO::Seekable methods and other cruft # Read-only - returns the name of the temp directory sub dirname { my $self = shift; return $self->{DIRNAME}; } sub STRINGIFY { my $self = shift; return $self->dirname; } sub unlink_on_destroy { my $self = shift; if (@_) { $self->{CLEANUP} = shift; } return $self->{CLEANUP}; } sub DESTROY { my $self = shift; local($., $@, $!, $^E, $?); if ($self->unlink_on_destroy && $$ == $self->{LAUNCHPID} && !$File::Temp::KEEP_ALL) { if (-d $self->{REALNAME}) { # Some versions of rmtree will abort if you attempt to remove # the directory you are sitting in. We protect that and turn it # into a warning. We do this because this occurs during object # destruction and so can not be caught by the user. eval { rmtree($self->{REALNAME}, $File::Temp::DEBUG, 0); }; warn $@ if ($@ && $^W); } } } 1; # vim: ts=2 sts=2 sw=2 et: __END__ =pod =encoding UTF-8 =head1 NAME File::Temp - return name and handle of a temporary file safely =head1 VERSION version 0.2311 =head1 SYNOPSIS use File::Temp qw/ tempfile tempdir /; $fh = tempfile(); ($fh, $filename) = tempfile(); ($fh, $filename) = tempfile( $template, DIR => $dir); ($fh, $filename) = tempfile( $template, SUFFIX => '.dat'); ($fh, $filename) = tempfile( $template, TMPDIR => 1 ); binmode( $fh, ":utf8" ); $dir = tempdir( CLEANUP => 1 ); ($fh, $filename) = tempfile( DIR => $dir ); Object interface: require File::Temp; use File::Temp (); use File::Temp qw/ :seekable /; $fh = File::Temp->new(); $fname = $fh->filename; $fh = File::Temp->new(TEMPLATE => $template); $fname = $fh->filename; $tmp = File::Temp->new( UNLINK => 0, SUFFIX => '.dat' ); print $tmp "Some data\n"; print "Filename is $tmp\n"; $tmp->seek( 0, SEEK_END ); $dir = File::Temp->newdir(); # CLEANUP => 1 by default The following interfaces are provided for compatibility with existing APIs. They should not be used in new code. MkTemp family: use File::Temp qw/ :mktemp /; ($fh, $file) = mkstemp( "tmpfileXXXXX" ); ($fh, $file) = mkstemps( "tmpfileXXXXXX", $suffix); $tmpdir = mkdtemp( $template ); $unopened_file = mktemp( $template ); POSIX functions: use File::Temp qw/ :POSIX /; $file = tmpnam(); $fh = tmpfile(); ($fh, $file) = tmpnam(); Compatibility functions: $unopened_file = File::Temp::tempnam( $dir, $pfx ); =head1 DESCRIPTION C can be used to create and open temporary files in a safe way. There is both a function interface and an object-oriented interface. The File::Temp constructor or the tempfile() function can be used to return the name and the open filehandle of a temporary file. The tempdir() function can be used to create a temporary directory. The security aspect of temporary file creation is emphasized such that a filehandle and filename are returned together. This helps guarantee that a race condition can not occur where the temporary file is created by another process between checking for the existence of the file and its opening. Additional security levels are provided to check, for example, that the sticky bit is set on world writable directories. See L<"safe_level"> for more information. For compatibility with popular C library functions, Perl implementations of the mkstemp() family of functions are provided. These are, mkstemp(), mkstemps(), mkdtemp() and mktemp(). Additionally, implementations of the standard L tmpnam() and tmpfile() functions are provided if required. Implementations of mktemp(), tmpnam(), and tempnam() are provided, but should be used with caution since they return only a filename that was valid when function was called, so cannot guarantee that the file will not exist by the time the caller opens the filename. Filehandles returned by these functions support the seekable methods. =begin :__INTERNALS =head1 PORTABILITY This section is at the top in order to provide easier access to porters. It is not expected to be rendered by a standard pod formatting tool. Please skip straight to the SYNOPSIS section if you are not trying to port this module to a new platform. This module is designed to be portable across operating systems and it currently supports Unix, VMS, DOS, OS/2, Windows and Mac OS (Classic). When porting to a new OS there are generally three main issues that have to be solved: =over 4 =item * Can the OS unlink an open file? If it can not then the C<_can_unlink_opened_file> method should be modified. =item * Are the return values from C reliable? By default all the return values from C are compared when unlinking a temporary file using the filename and the handle. Operating systems other than unix do not always have valid entries in all fields. If utility function C fails then the C comparison should be modified accordingly. =item * Security. Systems that can not support a test for the sticky bit on a directory can not use the MEDIUM and HIGH security tests. The C<_can_do_level> method should be modified accordingly. =back =end :__INTERNALS =head1 OBJECT-ORIENTED INTERFACE This is the primary interface for interacting with C. Using the OO interface a temporary file can be created when the object is constructed and the file can be removed when the object is no longer required. Note that there is no method to obtain the filehandle from the C object. The object itself acts as a filehandle. The object isa C and isa C so all those methods are available. Also, the object is configured such that it stringifies to the name of the temporary file and so can be compared to a filename directly. It numifies to the C the same as other handles and so can be compared to other handles with C<==>. $fh eq $filename # as a string $fh != \*STDOUT # as a number Available since 0.14. =over 4 =item B Create a temporary file object. my $tmp = File::Temp->new(); by default the object is constructed as if C was called without options, but with the additional behaviour that the temporary file is removed by the object destructor if UNLINK is set to true (the default). Supported arguments are the same as for C: UNLINK (defaulting to true), DIR, EXLOCK, PERMS and SUFFIX. Additionally, the filename template is specified using the TEMPLATE option. The OPEN option is not supported (the file is always opened). $tmp = File::Temp->new( TEMPLATE => 'tempXXXXX', DIR => 'mydir', SUFFIX => '.dat'); Arguments are case insensitive. Can call croak() if an error occurs. Available since 0.14. TEMPLATE available since 0.23 =item B Create a temporary directory using an object oriented interface. $dir = File::Temp->newdir(); By default the directory is deleted when the object goes out of scope. Supports the same options as the C function. Note that directories created with this method default to CLEANUP => 1. $dir = File::Temp->newdir( $template, %options ); A template may be specified either with a leading template or with a TEMPLATE argument. Available since 0.19. TEMPLATE available since 0.23. =item B Return the name of the temporary file associated with this object (if the object was created using the "new" constructor). $filename = $tmp->filename; This method is called automatically when the object is used as a string. Current API available since 0.14 =item B Return the name of the temporary directory associated with this object (if the object was created using the "newdir" constructor). $dirname = $tmpdir->dirname; This method is called automatically when the object is used in string context. =item B Control whether the file is unlinked when the object goes out of scope. The file is removed if this value is true and $KEEP_ALL is not. $fh->unlink_on_destroy( 1 ); Default is for the file to be removed. Current API available since 0.15 =item B When the object goes out of scope, the destructor is called. This destructor will attempt to unlink the file (using L) if the constructor was called with UNLINK set to 1 (the default state if UNLINK is not specified). No error is given if the unlink fails. If the object has been passed to a child process during a fork, the file will be deleted when the object goes out of scope in the parent. For a temporary directory object the directory will be removed unless the CLEANUP argument was used in the constructor (and set to false) or C was modified after creation. Note that if a temp directory is your current directory, it cannot be removed - a warning will be given in this case. C out of the directory before letting the object go out of scope. If the global variable $KEEP_ALL is true, the file or directory will not be removed. =back =head1 FUNCTIONS This section describes the recommended interface for generating temporary files and directories. =over 4 =item B This is the basic function to generate temporary files. The behaviour of the file can be changed using various options: $fh = tempfile(); ($fh, $filename) = tempfile(); Create a temporary file in the directory specified for temporary files, as specified by the tmpdir() function in L. ($fh, $filename) = tempfile($template); Create a temporary file in the current directory using the supplied template. Trailing `X' characters are replaced with random letters to generate the filename. At least four `X' characters must be present at the end of the template. ($fh, $filename) = tempfile($template, SUFFIX => $suffix) Same as previously, except that a suffix is added to the template after the `X' translation. Useful for ensuring that a temporary filename has a particular extension when needed by other applications. But see the WARNING at the end. ($fh, $filename) = tempfile($template, DIR => $dir); Translates the template as before except that a directory name is specified. ($fh, $filename) = tempfile($template, TMPDIR => 1); Equivalent to specifying a DIR of "File::Spec->tmpdir", writing the file into the same temporary directory as would be used if no template was specified at all. ($fh, $filename) = tempfile($template, UNLINK => 1); Return the filename and filehandle as before except that the file is automatically removed when the program exits (dependent on $KEEP_ALL). Default is for the file to be removed if a file handle is requested and to be kept if the filename is requested. In a scalar context (where no filename is returned) the file is always deleted either (depending on the operating system) on exit or when it is closed (unless $KEEP_ALL is true when the temp file is created). Use the object-oriented interface if fine-grained control of when a file is removed is required. If the template is not specified, a template is always automatically generated. This temporary file is placed in tmpdir() (L) unless a directory is specified explicitly with the DIR option. $fh = tempfile( DIR => $dir ); If called in scalar context, only the filehandle is returned and the file will automatically be deleted when closed on operating systems that support this (see the description of tmpfile() elsewhere in this document). This is the preferred mode of operation, as if you only have a filehandle, you can never create a race condition by fumbling with the filename. On systems that can not unlink an open file or can not mark a file as temporary when it is opened (for example, Windows NT uses the C flag) the file is marked for deletion when the program ends (equivalent to setting UNLINK to 1). The C flag is ignored if present. (undef, $filename) = tempfile($template, OPEN => 0); This will return the filename based on the template but will not open this file. Cannot be used in conjunction with UNLINK set to true. Default is to always open the file to protect from possible race conditions. A warning is issued if warnings are turned on. Consider using the tmpnam() and mktemp() functions described elsewhere in this document if opening the file is not required. To open the temporary filehandle with O_EXLOCK (open with exclusive file lock) use C<< EXLOCK=>1 >>. This is supported only by some operating systems (most notably BSD derived systems). By default EXLOCK will be false. Former C versions set EXLOCK to true, so to be sure to get an unlocked filehandle also with older versions, explicitly set C<< EXLOCK=>0 >>. ($fh, $filename) = tempfile($template, EXLOCK => 1); By default, the temp file is created with 0600 file permissions. Use C to change this: ($fh, $filename) = tempfile($template, PERMS => 0666); Options can be combined as required. Will croak() if there is an error. Available since 0.05. UNLINK flag available since 0.10. TMPDIR flag available since 0.19. EXLOCK flag available since 0.19. PERMS flag available since 0.2310. =item B This is the recommended interface for creation of temporary directories. By default the directory will not be removed on exit (that is, it won't be temporary; this behaviour can not be changed because of issues with backwards compatibility). To enable removal either use the CLEANUP option which will trigger removal on program exit, or consider using the "newdir" method in the object interface which will allow the directory to be cleaned up when the object goes out of scope. The behaviour of the function depends on the arguments: $tempdir = tempdir(); Create a directory in tmpdir() (see L). $tempdir = tempdir( $template ); Create a directory from the supplied template. This template is similar to that described for tempfile(). `X' characters at the end of the template are replaced with random letters to construct the directory name. At least four `X' characters must be in the template. $tempdir = tempdir ( DIR => $dir ); Specifies the directory to use for the temporary directory. The temporary directory name is derived from an internal template. $tempdir = tempdir ( $template, DIR => $dir ); Prepend the supplied directory name to the template. The template should not include parent directory specifications itself. Any parent directory specifications are removed from the template before prepending the supplied directory. $tempdir = tempdir ( $template, TMPDIR => 1 ); Using the supplied template, create the temporary directory in a standard location for temporary files. Equivalent to doing $tempdir = tempdir ( $template, DIR => File::Spec->tmpdir); but shorter. Parent directory specifications are stripped from the template itself. The C option is ignored if C is set explicitly. Additionally, C is implied if neither a template nor a directory are supplied. $tempdir = tempdir( $template, CLEANUP => 1); Create a temporary directory using the supplied template, but attempt to remove it (and all files inside it) when the program exits. Note that an attempt will be made to remove all files from the directory even if they were not created by this module (otherwise why ask to clean it up?). The directory removal is made with the rmtree() function from the L module. Of course, if the template is not specified, the temporary directory will be created in tmpdir() and will also be removed at program exit. Will croak() if there is an error. Current API available since 0.05. =back =head1 MKTEMP FUNCTIONS The following functions are Perl implementations of the mktemp() family of temp file generation system calls. =over 4 =item B Given a template, returns a filehandle to the temporary file and the name of the file. ($fh, $name) = mkstemp( $template ); In scalar context, just the filehandle is returned. The template may be any filename with some number of X's appended to it, for example F. The trailing X's are replaced with unique alphanumeric combinations. Will croak() if there is an error. Current API available since 0.05. =item B Similar to mkstemp(), except that an extra argument can be supplied with a suffix to be appended to the template. ($fh, $name) = mkstemps( $template, $suffix ); For example a template of C and suffix of C<.dat> would generate a file similar to F. Returns just the filehandle alone when called in scalar context. Will croak() if there is an error. Current API available since 0.05. =item B Create a directory from a template. The template must end in X's that are replaced by the routine. $tmpdir_name = mkdtemp($template); Returns the name of the temporary directory created. Directory must be removed by the caller. Will croak() if there is an error. Current API available since 0.05. =item B Returns a valid temporary filename but does not guarantee that the file will not be opened by someone else. $unopened_file = mktemp($template); Template is the same as that required by mkstemp(). Will croak() if there is an error. Current API available since 0.05. =back =head1 POSIX FUNCTIONS This section describes the re-implementation of the tmpnam() and tmpfile() functions described in L using the mkstemp() from this module. Unlike the L implementations, the directory used for the temporary file is not specified in a system include file (C) but simply depends on the choice of tmpdir() returned by L. On some implementations this location can be set using the C environment variable, which may not be secure. If this is a problem, simply use mkstemp() and specify a template. =over 4 =item B When called in scalar context, returns the full name (including path) of a temporary file (uses mktemp()). The only check is that the file does not already exist, but there is no guarantee that that condition will continue to apply. $file = tmpnam(); When called in list context, a filehandle to the open file and a filename are returned. This is achieved by calling mkstemp() after constructing a suitable template. ($fh, $file) = tmpnam(); If possible, this form should be used to prevent possible race conditions. See L for information on the choice of temporary directory for a particular operating system. Will croak() if there is an error. Current API available since 0.05. =item B Returns the filehandle of a temporary file. $fh = tmpfile(); The file is removed when the filehandle is closed or when the program exits. No access to the filename is provided. If the temporary file can not be created undef is returned. Currently this command will probably not work when the temporary directory is on an NFS file system. Will croak() if there is an error. Available since 0.05. Returning undef if unable to create file added in 0.12. =back =head1 ADDITIONAL FUNCTIONS These functions are provided for backwards compatibility with common tempfile generation C library functions. They are not exported and must be addressed using the full package name. =over 4 =item B Return the name of a temporary file in the specified directory using a prefix. The file is guaranteed not to exist at the time the function was called, but such guarantees are good for one clock tick only. Always use the proper form of C with C if you must open such a filename. $filename = File::Temp::tempnam( $dir, $prefix ); Equivalent to running mktemp() with $dir/$prefixXXXXXXXX (using unix file convention as an example) Because this function uses mktemp(), it can suffer from race conditions. Will croak() if there is an error. Current API available since 0.05. =back =head1 UTILITY FUNCTIONS Useful functions for dealing with the filehandle and filename. =over 4 =item B Given an open filehandle and the associated filename, make a safe unlink. This is achieved by first checking that the filename and filehandle initially point to the same file and that the number of links to the file is 1 (all fields returned by stat() are compared). Then the filename is unlinked and the filehandle checked once again to verify that the number of links on that file is now 0. This is the closest you can come to making sure that the filename unlinked was the same as the file whose descriptor you hold. unlink0($fh, $path) or die "Error unlinking file $path safely"; Returns false on error but croaks() if there is a security anomaly. The filehandle is not closed since on some occasions this is not required. On some platforms, for example Windows NT, it is not possible to unlink an open file (the file must be closed first). On those platforms, the actual unlinking is deferred until the program ends and good status is returned. A check is still performed to make sure that the filehandle and filename are pointing to the same thing (but not at the time the end block is executed since the deferred removal may not have access to the filehandle). Additionally, on Windows NT not all the fields returned by stat() can be compared. For example, the C and C fields seem to be different. Also, it seems that the size of the file returned by stat() does not always agree, with C being more accurate than C, presumably because of caching issues even when using autoflush (this is usually overcome by waiting a while after writing to the tempfile before attempting to C it). Finally, on NFS file systems the link count of the file handle does not always go to zero immediately after unlinking. Currently, this command is expected to fail on NFS disks. This function is disabled if the global variable $KEEP_ALL is true and an unlink on open file is supported. If the unlink is to be deferred to the END block, the file is still registered for removal. This function should not be called if you are using the object oriented interface since the it will interfere with the object destructor deleting the file. Available Since 0.05. If can not unlink open file, defer removal until later available since 0.06. =item B Compare C of filehandle with C of provided filename. This can be used to check that the filename and filehandle initially point to the same file and that the number of links to the file is 1 (all fields returned by stat() are compared). cmpstat($fh, $path) or die "Error comparing handle with file"; Returns false if the stat information differs or if the link count is greater than 1. Calls croak if there is a security anomaly. On certain platforms, for example Windows, not all the fields returned by stat() can be compared. For example, the C and C fields seem to be different in Windows. Also, it seems that the size of the file returned by stat() does not always agree, with C being more accurate than C, presumably because of caching issues even when using autoflush (this is usually overcome by waiting a while after writing to the tempfile before attempting to C it). Not exported by default. Current API available since 0.14. =item B Similar to C except after file comparison using cmpstat, the filehandle is closed prior to attempting to unlink the file. This allows the file to be removed without using an END block, but does mean that the post-unlink comparison of the filehandle state provided by C is not available. unlink1($fh, $path) or die "Error closing and unlinking file"; Usually called from the object destructor when using the OO interface. Not exported by default. This function is disabled if the global variable $KEEP_ALL is true. Can call croak() if there is a security anomaly during the stat() comparison. Current API available since 0.14. =item B Calling this function will cause any temp files or temp directories that are registered for removal to be removed. This happens automatically when the process exits but can be triggered manually if the caller is sure that none of the temp files are required. This method can be registered as an Apache callback. Note that if a temp directory is your current directory, it cannot be removed. C out of the directory first before calling C. (For the cleanup at program exit when the CLEANUP flag is set, this happens automatically.) On OSes where temp files are automatically removed when the temp file is closed, calling this function will have no effect other than to remove temporary directories (which may include temporary files). File::Temp::cleanup(); Not exported by default. Current API available since 0.15. =back =head1 PACKAGE VARIABLES These functions control the global state of the package. =over 4 =item B Controls the lengths to which the module will go to check the safety of the temporary file or directory before proceeding. Options are: =over 8 =item STANDARD Do the basic security measures to ensure the directory exists and is writable, that temporary files are opened only if they do not already exist, and that possible race conditions are avoided. Finally the L function is used to remove files safely. =item MEDIUM In addition to the STANDARD security, the output directory is checked to make sure that it is owned either by root or the user running the program. If the directory is writable by group or by other, it is then checked to make sure that the sticky bit is set. Will not work on platforms that do not support the C<-k> test for sticky bit. =item HIGH In addition to the MEDIUM security checks, also check for the possibility of ``chown() giveaway'' using the L sysconf() function. If this is a possibility, each directory in the path is checked in turn for safeness, recursively walking back to the root directory. For platforms that do not support the L C<_PC_CHOWN_RESTRICTED> symbol (for example, Windows NT) it is assumed that ``chown() giveaway'' is possible and the recursive test is performed. =back The level can be changed as follows: File::Temp->safe_level( File::Temp::HIGH ); The level constants are not exported by the module. Currently, you must be running at least perl v5.6.0 in order to run with MEDIUM or HIGH security. This is simply because the safety tests use functions from L that are not available in older versions of perl. The problem is that the version number for Fcntl is the same in perl 5.6.0 and in 5.005_03 even though they are different versions. On systems that do not support the HIGH or MEDIUM safety levels (for example Win NT or OS/2) any attempt to change the level will be ignored. The decision to ignore rather than raise an exception allows portable programs to be written with high security in mind for the systems that can support this without those programs failing on systems where the extra tests are irrelevant. If you really need to see whether the change has been accepted simply examine the return value of C. $newlevel = File::Temp->safe_level( File::Temp::HIGH ); die "Could not change to high security" if $newlevel != File::Temp::HIGH; Available since 0.05. =item TopSystemUID This is the highest UID on the current system that refers to a root UID. This is used to make sure that the temporary directory is owned by a system UID (C, C, C etc) rather than simply by root. This is required since on many unix systems C is not owned by root. Default is to assume that any UID less than or equal to 10 is a root UID. File::Temp->top_system_uid(10); my $topid = File::Temp->top_system_uid; This value can be adjusted to reduce security checking if required. The value is only relevant when C is set to MEDIUM or higher. Available since 0.05. =item B<$KEEP_ALL> Controls whether temporary files and directories should be retained regardless of any instructions in the program to remove them automatically. This is useful for debugging but should not be used in production code. $File::Temp::KEEP_ALL = 1; Default is for files to be removed as requested by the caller. In some cases, files will only be retained if this variable is true when the file is created. This means that you can not create a temporary file, set this variable and expect the temp file to still be around when the program exits. =item B<$DEBUG> Controls whether debugging messages should be enabled. $File::Temp::DEBUG = 1; Default is for debugging mode to be disabled. Available since 0.15. =back =head1 WARNING For maximum security, endeavour always to avoid ever looking at, touching, or even imputing the existence of the filename. You do not know that that filename is connected to the same file as the handle you have, and attempts to check this can only trigger more race conditions. It's far more secure to use the filehandle alone and dispense with the filename altogether. If you need to pass the handle to something that expects a filename then on a unix system you can use C<"/dev/fd/" . fileno($fh)> for arbitrary programs. Perl code that uses the 2-argument version of C<< open >> can be passed C<< "+<=&" . fileno($fh) >>. Otherwise you will need to pass the filename. You will have to clear the close-on-exec bit on that file descriptor before passing it to another process. use Fcntl qw/F_SETFD F_GETFD/; fcntl($tmpfh, F_SETFD, 0) or die "Can't clear close-on-exec flag on temp fh: $!\n"; =head2 Temporary files and NFS Some problems are associated with using temporary files that reside on NFS file systems and it is recommended that a local filesystem is used whenever possible. Some of the security tests will most probably fail when the temp file is not local. Additionally, be aware that the performance of I/O operations over NFS will not be as good as for a local disk. =head2 Forking In some cases files created by File::Temp are removed from within an END block. Since END blocks are triggered when a child process exits (unless C is used by the child) File::Temp takes care to only remove those temp files created by a particular process ID. This means that a child will not attempt to remove temp files created by the parent process. If you are forking many processes in parallel that are all creating temporary files, you may need to reset the random number seed using srand(EXPR) in each child else all the children will attempt to walk through the same set of random file names and may well cause themselves to give up if they exceed the number of retry attempts. =head2 Directory removal Note that if you have chdir'ed into the temporary directory and it is subsequently cleaned up (either in the END block or as part of object destruction), then you will get a warning from File::Path::rmtree(). =head2 Taint mode If you need to run code under taint mode, updating to the latest L is highly recommended. On Windows, if the directory given by L isn't writable, File::Temp will attempt to fallback to the user's local application data directory or croak with an error. =head2 BINMODE The file returned by File::Temp will have been opened in binary mode if such a mode is available. If that is not correct, use the C function to change the mode of the filehandle. Note that you can modify the encoding of a file opened by File::Temp also by using C. =head1 HISTORY Originally began life in May 1999 as an XS interface to the system mkstemp() function. In March 2000, the OpenBSD mkstemp() code was translated to Perl for total control of the code's security checking, to ensure the presence of the function regardless of operating system and to help with portability. The module was shipped as a standard part of perl from v5.6.1. Thanks to Tom Christiansen for suggesting that this module should be written and providing ideas for code improvements and security enhancements. =head1 SEE ALSO L, L, L, L See L and L, L for different implementations of temporary file handling. See L for an alternative object-oriented wrapper for the C function. =for Pod::Coverage STRINGIFY NUMIFY top_system_uid =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#toolchain>. =head1 AUTHOR Tim Jenness =head1 CONTRIBUTORS =for stopwords Tim Jenness Karen Etheridge David Golden Slaven Rezic mohawk2 Roy Ivy III Peter Rabbitson Olivier Mengué John Acklam Gim Yee Nicolas R Brian Mowrey Dagfinn Ilmari Mannsåker Steinbrunner Ed Avis Guillem Jover James E. Keenan Kevin Ryde Ben Tilly =over 4 =item * Tim Jenness =item * Karen Etheridge =item * David Golden =item * Slaven Rezic =item * mohawk2 =item * Roy Ivy III =item * Peter Rabbitson =item * Olivier Mengué =item * Peter John Acklam =item * Tim Gim Yee =item * Nicolas R =item * Brian Mowrey =item * Dagfinn Ilmari Mannsåker =item * David Steinbrunner =item * Ed Avis =item * Guillem Jover =item * James E. Keenan =item * Kevin Ryde =item * Ben Tilly =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2020 by Tim Jenness and the UK Particle Physics and Astronomy Research Council. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut FILE6c0dc0cf/FileHandle.pmpackage FileHandle; use 5.006; use strict; our($VERSION, @ISA, @EXPORT, @EXPORT_OK); $VERSION = "2.05"; require IO::File; @ISA = qw(IO::File); @EXPORT = qw(_IOFBF _IOLBF _IONBF); @EXPORT_OK = qw( pipe autoflush output_field_separator output_record_separator input_record_separator input_line_number format_page_number format_lines_per_page format_lines_left format_name format_top_name format_line_break_characters format_formfeed print printf getline getlines ); # # Everything we're willing to export, we must first import. # IO::Handle->import( grep { !defined(&$_) } @EXPORT, @EXPORT_OK ); # # Some people call "FileHandle::function", so all the functions # that were in the old FileHandle class must be imported, too. # { no strict 'refs'; my %import = ( 'IO::Handle' => [qw(DESTROY new_from_fd fdopen close fileno getc ungetc gets eof flush error clearerr setbuf setvbuf _open_mode_string)], 'IO::Seekable' => [qw(seek tell getpos setpos)], 'IO::File' => [qw(new new_tmpfile open)] ); for my $pkg (keys %import) { for my $func (@{$import{$pkg}}) { my $c = *{"${pkg}::$func"}{CODE} or die "${pkg}::$func missing"; *$func = $c; } } } # # Specialized importer for Fcntl magic. # sub import { my $pkg = shift; my $callpkg = caller; require Exporter; Exporter::export($pkg, $callpkg, @_); # # If the Fcntl extension is available, # export its constants. # eval { require Fcntl; Exporter::export('Fcntl', $callpkg); }; } ################################################ # This is the only exported function we define; # the rest come from other classes. # sub pipe { my $r = IO::Handle->new; my $w = IO::Handle->new; CORE::pipe($r, $w) or return undef; ($r, $w); } # Rebless standard file handles bless *STDIN{IO}, "FileHandle" if ref *STDIN{IO} eq "IO::Handle"; bless *STDOUT{IO}, "FileHandle" if ref *STDOUT{IO} eq "IO::Handle"; bless *STDERR{IO}, "FileHandle" if ref *STDERR{IO} eq "IO::Handle"; 1; __END__ =head1 NAME FileHandle - supply object methods for filehandles =head1 SYNOPSIS use FileHandle; my $fh = FileHandle->new; if ($fh->open("< file")) { print <$fh>; $fh->close; } my $fh = FileHandle->new("> FOO"); if (defined $fh) { print $fh "bar\n"; $fh->close; } my $fh = FileHandle->new("file", "r"); if (defined $fh) { print <$fh>; undef $fh; # automatically closes the file } my $fh = FileHandle->new("file", O_WRONLY|O_APPEND); if (defined $fh) { print $fh "corge\n"; undef $fh; # automatically closes the file } my $pos = $fh->getpos; $fh->setpos($pos); $fh->setvbuf(my $buffer_var, _IOLBF, 1024); my ($readfh, $writefh) = FileHandle::pipe; autoflush STDOUT 1; =head1 DESCRIPTION NOTE: This class is now a front-end to the IO::* classes. C creates a C, which is a reference to a newly created symbol (see the L package). If it receives any parameters, they are passed to C; if the open fails, the C object is destroyed. Otherwise, it is returned to the caller. C creates a C like C does. It requires two parameters, which are passed to C; if the fdopen fails, the C object is destroyed. Otherwise, it is returned to the caller. C accepts one parameter or two. With one parameter, it is just a front end for the built-in C function. With two parameters, the first parameter is a filename that may include whitespace or other special characters, and the second parameter is the open mode, optionally followed by a file permission value. If C receives a Perl mode string (">", "+<", etc.) or a POSIX fopen() mode string ("w", "r+", etc.), it uses the basic Perl C operator. If C is given a numeric mode, it passes that mode and the optional permissions value to the Perl C operator. For convenience, C tries to import the O_XXX constants from the Fcntl module. If dynamic loading is not available, this may fail, but the rest of FileHandle will still work. C is like C except that its first parameter is not a filename but rather a file handle name, a FileHandle object, or a file descriptor number. If the C functions fgetpos() and fsetpos() are available, then C returns an opaque value that represents the current position of the FileHandle, and C uses that value to return to a previously visited position. If the C function setvbuf() is available, then C sets the buffering policy for the FileHandle. The calling sequence for the Perl function is the same as its C counterpart, including the macros C<_IOFBF>, C<_IOLBF>, and C<_IONBF>, except that the buffer parameter specifies a scalar variable to use as a buffer. WARNING: A variable used as a buffer by C must not be modified in any way until the FileHandle is closed or until C is called again, or memory corruption may result! See L for complete descriptions of each of the following supported C methods, which are just front ends for the corresponding built-in functions: close fileno getc gets eof clearerr seek tell See L for complete descriptions of each of the following supported C methods: autoflush output_field_separator output_record_separator input_record_separator input_line_number format_page_number format_lines_per_page format_lines_left format_name format_top_name format_line_break_characters format_formfeed Furthermore, for doing normal I/O you might need these: =over 4 =item $fh->print See L. =item $fh->printf See L. =item $fh->getline This works like <$fh> described in L except that it's more readable and can be safely called in a list context but still returns just one line. =item $fh->getlines This works like <$fh> when called in a list context to read all the remaining lines in a file, except that it's more readable. It will also croak() if accidentally called in a scalar context. =back There are many other functions available since FileHandle is descended from IO::File, IO::Seekable, and IO::Handle. Please see those respective pages for documentation on more functions. =head1 SEE ALSO The B extension, L, L. =cut FILE'17dda43c/IO/Compress/Adapter/Deflate.pmpackage IO::Compress::Adapter::Deflate ; use strict; use warnings; use bytes; use IO::Compress::Base::Common 2.213 qw(:Status); use Compress::Raw::Zlib 2.213 qw( !crc32 !adler32 ) ; require Exporter; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS); $VERSION = '2.213'; @ISA = qw(Exporter); @EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS; %EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS; @EXPORT = @EXPORT_OK; %DEFLATE_CONSTANTS = %EXPORT_TAGS ; sub mkCompObject { my $crc32 = shift ; my $adler32 = shift ; my $level = shift ; my $strategy = shift ; my ($def, $status) = Compress::Raw::Zlib::Deflate->new( -AppendOutput => 1, -CRC32 => $crc32, -ADLER32 => $adler32, -Level => $level, -Strategy => $strategy, -WindowBits => - MAX_WBITS); return (undef, "Cannot create Deflate object: $status", $status) if $status != Z_OK; return bless {'Def' => $def, 'Error' => '', } ; } sub mkCompObject1 { my $crc32 = shift ; my $adler32 = shift ; my $level = shift ; my $strategy = shift ; my ($def, $status) = Compress::Raw::Zlib::Deflate->new( -AppendOutput => 1, -CRC32 => $crc32, -ADLER32 => $adler32, -Level => $level, -Strategy => $strategy, -WindowBits => MAX_WBITS); return (undef, "Cannot create Deflate object: $status", $status) if $status != Z_OK; return bless {'Def' => $def, 'Error' => '', } ; } sub compr { my $self = shift ; my $def = $self->{Def}; my $status = $def->deflate($_[0], $_[1]) ; $self->{ErrorNo} = $status; if ($status != Z_OK) { $self->{Error} = "Deflate Error: $status"; return STATUS_ERROR; } return STATUS_OK; } sub flush { my $self = shift ; my $def = $self->{Def}; my $opt = $_[1] || Z_FINISH; my $status = $def->flush($_[0], $opt); $self->{ErrorNo} = $status; if ($status != Z_OK) { $self->{Error} = "Deflate Error: $status"; return STATUS_ERROR; } return STATUS_OK; } sub close { my $self = shift ; my $def = $self->{Def}; $def->flush($_[0], Z_FINISH) if defined $def ; } sub reset { my $self = shift ; my $def = $self->{Def}; my $status = $def->deflateReset() ; $self->{ErrorNo} = $status; if ($status != Z_OK) { $self->{Error} = "Deflate Error: $status"; return STATUS_ERROR; } return STATUS_OK; } sub deflateParams { my $self = shift ; my $def = $self->{Def}; my $status = $def->deflateParams(@_); $self->{ErrorNo} = $status; if ($status != Z_OK) { $self->{Error} = "deflateParams Error: $status"; return STATUS_ERROR; } return STATUS_OK; } #sub total_out #{ # my $self = shift ; # $self->{Def}->total_out(); #} # #sub total_in #{ # my $self = shift ; # $self->{Def}->total_in(); #} sub compressedBytes { my $self = shift ; $self->{Def}->compressedBytes(); } sub uncompressedBytes { my $self = shift ; $self->{Def}->uncompressedBytes(); } sub crc32 { my $self = shift ; $self->{Def}->crc32(); } sub adler32 { my $self = shift ; $self->{Def}->adler32(); } 1; __END__ FILEa804e732/IO/Compress/Base.pm] package IO::Compress::Base ; require 5.006 ; use strict ; use warnings; use IO::Compress::Base::Common 2.213 ; use IO::File (); ; use Scalar::Util (); #use File::Glob; #require Exporter ; use Carp() ; use Symbol(); #use bytes; our (@ISA, $VERSION); @ISA = qw(IO::File Exporter); $VERSION = '2.213'; #Can't locate object method "SWASHNEW" via package "utf8" (perhaps you forgot to load "utf8"?) at .../ext/Compress-Zlib/Gzip/blib/lib/Compress/Zlib/Common.pm line 16. sub saveStatus { my $self = shift ; ${ *$self->{ErrorNo} } = shift() + 0 ; ${ *$self->{Error} } = '' ; return ${ *$self->{ErrorNo} } ; } sub saveErrorString { my $self = shift ; my $retval = shift ; ${ *$self->{Error} } = shift ; ${ *$self->{ErrorNo} } = shift() + 0 if @_ ; return $retval; } sub croakError { my $self = shift ; $self->saveErrorString(0, $_[0]); Carp::croak $_[0]; } sub closeError { my $self = shift ; my $retval = shift ; my $errno = *$self->{ErrorNo}; my $error = ${ *$self->{Error} }; $self->close(); *$self->{ErrorNo} = $errno ; ${ *$self->{Error} } = $error ; return $retval; } sub error { my $self = shift ; return ${ *$self->{Error} } ; } sub errorNo { my $self = shift ; return ${ *$self->{ErrorNo} } ; } sub writeAt { my $self = shift ; my $offset = shift; my $data = shift; if (defined *$self->{FH}) { my $here = tell(*$self->{FH}); return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) if $here < 0 ; seek(*$self->{FH}, $offset, IO::Handle::SEEK_SET) or return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ; defined *$self->{FH}->write($data, length $data) or return $self->saveErrorString(undef, $!, $!) ; seek(*$self->{FH}, $here, IO::Handle::SEEK_SET) or return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ; } else { substr(${ *$self->{Buffer} }, $offset, length($data)) = $data ; } return 1; } sub outputPayload { my $self = shift ; return $self->output(@_); } sub output { my $self = shift ; my $data = shift ; my $last = shift ; return 1 if length $data == 0 && ! $last ; if ( *$self->{FilterContainer} ) { *_ = \$data; &{ *$self->{FilterContainer} }(); } if (length $data) { if ( defined *$self->{FH} ) { defined *$self->{FH}->write( $data, length $data ) or return $self->saveErrorString(0, $!, $!); } else { ${ *$self->{Buffer} } .= $data ; } } return 1; } sub getOneShotParams { return ( 'multistream' => [IO::Compress::Base::Common::Parse_boolean, 1], ); } our %PARAMS = ( # Generic Parameters 'autoclose' => [IO::Compress::Base::Common::Parse_boolean, 0], 'encode' => [IO::Compress::Base::Common::Parse_any, undef], 'strict' => [IO::Compress::Base::Common::Parse_boolean, 1], 'append' => [IO::Compress::Base::Common::Parse_boolean, 0], 'binmodein' => [IO::Compress::Base::Common::Parse_boolean, 0], 'filtercontainer' => [IO::Compress::Base::Common::Parse_code, undef], ); sub checkParams { my $self = shift ; my $class = shift ; my $got = shift || IO::Compress::Base::Parameters::new(); $got->parse( { %PARAMS, $self->getExtraParams(), *$self->{OneShot} ? $self->getOneShotParams() : (), }, @_) or $self->croakError("${class}: " . $got->getError()) ; return $got ; } sub _create { my $obj = shift; my $got = shift; *$obj->{Closed} = 1 ; my $class = ref $obj; $obj->croakError("$class: Missing Output parameter") if ! @_ && ! $got ; my $outValue = shift ; my $oneShot = 1 ; if (! $got) { $oneShot = 0 ; $got = $obj->checkParams($class, undef, @_) or return undef ; } my $lax = ! $got->getValue('strict') ; my $outType = IO::Compress::Base::Common::whatIsOutput($outValue); $obj->ckOutputParam($class, $outValue) or return undef ; if ($outType eq 'buffer') { *$obj->{Buffer} = $outValue; } else { my $buff = "" ; *$obj->{Buffer} = \$buff ; } # Merge implies Append my $merge = $got->getValue('merge') ; my $appendOutput = $got->getValue('append') || $merge ; *$obj->{Append} = $appendOutput; *$obj->{FilterContainer} = $got->getValue('filtercontainer') ; if ($merge) { # Switch off Merge mode if output file/buffer is empty/doesn't exist if (($outType eq 'buffer' && length $$outValue == 0 ) || ($outType ne 'buffer' && (! -e $outValue || (-w _ && -z _))) ) { $merge = 0 } } # If output is a file, check that it is writable #no warnings; #if ($outType eq 'filename' && -e $outValue && ! -w _) # { return $obj->saveErrorString(undef, "Output file '$outValue' is not writable" ) } $obj->ckParams($got) or $obj->croakError("${class}: " . $obj->error()); if ($got->getValue('encode')) { my $want_encoding = $got->getValue('encode'); *$obj->{Encoding} = IO::Compress::Base::Common::getEncoding($obj, $class, $want_encoding); my $x = *$obj->{Encoding}; } else { *$obj->{Encoding} = undef; } $obj->saveStatus(STATUS_OK) ; my $status ; if (! $merge) { *$obj->{Compress} = $obj->mkComp($got) or return undef; *$obj->{UnCompSize} = U64->new; *$obj->{CompSize} = U64->new; if ( $outType eq 'buffer') { ${ *$obj->{Buffer} } = '' unless $appendOutput ; } else { if ($outType eq 'handle') { *$obj->{FH} = $outValue ; setBinModeOutput(*$obj->{FH}) ; #$outValue->flush() ; *$obj->{Handle} = 1 ; if ($appendOutput) { seek(*$obj->{FH}, 0, IO::Handle::SEEK_END) or return $obj->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ; } } elsif ($outType eq 'filename') { no warnings; my $mode = '>' ; $mode = '>>' if $appendOutput; *$obj->{FH} = IO::File->new( "$mode $outValue" ) or return $obj->saveErrorString(undef, "cannot open file '$outValue': $!", $!) ; *$obj->{StdIO} = ($outValue eq '-'); setBinModeOutput(*$obj->{FH}) ; } } *$obj->{Header} = $obj->mkHeader($got) ; $obj->output( *$obj->{Header} ) or return undef; $obj->beforePayload(); } else { *$obj->{Compress} = $obj->createMerge($outValue, $outType) or return undef; } *$obj->{Closed} = 0 ; *$obj->{AutoClose} = $got->getValue('autoclose') ; *$obj->{Output} = $outValue; *$obj->{ClassName} = $class; *$obj->{Got} = $got; *$obj->{OneShot} = 0 ; return $obj ; } sub ckOutputParam { my $self = shift ; my $from = shift ; my $outType = IO::Compress::Base::Common::whatIsOutput($_[0]); $self->croakError("$from: output parameter not a filename, filehandle or scalar ref") if ! $outType ; #$self->croakError("$from: output filename is undef or null string") #if $outType eq 'filename' && (! defined $_[0] || $_[0] eq '') ; $self->croakError("$from: output buffer is read-only") if $outType eq 'buffer' && Scalar::Util::readonly(${ $_[0] }); return 1; } sub _def { my $obj = shift ; my $class= (caller)[0] ; my $name = (caller(1))[3] ; $obj->croakError("$name: expected at least 1 parameters\n") unless @_ >= 1 ; my $input = shift ; my $haveOut = @_ ; my $output = shift ; my $x = IO::Compress::Base::Validator->new($class, *$obj->{Error}, $name, $input, $output) or return undef ; push @_, $output if $haveOut && $x->{Hash}; *$obj->{OneShot} = 1 ; my $got = $obj->checkParams($name, undef, @_) or return undef ; $x->{Got} = $got ; # if ($x->{Hash}) # { # while (my($k, $v) = each %$input) # { # $v = \$input->{$k} # unless defined $v ; # # $obj->_singleTarget($x, 1, $k, $v, @_) # or return undef ; # } # # return keys %$input ; # } if ($x->{GlobMap}) { $x->{oneInput} = 1 ; foreach my $pair (@{ $x->{Pairs} }) { my ($from, $to) = @$pair ; $obj->_singleTarget($x, 1, $from, $to, @_) or return undef ; } return scalar @{ $x->{Pairs} } ; } if (! $x->{oneOutput} ) { my $inFile = ($x->{inType} eq 'filenames' || $x->{inType} eq 'filename'); $x->{inType} = $inFile ? 'filename' : 'buffer'; foreach my $in ($x->{oneInput} ? $input : @$input) { my $out ; $x->{oneInput} = 1 ; $obj->_singleTarget($x, $inFile, $in, \$out, @_) or return undef ; push @$output, \$out ; #if ($x->{outType} eq 'array') # { push @$output, \$out } #else # { $output->{$in} = \$out } } return 1 ; } # finally the 1 to 1 and n to 1 return $obj->_singleTarget($x, 1, $input, $output, @_); Carp::croak "should not be here" ; } sub _singleTarget { my $obj = shift ; my $x = shift ; my $inputIsFilename = shift; my $input = shift; if ($x->{oneInput}) { $obj->getFileInfo($x->{Got}, $input) if isaScalar($input) || (isaFilename($input) and $inputIsFilename) ; my $z = $obj->_create($x->{Got}, @_) or return undef ; defined $z->_wr2($input, $inputIsFilename) or return $z->closeError(undef) ; return $z->close() ; } else { my $afterFirst = 0 ; my $inputIsFilename = ($x->{inType} ne 'array'); my $keep = $x->{Got}->clone(); #for my $element ( ($x->{inType} eq 'hash') ? keys %$input : @$input) for my $element ( @$input) { my $isFilename = isaFilename($element); if ( $afterFirst ++ ) { defined addInterStream($obj, $element, $isFilename) or return $obj->closeError(undef) ; } else { $obj->getFileInfo($x->{Got}, $element) if isaScalar($element) || $isFilename; $obj->_create($x->{Got}, @_) or return undef ; } defined $obj->_wr2($element, $isFilename) or return $obj->closeError(undef) ; *$obj->{Got} = $keep->clone(); } return $obj->close() ; } } sub _wr2 { my $self = shift ; my $source = shift ; my $inputIsFilename = shift; my $input = $source ; if (! $inputIsFilename) { $input = \$source if ! ref $source; } if ( ref $input && ref $input eq 'SCALAR' ) { return $self->syswrite($input, @_) ; } if ( ! ref $input || isaFilehandle($input)) { my $isFilehandle = isaFilehandle($input) ; my $fh = $input ; if ( ! $isFilehandle ) { $fh = IO::File->new( "<$input" ) or return $self->saveErrorString(undef, "cannot open file '$input': $!", $!) ; } binmode $fh ; my $status ; my $buff ; my $count = 0 ; while ($status = read($fh, $buff, 16 * 1024)) { $count += length $buff; defined $self->syswrite($buff, @_) or return undef ; } return $self->saveErrorString(undef, $!, $!) if ! defined $status ; if ( (!$isFilehandle || *$self->{AutoClose}) && $input ne '-') { $fh->close() or return undef ; } return $count ; } Carp::croak "Should not be here"; return undef; } sub addInterStream { my $self = shift ; my $input = shift ; my $inputIsFilename = shift ; if (*$self->{Got}->getValue('multistream')) { $self->getFileInfo(*$self->{Got}, $input) #if isaFilename($input) and $inputIsFilename ; if isaScalar($input) || isaFilename($input) ; # TODO -- newStream needs to allow gzip/zip header to be modified return $self->newStream(); } elsif (*$self->{Got}->getValue('autoflush')) { #return $self->flush(Z_FULL_FLUSH); } return 1 ; } sub getFileInfo { } sub TIEHANDLE { return $_[0] if ref($_[0]); die "OOPS\n" ; } sub UNTIE { my $self = shift ; } sub DESTROY { my $self = shift ; local ($., $@, $!, $^E, $?); $self->close() ; # TODO - memory leak with 5.8.0 - this isn't called until # global destruction # %{ *$self } = () ; undef $self ; } sub filterUncompressed { } sub syswrite { my $self = shift ; my $buffer ; if (ref $_[0] ) { $self->croakError( *$self->{ClassName} . "::write: not a scalar reference" ) unless ref $_[0] eq 'SCALAR' ; $buffer = $_[0] ; } else { $buffer = \$_[0] ; } if (@_ > 1) { my $slen = defined $$buffer ? length($$buffer) : 0; my $len = $slen; my $offset = 0; $len = $_[1] if $_[1] < $len; if (@_ > 2) { $offset = $_[2] || 0; $self->croakError(*$self->{ClassName} . "::write: offset outside string") if $offset > $slen; if ($offset < 0) { $offset += $slen; $self->croakError( *$self->{ClassName} . "::write: offset outside string") if $offset < 0; } my $rem = $slen - $offset; $len = $rem if $rem < $len; } $buffer = \substr($$buffer, $offset, $len) ; } return 0 if (! defined $$buffer || length $$buffer == 0) && ! *$self->{FlushPending}; # *$self->{Pending} .= $$buffer ; # # return length $$buffer # if (length *$self->{Pending} < 1024 * 16 && ! *$self->{FlushPending}) ; # # $$buffer = *$self->{Pending} ; # *$self->{Pending} = ''; if (*$self->{Encoding}) { $$buffer = *$self->{Encoding}->encode($$buffer); } else { $] >= 5.008 and ( utf8::downgrade($$buffer, 1) or Carp::croak "Wide character in " . *$self->{ClassName} . "::write:"); } $self->filterUncompressed($buffer); my $buffer_length = defined $$buffer ? length($$buffer) : 0 ; *$self->{UnCompSize}->add($buffer_length) ; my $outBuffer=''; my $status = *$self->{Compress}->compr($buffer, $outBuffer) ; return $self->saveErrorString(undef, *$self->{Compress}{Error}, *$self->{Compress}{ErrorNo}) if $status == STATUS_ERROR; *$self->{CompSize}->add(length $outBuffer) ; $self->outputPayload($outBuffer) or return undef; return $buffer_length; } sub print { my $self = shift; #if (ref $self) { # $self = *$self{GLOB} ; #} if (defined $\) { if (defined $,) { defined $self->syswrite(join($,, @_) . $\); } else { defined $self->syswrite(join("", @_) . $\); } } else { if (defined $,) { defined $self->syswrite(join($,, @_)); } else { defined $self->syswrite(join("", @_)); } } } sub printf { my $self = shift; my $fmt = shift; defined $self->syswrite(sprintf($fmt, @_)); } sub _flushCompressed { my $self = shift ; my $outBuffer=''; my $status = *$self->{Compress}->flush($outBuffer, @_) ; return $self->saveErrorString(0, *$self->{Compress}{Error}, *$self->{Compress}{ErrorNo}) if $status == STATUS_ERROR; if ( defined *$self->{FH} ) { *$self->{FH}->clearerr(); } *$self->{CompSize}->add(length $outBuffer) ; $self->outputPayload($outBuffer) or return 0; return 1; } sub flush { my $self = shift ; $self->_flushCompressed(@_) or return 0; if ( defined *$self->{FH} ) { defined *$self->{FH}->flush() or return $self->saveErrorString(0, $!, $!); } return 1; } sub beforePayload { } sub _newStream { my $self = shift ; my $got = shift; my $class = ref $self; $self->_writeTrailer() or return 0 ; $self->ckParams($got) or $self->croakError("newStream: $self->{Error}"); if ($got->getValue('encode')) { my $want_encoding = $got->getValue('encode'); *$self->{Encoding} = IO::Compress::Base::Common::getEncoding($self, $class, $want_encoding); } else { *$self->{Encoding} = undef; } *$self->{Compress} = $self->mkComp($got) or return 0; *$self->{Header} = $self->mkHeader($got) ; $self->output(*$self->{Header} ) or return 0; *$self->{UnCompSize}->reset(); *$self->{CompSize}->reset(); $self->beforePayload(); return 1 ; } sub newStream { my $self = shift ; my $got = $self->checkParams('newStream', *$self->{Got}, @_) or return 0 ; $self->_newStream($got); # *$self->{Compress} = $self->mkComp($got) # or return 0; # # *$self->{Header} = $self->mkHeader($got) ; # $self->output(*$self->{Header} ) # or return 0; # # *$self->{UnCompSize}->reset(); # *$self->{CompSize}->reset(); # # $self->beforePayload(); # # return 1 ; } sub reset { my $self = shift ; return *$self->{Compress}->reset() ; } sub _writeTrailer { my $self = shift ; my $trailer = ''; my $status = *$self->{Compress}->close($trailer) ; return $self->saveErrorString(0, *$self->{Compress}{Error}, *$self->{Compress}{ErrorNo}) if $status == STATUS_ERROR; *$self->{CompSize}->add(length $trailer) ; $trailer .= $self->mkTrailer(); defined $trailer or return 0; return $self->output($trailer); } sub _writeFinalTrailer { my $self = shift ; return $self->output($self->mkFinalTrailer()); } sub close { my $self = shift ; return 1 if *$self->{Closed} || ! *$self->{Compress} ; *$self->{Closed} = 1 ; untie *$self if $] >= 5.008 ; *$self->{FlushPending} = 1 ; $self->_writeTrailer() or return 0 ; $self->_writeFinalTrailer() or return 0 ; $self->output( "", 1 ) or return 0; if (defined *$self->{FH}) { if ((! *$self->{Handle} || *$self->{AutoClose}) && ! *$self->{StdIO}) { $! = 0 ; *$self->{FH}->close() or return $self->saveErrorString(0, $!, $!); } delete *$self->{FH} ; # This delete can set $! in older Perls, so reset the errno $! = 0 ; } return 1; } #sub total_in #sub total_out #sub msg # #sub crc #{ # my $self = shift ; # return *$self->{Compress}->crc32() ; #} # #sub msg #{ # my $self = shift ; # return *$self->{Compress}->msg() ; #} # #sub dict_adler #{ # my $self = shift ; # return *$self->{Compress}->dict_adler() ; #} # #sub get_Level #{ # my $self = shift ; # return *$self->{Compress}->get_Level() ; #} # #sub get_Strategy #{ # my $self = shift ; # return *$self->{Compress}->get_Strategy() ; #} sub tell { my $self = shift ; return *$self->{UnCompSize}->get32bit() ; } sub eof { my $self = shift ; return *$self->{Closed} ; } sub seek { my $self = shift ; my $position = shift; my $whence = shift ; my $here = $self->tell() ; my $target = 0 ; #use IO::Handle qw(SEEK_SET SEEK_CUR SEEK_END); use IO::Handle ; if ($whence == IO::Handle::SEEK_SET) { $target = $position ; } elsif ($whence == IO::Handle::SEEK_CUR || $whence == IO::Handle::SEEK_END) { $target = $here + $position ; } else { $self->croakError(*$self->{ClassName} . "::seek: unknown value, $whence, for whence parameter"); } # short circuit if seeking to current offset return 1 if $target == $here ; # Outlaw any attempt to seek backwards $self->croakError(*$self->{ClassName} . "::seek: cannot seek backwards") if $target < $here ; # Walk the file to the new offset my $offset = $target - $here ; my $buffer ; defined $self->syswrite("\x00" x $offset) or return 0; return 1 ; } sub binmode { 1; # my $self = shift ; # return defined *$self->{FH} # ? binmode *$self->{FH} # : 1 ; } sub fileno { my $self = shift ; return defined *$self->{FH} ? *$self->{FH}->fileno() : undef ; } sub opened { my $self = shift ; return ! *$self->{Closed} ; } sub autoflush { my $self = shift ; return defined *$self->{FH} ? *$self->{FH}->autoflush(@_) : undef ; } sub input_line_number { return undef ; } sub _notAvailable { my $name = shift ; return sub { Carp::croak "$name Not Available: File opened only for output" ; } ; } { no warnings 'once'; *read = _notAvailable('read'); *READ = _notAvailable('read'); *readline = _notAvailable('readline'); *READLINE = _notAvailable('readline'); *getc = _notAvailable('getc'); *GETC = _notAvailable('getc'); *FILENO = \&fileno; *PRINT = \&print; *PRINTF = \&printf; *WRITE = \&syswrite; *write = \&syswrite; *SEEK = \&seek; *TELL = \&tell; *EOF = \&eof; *CLOSE = \&close; *BINMODE = \&binmode; } #*sysread = \&_notAvailable; #*syswrite = \&_write; 1; __END__ =head1 NAME IO::Compress::Base - Base Class for IO::Compress modules =head1 SYNOPSIS use IO::Compress::Base ; =head1 DESCRIPTION This module is not intended for direct use in application code. Its sole purpose is to be sub-classed by IO::Compress modules. =head1 SUPPORT General feedback/questions/bug reports should be sent to L (preferred) or L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L L L, L, L, L =head1 AUTHOR This module was written by Paul Marquess, C. =head1 MODIFICATION HISTORY See the Changes file. =head1 COPYRIGHT AND LICENSE Copyright (c) 2005-2024 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILE#8c7adf5e/IO/Compress/Base/Common.pmXpackage IO::Compress::Base::Common; use strict ; use warnings; use bytes; use Carp; use Scalar::Util qw(blessed readonly); use File::GlobMapper; require Exporter; our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE); @ISA = qw(Exporter); $VERSION = '2.213'; @EXPORT = qw( isaFilehandle isaFilename isaScalar whatIsInput whatIsOutput isaFileGlobString cleanFileGlobString oneTarget setBinModeInput setBinModeOutput ckInOutParams createSelfTiedObject isGeMax32 MAX32 WANT_CODE WANT_EXT WANT_UNDEF WANT_HASH STATUS_OK STATUS_ENDSTREAM STATUS_EOF STATUS_ERROR ); %EXPORT_TAGS = ( Status => [qw( STATUS_OK STATUS_ENDSTREAM STATUS_EOF STATUS_ERROR )]); use constant STATUS_OK => 0; use constant STATUS_ENDSTREAM => 1; use constant STATUS_EOF => 2; use constant STATUS_ERROR => -1; use constant MAX16 => 0xFFFF ; use constant MAX32 => 0xFFFFFFFF ; use constant MAX32cmp => 0xFFFFFFFF + 1 - 1; # for 5.6.x on 32-bit need to force an non-IV value sub isGeMax32 { return $_[0] >= MAX32cmp ; } sub hasEncode() { if (! defined $HAS_ENCODE) { eval { require Encode; Encode->import(); }; $HAS_ENCODE = $@ ? 0 : 1 ; } return $HAS_ENCODE; } sub getEncoding($$$) { my $obj = shift; my $class = shift ; my $want_encoding = shift ; $obj->croakError("$class: Encode module needed to use -Encode") if ! hasEncode(); my $encoding = Encode::find_encoding($want_encoding); $obj->croakError("$class: Encoding '$want_encoding' is not available") if ! $encoding; return $encoding; } our ($needBinmode); $needBinmode = ($^O eq 'MSWin32' || ($] >= 5.006 && eval ' ${^UNICODE} || ${^UTF8LOCALE} ')) ? 1 : 1 ; sub setBinModeInput($) { my $handle = shift ; binmode $handle if $needBinmode; } sub setBinModeOutput($) { my $handle = shift ; binmode $handle if $needBinmode; } sub isaFilehandle($) { use utf8; # Pragma needed to keep Perl 5.6.0 happy return (defined $_[0] and (UNIVERSAL::isa($_[0],'GLOB') or UNIVERSAL::isa($_[0],'IO::Handle') or UNIVERSAL::isa(\$_[0],'GLOB')) ) } sub isaScalar { return ( defined($_[0]) and ref($_[0]) eq 'SCALAR' and defined ${ $_[0] } ) ; } sub isaFilename($) { return (defined $_[0] and ! ref $_[0] and UNIVERSAL::isa(\$_[0], 'SCALAR')); } sub isaFileGlobString { return defined $_[0] && $_[0] =~ /^<.*>$/; } sub cleanFileGlobString { my $string = shift ; $string =~ s/^\s*<\s*(.*)\s*>\s*$/$1/; return $string; } use constant WANT_CODE => 1 ; use constant WANT_EXT => 2 ; use constant WANT_UNDEF => 4 ; #use constant WANT_HASH => 8 ; use constant WANT_HASH => 0 ; sub whatIsInput($;$) { my $got = whatIs(@_); if (defined $got && $got eq 'filename' && defined $_[0] && $_[0] eq '-') { #use IO::File; $got = 'handle'; $_[0] = *STDIN; #$_[0] = IO::File->new("<-"); } return $got; } sub whatIsOutput($;$) { my $got = whatIs(@_); if (defined $got && $got eq 'filename' && defined $_[0] && $_[0] eq '-') { $got = 'handle'; $_[0] = *STDOUT; #$_[0] = IO::File->new(">-"); } return $got; } sub whatIs ($;$) { return 'handle' if isaFilehandle($_[0]); my $wantCode = defined $_[1] && $_[1] & WANT_CODE ; my $extended = defined $_[1] && $_[1] & WANT_EXT ; my $undef = defined $_[1] && $_[1] & WANT_UNDEF ; my $hash = defined $_[1] && $_[1] & WANT_HASH ; return 'undef' if ! defined $_[0] && $undef ; if (ref $_[0]) { return '' if blessed($_[0]); # is an object #return '' if UNIVERSAL::isa($_[0], 'UNIVERSAL'); # is an object return 'buffer' if UNIVERSAL::isa($_[0], 'SCALAR'); return 'array' if UNIVERSAL::isa($_[0], 'ARRAY') && $extended ; return 'hash' if UNIVERSAL::isa($_[0], 'HASH') && $hash ; return 'code' if UNIVERSAL::isa($_[0], 'CODE') && $wantCode ; return ''; } return 'fileglob' if $extended && isaFileGlobString($_[0]); return 'filename'; } sub oneTarget { return $_[0] =~ /^(code|handle|buffer|filename)$/; } sub IO::Compress::Base::Validator::new { my $class = shift ; my $Class = shift ; my $error_ref = shift ; my $reportClass = shift ; my %data = (Class => $Class, Error => $error_ref, reportClass => $reportClass, ) ; my $obj = bless \%data, $class ; local $Carp::CarpLevel = 1; my $inType = $data{inType} = whatIsInput($_[0], WANT_EXT|WANT_HASH); my $outType = $data{outType} = whatIsOutput($_[1], WANT_EXT|WANT_HASH); my $oneInput = $data{oneInput} = oneTarget($inType); my $oneOutput = $data{oneOutput} = oneTarget($outType); if (! $inType) { $obj->croakError("$reportClass: illegal input parameter") ; #return undef ; } # if ($inType eq 'hash') # { # $obj->{Hash} = 1 ; # $obj->{oneInput} = 1 ; # return $obj->validateHash($_[0]); # } if (! $outType) { $obj->croakError("$reportClass: illegal output parameter") ; #return undef ; } if ($inType ne 'fileglob' && $outType eq 'fileglob') { $obj->croakError("Need input fileglob for outout fileglob"); } # if ($inType ne 'fileglob' && $outType eq 'hash' && $inType ne 'filename' ) # { # $obj->croakError("input must ne filename or fileglob when output is a hash"); # } if ($inType eq 'fileglob' && $outType eq 'fileglob') { $data{GlobMap} = 1 ; $data{inType} = $data{outType} = 'filename'; my $mapper = File::GlobMapper->new($_[0], $_[1]); if ( ! $mapper ) { return $obj->saveErrorString($File::GlobMapper::Error) ; } $data{Pairs} = $mapper->getFileMap(); return $obj; } $obj->croakError("$reportClass: input and output $inType are identical") if $inType eq $outType && $_[0] eq $_[1] && $_[0] ne '-' ; if ($inType eq 'fileglob') # && $outType ne 'fileglob' { my $glob = cleanFileGlobString($_[0]); my @inputs = glob($glob); if (@inputs == 0) { # TODO -- legal or die? die "globmap matched zero file -- legal or die???" ; } elsif (@inputs == 1) { $obj->validateInputFilenames($inputs[0]) or return undef; $_[0] = $inputs[0] ; $data{inType} = 'filename' ; $data{oneInput} = 1; } else { $obj->validateInputFilenames(@inputs) or return undef; $_[0] = [ @inputs ] ; $data{inType} = 'filenames' ; } } elsif ($inType eq 'filename') { $obj->validateInputFilenames($_[0]) or return undef; } elsif ($inType eq 'array') { $data{inType} = 'filenames' ; $obj->validateInputArray($_[0]) or return undef ; } return $obj->saveErrorString("$reportClass: output buffer is read-only") if $outType eq 'buffer' && readonly(${ $_[1] }); if ($outType eq 'filename' ) { $obj->croakError("$reportClass: output filename is undef or null string") if ! defined $_[1] || $_[1] eq '' ; if (-e $_[1]) { if (-d _ ) { return $obj->saveErrorString("output file '$_[1]' is a directory"); } } } return $obj ; } sub IO::Compress::Base::Validator::saveErrorString { my $self = shift ; ${ $self->{Error} } = shift ; return undef; } sub IO::Compress::Base::Validator::croakError { my $self = shift ; $self->saveErrorString($_[0]); croak $_[0]; } sub IO::Compress::Base::Validator::validateInputFilenames { my $self = shift ; foreach my $filename (@_) { $self->croakError("$self->{reportClass}: input filename is undef or null string") if ! defined $filename || $filename eq '' ; next if $filename eq '-'; if (! -e $filename ) { return $self->saveErrorString("input file '$filename' does not exist"); } if (-d _ ) { return $self->saveErrorString("input file '$filename' is a directory"); } # if (! -r _ ) # { # return $self->saveErrorString("cannot open file '$filename': $!"); # } } return 1 ; } sub IO::Compress::Base::Validator::validateInputArray { my $self = shift ; if ( @{ $_[0] } == 0 ) { return $self->saveErrorString("empty array reference") ; } foreach my $element ( @{ $_[0] } ) { my $inType = whatIsInput($element); if (! $inType) { $self->croakError("unknown input parameter") ; } elsif($inType eq 'filename') { $self->validateInputFilenames($element) or return undef ; } else { $self->croakError("not a filename") ; } } return 1 ; } #sub IO::Compress::Base::Validator::validateHash #{ # my $self = shift ; # my $href = shift ; # # while (my($k, $v) = each %$href) # { # my $ktype = whatIsInput($k); # my $vtype = whatIsOutput($v, WANT_EXT|WANT_UNDEF) ; # # if ($ktype ne 'filename') # { # return $self->saveErrorString("hash key not filename") ; # } # # my %valid = map { $_ => 1 } qw(filename buffer array undef handle) ; # if (! $valid{$vtype}) # { # return $self->saveErrorString("hash value not ok") ; # } # } # # return $self ; #} sub createSelfTiedObject { my $class = shift || (caller)[0] ; my $error_ref = shift ; my $obj = bless Symbol::gensym(), ref($class) || $class; tie *$obj, $obj if $] >= 5.005; *$obj->{Closed} = 1 ; $$error_ref = ''; *$obj->{Error} = $error_ref ; my $errno = 0 ; *$obj->{ErrorNo} = \$errno ; return $obj; } #package Parse::Parameters ; # # #require Exporter; #our ($VERSION, @ISA, @EXPORT); #$VERSION = '2.000_08'; #@ISA = qw(Exporter); $EXPORT_TAGS{Parse} = [qw( ParseParameters Parse_any Parse_unsigned Parse_signed Parse_boolean Parse_string Parse_code Parse_writable_scalar ) ]; push @EXPORT, @{ $EXPORT_TAGS{Parse} } ; use constant Parse_any => 0x01; use constant Parse_unsigned => 0x02; use constant Parse_signed => 0x04; use constant Parse_boolean => 0x08; use constant Parse_string => 0x10; use constant Parse_code => 0x20; #use constant Parse_store_ref => 0x100 ; #use constant Parse_multiple => 0x100 ; use constant Parse_writable => 0x200 ; use constant Parse_writable_scalar => 0x400 | Parse_writable ; use constant OFF_PARSED => 0 ; use constant OFF_TYPE => 1 ; use constant OFF_DEFAULT => 2 ; use constant OFF_FIXED => 3 ; #use constant OFF_FIRST_ONLY => 4 ; #use constant OFF_STICKY => 5 ; use constant IxError => 0; use constant IxGot => 1 ; sub ParseParameters { my $level = shift || 0 ; my $sub = (caller($level + 1))[3] ; local $Carp::CarpLevel = 1 ; return $_[1] if @_ == 2 && defined $_[1] && UNIVERSAL::isa($_[1], "IO::Compress::Base::Parameters"); my $p = IO::Compress::Base::Parameters->new(); $p->parse(@_) or croak "$sub: $p->[IxError]" ; return $p; } use strict; use warnings; use Carp; sub Init { my $default = shift ; my %got ; my $obj = IO::Compress::Base::Parameters::new(); while (my ($key, $v) = each %$default) { croak "need 2 params [@$v]" if @$v != 2 ; my ($type, $value) = @$v ; # my ($first_only, $sticky, $type, $value) = @$v ; my $sticky = 0; my $x ; $obj->_checkType($key, \$value, $type, 0, \$x) or return undef ; $key = lc $key; # if (! $sticky) { # $x = [] # if $type & Parse_multiple; # $got{$key} = [0, $type, $value, $x, $first_only, $sticky] ; $got{$key} = [0, $type, $value, $x] ; # } # # $got{$key}[OFF_PARSED] = 0 ; } return bless \%got, "IO::Compress::Base::Parameters::Defaults" ; } sub IO::Compress::Base::Parameters::new { #my $class = shift ; my $obj; $obj->[IxError] = ''; $obj->[IxGot] = {} ; return bless $obj, 'IO::Compress::Base::Parameters' ; } sub IO::Compress::Base::Parameters::setError { my $self = shift ; my $error = shift ; my $retval = @_ ? shift : undef ; $self->[IxError] = $error ; return $retval; } sub IO::Compress::Base::Parameters::getError { my $self = shift ; return $self->[IxError] ; } sub IO::Compress::Base::Parameters::parse { my $self = shift ; my $default = shift ; my $got = $self->[IxGot] ; my $firstTime = keys %{ $got } == 0 ; my (@Bad) ; my @entered = () ; # Allow the options to be passed as a hash reference or # as the complete hash. if (@_ == 0) { @entered = () ; } elsif (@_ == 1) { my $href = $_[0] ; return $self->setError("Expected even number of parameters, got 1") if ! defined $href or ! ref $href or ref $href ne "HASH" ; foreach my $key (keys %$href) { push @entered, $key ; push @entered, \$href->{$key} ; } } else { my $count = @_; return $self->setError("Expected even number of parameters, got $count") if $count % 2 != 0 ; for my $i (0.. $count / 2 - 1) { push @entered, $_[2 * $i] ; push @entered, \$_[2 * $i + 1] ; } } foreach my $key (keys %$default) { my ($type, $value) = @{ $default->{$key} } ; if ($firstTime) { $got->{$key} = [0, $type, $value, $value] ; } else { $got->{$key}[OFF_PARSED] = 0 ; } } my %parsed = (); for my $i (0.. @entered / 2 - 1) { my $key = $entered[2* $i] ; my $value = $entered[2* $i+1] ; #print "Key [$key] Value [$value]" ; #print defined $$value ? "[$$value]\n" : "[undef]\n"; $key =~ s/^-// ; my $canonkey = lc $key; if ($got->{$canonkey}) { my $type = $got->{$canonkey}[OFF_TYPE] ; my $parsed = $parsed{$canonkey}; ++ $parsed{$canonkey}; return $self->setError("Muliple instances of '$key' found") if $parsed ; my $s ; $self->_checkType($key, $value, $type, 1, \$s) or return undef ; $value = $$value ; $got->{$canonkey} = [1, $type, $value, $s] ; } else { push (@Bad, $key) } } if (@Bad) { my ($bad) = join(", ", @Bad) ; return $self->setError("unknown key value(s) $bad") ; } return 1; } sub IO::Compress::Base::Parameters::_checkType { my $self = shift ; my $key = shift ; my $value = shift ; my $type = shift ; my $validate = shift ; my $output = shift; #local $Carp::CarpLevel = $level ; #print "PARSE $type $key $value $validate $sub\n" ; if ($type & Parse_writable_scalar) { return $self->setError("Parameter '$key' not writable") if readonly $$value ; if (ref $$value) { return $self->setError("Parameter '$key' not a scalar reference") if ref $$value ne 'SCALAR' ; $$output = $$value ; } else { return $self->setError("Parameter '$key' not a scalar") if ref $value ne 'SCALAR' ; $$output = $value ; } return 1; } $value = $$value ; if ($type & Parse_any) { $$output = $value ; return 1; } elsif ($type & Parse_unsigned) { return $self->setError("Parameter '$key' must be an unsigned int, got 'undef'") if ! defined $value ; return $self->setError("Parameter '$key' must be an unsigned int, got '$value'") if $value !~ /^\d+$/; $$output = defined $value ? $value : 0 ; return 1; } elsif ($type & Parse_signed) { return $self->setError("Parameter '$key' must be a signed int, got 'undef'") if ! defined $value ; return $self->setError("Parameter '$key' must be a signed int, got '$value'") if $value !~ /^-?\d+$/; $$output = defined $value ? $value : 0 ; return 1 ; } elsif ($type & Parse_boolean) { return $self->setError("Parameter '$key' must be an int, got '$value'") if defined $value && $value !~ /^\d*$/; $$output = defined $value && $value != 0 ? 1 : 0 ; return 1; } elsif ($type & Parse_string) { $$output = defined $value ? $value : "" ; return 1; } elsif ($type & Parse_code) { return $self->setError("Parameter '$key' must be a code reference, got '$value'") if (! defined $value || ref $value ne 'CODE') ; $$output = defined $value ? $value : "" ; return 1; } $$output = $value ; return 1; } sub IO::Compress::Base::Parameters::parsed { return $_[0]->[IxGot]{$_[1]}[OFF_PARSED] ; } sub IO::Compress::Base::Parameters::getValue { return $_[0]->[IxGot]{$_[1]}[OFF_FIXED] ; } sub IO::Compress::Base::Parameters::setValue { $_[0]->[IxGot]{$_[1]}[OFF_PARSED] = 1; $_[0]->[IxGot]{$_[1]}[OFF_DEFAULT] = $_[2] ; $_[0]->[IxGot]{$_[1]}[OFF_FIXED] = $_[2] ; } sub IO::Compress::Base::Parameters::valueRef { return $_[0]->[IxGot]{$_[1]}[OFF_FIXED] ; } sub IO::Compress::Base::Parameters::valueOrDefault { my $self = shift ; my $name = shift ; my $default = shift ; my $value = $self->[IxGot]{$name}[OFF_DEFAULT] ; return $value if defined $value ; return $default ; } sub IO::Compress::Base::Parameters::wantValue { return defined $_[0]->[IxGot]{$_[1]}[OFF_DEFAULT] ; } sub IO::Compress::Base::Parameters::clone { my $self = shift ; my $obj = [] ; my %got ; my $hash = $self->[IxGot] ; for my $k (keys %{ $hash }) { $got{$k} = [ @{ $hash->{$k} } ]; } $obj->[IxError] = $self->[IxError]; $obj->[IxGot] = \%got ; return bless $obj, 'IO::Compress::Base::Parameters' ; } package U64; use constant MAX32 => 0xFFFFFFFF ; use constant HI_1 => MAX32 + 1 ; use constant LOW => 0 ; use constant HIGH => 1; sub new { return bless [ 0, 0 ], $_[0] if @_ == 1 ; return bless [ $_[1], 0 ], $_[0] if @_ == 2 ; return bless [ $_[2], $_[1] ], $_[0] if @_ == 3 ; } sub newUnpack_V64 { my ($low, $hi) = unpack "V V", $_[0] ; bless [ $low, $hi ], "U64"; } sub newUnpack_V32 { my $string = shift; my $low = unpack "V", $string ; bless [ $low, 0 ], "U64"; } sub reset { $_[0]->[HIGH] = $_[0]->[LOW] = 0; } sub clone { bless [ @{$_[0]} ], ref $_[0] ; } sub getHigh { return $_[0]->[HIGH]; } sub getLow { return $_[0]->[LOW]; } sub get32bit { return $_[0]->[LOW]; } sub get64bit { # Not using << here because the result will still be # a 32-bit value on systems where int size is 32-bits return $_[0]->[HIGH] * HI_1 + $_[0]->[LOW]; } sub add { # my $self = shift; my $value = $_[1]; if (ref $value eq 'U64') { $_[0]->[HIGH] += $value->[HIGH] ; $value = $value->[LOW]; } elsif ($value > MAX32) { $_[0]->[HIGH] += int($value / HI_1) ; $value = $value % HI_1; } my $available = MAX32 - $_[0]->[LOW] ; if ($value > $available) { ++ $_[0]->[HIGH] ; $_[0]->[LOW] = $value - $available - 1; } else { $_[0]->[LOW] += $value ; } } sub add32 { # my $self = shift; my $value = $_[1]; if ($value > MAX32) { $_[0]->[HIGH] += int($value / HI_1) ; $value = $value % HI_1; } my $available = MAX32 - $_[0]->[LOW] ; if ($value > $available) { ++ $_[0]->[HIGH] ; $_[0]->[LOW] = $value - $available - 1; } else { $_[0]->[LOW] += $value ; } } sub subtract { my $self = shift; my $value = shift; if (ref $value eq 'U64') { if ($value->[HIGH]) { die "bad" if $self->[HIGH] == 0 || $value->[HIGH] > $self->[HIGH] ; $self->[HIGH] -= $value->[HIGH] ; } $value = $value->[LOW] ; } if ($value > $self->[LOW]) { -- $self->[HIGH] ; $self->[LOW] = MAX32 - $value + $self->[LOW] + 1 ; } else { $self->[LOW] -= $value; } } sub equal { my $self = shift; my $other = shift; return $self->[LOW] == $other->[LOW] && $self->[HIGH] == $other->[HIGH] ; } sub isZero { my $self = shift; return $self->[LOW] == 0 && $self->[HIGH] == 0 ; } sub gt { my $self = shift; my $other = shift; return $self->cmp($other) > 0 ; } sub cmp { my $self = shift; my $other = shift ; if ($self->[LOW] == $other->[LOW]) { return $self->[HIGH] - $other->[HIGH] ; } else { return $self->[LOW] - $other->[LOW] ; } } sub is64bit { return $_[0]->[HIGH] > 0 ; } sub isAlmost64bit { return $_[0]->[HIGH] > 0 || $_[0]->[LOW] == MAX32 ; } sub getPacked_V64 { return pack "V V", @{ $_[0] } ; } sub getPacked_V32 { return pack "V", $_[0]->[LOW] ; } sub pack_V64 { return pack "V V", $_[0], 0; } sub full32 { return $_[0] == MAX32 ; } sub Value_VV64 { my $buffer = shift; my ($lo, $hi) = unpack ("V V" , $buffer); no warnings 'uninitialized'; return $hi * HI_1 + $lo; } package IO::Compress::Base::Common; 1; FILE93589457/IO/Compress/Gzip.pmpackage IO::Compress::Gzip ; require 5.006 ; use strict ; use warnings; use bytes; require Exporter ; use IO::Compress::RawDeflate 2.213 () ; use IO::Compress::Adapter::Deflate 2.213 ; use IO::Compress::Base::Common 2.213 qw(:Status ); use IO::Compress::Gzip::Constants 2.213 ; use IO::Compress::Zlib::Extra 2.213 ; BEGIN { if (defined &utf8::downgrade ) { *noUTF8 = \&utf8::downgrade } else { *noUTF8 = sub {} } } our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError); $VERSION = '2.213'; $GzipError = '' ; @ISA = qw(IO::Compress::RawDeflate Exporter); @EXPORT_OK = qw( $GzipError gzip ) ; %EXPORT_TAGS = %IO::Compress::RawDeflate::DEFLATE_CONSTANTS ; push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; Exporter::export_ok_tags('all'); sub new { my $class = shift ; my $obj = IO::Compress::Base::Common::createSelfTiedObject($class, \$GzipError); $obj->_create(undef, @_); } sub gzip { my $obj = IO::Compress::Base::Common::createSelfTiedObject(undef, \$GzipError); return $obj->_def(@_); } #sub newHeader #{ # my $self = shift ; # #return GZIP_MINIMUM_HEADER ; # return $self->mkHeader(*$self->{Got}); #} sub getExtraParams { my $self = shift ; return ( # zlib behaviour $self->getZlibParams(), # Gzip header fields 'minimal' => [IO::Compress::Base::Common::Parse_boolean, 0], 'comment' => [IO::Compress::Base::Common::Parse_any, undef], 'name' => [IO::Compress::Base::Common::Parse_any, undef], 'time' => [IO::Compress::Base::Common::Parse_any, undef], 'textflag' => [IO::Compress::Base::Common::Parse_boolean, 0], 'headercrc' => [IO::Compress::Base::Common::Parse_boolean, 0], 'os_code' => [IO::Compress::Base::Common::Parse_unsigned, $Compress::Raw::Zlib::gzip_os_code], 'extrafield'=> [IO::Compress::Base::Common::Parse_any, undef], 'extraflags'=> [IO::Compress::Base::Common::Parse_any, undef], ); } sub ckParams { my $self = shift ; my $got = shift ; # gzip always needs crc32 $got->setValue('crc32' => 1); return 1 if $got->getValue('merge') ; my $strict = $got->getValue('strict') ; { if (! $got->parsed('time') ) { # Modification time defaults to now. $got->setValue(time => time) ; } # Check that the Name & Comment don't have embedded NULLs # Also check that they only contain ISO 8859-1 chars. if ($got->parsed('name') && defined $got->getValue('name')) { my $name = $got->getValue('name'); return $self->saveErrorString(undef, "Null Character found in Name", Z_DATA_ERROR) if $strict && $name =~ /\x00/ ; return $self->saveErrorString(undef, "Non ISO 8859-1 Character found in Name", Z_DATA_ERROR) if $strict && $name =~ /$GZIP_FNAME_INVALID_CHAR_RE/o ; } if ($got->parsed('comment') && defined $got->getValue('comment')) { my $comment = $got->getValue('comment'); return $self->saveErrorString(undef, "Null Character found in Comment", Z_DATA_ERROR) if $strict && $comment =~ /\x00/ ; return $self->saveErrorString(undef, "Non ISO 8859-1 Character found in Comment", Z_DATA_ERROR) if $strict && $comment =~ /$GZIP_FCOMMENT_INVALID_CHAR_RE/o; } if ($got->parsed('os_code') ) { my $value = $got->getValue('os_code'); return $self->saveErrorString(undef, "OS_Code must be between 0 and 255, got '$value'") if $value < 0 || $value > 255 ; } # gzip only supports Deflate at present $got->setValue('method' => Z_DEFLATED) ; if ( ! $got->parsed('extraflags')) { $got->setValue('extraflags' => 2) if $got->getValue('level') == Z_BEST_COMPRESSION ; $got->setValue('extraflags' => 4) if $got->getValue('level') == Z_BEST_SPEED ; } my $data = $got->getValue('extrafield') ; if (defined $data) { my $bad = IO::Compress::Zlib::Extra::parseExtraField($data, $strict, 1) ; return $self->saveErrorString(undef, "Error with ExtraField Parameter: $bad", Z_DATA_ERROR) if $bad ; $got->setValue('extrafield' => $data) ; } } return 1; } sub mkTrailer { my $self = shift ; return pack("V V", *$self->{Compress}->crc32(), *$self->{UnCompSize}->get32bit()); } sub getInverseClass { no warnings 'once'; return ('IO::Uncompress::Gunzip', \$IO::Uncompress::Gunzip::GunzipError); } sub getFileInfo { my $self = shift ; my $params = shift; my $filename = shift ; return if IO::Compress::Base::Common::isaScalar($filename); my $defaultTime = (stat($filename))[9] ; $params->setValue('name' => $filename) if ! $params->parsed('name') ; $params->setValue('time' => $defaultTime) if ! $params->parsed('time') ; } sub mkHeader { my $self = shift ; my $param = shift ; # short-circuit if a minimal header is requested. return GZIP_MINIMUM_HEADER if $param->getValue('minimal') ; # METHOD my $method = $param->valueOrDefault('method', GZIP_CM_DEFLATED) ; # FLAGS my $flags = GZIP_FLG_DEFAULT ; $flags |= GZIP_FLG_FTEXT if $param->getValue('textflag') ; $flags |= GZIP_FLG_FHCRC if $param->getValue('headercrc') ; $flags |= GZIP_FLG_FEXTRA if $param->wantValue('extrafield') ; $flags |= GZIP_FLG_FNAME if $param->wantValue('name') ; $flags |= GZIP_FLG_FCOMMENT if $param->wantValue('comment') ; # MTIME my $time = $param->valueOrDefault('time', GZIP_MTIME_DEFAULT) ; # EXTRA FLAGS my $extra_flags = $param->valueOrDefault('extraflags', GZIP_XFL_DEFAULT); # OS CODE my $os_code = $param->valueOrDefault('os_code', GZIP_OS_DEFAULT) ; my $out = pack("C4 V C C", GZIP_ID1, # ID1 GZIP_ID2, # ID2 $method, # Compression Method $flags, # Flags $time, # Modification Time $extra_flags, # Extra Flags $os_code, # Operating System Code ) ; # EXTRA if ($flags & GZIP_FLG_FEXTRA) { my $extra = $param->getValue('extrafield') ; $out .= pack("v", length $extra) . $extra ; } # NAME if ($flags & GZIP_FLG_FNAME) { my $name .= $param->getValue('name') ; $name =~ s/\x00.*$//; $out .= $name ; # Terminate the filename with NULL unless it already is $out .= GZIP_NULL_BYTE if !length $name or substr($name, 1, -1) ne GZIP_NULL_BYTE ; } # COMMENT if ($flags & GZIP_FLG_FCOMMENT) { my $comment .= $param->getValue('comment') ; $comment =~ s/\x00.*$//; $out .= $comment ; # Terminate the comment with NULL unless it already is $out .= GZIP_NULL_BYTE if ! length $comment or substr($comment, 1, -1) ne GZIP_NULL_BYTE; } # HEADER CRC $out .= pack("v", Compress::Raw::Zlib::crc32($out) & 0x00FF ) if $param->getValue('headercrc') ; noUTF8($out); return $out ; } sub mkFinalTrailer { return ''; } 1; __END__ =head1 NAME IO::Compress::Gzip - Write RFC 1952 files/buffers =head1 SYNOPSIS use IO::Compress::Gzip qw(gzip $GzipError) ; my $status = gzip $input => $output [,OPTS] or die "gzip failed: $GzipError\n"; my $z = IO::Compress::Gzip->new( $output [,OPTS] ) or die "gzip failed: $GzipError\n"; $z->print($string); $z->printf($format, $string); $z->write($string); $z->syswrite($string [, $length, $offset]); $z->flush(); $z->tell(); $z->eof(); $z->seek($position, $whence); $z->binmode(); $z->fileno(); $z->opened(); $z->autoflush(); $z->input_line_number(); $z->newStream( [OPTS] ); $z->deflateParams(); $z->close() ; $GzipError ; # IO::File mode print $z $string; printf $z $format, $string; tell $z eof $z seek $z, $position, $whence binmode $z fileno $z close $z ; =head1 DESCRIPTION This module provides a Perl interface that allows writing compressed data to files or buffer as defined in RFC 1952. All the gzip headers defined in RFC 1952 can be created using this module. For reading RFC 1952 files/buffers, see the companion module L. =head1 Functional Interface A top-level function, C, is provided to carry out "one-shot" compression between buffers and/or files. For finer control over the compression process, see the L section. use IO::Compress::Gzip qw(gzip $GzipError) ; gzip $input_filename_or_reference => $output_filename_or_reference [,OPTS] or die "gzip failed: $GzipError\n"; The functional interface needs Perl5.005 or better. =head2 gzip $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, C<$input_filename_or_reference> and C<$output_filename_or_reference> and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter The parameter, C<$input_filename_or_reference>, is used to define the source of the uncompressed data. It can take one of the following forms: =over 5 =item A filename If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. =item A filehandle If the C<$input_filename_or_reference> parameter is a filehandle, the input data will be read from it. The string '-' can be used as an alias for standard input. =item A scalar reference If C<$input_filename_or_reference> is a scalar reference, the input data will be read from C<$$input_filename_or_reference>. =item An array reference If C<$input_filename_or_reference> is an array reference, each element in the array must be a filename. The input data will be read from each file in turn. The complete array will be walked to ensure that it only contains valid filenames before any data is compressed. =item An Input FileGlob string If C<$input_filename_or_reference> is a string that is delimited by the characters "<" and ">" C will assume that it is an I. The input is the list of files that match the fileglob. See L for more details. =back If the C<$input_filename_or_reference> parameter is any other type, C will be returned. In addition, if C<$input_filename_or_reference> is a simple filename, the default values for the C and C
argument: my @layer_and_args_and_flags = PerlIO::get_layers($fh, details => 1); The result will be up to be three times the number of layers: the first element will be a name, the second element the arguments (unspecified arguments will be C), the third element the flags, the fourth element a name again, and so forth. B =head1 AUTHOR Nick Ing-Simmons Enick@ing-simmons.netE =head1 SEE ALSO L, L, L, L, L =cut FILEaab145f8/PerlIO/scalar.pmpackage PerlIO::scalar; our $VERSION = '0.32'; 1; __END__ =head1 NAME PerlIO::scalar - in-memory IO, scalar IO =head1 SYNOPSIS my $scalar = ''; ... open my $fh, "<", \$scalar or die; open my $fh, ">", \$scalar or die; open my $fh, ">>", \$scalar or die; or my $scalar = ''; ... open my $fh, "<:scalar", \$scalar or die; open my $fh, ">:scalar", \$scalar or die; open my $fh, ">>:scalar", \$scalar or die; =head1 DESCRIPTION A filehandle is opened but the file operations are performed "in-memory" on a scalar variable. All the normal file operations can be performed on the handle. The scalar is considered a stream of bytes. Currently fileno($fh) returns -1. Attempting to open a read-only scalar for writing will fail, and if warnings are enabled, produce a warning. =head1 IMPLEMENTATION NOTE C only exists as a stub. One does not need to explicitly C. =cut FILE4a50329b/SelectSaver.pm4package SelectSaver; our $VERSION = '1.02'; =head1 NAME SelectSaver - save and restore selected file handle =head1 SYNOPSIS use SelectSaver; { my $saver = SelectSaver->new(FILEHANDLE); # FILEHANDLE is selected } # previous handle is selected { my $saver = SelectSaver->new; # new handle may be selected, or not } # previous handle is selected =head1 DESCRIPTION A C object contains a reference to the file handle that was selected when it was created. If its C method gets an extra parameter, then that parameter is selected; otherwise, the selected file handle remains unchanged. When a C is destroyed, it re-selects the file handle that was selected when it was created. =cut require 5.000; use Carp; use Symbol; sub new { @_ >= 1 && @_ <= 2 or croak 'usage: SelectSaver->new( [FILEHANDLE] )'; my $fh = select; my $self = bless \$fh, $_[0]; select qualify($_[1], caller) if @_ > 1; $self; } sub DESTROY { my $self = $_[0]; select $$self; } 1; FILE477ebe95/Symbol.pm)package Symbol; use strict; use warnings; =head1 NAME Symbol - manipulate Perl symbols and their names =head1 SYNOPSIS use Symbol; $sym = gensym; open($sym, '<', "filename"); $_ = <$sym>; # etc. ungensym $sym; # no effect # replace *FOO{IO} handle but not $FOO, %FOO, etc. *FOO = geniosym; print qualify("x"), "\n"; # "main::x" print qualify("x", "FOO"), "\n"; # "FOO::x" print qualify("BAR::x"), "\n"; # "BAR::x" print qualify("BAR::x", "FOO"), "\n"; # "BAR::x" print qualify("STDOUT", "FOO"), "\n"; # "main::STDOUT" (global) print qualify(\*x), "\n"; # returns \*x print qualify(\*x, "FOO"), "\n"; # returns \*x use strict refs; print { qualify_to_ref $fh } "foo!\n"; $ref = qualify_to_ref $name, $pkg; use Symbol qw(delete_package); delete_package('Foo::Bar'); print "deleted\n" unless exists $Foo::{'Bar::'}; =head1 DESCRIPTION C creates an anonymous glob and returns a reference to it. Such a glob reference can be used as a file or directory handle. For backward compatibility with older implementations that didn't support anonymous globs, C is also provided. But it doesn't do anything. C creates an anonymous IO handle. This can be assigned into an existing glob without affecting the non-IO portions of the glob. C turns unqualified symbol names into qualified variable names (e.g. "myvar" -E "MyPackage::myvar"). If it is given a second parameter, C uses it as the default package; otherwise, it uses the package of its caller. Regardless, global variable names (e.g. "STDOUT", "ENV", "SIG") are always qualified with "main::". Qualification applies only to symbol names (strings). References are left unchanged under the assumption that they are glob references, which are qualified by their nature. C is just like C except that it returns a glob ref rather than a symbol name, so you can use the result even if C is in effect. C wipes out a whole package namespace. Note this routine is not exported by default--you may want to import it explicitly. =head1 BUGS C is a bit too powerful. It undefines every symbol that lives in the specified package. Since perl, for performance reasons, does not perform a symbol table lookup each time a function is called or a global variable is accessed, some code that has already been loaded and that makes use of symbols in package C may stop working after you delete C, even if you reload the C module afterwards. =cut require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(gensym ungensym qualify qualify_to_ref); our @EXPORT_OK = qw(delete_package geniosym); our $VERSION = '1.09'; my $genpkg = "Symbol::"; my $genseq = 0; my %global = map {$_ => 1} qw(ARGV ARGVOUT ENV INC SIG STDERR STDIN STDOUT); # # Note that we never _copy_ the glob; we just make a ref to it. # If we did copy it, then SVf_FAKE would be set on the copy, and # glob-specific behaviors (e.g. C<*$ref = \&func>) wouldn't work. # sub gensym () { my $name = "GEN" . $genseq++; no strict 'refs'; my $ref = \*{$genpkg . $name}; delete $$genpkg{$name}; $ref; } sub geniosym () { my $sym = gensym(); # force the IO slot to be filled select(select $sym); *$sym{IO}; } sub ungensym ($) {} sub qualify ($;$) { my ($name) = @_; if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { my $pkg; # Global names: special character, "^xyz", or other. if ($name =~ /^(([^a-z])|(\^[a-z_]+))\z/i || $global{$name}) { # RGS 2001-11-05 : translate leading ^X to control-char $name =~ s/^\^([a-z_])/'qq(\c'.$1.')'/eei; $pkg = "main"; } else { $pkg = (@_ > 1) ? $_[1] : caller; } $name = $pkg . "::" . $name; } $name; } sub qualify_to_ref ($;$) { no strict 'refs'; return \*{ qualify $_[0], @_ > 1 ? $_[1] : caller }; } # # of Safe.pm lineage # sub delete_package ($) { my $pkg = shift; # expand to full symbol table name if needed unless ($pkg =~ /^main::.*::$/) { $pkg = "main$pkg" if $pkg =~ /^::/; $pkg = "main::$pkg" unless $pkg =~ /^main::/; $pkg .= '::' unless $pkg =~ /::$/; } my($stem, $leaf) = $pkg =~ m/(.*::)(\w+::)$/; no strict 'refs'; my $stem_symtab = *{$stem}{HASH}; return unless defined $stem_symtab and exists $stem_symtab->{$leaf}; # free all the symbols in the package my $leaf_symtab = *{$stem_symtab->{$leaf}}{HASH}; foreach my $name (keys %$leaf_symtab) { undef *{$pkg . $name}; } use strict 'refs'; # delete the symbol table %$leaf_symtab = (); delete $stem_symtab->{$leaf}; } 1; FILE!a90b71ff/Tie/Hash/NamedCapture.pm.use strict; package Tie::Hash::NamedCapture; our $VERSION = "0.13"; __END__ =head1 NAME Tie::Hash::NamedCapture - Named regexp capture buffers =head1 SYNOPSIS tie my %hash, "Tie::Hash::NamedCapture"; # %hash now behaves like %+ tie my %hash, "Tie::Hash::NamedCapture", all => 1; # %hash now access buffers from regexp in $qr like %- =head1 DESCRIPTION This module is used to implement the special hashes C<%+> and C<%->, but it can be used to tie other variables as you choose. When the C parameter is provided, then the tied hash elements will be array refs listing the contents of each capture buffer whose name is the same as the associated hash key. If none of these buffers were involved in the match, the contents of that array ref will be as many C values as there are capture buffers with that name. In other words, the tied hash will behave as C<%->. When the C parameter is omitted or false, then the tied hash elements will be the contents of the leftmost defined buffer with the name of the associated hash key. In other words, the tied hash will behave as C<%+>. The keys of C<%->-like hashes correspond to all buffer names found in the regular expression; the keys of C<%+>-like hashes list only the names of buffers that have captured (and that are thus associated to defined values). This implementation has been moved into the core executable, but you can still load this module for backward compatibility. =head1 SEE ALSO L, L, L, L, L. =cut FILE47a0bad1/Time/Local.pmCxpackage Time::Local; use strict; use Carp (); use Exporter; our $VERSION = '1.35'; use parent 'Exporter'; our @EXPORT = qw( timegm timelocal ); our @EXPORT_OK = qw( timegm_modern timelocal_modern timegm_nocheck timelocal_nocheck timegm_posix timelocal_posix ); my @MonthDays = ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ); # Determine breakpoint for rolling century my $ThisYear = ( localtime() )[5]; my $Breakpoint = ( $ThisYear + 50 ) % 100; my $NextCentury = $ThisYear - $ThisYear % 100; $NextCentury += 100 if $Breakpoint < 50; my $Century = $NextCentury - 100; my $SecOff = 0; my ( %Options, %Cheat ); use constant SECS_PER_MINUTE => 60; use constant SECS_PER_HOUR => 3600; use constant SECS_PER_DAY => 86400; my $MaxDay; if ( $] < 5.012000 ) { require Config; ## no critic (Variables::ProhibitPackageVars) my $MaxInt; if ( $^O eq 'MacOS' ) { # time_t is unsigned... $MaxInt = ( 1 << ( 8 * $Config::Config{ivsize} ) ) - 1; ## no critic qw(ProhibitPackageVars) } else { $MaxInt = ( ( 1 << ( 8 * $Config::Config{ivsize} - 2 ) ) - 1 ) * 2 + 1; ## no critic qw(ProhibitPackageVars) } $MaxDay = int( ( $MaxInt - ( SECS_PER_DAY / 2 ) ) / SECS_PER_DAY ) - 1; } else { # recent localtime()'s limit is the year 2**31 $MaxDay = 365 * ( 2**31 ); # On (some?) 32-bit platforms this overflows and we end up with a negative # $MaxDay, which totally breaks this module. This is the old calculation # we used from the days before Perl always had 64-bit time_t. if ( $MaxDay < 0 ) { require Config; ## no critic (Variables::ProhibitPackageVars) my $max_int = ( ( 1 << ( 8 * $Config::Config{intsize} - 2 ) ) - 1 ) * 2 + 1; $MaxDay = int( ( $max_int - ( SECS_PER_DAY / 2 ) ) / SECS_PER_DAY ) - 1; } } # Determine the EPOC day for this machine my $Epoc = 0; if ( $^O eq 'vos' ) { # work around posix-977 -- VOS doesn't handle dates in the range # 1970-1980. $Epoc = _daygm( 0, 0, 0, 1, 0, 70, 4, 0 ); } elsif ( $^O eq 'MacOS' ) { $MaxDay *= 2; # time_t unsigned ... quick hack? # MacOS time() is seconds since 1 Jan 1904, localtime # so we need to calculate an offset to apply later $Epoc = 693901; $SecOff = timelocal( localtime(0) ) - timelocal( gmtime(0) ); $Epoc += _daygm( gmtime(0) ); } else { $Epoc = _daygm( gmtime(0) ); } %Cheat = (); # clear the cache as epoc has changed sub _daygm { # This is written in such a byzantine way in order to avoid # lexical variables and sub calls, for speed return $_[3] + ( $Cheat{ pack( 'ss', @_[ 4, 5 ] ) } ||= do { my $month = ( $_[4] + 10 ) % 12; my $year = $_[5] + 1900 - int( $month / 10 ); ( ( 365 * $year ) + int( $year / 4 ) - int( $year / 100 ) + int( $year / 400 ) + int( ( ( $month * 306 ) + 5 ) / 10 ) ) - $Epoc; } ); } sub _timegm { my $sec = $SecOff + $_[0] + ( SECS_PER_MINUTE * $_[1] ) + ( SECS_PER_HOUR * $_[2] ); return $sec + ( SECS_PER_DAY * &_daygm ); } sub timegm { my ( $sec, $min, $hour, $mday, $month, $year ) = @_; my $subsec = $sec - int($sec); $sec = int($sec); if ( $Options{no_year_munging} ) { $year -= 1900; } elsif ( !$Options{posix_year} ) { if ( $year >= 1000 ) { $year -= 1900; } elsif ( $year < 100 and $year >= 0 ) { $year += ( $year > $Breakpoint ) ? $Century : $NextCentury; } } unless ( $Options{no_range_check} ) { Carp::croak("Month '$month' out of range 0..11") if $month > 11 or $month < 0; my $md = $MonthDays[$month]; ++$md if $month == 1 && _is_leap_year( $year + 1900 ); Carp::croak("Day '$mday' out of range 1..$md") if $mday > $md or $mday < 1; Carp::croak("Hour '$hour' out of range 0..23") if $hour > 23 or $hour < 0; Carp::croak("Minute '$min' out of range 0..59") if $min > 59 or $min < 0; Carp::croak("Second '$sec' out of range 0..59") if $sec >= 60 or $sec < 0; } my $days = _daygm( undef, undef, undef, $mday, $month, $year ); if ( abs($days) > $MaxDay && !$Options{no_range_check} ) { my $msg = "Day too big - abs($days) > $MaxDay\n"; $year += 1900; $msg .= "Cannot handle date ($sec, $min, $hour, $mday, $month, $year)"; Carp::croak($msg); } # Adding in the $subsec value last seems to prevent floating point errors # from creeping in. return ( ( $sec + $SecOff + ( SECS_PER_MINUTE * $min ) + ( SECS_PER_HOUR * $hour ) + ( SECS_PER_DAY * $days ) ) + $subsec ); } sub _is_leap_year { return 0 if $_[0] % 4; return 1 if $_[0] % 100; return 0 if $_[0] % 400; return 1; } sub timegm_nocheck { local $Options{no_range_check} = 1; return &timegm; } sub timegm_modern { local $Options{no_year_munging} = 1; return &timegm; } sub timegm_posix { local $Options{posix_year} = 1; return &timegm; } sub timelocal { my $sec = shift; my $subsec = $sec - int($sec); $sec = int($sec); unshift @_, $sec; my $ref_t = &timegm; my $loc_for_ref_t = _timegm( localtime($ref_t) ); my $zone_off = $loc_for_ref_t - $ref_t or return $loc_for_ref_t + $subsec; # Adjust for timezone my $loc_t = $ref_t - $zone_off; # Are we close to a DST change or are we done my $dst_off = $ref_t - _timegm( localtime($loc_t) ); # If this evaluates to true, it means that the value in $loc_t is # the _second_ hour after a DST change where the local time moves # backward. if ( !$dst_off && ( ( $ref_t - SECS_PER_HOUR ) - _timegm( localtime( $loc_t - SECS_PER_HOUR ) ) < 0 ) ) { return ( $loc_t - SECS_PER_HOUR ) + $subsec; } # Adjust for DST change $loc_t += $dst_off; return $loc_t + $subsec if $dst_off > 0; # If the original date was a non-existent gap in a forward DST jump, we # should now have the wrong answer - undo the DST adjustment my ( $s, $m, $h ) = localtime($loc_t); $loc_t -= $dst_off if $s != $_[0] || $m != $_[1] || $h != $_[2]; return $loc_t + $subsec; } sub timelocal_nocheck { local $Options{no_range_check} = 1; return &timelocal; } sub timelocal_modern { local $Options{no_year_munging} = 1; return &timelocal; } sub timelocal_posix { local $Options{posix_year} = 1; return &timelocal; } 1; # ABSTRACT: Efficiently compute time from local and GMT time __END__ =pod =encoding UTF-8 =head1 NAME Time::Local - Efficiently compute time from local and GMT time =head1 VERSION version 1.35 =head1 SYNOPSIS use Time::Local qw( timelocal_posix timegm_posix ); my $time = timelocal_posix( $sec, $min, $hour, $mday, $mon, $year ); my $time = timegm_posix( $sec, $min, $hour, $mday, $mon, $year ); =head1 DESCRIPTION This module provides functions that are the inverse of built-in perl functions C and C. They accept a date as a six-element array, and return the corresponding C value in seconds since the system epoch (Midnight, January 1, 1970 GMT on Unix, for example). This value can be positive or negative, though POSIX only requires support for positive values, so dates before the system's epoch may not work on all operating systems. It is worth drawing particular attention to the expected ranges for the values provided. The value for the day of the month is the actual day (i.e. 1..31), while the month is the number of months since January (0..11). This is consistent with the values returned from C and C. =head1 FUNCTIONS =head2 C and C I These functions are the exact inverse of Perl's built-in C and C functions. That means that calling C<< timelocal_posix( localtime($value) ) >> will always give you the same C<$value> you started with. The same applies to C<< timegm_posix( gmtime($value) ) >>. The one exception is when the value returned from C represents an ambiguous local time because of a DST change. See the documentation below for more details. These functions expect the year value to be the number of years since 1900, which is what the C and C built-ins returns. They perform range checking by default on the input C<$sec>, C<$min>, C<$hour>, C<$mday>, and C<$mon> values and will croak (using C) if given a value outside the allowed ranges. While it would be nice to make this the default behavior, that would almost certainly break a lot of code, so you must explicitly import these functions and use them instead of the default C and C. You are B encouraged to use these functions in any new code which uses this module. It will almost certainly make your code's behavior less surprising. =head2 C and C I When C was first written, it was a common practice to represent years as a two-digit value like C<99> for C<1999> or C<1> for C<2001>. This caused all sorts of problems (google "Y2K problem" if you're very young) and developers eventually realized that this was a terrible idea. The default exports of C and C do a complicated calculation when given a year value less than 1000. This leads to surprising results in many cases. See L for details. The C functions do not do this year munging and simply take the year value as provided. They perform range checking by default on the input C<$sec>, C<$min>, C<$hour>, C<$mday>, and C<$mon> values and will croak (using C) if given a value outside the allowed ranges. =head2 C and C This module exports two functions by default, C and C. They perform range checking by default on the input C<$sec>, C<$min>, C<$hour>, C<$mday>, and C<$mon> values and will croak (using C) if given a value outside the allowed ranges. B or C<*_modern> functions if possible.> =head2 C and C If you are working with data you know to be valid, you can use the "nocheck" variants, C and C. These variants must be explicitly imported. If you supply data which is not valid (month 27, second 1,000) the results will be unpredictable (so don't do that). Note that my benchmarks show that this is just a 3% speed increase over the checked versions, so unless calling C is the hottest spot in your application, using these nocheck variants is unlikely to have much impact on your application. =head2 Year Value Interpretation B or C<*_modern> functions. Use those exports if you want to ensure consistent behavior as your code ages.> Strictly speaking, the year should be specified in a form consistent with C, i.e. the offset from 1900. In order to make the interpretation of the year easier for humans, however, who are more accustomed to seeing years as two-digit or four-digit values, the following conventions are followed: =over 4 =item * Years greater than 999 are interpreted as being the actual year, rather than the offset from 1900. Thus, 1964 would indicate the year Martin Luther King won the Nobel prize, not the year 3864. =item * Years in the range 100..999 are interpreted as offset from 1900, so that 112 indicates 2012. This rule also applies to years less than zero (but see note below regarding date range). =item * Years in the range 0..99 are interpreted as shorthand for years in the rolling "current century," defined as 50 years on either side of the current year. Thus, today, in 1999, 0 would refer to 2000, and 45 to 2045, but 55 would refer to 1955. Twenty years from now, 55 would instead refer to 2055. This is messy, but matches the way people currently think about two digit dates. Whenever possible, use an absolute four digit year instead. =back The scheme above allows interpretation of a wide range of dates, particularly if 4-digit years are used. But it also means that the behavior of your code changes as time passes, because the rolling "current century" changes each year. =head2 Limits of time_t On perl versions older than 5.12.0, the range of dates that can be actually be handled depends on the size of C (usually a signed integer) on the given platform. Currently, this is 32 bits for most systems, yielding an approximate range from Dec 1901 to Jan 2038. Both C and C croak if given dates outside the supported range. As of version 5.12.0, perl has stopped using the time implementation of the operating system it's running on. Instead, it has its own implementation of those routines with a safe range of at least +/- 2**52 (about 142 million years) =head2 Ambiguous Local Times (DST) Because of DST changes, there are many time zones where the same local time occurs for two different GMT times on the same day. For example, in the "Europe/Paris" time zone, the local time of 2001-10-28 02:30:00 can represent either 2001-10-28 00:30:00 GMT, B 2001-10-28 01:30:00 GMT. When given an ambiguous local time, the timelocal() function will always return the epoch for the I of the two possible GMT times. =head2 Non-Existent Local Times (DST) When a DST change causes a locale clock to skip one hour forward, there will be an hour's worth of local times that don't exist. Again, for the "Europe/Paris" time zone, the local clock jumped from 2001-03-25 01:59:59 to 2001-03-25 03:00:00. If the C function is given a non-existent local time, it will simply return an epoch value for the time one hour later. =head2 Negative Epoch Values On perl version 5.12.0 and newer, negative epoch values are fully supported. On older versions of perl, negative epoch (C) values, which are not officially supported by the POSIX standards, are known not to work on some systems. These include MacOS (pre-OSX) and Win32. On systems which do support negative epoch values, this module should be able to cope with dates before the start of the epoch, down the minimum value of time_t for the system. =head1 IMPLEMENTATION These routines are quite efficient and yet are always guaranteed to agree with C and C. We manage this by caching the start times of any months we've seen before. If we know the start time of the month, we can always calculate any time within the month. The start times are calculated using a mathematical formula. Unlike other algorithms that do multiple calls to C. The C function is implemented using the same cache. We just assume that we're translating a GMT time, and then fudge it when we're done for the timezone and daylight savings arguments. Note that the timezone is evaluated for each date because countries occasionally change their official timezones. Assuming that C corrects for these changes, this routine will also be correct. =head1 AUTHORS EMERITUS This module is based on a Perl 4 library, timelocal.pl, that was included with Perl 4.036, and was most likely written by Tom Christiansen. The current version was written by Graham Barr. =head1 BUGS The whole scheme for interpreting two-digit years can be considered a bug. Bugs may be submitted at L. There is a mailing list available for users of this distribution, L. =head1 SOURCE The source code repository for Time-Local can be found at L. =head1 AUTHOR Dave Rolsky =head1 CONTRIBUTORS =for stopwords Florian Ragwitz Gregory Oschwald J. Nick Koston Tom Wyant Unknown =over 4 =item * Florian Ragwitz =item * Gregory Oschwald =item * J. Nick Koston =item * Tom Wyant =item * Unknown =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 1997 - 2023 by Graham Barr & Dave Rolsky. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. The full text of the license can be found in the F file included with this distribution. =cut FILE43d8bfb2/XSLoader.pm,# Generated from XSLoader_pm.PL (resolved %Config::Config value) # This file is unique for every OS use strict; no strict 'refs'; package XSLoader; our $VERSION = "0.32"; # remember to update version in POD! package DynaLoader; # No prizes for guessing why we don't say 'bootstrap DynaLoader;' here. # NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) && !defined(&dl_error); package XSLoader; sub load { package DynaLoader; my ($caller, $modlibname) = caller(); my $module = $caller; if (@_) { $module = $_[0]; } else { $_[0] = $module; } # work with static linking too my $boots = "$module\::bootstrap"; goto &$boots if defined &$boots; goto \&XSLoader::bootstrap_inherit; my @modparts = split(/::/,$module); my $modfname = $modparts[-1]; my $modfname_orig = $modfname; # For .bs file search my $modpname = join('/',@modparts); my $c = () = split(/::/,$caller,-1); $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename # Does this look like a relative path? if ($modlibname !~ m{^/}) { # Someone may have a #line directive that changes the file name, or # may be calling XSLoader::load from inside a string eval. We cer- # tainly do not want to go loading some code that is not in @INC, # as it could be untrusted. # # We could just fall back to DynaLoader here, but then the rest of # this function would go untested in the perl core, since all @INC # paths are relative during testing. That would be a time bomb # waiting to happen, since bugs could be introduced into the code. # # So look through @INC to see if $modlibname is in it. A rela- # tive $modlibname is not a common occurrence, so this block is # not hot code. FOUND: { for (@INC) { if ($_ eq $modlibname) { last FOUND; } } # Not found. Fall back to DynaLoader. goto \&XSLoader::bootstrap_inherit; } } my $file = "$modlibname/auto/$modpname/$modfname.bundle"; # print STDERR "XSLoader::load for $module ($file)\n" if $dl_debug; # N.B. The .bs file does not following the naming convention used # by mod2fname, so use the unedited version of the name. my $bs = "$modlibname/auto/$modpname/$modfname_orig.bs"; # This calls DynaLoader::bootstrap, which will load the .bs file if present goto \&XSLoader::bootstrap_inherit if not -f $file or -s $bs; my $bootname = "boot_$module"; $bootname =~ s/\W/_/g; @DynaLoader::dl_require_symbols = ($bootname); my $boot_symbol_ref; if ($boot_symbol_ref = dl_find_symbol( 0, $bootname )) { goto boot; #extension library has already been loaded, e.g. darwin } # Many dynamic extension loading problems will appear to come from # this section of code: XYZ failed at line 123 of DynaLoader.pm. # Often these errors are actually occurring in the initialisation # C code of the extension XS file. Perl reports the error as being # in this perl code simply because this was the last perl code # it executed. my $libref = dl_load_file($file, 0) or do { require Carp; Carp::croak("Can't load '$file' for module $module: " . dl_error()); }; push(@DynaLoader::dl_librefs,$libref); # record loaded object $boot_symbol_ref = dl_find_symbol($libref, $bootname) or do { require Carp; Carp::croak("Can't find '$bootname' symbol in $file\n"); }; push(@DynaLoader::dl_modules, $module); # record loaded module boot: my $xs = dl_install_xsub($boots, $boot_symbol_ref, $file); # See comment block above push(@DynaLoader::dl_shared_objects, $file); # record files loaded return &$xs(@_); } # Can't test with DynaLoader->can('bootstrap_inherit') when building in the # core, as XSLoader gets built before DynaLoader. sub bootstrap_inherit { require DynaLoader; goto \&DynaLoader::bootstrap_inherit; } 1; __END__ =head1 NAME XSLoader - Dynamically load C libraries into Perl code =head1 VERSION Version 0.32 =head1 SYNOPSIS package YourPackage; require XSLoader; XSLoader::load(__PACKAGE__, $VERSION); =head1 DESCRIPTION This module defines a standard I interface to the dynamic linking mechanisms available on many platforms. Its primary purpose is to implement cheap automatic dynamic loading of Perl modules. For a more complicated interface, see L. Many (most) features of C are not implemented in C, like for example the C, not honored by C. =head2 Migration from C A typical module using L starts like this: package YourPackage; require DynaLoader; our @ISA = qw( OnePackage OtherPackage DynaLoader ); our $VERSION = '0.01'; __PACKAGE__->bootstrap($VERSION); Change this to package YourPackage; use XSLoader; our @ISA = qw( OnePackage OtherPackage ); our $VERSION = '0.01'; XSLoader::load(__PACKAGE__, $VERSION); In other words: replace C by C, remove C from C<@ISA>, change C by C. Do not forget to quote the name of your package on the C line, and add comma (C<,>) before the arguments (C<$VERSION> above). Of course, if C<@ISA> contained only C, there is no need to have the C<@ISA> assignment at all; moreover, if instead of C one uses the more backward-compatible use vars qw($VERSION @ISA); one can remove this reference to C<@ISA> together with the C<@ISA> assignment. If no C<$VERSION> was specified on the C line, the last line becomes XSLoader::load(__PACKAGE__); in which case it can be further simplified to XSLoader::load(); as C will use C to determine the package. =head2 Backward compatible boilerplate If you want to have your cake and eat it too, you need a more complicated boilerplate. package YourPackage; our @ISA = qw( OnePackage OtherPackage ); our $VERSION = '0.01'; eval { require XSLoader; XSLoader::load(__PACKAGE__, $VERSION); 1; } or do { require DynaLoader; push @ISA, 'DynaLoader'; __PACKAGE__->bootstrap($VERSION); }; The parentheses about C arguments are needed since we replaced C by C, so the compiler does not know that a function C is present. This boilerplate uses the low-overhead C if present; if used with an antique Perl which has no C, it falls back to using C. =head1 Order of initialization: early load() I section in your XS file (see L). What is described here is equally applicable to the L interface.> A sufficiently complicated module using XS would have both Perl code (defined in F) and XS code (defined in F). If this Perl code makes calls into this XS code, and/or this XS code makes calls to the Perl code, one should be careful with the order of initialization. The call to C (or C) calls the module's bootstrap code. For modules build by F (nearly all modules) this has three side effects: =over =item * A sanity check is done to ensure that the versions of the F<.pm> and the (compiled) F<.xs> parts are compatible. If C<$VERSION> was specified, this is used for the check. If not specified, it defaults to C<$XS_VERSION // $VERSION> (in the module's namespace) =item * the XSUBs are made accessible from Perl =item * if a C section was present in the F<.xs> file, the code there is called. =back Consequently, if the code in the F<.pm> file makes calls to these XSUBs, it is convenient to have XSUBs installed before the Perl code is defined; for example, this makes prototypes for XSUBs visible to this Perl code. Alternatively, if the C section makes calls to Perl functions (or uses Perl variables) defined in the F<.pm> file, they must be defined prior to the call to C (or C). The first situation being much more frequent, it makes sense to rewrite the boilerplate as package YourPackage; use XSLoader; our ($VERSION, @ISA); BEGIN { @ISA = qw( OnePackage OtherPackage ); $VERSION = '0.01'; # Put Perl code used in the BOOT: section here XSLoader::load(__PACKAGE__, $VERSION); } # Put Perl code making calls into XSUBs here =head2 The most hairy case If the interdependence of your C section and Perl code is more complicated than this (e.g., the C section makes calls to Perl functions which make calls to XSUBs with prototypes), get rid of the C section altogether. Replace it with a function C, and call it like this: package YourPackage; use XSLoader; our ($VERSION, @ISA); BEGIN { @ISA = qw( OnePackage OtherPackage ); $VERSION = '0.01'; XSLoader::load(__PACKAGE__, $VERSION); } # Put Perl code used in onBOOT() function here; calls to XSUBs are # prototype-checked. onBOOT; # Put Perl initialization code assuming that XS is initialized here =head1 DIAGNOSTICS =over =item C B<(F)> The bootstrap symbol could not be found in the extension module. =item C B<(F)> The loading or initialisation of the extension module failed. The detailed error follows. =item C B<(W)> As the message says, some symbols stay undefined although the extension module was correctly loaded and initialised. The list of undefined symbols follows. =back =head1 LIMITATIONS To reduce the overhead as much as possible, only one possible location is checked to find the extension DLL (this location is where C would put the DLL). If not found, the search for the DLL is transparently delegated to C, which looks for the DLL along the C<@INC> list. In particular, this is applicable to the structure of C<@INC> used for testing not-yet-installed extensions. This means that running uninstalled extensions may have much more overhead than running the same extensions after C. =head1 KNOWN BUGS The new simpler way to call C with no arguments at all does not work on Perl 5.8.4 and 5.8.5. =head1 BUGS Please report any bugs or feature requests via the perlbug(1) utility. =head1 SEE ALSO L =head1 AUTHORS Ilya Zakharevich originally extracted C from C. CPAN version is currently maintained by SEbastien Aperghis-Tramoni Esebastien@aperghis.netE. Previous maintainer was Michael G Schwern . =head1 COPYRIGHT & LICENSE Copyright (C) 1990-2011 by Larry Wall and others. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut FILE65b9a8f7/base.pm*use 5.008; package base; use strict 'vars'; our $VERSION = '2.27'; $VERSION =~ tr/_//d; # simplest way to avoid indexing of the package: no package statement sub base::__inc::unhook { @INC = grep !(ref eq 'CODE' && $_ == $_[0]), @INC } # instance is blessed array of coderefs to be removed from @INC at scope exit sub base::__inc::scope_guard::DESTROY { base::__inc::unhook $_ for @{$_[0]} } # constant.pm is slow sub SUCCESS () { 1 } sub PUBLIC () { 2**0 } sub PRIVATE () { 2**1 } sub INHERITED () { 2**2 } sub PROTECTED () { 2**3 } my $Fattr = \%fields::attr; sub has_fields { my($base) = shift; my $fglob = ${"$base\::"}{FIELDS}; return( ($fglob && 'GLOB' eq ref($fglob) && *$fglob{HASH}) ? 1 : 0 ); } sub has_attr { my($proto) = shift; my($class) = ref $proto || $proto; return exists $Fattr->{$class}; } sub get_attr { $Fattr->{$_[0]} = [1] unless $Fattr->{$_[0]}; return $Fattr->{$_[0]}; } if ($] < 5.009) { *get_fields = sub { # Shut up a possible typo warning. () = \%{$_[0].'::FIELDS'}; my $f = \%{$_[0].'::FIELDS'}; # should be centralized in fields? perhaps # fields::mk_FIELDS_be_OK. Peh. As long as %{ $package . '::FIELDS' } # is used here anyway, it doesn't matter. bless $f, 'pseudohash' if (ref($f) ne 'pseudohash'); return $f; } } else { *get_fields = sub { # Shut up a possible typo warning. () = \%{$_[0].'::FIELDS'}; return \%{$_[0].'::FIELDS'}; } } if ($] < 5.008) { *_module_to_filename = sub { (my $fn = $_[0]) =~ s!::!/!g; $fn .= '.pm'; return $fn; } } else { *_module_to_filename = sub { (my $fn = $_[0]) =~ s!::!/!g; $fn .= '.pm'; utf8::encode($fn); return $fn; } } sub import { my $class = shift; return SUCCESS unless @_; # List of base classes from which we will inherit %FIELDS. my $fields_base; my $inheritor = caller(0); my @bases; foreach my $base (@_) { if ( $inheritor eq $base ) { warn "Class '$inheritor' tried to inherit from itself\n"; } next if grep $_->isa($base), ($inheritor, @bases); # Following blocks help isolate $SIG{__DIE__} and @INC changes { my $sigdie; { local $SIG{__DIE__}; my $fn = _module_to_filename($base); my $dot_hidden; eval { my $guard; if ($INC[-1] eq '.' && %{"$base\::"}) { # So: the package already exists => this an optional load # And: there is a dot at the end of @INC => we want to hide it # However: we only want to hide it during our *own* require() # (i.e. without affecting nested require()s). # So we add a hook to @INC whose job is to hide the dot, but which # first checks checks the callstack depth, because within nested # require()s the callstack is deeper. # Since CORE::GLOBAL::require makes it unknowable in advance what # the exact relevant callstack depth will be, we have to record it # inside a hook. So we put another hook just for that at the front # of @INC, where it's guaranteed to run -- immediately. # The dot-hiding hook does its job by sitting directly in front of # the dot and removing itself from @INC when reached. This causes # the dot to move up one index in @INC, causing the loop inside # pp_require() to skip it. # Loaded coded may disturb this precise arrangement, but that's OK # because the hook is inert by that time. It is only active during # the top-level require(), when @INC is in our control. The only # possible gotcha is if other hooks already in @INC modify @INC in # some way during that initial require(). # Note that this jiggery hookery works just fine recursively: if # a module loaded via base.pm uses base.pm itself, there will be # one pair of hooks in @INC per base::import call frame, but the # pairs from different nestings do not interfere with each other. my $lvl; unshift @INC, sub { return if defined $lvl; 1 while defined caller ++$lvl; () }; splice @INC, -1, 0, sub { return if defined caller $lvl; ++$dot_hidden, &base::__inc::unhook; () }; $guard = bless [ @INC[0,-2] ], 'base::__inc::scope_guard'; } require $fn }; if ($dot_hidden && (my @fn = grep -e && !( -d _ || -b _ ), $fn.'c', $fn)) { require Carp; Carp::croak(<]*> (?:line|chunk) [0-9]+)?\.\n\z/s || $@ =~ /Compilation failed in require at .* line [0-9]+(?:, <[^>]*> (?:line|chunk) [0-9]+)?\.\n\z/; unless (%{"$base\::"}) { require Carp; local $" = " "; Carp::croak(<[0] = @$battr; if( keys %$dfields ) { warn <<"END"; $derived is inheriting from $base but already has its own fields! This will cause problems. Be sure you use base BEFORE declaring fields. END } # Iterate through the base's fields adding all the non-private # ones to the derived class. Hang on to the original attribute # (Public, Private, etc...) and add Inherited. # This is all too complicated to do efficiently with add_fields(). while (my($k,$v) = each %$bfields) { my $fno; if ($fno = $dfields->{$k} and $fno != $v) { require Carp; Carp::croak ("Inherited fields can't override existing fields"); } if( $battr->[$v] & PRIVATE ) { $dattr->[$v] = PRIVATE | INHERITED; } else { $dattr->[$v] = INHERITED | $battr->[$v]; $dfields->{$k} = $v; } } foreach my $idx (1..$#{$battr}) { next if defined $dattr->[$idx]; $dattr->[$idx] = $battr->[$idx] & INHERITED; } } 1; __END__ =head1 NAME base - Establish an ISA relationship with base classes at compile time =head1 SYNOPSIS package Baz; use base qw(Foo Bar); =head1 DESCRIPTION Unless you are using the C pragma, consider this module discouraged in favor of the lighter-weight C. Allows you to both load one or more modules, while setting up inheritance from those modules at the same time. Roughly similar in effect to package Baz; BEGIN { require Foo; require Bar; push @ISA, qw(Foo Bar); } When C tries to C a module, it will not die if it cannot find the module's file, but will die on any other error. After all this, should your base class be empty, containing no symbols, C will die. This is useful for inheriting from classes in the same file as yourself but where the filename does not match the base module name, like so: # in Bar.pm package Foo; sub exclaim { "I can have such a thing?!" } package Bar; use base "Foo"; There is no F, but because C defines a symbol (the C subroutine), C will not die when the C fails to load F. C will also initialize the fields if one of the base classes has it. Multiple inheritance of fields is B supported, if two or more base classes each have inheritable fields the 'base' pragma will croak. See L for a description of this feature. The base class' C method is B called. =head1 DIAGNOSTICS =over 4 =item Base class package "%s" is empty. base.pm was unable to require the base package, because it was not found in your path. =item Class 'Foo' tried to inherit from itself Attempting to inherit from yourself generates a warning. package Foo; use base 'Foo'; =back =head1 HISTORY This module was introduced with Perl 5.004_04. =head1 CAVEATS Due to the limitations of the implementation, you must use base I you declare any of your own fields. =head1 SEE ALSO L =cut FILE4b3cab84/builtin.pm>package builtin 0.019; use v5.40; # All code, including &import, is implemented by always-present # functions in the perl interpreter itself. # See also `builtin.c` in perl source __END__ =head1 NAME builtin - Perl pragma to import built-in utility functions =head1 SYNOPSIS use builtin qw( true false is_bool inf nan weaken unweaken is_weak blessed refaddr reftype created_as_string created_as_number stringify ceil floor indexed trim is_tainted export_lexically load_module ); use builtin ':5.40'; # most of the above =head1 DESCRIPTION Perl provides several utility functions in the C package. These are plain functions, and look and behave just like regular user-defined functions do. They do not provide new syntax or require special parsing. These functions are always present in the interpreter and can be called at any time by their fully-qualified names. By default they are not available as short names, but can be requested for convenience. Individual named functions can be imported by listing them as import parameters on the C statement for this pragma. The L module from CPAN provides versions of many of these functions that can be used on Perl versions where C or specific functions are not yet available. B: At present, many of the functions in the C namespace are experimental. Calling them will trigger warnings of the C category. =head2 Lexical Import This pragma module creates I aliases in the currently-compiling scope to these builtin functions. This is similar to the lexical effect of other pragmas such as L and L. sub classify { my $val = shift; use builtin 'is_bool'; return is_bool($val) ? "boolean" : "not a boolean"; } # the is_bool() function is no longer visible here # but may still be called by builtin::is_bool() Because these functions are imported lexically, rather than by package symbols, the user does not need to take any special measures to ensure they don't accidentally appear as object methods from a class. package An::Object::Class { use builtin 'true', 'false'; ... } # does not appear as a method An::Object::Class->true; # Can't locate object method "true" via package "An::Object::Class" # at ... Once imported, a lexical function is much like any other lexical symbol (such as a variable) in that it cannot be removed again. If you wish to limit the visiblity of an imported C function, put it inside its own scope: { use builtin 'refaddr'; ... } =head2 Version Bundles The entire set of builtin functions that were considered non-experimental by a version of perl can be imported all at once, by requesting a version bundle. This is done by giving the perl release version (without its subversion suffix) after a colon character: use builtin ':5.40'; The following bundles currently exist: Version Includes ------- -------- :5.40 true false weaken unweaken is_weak blessed refaddr reftype ceil floor is_tainted trim indexed =head2 Function Optimisations There are a number of optimisations that apply to functions in the L package. If you replace or override these functions (such as by assignment into glob references) the optimisations may not take effect. Do so with caution. =head1 FUNCTIONS =head2 true $val = true; Returns the boolean truth value. While any scalar value can be tested for truth and most defined, non-empty and non-zero values are considered "true" by perl, this one is special in that L considers it to be a distinguished boolean value. This gives an equivalent value to expressions like C or C. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 false $val = false; Returns the boolean false value. While any non-true scalar value is considered "false" by perl, this one is special in that L considers it to be a distinguished boolean value. This gives an equivalent value to expressions like C or C. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 is_bool $bool = is_bool($val); This function is currently B. Returns true when given a distinguished boolean value, or false if not. A distinguished boolean value is the result of any boolean-returning builtin function (such as C or C itself), boolean-returning operator (such as the C or C<==> comparison tests or the C negation operator), or any variable containing one of these results. This function used to be named C. A compatibility alias is provided currently but will be removed in a later version. Available starting with Perl 5.36. =head2 inf $num = inf; This function is currently B. Returns the floating-point infinity value. If the underlying numeric C type does not support such a value, it throws a runtime error instead. Available starting with Perl 5.40. =head2 nan $num = nan; This function is currently B. Returns the floating-point "Not-a-Number" value. If the underlying numeric C type does not support such a value, it throws a runtime error instead. Available starting with Perl 5.40. =head2 weaken weaken($ref); Weakens a reference. A weakened reference does not contribute to the reference count of its referent. If only weakened references to a referent remain, it will be disposed of, and all remaining weak references to it will have their value set to C. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 unweaken unweaken($ref); Strengthens a reference, undoing the effects of a previous call to L. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 is_weak $bool = is_weak($ref); Returns true when given a weakened reference, or false if not a reference or not weak. This function used to be named C. A compatibility alias is provided currently but will be removed in a later version. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 blessed $str = blessed($ref); Returns the package name for an object reference, or C for a non-reference or reference that is not an object. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 refaddr $num = refaddr($ref); Returns the memory address for a reference, or C for a non-reference. This value is not likely to be very useful for pure Perl code, but is handy as a means to test for referential identity or uniqueness. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 reftype $str = reftype($ref); Returns the basic container type of the referent of a reference, or C for a non-reference. This is returned as a string in all-capitals, such as C for array references, or C for hash references. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 created_as_string $bool = created_as_string($val); This function is currently B. Returns a boolean representing if the argument value was originally created as a string. It will return true for any scalar expression whose most recent assignment or modification was of a string-like nature - such as assignment from a string literal, or the result of a string operation such as concatenation or regexp. It will return false for references (including any object), numbers, booleans and undef. It is unlikely that you will want to use this for regular data validation within Perl, as it will not return true for regular numbers that are still perfectly usable as strings, nor for any object reference - especially objects that overload the stringification operator in an attempt to behave more like strings. For example my $val = URI->new( "https://metacpan.org/" ); if( created_as_string $val ) { ... } # this will not execute Available starting with Perl 5.36. =head2 created_as_number $bool = created_as_number($val); This function is currently B. Returns a boolean representing if the argument value was originally created as a number. It will return true for any scalar expression whose most recent assignment or modification was of a numerical nature - such as assignment from a number literal, or the result of a numerical operation such as addition. It will return false for references (including any object), strings, booleans and undef. It is unlikely that you will want to use this for regular data validation within Perl, as it will not return true for regular strings of decimal digits that are still perfectly usable as numbers, nor for any object reference - especially objects that overload the numification operator in an attempt to behave more like numbers. For example my $val = Math::BigInt->new( 123 ); if( created_as_number $val ) { ... } # this will not execute While most Perl code should operate on scalar values without needing to know their creation history, these two functions are intended to be used by data serialisation modules such as JSON encoders or similar situations, where language interoperability concerns require making a distinction between values that are fundamentally stringlike versus numberlike in nature. Available starting with Perl 5.36. =head2 stringify $str = stringify($val); This function is currently B. Returns a new plain perl string that represents the given argument. When given a value that is already a string, a copy of this value is returned unchanged. False booleans are treated like the empty string. Numbers are turned into a decimal representation. True booleans are treated like the number 1. References to objects in classes that have L and define the C<""> overload entry will use the delegated method to provide a value here. Non-object references, or references to objects in classes without a C<""> overload will return a string that names the underlying container type of the reference, its memory address, and possibly its class name if it is an object. Available starting with Perl 5.40. =head2 ceil $num = ceil($num); Returns the smallest integer value greater than or equal to the given numerical argument. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 floor $num = floor($num); Returns the largest integer value less than or equal to the given numerical argument. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 indexed @ivpairs = indexed(@items) Returns an even-sized list of number/value pairs, where each pair is formed of a number giving an index in the original list followed by the value at that position in it. I.e. returns a list twice the size of the original, being equal to (0, $items[0], 1, $items[1], 2, $items[2], ...) Note that unlike the core C function, this function returns copies of its original arguments, not aliases to them. Any modifications of these copies are I reflected in modifications to the original. my @x = ...; $_++ for indexed @x; # The @x array remains unaffected This function is primarily intended to be useful combined with multi-variable C loop syntax; as foreach my ($index, $value) (indexed LIST) { ... } In scalar context this function returns the size of the list that it would otherwise have returned, and provokes a warning in the C category. Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 trim $stripped = trim($string); Returns the input string with whitespace stripped from the beginning and end. trim() will remove these characters: " ", an ordinary space. "\t", a tab. "\n", a new line (line feed). "\r", a carriage return. and all other Unicode characters that are flagged as whitespace. A complete list is in L. $var = " Hello world "; # "Hello world" $var = "\t\t\tHello world"; # "Hello world" $var = "Hello world\n"; # "Hello world" $var = "\x{2028}Hello world\x{3000}"; # "Hello world" C is equivalent to: my $trimmed = $str =~ s/\A\s+//ur =~ s/\s+\z//ur; Available starting with Perl 5.36. Since Perl 5.40, it is no longer experimental and it is included in the 5.40 and higher builtin version bundles. =head2 is_tainted $bool = is_tainted($var); Returns true when given a tainted variable. Available starting with Perl 5.38. =head2 export_lexically export_lexically($name1, $ref1, $name2, $ref2, ...) This function is currently B. Exports new lexical names into the scope currently being compiled. Names given by the first of each pair of values will refer to the corresponding item whose reference is given by the second. Types of item that are permitted are subroutines, and scalar, array, and hash variables. If the item is a subroutine, the name may optionally be prefixed with the C<&> sigil, but for convenience it doesn't have to. For items that are variables the sigil is required, and must match the type of the variable. export_lexically func => \&func, '&func' => \&func; # same as above export_lexically '$scalar' => \my $var; Z<> # The following are not permitted export_lexically '$var' => \@arr; # sigil does not match export_lexically name => \$scalar; # implied '&' sigil does not match export_lexically '*name' => \*globref; # globrefs are not supported This must be called at compile time; which typically means during a C block. Usually this would be used as part of an C method of a module, when invoked as part of a C statement. Available starting with Perl 5.38. =head2 load_module load_module($module_name); This function is currently B. Loads a named module from the inclusion paths (C<@INC>). C<$module_name> must be a string that provides a module name. It cannot be omitted, and providing an invalid module name will result in an exception. Not providing any argument results in a compilation error. Returns the loaded module's name on success. The effect of C-ing a module is mostly the same as C-ing, down to the same error conditions when the module does not exist, does not compile, or does not evaluate to a true value. See also L feature|feature/"The 'module_true' feature">. C can't be used to require a particular version of Perl, nor can it be given a bareword module name as an argument. Available starting with Perl 5.40. =head1 SEE ALSO L, L, L, L FILE9d46b03d/bytes.pmpackage bytes 1.09; use v5.38; BEGIN { $bytes::hint_bits = 0x0000_0008 } sub import { $^H |= $bytes::hint_bits } sub unimport { $^H &= ~$bytes::hint_bits } sub chr :prototype(_) { BEGIN { import() } &CORE::chr } sub index :prototype($$;$) { BEGIN { import() } &CORE::index } sub length :prototype(_) { BEGIN { import() } &CORE::length } sub ord :prototype(_) { BEGIN { import() } &CORE::ord } sub rindex :prototype($$;$) { BEGIN { import() } &CORE::rindex } sub substr :prototype($$;$$) { BEGIN { import() } &CORE::substr } __END__ =head1 NAME bytes - Perl pragma to expose the individual bytes of characters =head1 NOTICE Because the bytes pragma breaks encapsulation (i.e. it exposes the innards of how the perl executable currently happens to store a string), the byte values that result are in an unspecified encoding. B If you feel that the functions here within might be useful for your application, this possibly indicates a mismatch between your mental model of Perl Unicode and the current reality. In that case, you may wish to read some of the perl Unicode documentation: L, L, L and L. =head1 SYNOPSIS use bytes; ... chr(...); # or bytes::chr ... index(...); # or bytes::index ... length(...); # or bytes::length ... ord(...); # or bytes::ord ... rindex(...); # or bytes::rindex ... substr(...); # or bytes::substr no bytes; =head1 DESCRIPTION Perl's characters are stored internally as sequences of one or more bytes. This pragma allows for the examination of the individual bytes that together comprise a character. Originally the pragma was designed for the loftier goal of helping incorporate Unicode into Perl, but the approach that used it was found to be defective, and the one remaining legitimate use is for debugging when you need to non-destructively examine characters' individual bytes. Just insert this pragma temporarily, and remove it after the debugging is finished. The original usage can be accomplished by explicit (rather than this pragma's implicit) encoding using the L module: use Encode qw/encode/; my $utf8_byte_string = encode "UTF8", $string; my $latin1_byte_string = encode "Latin1", $string; Or, if performance is needed and you are only interested in the UTF-8 representation: utf8::encode(my $utf8_byte_string = $string); C can be used to reverse the effect of C within the current lexical scope. As an example, when Perl sees C<$x = chr(400)>, it encodes the character in UTF-8 and stores it in C<$x>. Then it is marked as character data, so, for instance, C returns C<1>. However, in the scope of the C pragma, C<$x> is treated as a series of bytes - the bytes that make up the UTF8 encoding - and C returns C<2>: $x = chr(400); print "Length is ", length $x, "\n"; # "Length is 1" printf "Contents are %vd\n", $x; # "Contents are 400" { use bytes; # or "require bytes; bytes::length()" print "Length is ", length $x, "\n"; # "Length is 2" printf "Contents are %vd\n", $x; # "Contents are 198.144 (on # ASCII platforms)" } C, C, C, C and C behave similarly. For more on the implications, see L and L. C is admittedly handy if you need to know the B of a Perl scalar. But a more modern way is: use Encode 'encode'; length(encode('UTF-8', $scalar)) =head1 LIMITATIONS C does not work as an I. =head1 SEE ALSO L, L, L, L FILEcd5536a3/constant.pm9package constant; use 5.008; use strict; use warnings::register; our $VERSION = '1.33'; our %declared; #======================================================================= # Some names are evil choices. my %keywords = map +($_, 1), qw{ BEGIN INIT CHECK END DESTROY AUTOLOAD }; $keywords{UNITCHECK}++ if $] > 5.009; my %forced_into_main = map +($_, 1), qw{ STDIN STDOUT STDERR ARGV ARGVOUT ENV INC SIG }; my %forbidden = (%keywords, %forced_into_main); my $normal_constant_name = qr/^_?[^\W_0-9]\w*\z/; my $tolerable = qr/^[A-Za-z_]\w*\z/; my $boolean = qr/^[01]?\z/; BEGIN { # We'd like to do use constant _CAN_PCS => $] > 5.009002 # but that's a bit tricky before we load the constant module :-) # By doing this, we save several run time checks for *every* call # to import. my $const = $] > 5.009002; my $downgrade = $] < 5.015004; # && $] >= 5.008 my $constarray = exists &_make_const; if ($const) { Internals::SvREADONLY($const, 1); Internals::SvREADONLY($downgrade, 1); $constant::{_CAN_PCS} = \$const; $constant::{_DOWNGRADE} = \$downgrade; $constant::{_CAN_PCS_FOR_ARRAY} = \$constarray; } else { no strict 'refs'; *{"_CAN_PCS"} = sub () {$const}; *{"_DOWNGRADE"} = sub () { $downgrade }; *{"_CAN_PCS_FOR_ARRAY"} = sub () { $constarray }; } } #======================================================================= # import() - import symbols into user's namespace # # What we actually do is define a function in the caller's namespace # which returns the value. The function we create will normally # be inlined as a constant, thereby avoiding further sub calling # overhead. #======================================================================= sub import { my $class = shift; return unless @_; # Ignore 'use constant;' my $constants; my $multiple = ref $_[0]; my $caller = caller; my $flush_mro; my $symtab; if (_CAN_PCS) { no strict 'refs'; $symtab = \%{$caller . '::'}; }; if ( $multiple ) { if (ref $_[0] ne 'HASH') { require Carp; Carp::croak("Invalid reference type '".ref(shift)."' not 'HASH'"); } $constants = shift; } else { unless (defined $_[0]) { require Carp; Carp::croak("Can't use undef as constant name"); } $constants->{+shift} = undef; } foreach my $name ( keys %$constants ) { my $pkg; my $symtab = $symtab; my $orig_name = $name; if ($name =~ s/(.*)(?:::|')(?=.)//s) { $pkg = $1; if (_CAN_PCS && $pkg ne $caller) { no strict 'refs'; $symtab = \%{$pkg . '::'}; } } else { $pkg = $caller; } # Normal constant name if ($name =~ $normal_constant_name and !$forbidden{$name}) { # Everything is okay # Name forced into main, but we're not in main. Fatal. } elsif ($forced_into_main{$name} and $pkg ne 'main') { require Carp; Carp::croak("Constant name '$name' is forced into main::"); # Starts with double underscore. Fatal. } elsif ($name =~ /^__/) { require Carp; Carp::croak("Constant name '$name' begins with '__'"); # Maybe the name is tolerable } elsif ($name =~ $tolerable) { # Then we'll warn only if you've asked for warnings if (warnings::enabled()) { if ($keywords{$name}) { warnings::warn("Constant name '$name' is a Perl keyword"); } elsif ($forced_into_main{$name}) { warnings::warn("Constant name '$name' is " . "forced into package main::"); } } # Looks like a boolean # use constant FRED == fred; } elsif ($name =~ $boolean) { require Carp; if (@_) { Carp::croak("Constant name '$name' is invalid"); } else { Carp::croak("Constant name looks like boolean value"); } } else { # Must have bad characters require Carp; Carp::croak("Constant name '$name' has invalid characters"); } { no strict 'refs'; my $full_name = "${pkg}::$name"; $declared{$full_name}++; if ($multiple || @_ == 1) { my $scalar = $multiple ? $constants->{$orig_name} : $_[0]; if (_DOWNGRADE) { # for 5.8 to 5.14 # Work around perl bug #31991: Sub names (actually glob # names in general) ignore the UTF8 flag. So we have to # turn it off to get the "right" symbol table entry. utf8::is_utf8 $name and utf8::encode $name; } # The constant serves to optimise this entire block out on # 5.8 and earlier. if (_CAN_PCS) { # Use a reference as a proxy for a constant subroutine. # If this is not a glob yet, it saves space. If it is # a glob, we must still create it this way to get the # right internal flags set, as constants are distinct # from subroutines created with sub(){...}. # The check in Perl_ck_rvconst knows that inlinable # constants from cv_const_sv are read only. So we have to: Internals::SvREADONLY($scalar, 1); if (!exists $symtab->{$name}) { $symtab->{$name} = \$scalar; ++$flush_mro->{$pkg}; } else { local $constant::{_dummy} = \$scalar; *$full_name = \&{"_dummy"}; } } else { *$full_name = sub () { $scalar }; } } elsif (@_) { my @list = @_; if (_CAN_PCS_FOR_ARRAY) { _make_const($list[$_]) for 0..$#list; _make_const(@list); if (!exists $symtab->{$name}) { $symtab->{$name} = \@list; $flush_mro->{$pkg}++; } else { local $constant::{_dummy} = \@list; *$full_name = \&{"_dummy"}; } } else { *$full_name = sub () { @list }; } } else { *$full_name = sub () { }; } } } # Flush the cache exactly once if we make any direct symbol table changes. if (_CAN_PCS && $flush_mro) { mro::method_changed_in($_) for keys %$flush_mro; } } 1; __END__ =head1 NAME constant - Perl pragma to declare constants =head1 SYNOPSIS use constant PI => 4 * atan2(1, 1); use constant DEBUG => 0; print "Pi equals ", PI, "...\n" if DEBUG; use constant { SEC => 0, MIN => 1, HOUR => 2, MDAY => 3, MON => 4, YEAR => 5, WDAY => 6, YDAY => 7, ISDST => 8, }; use constant WEEKDAYS => qw( Sunday Monday Tuesday Wednesday Thursday Friday Saturday ); print "Today is ", (WEEKDAYS)[ (localtime)[WDAY] ], ".\n"; =head1 DESCRIPTION This pragma allows you to declare constants at compile-time. When you declare a constant such as C using the method shown above, each machine your script runs upon can have as many digits of accuracy as it can use. Also, your program will be easier to read, more likely to be maintained (and maintained correctly), and far less likely to send a space probe to the wrong planet because nobody noticed the one equation in which you wrote C<3.14195>. When a constant is used in an expression, Perl replaces it with its value at compile time, and may then optimize the expression further. In particular, any code in an C block will be optimized away if the constant is false. =head1 NOTES As with all C directives, defining a constant happens at compile time. Thus, it's probably not correct to put a constant declaration inside of a conditional statement (like C). Constants defined using this module cannot be interpolated into strings like variables. However, concatenation works just fine: print "Pi equals PI...\n"; # WRONG: does not expand "PI" print "Pi equals ".PI."...\n"; # right Even though a reference may be declared as a constant, the reference may point to data which may be changed, as this code shows. use constant ARRAY => [ 1,2,3,4 ]; print ARRAY->[1]; ARRAY->[1] = " be changed"; print ARRAY->[1]; Constants belong to the package they are defined in. To refer to a constant defined in another package, specify the full package name, as in C. Constants may be exported by modules, and may also be called as either class or instance methods, that is, as C<< Some::Package->CONSTANT >> or as C<< $obj->CONSTANT >> where C<$obj> is an instance of C. Subclasses may define their own constants to override those in their base class. As of version 1.32 of this module, constants can be defined in packages other than the caller, by including the package name in the name of the constant: use constant "OtherPackage::FWIBBLE" => 7865; constant->import("Other::FWOBBLE",$value); # dynamically at run time The use of all caps for constant names is merely a convention, although it is recommended in order to make constants stand out and to help avoid collisions with other barewords, keywords, and subroutine names. Constant names must begin with a letter or underscore. Names beginning with a double underscore are reserved. Some poor choices for names will generate warnings, if warnings are enabled at compile time. =head2 List constants Constants may be lists of more (or less) than one value. A constant with no values evaluates to C in scalar context. Note that constants with more than one value do I return their last value in scalar context as one might expect. They currently return the number of values, but B. Do not use constants with multiple values in scalar context. B This implies that the expression defining the value of a constant is evaluated in list context. This may produce surprises: use constant TIMESTAMP => localtime; # WRONG! use constant TIMESTAMP => scalar localtime; # right The first line above defines C as a 9-element list, as returned by C in list context. To set it to the string returned by C in scalar context, an explicit C keyword is required. List constants are lists, not arrays. To index or slice them, they must be placed in parentheses. my @workdays = WEEKDAYS[1 .. 5]; # WRONG! my @workdays = (WEEKDAYS)[1 .. 5]; # right =head2 Defining multiple constants at once Instead of writing multiple C statements, you may define multiple constants in a single statement by giving, instead of the constant name, a reference to a hash where the keys are the names of the constants to be defined. Obviously, all constants defined using this method must have a single value. use constant { FOO => "A single value", BAR => "This", "won't", "work!", # Error! }; This is a fundamental limitation of the way hashes are constructed in Perl. The error messages produced when this happens will often be quite cryptic -- in the worst case there may be none at all, and you'll only later find that something is broken. When defining multiple constants, you cannot use the values of other constants defined in the same declaration. This is because the calling package doesn't know about any constant within that group until I the C statement is finished. use constant { BITMASK => 0xAFBAEBA8, NEGMASK => ~BITMASK, # Error! }; =head2 Magic constants Magical values and references can be made into constants at compile time, allowing for way cool stuff like this. (These error numbers aren't totally portable, alas.) use constant E2BIG => ($! = 7); print E2BIG, "\n"; # something like "Arg list too long" print 0+E2BIG, "\n"; # "7" You can't produce a tied constant by giving a tied scalar as the value. References to tied variables, however, can be used as constants without any problems. =head1 TECHNICAL NOTES In the current implementation, scalar constants are actually inlinable subroutines. As of version 5.004 of Perl, the appropriate scalar constant is inserted directly in place of some subroutine calls, thereby saving the overhead of a subroutine call. See L for details about how and when this happens. In the rare case in which you need to discover at run time whether a particular constant has been declared via this module, you may use this function to examine the hash C<%constant::declared>. If the given constant name does not include a package name, the current package is used. sub declared ($) { use constant 1.01; # don't omit this! my $name = shift; $name =~ s/^::/main::/; my $pkg = caller; my $full_name = $name =~ /::/ ? $name : "${pkg}::$name"; $constant::declared{$full_name}; } =head1 CAVEATS List constants are not inlined unless you are using Perl v5.20 or higher. In v5.20 or higher, they are still not read-only, but that may change in future versions. It is not possible to have a subroutine or a keyword with the same name as a constant in the same package. This is probably a Good Thing. A constant with a name in the list C is not allowed anywhere but in package C, for technical reasons. Unlike constants in some languages, these cannot be overridden on the command line or via environment variables. You can get into trouble if you use constants in a context which automatically quotes barewords (as is true for any subroutine call). For example, you can't say C<$hash{CONSTANT}> because C will be interpreted as a string. Use C<$hash{CONSTANT()}> or C<$hash{+CONSTANT}> to prevent the bareword quoting mechanism from kicking in. Similarly, since the C<< => >> operator quotes a bareword immediately to its left, you have to say C<< CONSTANT() => 'value' >> (or simply use a comma in place of the big arrow) instead of C<< CONSTANT => 'value' >>. =head1 SEE ALSO L - Facility for creating read-only scalars, arrays, hashes. L - Make read-only variables via attribute L - Perl extension to the C scalar flag L - A selection of general-utility hash subroutines (mostly to lock/unlock keys and values) =head1 BUGS Please report any bugs or feature requests via the perlbug(1) utility. =head1 AUTHORS Tom Phoenix, EFE, with help from many other folks. Multiple constant declarations at once added by Casey West, EFE. Documentation mostly rewritten by Ilmari Karonen, EFE. This program is maintained by the Perl 5 Porters. The CPAN distribution is maintained by SEbastien Aperghis-Tramoni EFE. =head1 COPYRIGHT & LICENSE Copyright (C) 1997, 1999 Tom Phoenix This module is free software; you can redistribute it or modify it under the same terms as Perl itself. =cut FILE3c9c3528/Compress/Raw/Zlib.pm package Compress::Raw::Zlib; require 5.006 ; require Exporter; use Carp ; use strict ; use warnings ; use bytes ; our ($VERSION, $XS_VERSION, @ISA, @EXPORT, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD, %DEFLATE_CONSTANTS, @DEFLATE_CONSTANTS); $VERSION = '2.213'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @ISA = qw(Exporter); %EXPORT_TAGS = ( flush => [qw{ Z_NO_FLUSH Z_PARTIAL_FLUSH Z_SYNC_FLUSH Z_FULL_FLUSH Z_FINISH Z_BLOCK }], level => [qw{ Z_NO_COMPRESSION Z_BEST_SPEED Z_BEST_COMPRESSION Z_DEFAULT_COMPRESSION }], strategy => [qw{ Z_FILTERED Z_HUFFMAN_ONLY Z_RLE Z_FIXED Z_DEFAULT_STRATEGY }], status => [qw{ Z_OK Z_STREAM_END Z_NEED_DICT Z_ERRNO Z_STREAM_ERROR Z_DATA_ERROR Z_MEM_ERROR Z_BUF_ERROR Z_VERSION_ERROR }], ); %DEFLATE_CONSTANTS = %EXPORT_TAGS; # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. @DEFLATE_CONSTANTS = @EXPORT = qw( ZLIB_VERSION ZLIB_VERNUM OS_CODE MAX_MEM_LEVEL MAX_WBITS Z_ASCII Z_BEST_COMPRESSION Z_BEST_SPEED Z_BINARY Z_BLOCK Z_BUF_ERROR Z_DATA_ERROR Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY Z_DEFLATED Z_ERRNO Z_FILTERED Z_FIXED Z_FINISH Z_FULL_FLUSH Z_HUFFMAN_ONLY Z_MEM_ERROR Z_NEED_DICT Z_NO_COMPRESSION Z_NO_FLUSH Z_NULL Z_OK Z_PARTIAL_FLUSH Z_RLE Z_STREAM_END Z_STREAM_ERROR Z_SYNC_FLUSH Z_TREES Z_UNKNOWN Z_VERSION_ERROR ZLIBNG_VERSION ZLIBNG_VERNUM ZLIBNG_VER_MAJOR ZLIBNG_VER_MINOR ZLIBNG_VER_REVISION ZLIBNG_VER_STATUS ZLIBNG_VER_MODIFIED WANT_GZIP WANT_GZIP_OR_ZLIB ); push @EXPORT, qw(crc32 adler32 DEF_WBITS); use constant WANT_GZIP => 16; use constant WANT_GZIP_OR_ZLIB => 32; sub AUTOLOAD { my($constname); ($constname = $AUTOLOAD) =~ s/.*:://; my ($error, $val) = constant($constname); Carp::croak $error if $error; no strict 'refs'; *{$AUTOLOAD} = sub { $val }; goto &{$AUTOLOAD}; } use constant FLAG_APPEND => 1 ; use constant FLAG_CRC => 2 ; use constant FLAG_ADLER => 4 ; use constant FLAG_CONSUME_INPUT => 8 ; use constant FLAG_LIMIT_OUTPUT => 16 ; eval { require XSLoader; XSLoader::load('Compress::Raw::Zlib', $XS_VERSION); 1; } or do { require DynaLoader; local @ISA = qw(DynaLoader); bootstrap Compress::Raw::Zlib $XS_VERSION ; }; use constant Parse_any => 0x01; use constant Parse_unsigned => 0x02; use constant Parse_signed => 0x04; use constant Parse_boolean => 0x08; #use constant Parse_string => 0x10; #use constant Parse_custom => 0x12; #use constant Parse_store_ref => 0x100 ; use constant OFF_PARSED => 0 ; use constant OFF_TYPE => 1 ; use constant OFF_DEFAULT => 2 ; use constant OFF_FIXED => 3 ; use constant OFF_FIRST_ONLY => 4 ; use constant OFF_STICKY => 5 ; sub ParseParameters { my $level = shift || 0 ; my $sub = (caller($level + 1))[3] ; #local $Carp::CarpLevel = 1 ; my $p = new Compress::Raw::Zlib::Parameters() ; $p->parse(@_) or croak "$sub: $p->{Error}" ; return $p; } sub Compress::Raw::Zlib::Parameters::new { my $class = shift ; my $obj = { Error => '', Got => {}, } ; #return bless $obj, ref($class) || $class || __PACKAGE__ ; return bless $obj, 'Compress::Raw::Zlib::Parameters' ; } sub Compress::Raw::Zlib::Parameters::setError { my $self = shift ; my $error = shift ; my $retval = @_ ? shift : undef ; $self->{Error} = $error ; return $retval; } #sub getError #{ # my $self = shift ; # return $self->{Error} ; #} sub Compress::Raw::Zlib::Parameters::parse { my $self = shift ; my $default = shift ; my $got = $self->{Got} ; my $firstTime = keys %{ $got } == 0 ; my (@Bad) ; my @entered = () ; # Allow the options to be passed as a hash reference or # as the complete hash. if (@_ == 0) { @entered = () ; } elsif (@_ == 1) { my $href = $_[0] ; return $self->setError("Expected even number of parameters, got 1") if ! defined $href or ! ref $href or ref $href ne "HASH" ; foreach my $key (keys %$href) { push @entered, $key ; push @entered, \$href->{$key} ; } } else { my $count = @_; return $self->setError("Expected even number of parameters, got $count") if $count % 2 != 0 ; for my $i (0.. $count / 2 - 1) { push @entered, $_[2* $i] ; push @entered, \$_[2* $i+1] ; } } while (my ($key, $v) = each %$default) { croak "need 4 params [@$v]" if @$v != 4 ; my ($first_only, $sticky, $type, $value) = @$v ; my $x ; $self->_checkType($key, \$value, $type, 0, \$x) or return undef ; $key = lc $key; if ($firstTime || ! $sticky) { $got->{$key} = [0, $type, $value, $x, $first_only, $sticky] ; } $got->{$key}[OFF_PARSED] = 0 ; } for my $i (0.. @entered / 2 - 1) { my $key = $entered[2* $i] ; my $value = $entered[2* $i+1] ; #print "Key [$key] Value [$value]" ; #print defined $$value ? "[$$value]\n" : "[undef]\n"; $key =~ s/^-// ; my $canonkey = lc $key; if ($got->{$canonkey} && ($firstTime || ! $got->{$canonkey}[OFF_FIRST_ONLY] )) { my $type = $got->{$canonkey}[OFF_TYPE] ; my $s ; $self->_checkType($key, $value, $type, 1, \$s) or return undef ; #$value = $$value unless $type & Parse_store_ref ; $value = $$value ; $got->{$canonkey} = [1, $type, $value, $s] ; } else { push (@Bad, $key) } } if (@Bad) { my ($bad) = join(", ", @Bad) ; return $self->setError("unknown key value(s) @Bad") ; } return 1; } sub Compress::Raw::Zlib::Parameters::_checkType { my $self = shift ; my $key = shift ; my $value = shift ; my $type = shift ; my $validate = shift ; my $output = shift; #local $Carp::CarpLevel = $level ; #print "PARSE $type $key $value $validate $sub\n" ; # if ( $type & Parse_store_ref) # { # #$value = $$value # # if ref ${ $value } ; # # $$output = $value ; # return 1; # } $value = $$value ; if ($type & Parse_any) { $$output = $value ; return 1; } elsif ($type & Parse_unsigned) { return $self->setError("Parameter '$key' must be an unsigned int, got 'undef'") if $validate && ! defined $value ; return $self->setError("Parameter '$key' must be an unsigned int, got '$value'") if $validate && $value !~ /^\d+$/; $$output = defined $value ? $value : 0 ; return 1; } elsif ($type & Parse_signed) { return $self->setError("Parameter '$key' must be a signed int, got 'undef'") if $validate && ! defined $value ; return $self->setError("Parameter '$key' must be a signed int, got '$value'") if $validate && $value !~ /^-?\d+$/; $$output = defined $value ? $value : 0 ; return 1 ; } elsif ($type & Parse_boolean) { return $self->setError("Parameter '$key' must be an int, got '$value'") if $validate && defined $value && $value !~ /^\d*$/; $$output = defined $value ? $value != 0 : 0 ; return 1; } # elsif ($type & Parse_string) # { # $$output = defined $value ? $value : "" ; # return 1; # } $$output = $value ; return 1; } sub Compress::Raw::Zlib::Parameters::parsed { my $self = shift ; my $name = shift ; return $self->{Got}{lc $name}[OFF_PARSED] ; } sub Compress::Raw::Zlib::Parameters::value { my $self = shift ; my $name = shift ; if (@_) { $self->{Got}{lc $name}[OFF_PARSED] = 1; $self->{Got}{lc $name}[OFF_DEFAULT] = $_[0] ; $self->{Got}{lc $name}[OFF_FIXED] = $_[0] ; } return $self->{Got}{lc $name}[OFF_FIXED] ; } our $OPTIONS_deflate = { 'AppendOutput' => [1, 1, Parse_boolean, 0], 'CRC32' => [1, 1, Parse_boolean, 0], 'ADLER32' => [1, 1, Parse_boolean, 0], 'Bufsize' => [1, 1, Parse_unsigned, 4096], 'Level' => [1, 1, Parse_signed, Z_DEFAULT_COMPRESSION()], 'Method' => [1, 1, Parse_unsigned, Z_DEFLATED()], 'WindowBits' => [1, 1, Parse_signed, MAX_WBITS()], 'MemLevel' => [1, 1, Parse_unsigned, MAX_MEM_LEVEL()], 'Strategy' => [1, 1, Parse_unsigned, Z_DEFAULT_STRATEGY()], 'Dictionary' => [1, 1, Parse_any, ""], }; sub Compress::Raw::Zlib::Deflate::new { my $pkg = shift ; my ($got) = ParseParameters(0, $OPTIONS_deflate, @_); croak "Compress::Raw::Zlib::Deflate::new: Bufsize must be >= 1, you specified " . $got->value('Bufsize') unless $got->value('Bufsize') >= 1; my $flags = 0 ; $flags |= FLAG_APPEND if $got->value('AppendOutput') ; $flags |= FLAG_CRC if $got->value('CRC32') ; $flags |= FLAG_ADLER if $got->value('ADLER32') ; my $windowBits = $got->value('WindowBits'); $windowBits += MAX_WBITS() if ($windowBits & MAX_WBITS()) == 0 ; _deflateInit($flags, $got->value('Level'), $got->value('Method'), $windowBits, $got->value('MemLevel'), $got->value('Strategy'), $got->value('Bufsize'), $got->value('Dictionary')) ; } sub Compress::Raw::Zlib::deflateStream::STORABLE_freeze { my $type = ref shift; croak "Cannot freeze $type object\n"; } sub Compress::Raw::Zlib::deflateStream::STORABLE_thaw { my $type = ref shift; croak "Cannot thaw $type object\n"; } our $OPTIONS_inflate = { 'AppendOutput' => [1, 1, Parse_boolean, 0], 'LimitOutput' => [1, 1, Parse_boolean, 0], 'CRC32' => [1, 1, Parse_boolean, 0], 'ADLER32' => [1, 1, Parse_boolean, 0], 'ConsumeInput' => [1, 1, Parse_boolean, 1], 'Bufsize' => [1, 1, Parse_unsigned, 4096], 'WindowBits' => [1, 1, Parse_signed, MAX_WBITS()], 'Dictionary' => [1, 1, Parse_any, ""], } ; sub Compress::Raw::Zlib::Inflate::new { my $pkg = shift ; my ($got) = ParseParameters(0, $OPTIONS_inflate, @_); croak "Compress::Raw::Zlib::Inflate::new: Bufsize must be >= 1, you specified " . $got->value('Bufsize') unless $got->value('Bufsize') >= 1; my $flags = 0 ; $flags |= FLAG_APPEND if $got->value('AppendOutput') ; $flags |= FLAG_CRC if $got->value('CRC32') ; $flags |= FLAG_ADLER if $got->value('ADLER32') ; $flags |= FLAG_CONSUME_INPUT if $got->value('ConsumeInput') ; $flags |= FLAG_LIMIT_OUTPUT if $got->value('LimitOutput') ; my $windowBits = $got->value('WindowBits'); $windowBits += MAX_WBITS() if ($windowBits & MAX_WBITS()) == 0 ; _inflateInit($flags, $windowBits, $got->value('Bufsize'), $got->value('Dictionary')) ; } sub Compress::Raw::Zlib::inflateStream::STORABLE_freeze { my $type = ref shift; croak "Cannot freeze $type object\n"; } sub Compress::Raw::Zlib::inflateStream::STORABLE_thaw { my $type = ref shift; croak "Cannot thaw $type object\n"; } sub Compress::Raw::Zlib::InflateScan::new { my $pkg = shift ; my ($got) = ParseParameters(0, { 'CRC32' => [1, 1, Parse_boolean, 0], 'ADLER32' => [1, 1, Parse_boolean, 0], 'Bufsize' => [1, 1, Parse_unsigned, 4096], 'WindowBits' => [1, 1, Parse_signed, -MAX_WBITS()], 'Dictionary' => [1, 1, Parse_any, ""], }, @_) ; croak "Compress::Raw::Zlib::InflateScan::new: Bufsize must be >= 1, you specified " . $got->value('Bufsize') unless $got->value('Bufsize') >= 1; my $flags = 0 ; #$flags |= FLAG_APPEND if $got->value('AppendOutput') ; $flags |= FLAG_CRC if $got->value('CRC32') ; $flags |= FLAG_ADLER if $got->value('ADLER32') ; #$flags |= FLAG_CONSUME_INPUT if $got->value('ConsumeInput') ; _inflateScanInit($flags, $got->value('WindowBits'), $got->value('Bufsize'), '') ; } sub Compress::Raw::Zlib::inflateScanStream::createDeflateStream { my $pkg = shift ; my ($got) = ParseParameters(0, { 'AppendOutput' => [1, 1, Parse_boolean, 0], 'CRC32' => [1, 1, Parse_boolean, 0], 'ADLER32' => [1, 1, Parse_boolean, 0], 'Bufsize' => [1, 1, Parse_unsigned, 4096], 'Level' => [1, 1, Parse_signed, Z_DEFAULT_COMPRESSION()], 'Method' => [1, 1, Parse_unsigned, Z_DEFLATED()], 'WindowBits' => [1, 1, Parse_signed, - MAX_WBITS()], 'MemLevel' => [1, 1, Parse_unsigned, MAX_MEM_LEVEL()], 'Strategy' => [1, 1, Parse_unsigned, Z_DEFAULT_STRATEGY()], }, @_) ; croak "Compress::Raw::Zlib::InflateScan::createDeflateStream: Bufsize must be >= 1, you specified " . $got->value('Bufsize') unless $got->value('Bufsize') >= 1; my $flags = 0 ; $flags |= FLAG_APPEND if $got->value('AppendOutput') ; $flags |= FLAG_CRC if $got->value('CRC32') ; $flags |= FLAG_ADLER if $got->value('ADLER32') ; $pkg->_createDeflateStream($flags, $got->value('Level'), $got->value('Method'), $got->value('WindowBits'), $got->value('MemLevel'), $got->value('Strategy'), $got->value('Bufsize'), ) ; } sub Compress::Raw::Zlib::inflateScanStream::inflate { my $self = shift ; my $buffer = $_[1]; my $eof = $_[2]; my $status = $self->scan(@_); if ($status == Z_OK() && $_[2]) { my $byte = ' '; $status = $self->scan(\$byte, $_[1]) ; } return $status ; } sub Compress::Raw::Zlib::deflateStream::deflateParams { my $self = shift ; my ($got) = ParseParameters(0, { 'Level' => [1, 1, Parse_signed, undef], 'Strategy' => [1, 1, Parse_unsigned, undef], 'Bufsize' => [1, 1, Parse_unsigned, undef], }, @_) ; croak "Compress::Raw::Zlib::deflateParams needs Level and/or Strategy" unless $got->parsed('Level') + $got->parsed('Strategy') + $got->parsed('Bufsize'); croak "Compress::Raw::Zlib::Inflate::deflateParams: Bufsize must be >= 1, you specified " . $got->value('Bufsize') if $got->parsed('Bufsize') && $got->value('Bufsize') <= 1; my $flags = 0; $flags |= 1 if $got->parsed('Level') ; $flags |= 2 if $got->parsed('Strategy') ; $flags |= 4 if $got->parsed('Bufsize') ; $self->_deflateParams($flags, $got->value('Level'), $got->value('Strategy'), $got->value('Bufsize')); } 1; __END__ =head1 NAME Compress::Raw::Zlib - Low-Level Interface to zlib or zlib-ng compression library =head1 SYNOPSIS use Compress::Raw::Zlib ; ($d, $status) = new Compress::Raw::Zlib::Deflate( [OPT] ) ; $status = $d->deflate($input, $output) ; $status = $d->flush($output [, $flush_type]) ; $d->deflateReset() ; $d->deflateParams(OPTS) ; $d->deflateTune(OPTS) ; $d->dict_adler() ; $d->crc32() ; $d->adler32() ; $d->total_in() ; $d->total_out() ; $d->msg() ; $d->get_Strategy(); $d->get_Level(); $d->get_BufSize(); ($i, $status) = new Compress::Raw::Zlib::Inflate( [OPT] ) ; $status = $i->inflate($input, $output [, $eof]) ; $status = $i->inflateSync($input) ; $i->inflateReset() ; $i->dict_adler() ; $d->crc32() ; $d->adler32() ; $i->total_in() ; $i->total_out() ; $i->msg() ; $d->get_BufSize(); $crc = adler32($buffer [,$crc]) ; $crc = crc32($buffer [,$crc]) ; $crc = crc32_combine($crc1, $crc2, $len2); $adler = adler32_combine($adler1, $adler2, $len2); my $version = Compress::Raw::Zlib::zlib_version(); my $flags = Compress::Raw::Zlib::zlibCompileFlags(); is_zlib_native(); is_zlibng_native(); is_zlibng_compat(); is_zlibng(); =head1 DESCRIPTION The I module provides a Perl interface to the I or I compression libraries (see L for details about where to get I or I). In the text below all references to I are also applicable to I unless otherwise stated. =head1 Compress::Raw::Zlib::Deflate This section defines an interface that allows in-memory compression using the I interface provided by zlib. Here is a definition of the interface available: =head2 B<($d, $status) = new Compress::Raw::Zlib::Deflate( [OPT] ) > Initialises a deflation object. If you are familiar with the I library, it combines the features of the I functions C, C and C. If successful, it will return the initialised deflation object, C<$d> and a C<$status> of C in a list context. In scalar context it returns the deflation object, C<$d>, only. If not successful, the returned deflation object, C<$d>, will be I and C<$status> will hold the a I error code. The function optionally takes a number of named options specified as C<< Name => value >> pairs. This allows individual options to be tailored without having to specify them all in the parameter list. For backward compatibility, it is also possible to pass the parameters as a reference to a hash containing the name=>value pairs. Below is a list of the valid options: =over 5 =item B<-Level> Defines the compression level. Valid values are 0 through 9, C, C, C, and C. The default is C. =item B<-Method> Defines the compression method. The only valid value at present (and the default) is C. =item B<-WindowBits> To compress an RFC 1950 data stream, set C to a positive number between 8 and 15. To compress an RFC 1951 data stream, set C to C<-MAX_WBITS>. To compress an RFC 1952 data stream (i.e. gzip), set C to C. For a definition of the meaning and valid values for C refer to the I documentation for I. Defaults to C. =item B<-MemLevel> For a definition of the meaning and valid values for C refer to the I documentation for I. Defaults to MAX_MEM_LEVEL. =item B<-Strategy> Defines the strategy used to tune the compression. The valid values are C, C, C, C and C. The default is C. =item B<-Dictionary> When a dictionary is specified I will automatically call C directly after calling C. The Adler32 value for the dictionary can be obtained by calling the method C<$d-Edict_adler()>. The default is no dictionary. =item B<-Bufsize> Sets the initial size for the output buffer used by the C<$d-Edeflate> and C<$d-Eflush> methods. If the buffer has to be reallocated to increase the size, it will grow in increments of C. The default buffer size is 4096. =item B<-AppendOutput> This option controls how data is written to the output buffer by the C<$d-Edeflate> and C<$d-Eflush> methods. If the C option is set to false, the output buffers in the C<$d-Edeflate> and C<$d-Eflush> methods will be truncated before uncompressed data is written to them. If the option is set to true, uncompressed data will be appended to the output buffer in the C<$d-Edeflate> and C<$d-Eflush> methods. This option defaults to false. =item B<-CRC32> If set to true, a crc32 checksum of the uncompressed data will be calculated. Use the C<$d-Ecrc32> method to retrieve this value. This option defaults to false. =item B<-ADLER32> If set to true, an adler32 checksum of the uncompressed data will be calculated. Use the C<$d-Eadler32> method to retrieve this value. This option defaults to false. =back Here is an example of using the C optional parameter list to override the default buffer size and compression level. All other options will take their default values. my $d = new Compress::Raw::Zlib::Deflate ( -Bufsize => 300, -Level => Z_BEST_SPEED ) ; =head2 B<$status = $d-Edeflate($input, $output)> Deflates the contents of C<$input> and writes the compressed data to C<$output>. The C<$input> and C<$output> parameters can be either scalars or scalar references. When finished, C<$input> will be completely processed (assuming there were no errors). If the deflation was successful it writes the deflated data to C<$output> and returns a status value of C. On error, it returns a I error code. If the C option is set to true in the constructor for the C<$d> object, the compressed data will be appended to C<$output>. If it is false, C<$output> will be truncated before any compressed data is written to it. B: This method will not necessarily write compressed data to C<$output> every time it is called. So do not assume that there has been an error if the contents of C<$output> is empty on returning from this method. As long as the return code from the method is C, the deflate has succeeded. =head2 B<$status = $d-Eflush($output [, $flush_type]) > Typically used to finish the deflation. Any pending output will be written to C<$output>. Returns C if successful. Note that flushing can seriously degrade the compression ratio, so it should only be used to terminate a decompression (using C) or when you want to create a I (using C). By default the C used is C. Other valid values for C are C, C, C and C. It is strongly recommended that you only set the C parameter if you fully understand the implications of what it does. See the C documentation for details. If the C option is set to true in the constructor for the C<$d> object, the compressed data will be appended to C<$output>. If it is false, C<$output> will be truncated before any compressed data is written to it. =head2 B<$status = $d-EdeflateReset() > This method will reset the deflation object C<$d>. It can be used when you are compressing multiple data streams and want to use the same object to compress each of them. It should only be used once the previous data stream has been flushed successfully, i.e. a call to C<< $d->flush(Z_FINISH) >> has returned C. Returns C if successful. =head2 B<$status = $d-EdeflateParams([OPT])> Change settings for the deflate object C<$d>. The list of the valid options is shown below. Options not specified will remain unchanged. =over 5 =item B<-Level> Defines the compression level. Valid values are 0 through 9, C, C, C, and C. =item B<-Strategy> Defines the strategy used to tune the compression. The valid values are C, C and C. =item B<-BufSize> Sets the initial size for the output buffer used by the C<$d-Edeflate> and C<$d-Eflush> methods. If the buffer has to be reallocated to increase the size, it will grow in increments of C. =back =head2 B<$status = $d-EdeflateTune($good_length, $max_lazy, $nice_length, $max_chain)> Tune the internal settings for the deflate object C<$d>. This option is only available if you are running zlib 1.2.2.3 or better. Refer to the documentation in zlib.h for instructions on how to fly C. =head2 B<$d-Edict_adler()> Returns the adler32 value for the dictionary. =head2 B<$d-Ecrc32()> Returns the crc32 value for the uncompressed data to date. If the C option is not enabled in the constructor for this object, this method will always return 0; =head2 B<$d-Eadler32()> Returns the adler32 value for the uncompressed data to date. =head2 B<$d-Emsg()> Returns the last error message generated by zlib. =head2 B<$d-Etotal_in()> Returns the total number of bytes uncompressed bytes input to deflate. =head2 B<$d-Etotal_out()> Returns the total number of compressed bytes output from deflate. =head2 B<$d-Eget_Strategy()> Returns the deflation strategy currently used. Valid values are C, C and C. =head2 B<$d-Eget_Level()> Returns the compression level being used. =head2 B<$d-Eget_BufSize()> Returns the buffer size used to carry out the compression. =head2 Example Here is a trivial example of using C. It simply reads standard input, deflates it and writes it to standard output. use strict ; use warnings ; use Compress::Raw::Zlib ; binmode STDIN; binmode STDOUT; my $x = new Compress::Raw::Zlib::Deflate or die "Cannot create a deflation stream\n" ; my ($output, $status) ; while (<>) { $status = $x->deflate($_, $output) ; $status == Z_OK or die "deflation failed\n" ; print $output ; } $status = $x->flush($output) ; $status == Z_OK or die "deflation failed\n" ; print $output ; =head1 Compress::Raw::Zlib::Inflate This section defines an interface that allows in-memory uncompression using the I interface provided by zlib. Here is a definition of the interface: =head2 B< ($i, $status) = new Compress::Raw::Zlib::Inflate( [OPT] ) > Initialises an inflation object. In a list context it returns the inflation object, C<$i>, and the I status code (C<$status>). In a scalar context it returns the inflation object only. If successful, C<$i> will hold the inflation object and C<$status> will be C. If not successful, C<$i> will be I and C<$status> will hold the I error code. The function optionally takes a number of named options specified as C<< -Name => value >> pairs. This allows individual options to be tailored without having to specify them all in the parameter list. For backward compatibility, it is also possible to pass the parameters as a reference to a hash containing the C<< name=>value >> pairs. Here is a list of the valid options: =over 5 =item B<-WindowBits> To uncompress an RFC 1950 data stream, set C to a positive number between 8 and 15. To uncompress an RFC 1951 data stream, set C to C<-MAX_WBITS>. To uncompress an RFC 1952 data stream (i.e. gzip), set C to C. To auto-detect and uncompress an RFC 1950 or RFC 1952 data stream (i.e. gzip), set C to C. For a full definition of the meaning and valid values for C refer to the I documentation for I. Defaults to C. =item B<-Bufsize> Sets the initial size for the output buffer used by the C<$i-Einflate> method. If the output buffer in this method has to be reallocated to increase the size, it will grow in increments of C. Default is 4096. =item B<-Dictionary> The default is no dictionary. =item B<-AppendOutput> This option controls how data is written to the output buffer by the C<$i-Einflate> method. If the option is set to false, the output buffer in the C<$i-Einflate> method will be truncated before uncompressed data is written to it. If the option is set to true, uncompressed data will be appended to the output buffer by the C<$i-Einflate> method. This option defaults to false. =item B<-CRC32> If set to true, a crc32 checksum of the uncompressed data will be calculated. Use the C<$i-Ecrc32> method to retrieve this value. This option defaults to false. =item B<-ADLER32> If set to true, an adler32 checksum of the uncompressed data will be calculated. Use the C<$i-Eadler32> method to retrieve this value. This option defaults to false. =item B<-ConsumeInput> If set to true, this option will remove compressed data from the input buffer of the C<< $i->inflate >> method as the inflate progresses. This option can be useful when you are processing compressed data that is embedded in another file/buffer. In this case the data that immediately follows the compressed stream will be left in the input buffer. This option defaults to true. =item B<-LimitOutput> The C option changes the behavior of the C<< $i->inflate >> method so that the amount of memory used by the output buffer can be limited. When C is used the size of the output buffer used will either be the value of the C option or the amount of memory already allocated to C<$output>, whichever is larger. Predicting the output size available is tricky, so don't rely on getting an exact output buffer size. When C is not specified C<< $i->inflate >> will use as much memory as it takes to write all the uncompressed data it creates by uncompressing the input buffer. If C is enabled, the C option will also be enabled. This option defaults to false. See L for a discussion on why C is needed and how to use it. =back Here is an example of using an optional parameter to override the default buffer size. my ($i, $status) = new Compress::Raw::Zlib::Inflate( -Bufsize => 300 ) ; =head2 B< $status = $i-Einflate($input, $output [,$eof]) > Inflates the complete contents of C<$input> and writes the uncompressed data to C<$output>. The C<$input> and C<$output> parameters can either be scalars or scalar references. Returns C if successful and C if the end of the compressed data has been successfully reached. If not successful C<$status> will hold the I error code. If the C option has been set to true when the C object is created, the C<$input> parameter is modified by C. On completion it will contain what remains of the input buffer after inflation. In practice, this means that when the return status is C the C<$input> parameter will contain an empty string, and when the return status is C the C<$input> parameter will contains what (if anything) was stored in the input buffer after the deflated data stream. This feature is useful when processing a file format that encapsulates a compressed data stream (e.g. gzip, zip) and there is useful data immediately after the deflation stream. If the C option is set to true in the constructor for this object, the uncompressed data will be appended to C<$output>. If it is false, C<$output> will be truncated before any uncompressed data is written to it. The C<$eof> parameter needs a bit of explanation. Prior to version 1.2.0, zlib assumed that there was at least one trailing byte immediately after the compressed data stream when it was carrying out decompression. This normally isn't a problem because the majority of zlib applications guarantee that there will be data directly after the compressed data stream. For example, both gzip (RFC 1950) and zip both define trailing data that follows the compressed data stream. The C<$eof> parameter only needs to be used if B of the following conditions apply =over 5 =item 1 You are either using a copy of zlib that is older than version 1.2.0 or you want your application code to be able to run with as many different versions of zlib as possible. =item 2 You have set the C parameter to C<-MAX_WBITS> in the constructor for this object, i.e. you are uncompressing a raw deflated data stream (RFC 1951). =item 3 There is no data immediately after the compressed data stream. =back If B of these are the case, then you need to set the C<$eof> parameter to true on the final call (and only the final call) to C<$i-Einflate>. If you have built this module with zlib >= 1.2.0, the C<$eof> parameter is ignored. You can still set it if you want, but it won't be used behind the scenes. =head2 B<$status = $i-EinflateSync($input)> This method can be used to attempt to recover good data from a compressed data stream that is partially corrupt. It scans C<$input> until it reaches either a I or the end of the buffer. If a I is found, C is returned and C<$input> will be have all data up to the flush point removed. This data can then be passed to the C<$i-Einflate> method to be uncompressed. Any other return code means that a flush point was not found. If more data is available, C can be called repeatedly with more compressed data until the flush point is found. Note I are not present by default in compressed data streams. They must have been added explicitly when the data stream was created by calling C with C. =head2 B<$status = $i-EinflateReset() > This method will reset the inflation object C<$i>. It can be used when you are uncompressing multiple data streams and want to use the same object to uncompress each of them. Returns C if successful. =head2 B<$i-Edict_adler()> Returns the adler32 value for the dictionary. =head2 B<$i-Ecrc32()> Returns the crc32 value for the uncompressed data to date. If the C option is not enabled in the constructor for this object, this method will always return 0; =head2 B<$i-Eadler32()> Returns the adler32 value for the uncompressed data to date. If the C option is not enabled in the constructor for this object, this method will always return 0; =head2 B<$i-Emsg()> Returns the last error message generated by zlib. =head2 B<$i-Etotal_in()> Returns the total number of bytes compressed bytes input to inflate. =head2 B<$i-Etotal_out()> Returns the total number of uncompressed bytes output from inflate. =head2 B<$d-Eget_BufSize()> Returns the buffer size used to carry out the decompression. =head2 Examples Here is an example of using C. use strict ; use warnings ; use Compress::Raw::Zlib; my $x = new Compress::Raw::Zlib::Inflate() or die "Cannot create a inflation stream\n" ; my $input = '' ; binmode STDIN; binmode STDOUT; my ($output, $status) ; while (read(STDIN, $input, 4096)) { $status = $x->inflate($input, $output) ; print $output ; last if $status != Z_OK ; } die "inflation failed\n" unless $status == Z_STREAM_END ; The next example show how to use the C option. Notice the use of two nested loops in this case. The outer loop reads the data from the input source - STDIN and the inner loop repeatedly calls C until C<$input> is exhausted, we get an error, or the end of the stream is reached. One point worth remembering is by using the C option you also get C set as well - this makes the code below much simpler. use strict ; use warnings ; use Compress::Raw::Zlib; my $x = new Compress::Raw::Zlib::Inflate(LimitOutput => 1) or die "Cannot create a inflation stream\n" ; my $input = '' ; binmode STDIN; binmode STDOUT; my ($output, $status) ; OUTER: while (read(STDIN, $input, 4096)) { do { $status = $x->inflate($input, $output) ; print $output ; last OUTER unless $status == Z_OK || $status == Z_BUF_ERROR ; } while length $input; } die "inflation failed\n" unless $status == Z_STREAM_END ; =head1 CHECKSUM FUNCTIONS Two functions are provided by I to calculate checksums. For the Perl interface, the order of the two parameters in both functions has been reversed. This allows both running checksums and one off calculations to be done. $crc = adler32($buffer [,$crc]) ; $crc = crc32($buffer [,$crc]) ; The buffer parameters can either be a scalar or a scalar reference. If the $crc parameters is C, the crc value will be reset. If you have built this module with zlib 1.2.3 or better, two more CRC-related functions are available. $crc = crc32_combine($crc1, $crc2, $len2); $adler = adler32_combine($adler1, $adler2, $len2); These functions allow checksums to be merged. Refer to the I documentation for more details. =head1 Misc =head2 my $version = Compress::Raw::Zlib::zlib_version(); Returns the version of the I library if this module has been built with the I library. If this module has been built with I in native mode, this function will return a empty string. If this module has been built with I in compat mode, this function will return the Izlib> API verion that I is supporting. =head2 my $version = Compress::Raw::Zlib::zlibng_version(); Returns the version of the zlib-ng library if this module has been built with the I library. If this module has been built with I, this function will return a empty string. =head2 my $flags = Compress::Raw::Zlib::zlibCompileFlags(); Returns the flags indicating compile-time options that were used to build the zlib or zlib-ng library. See the zlib documentation for a description of the flags returned by C. Note that when the zlib sources are built along with this module the C flags (bits 24, 25 and 26) should be ignored. If you are using zlib 1.2.0 or older, C will return 0. =head2 is_zlib_native(); =head2 is_zlibng_native(); =head2 is_zlibng_compat(); =head2 is_zlibng(); These function can use used to check if C was been built with I or I. The function C returns true if C was built with I. The function C returns true if C was built with I. The I library has an option to build with a zlib-compataible API. The c function retuens true if zlib-ng has ben built with this API. Finally, C returns true if I was built with its native API. =head1 The LimitOutput option. By default C<< $i->inflate($input, $output) >> will uncompress I data in C<$input> and write I of the uncompressed data it has generated to C<$output>. This makes the interface to C much simpler - if the method has uncompressed C<$input> successfully I compressed data in C<$input> will have been dealt with. So if you are reading from an input source and uncompressing as you go the code will look something like this use strict ; use warnings ; use Compress::Raw::Zlib; my $x = new Compress::Raw::Zlib::Inflate() or die "Cannot create a inflation stream\n" ; my $input = '' ; my ($output, $status) ; while (read(STDIN, $input, 4096)) { $status = $x->inflate($input, $output) ; print $output ; last if $status != Z_OK ; } die "inflation failed\n" unless $status == Z_STREAM_END ; The points to note are =over 5 =item * The main processing loop in the code handles reading of compressed data from STDIN. =item * The status code returned from C will only trigger termination of the main processing loop if it isn't C. When C has not been used the C status means that the end of the compressed data stream has been reached or there has been an error in uncompression. =item * After the call to C I of the uncompressed data in C<$input> will have been processed. This means the subsequent call to C can overwrite it's contents without any problem. =back For most use-cases the behavior described above is acceptable (this module and it's predecessor, C, have used it for over 10 years without an issue), but in a few very specific use-cases the amount of memory required for C<$output> can prohibitively large. For example, if the compressed data stream contains the same pattern repeated thousands of times, a relatively small compressed data stream can uncompress into hundreds of megabytes. Remember C will keep allocating memory until I the uncompressed data has been written to the output buffer - the size of C<$output> is unbounded. The C option is designed to help with this use-case. The main difference in your code when using C is having to deal with cases where the C<$input> parameter still contains some uncompressed data that C hasn't processed yet. The status code returned from C will be C if uncompression took place and C if the output buffer is full. Below is typical code that shows how to use C. use strict ; use warnings ; use Compress::Raw::Zlib; my $x = new Compress::Raw::Zlib::Inflate(LimitOutput => 1) or die "Cannot create a inflation stream\n" ; my $input = '' ; binmode STDIN; binmode STDOUT; my ($output, $status) ; OUTER: while (read(STDIN, $input, 4096)) { do { $status = $x->inflate($input, $output) ; print $output ; last OUTER unless $status == Z_OK || $status == Z_BUF_ERROR ; } while length $input; } die "inflation failed\n" unless $status == Z_STREAM_END ; Points to note this time: =over 5 =item * There are now two nested loops in the code: the outer loop for reading the compressed data from STDIN, as before; and the inner loop to carry out the uncompression. =item * There are two exit points from the inner uncompression loop. Firstly when C has returned a status other than C or C. This means that either the end of the compressed data stream has been reached (C) or there is an error in the compressed data. In either of these cases there is no point in continuing with reading the compressed data, so both loops are terminated. The second exit point tests if there is any data left in the input buffer, C<$input> - remember that the C option is automatically enabled when C is used. When the input buffer has been exhausted, the outer loop can run again and overwrite a now empty C<$input>. =back =head1 ACCESSING ZIP FILES Although it is possible (with some effort on your part) to use this module to access .zip files, there are other perl modules available that will do all the hard work for you. Check out C, C, C and C. =head1 FAQ =head2 Compatibility with Unix compress/uncompress. This module is not compatible with Unix C. If you have the C program available, you can use this to read compressed files open F, "uncompress -c $filename |"; while () { ... Alternatively, if you have the C program available, you can use this to read compressed files open F, "gunzip -c $filename |"; while () { ... and this to write compress files, if you have the C program available open F, "| compress -c $filename "; print F "data"; ... close F ; =head2 Accessing .tar.Z files See previous FAQ item. If the C module is installed and either the C or C programs are available, you can use one of these workarounds to read C<.tar.Z> files. Firstly with C use strict; use warnings; use Archive::Tar; open F, "uncompress -c $filename |"; my $tar = Archive::Tar->new(*F); ... and this with C use strict; use warnings; use Archive::Tar; open F, "gunzip -c $filename |"; my $tar = Archive::Tar->new(*F); ... Similarly, if the C program is available, you can use this to write a C<.tar.Z> file use strict; use warnings; use Archive::Tar; use IO::File; my $fh = new IO::File "| compress -c >$filename"; my $tar = Archive::Tar->new(); ... $tar->write($fh); $fh->close ; =head2 Zlib Library Version Support By default C will build with a private copy of version 1.2.5 of the zlib library. (See the F file for details of how to override this behaviour) If you decide to use a different version of the zlib library, you need to be aware of the following issues =over 5 =item * First off, you must have zlib 1.0.5 or better. =item * You need to have zlib 1.2.1 or better if you want to use the C<-Merge> option with C, C and C. =back =head1 CONSTANTS All the I constants are automatically imported when you make use of I. =head1 SUPPORT General feedback/questions/bug reports should be sent to L (preferred) or L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L L L, L, L, L For RFC 1950, 1951 and 1952 see L, L and L The I compression library was written by Jean-loup Gailly C and Mark Adler C. The primary site for the I compression library is L. The primary site for the I compression library is L. The primary site for gzip is L. =head1 AUTHOR This module was written by Paul Marquess, C. =head1 MODIFICATION HISTORY See the Changes file. =head1 COPYRIGHT AND LICENSE Copyright (c) 2005-2024 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILE3d0dfcbd/Config.pmi# This file was created by configpm when Perl was built. Any changes # made to this file will be lost the next time perl is built. # for a description of the variables, please have a look at the # Glossary file, as written in the Porting folder, or use the url: # https://github.com/Perl/perl5/blob/blead/Porting/Glossary package Config; use strict; use warnings; our ( %Config, $VERSION ); $VERSION = "5.042000"; # Skip @Config::EXPORT because it only contains %Config, which we special # case below as it's not a function. @Config::EXPORT won't change in the # lifetime of Perl 5. my %Export_Cache = (myconfig => 1, config_sh => 1, config_vars => 1, config_re => 1, compile_date => 1, local_patches => 1, bincompat_options => 1, non_bincompat_options => 1, header_files => 1); @Config::EXPORT = qw(%Config); @Config::EXPORT_OK = keys %Export_Cache; # Need to stub all the functions to make code such as print Config::config_sh # keep working sub bincompat_options; sub compile_date; sub config_re; sub config_sh; sub config_vars; sub header_files; sub local_patches; sub myconfig; sub non_bincompat_options; # Define our own import method to avoid pulling in the full Exporter: sub import { shift; @_ = @Config::EXPORT unless @_; my @funcs = grep $_ ne '%Config', @_; my $export_Config = @funcs < @_ ? 1 : 0; no strict 'refs'; my $callpkg = caller(0); foreach my $func (@funcs) { die qq{"$func" is not exported by the Config module\n} unless $Export_Cache{$func}; *{$callpkg.'::'.$func} = \&{$func}; } *{"$callpkg\::Config"} = \%Config if $export_Config; return; } die "$0: Perl lib version (5.42.0) doesn't match executable '$^X' version ($])" unless $^V; $^V eq 5.42.0 or die sprintf "%s: Perl lib version (5.42.0) doesn't match executable '$^X' version (%vd)", $0, $^V; sub FETCH { my($self, $key) = @_; # check for cached value (which may be undef so we use exists not defined) return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key); } sub TIEHASH { bless $_[1], $_[0]; } sub DESTROY { } sub AUTOLOAD { require 'Config_heavy.pl'; goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; } # tie returns the object, so the value returned to require will be true. tie %Config, 'Config', { archlibexp => '/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0/darwin-2level', archname => 'darwin-2level', cc => 'cc', d_readlink => 'define', d_symlink => 'define', dlext => 'bundle', dlsrc => 'dl_dlopen.xs', dont_use_nlink => undef, exe_ext => '', inc_version_list => ' ', intsize => '4', ldlibpthname => 'DYLD_LIBRARY_PATH', libpth => '/Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib /Applications/Xcode_15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib', osname => 'darwin', osvers => '23.6.0', path_sep => ':', privlibexp => '/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0', scriptdir => '/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin', sitearchexp => '/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl/5.42.0/darwin-2level', sitelibexp => '/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl/5.42.0', so => 'dylib', useithreads => undef, usevendorprefix => undef, version => '5.42.0', }; FILEc33fbebe/Config_git.pl###################################################################### # WARNING: 'lib/Config_git.pl' is generated by make_patchnum.pl # DO NOT EDIT DIRECTLY - edit make_patchnum.pl instead ###################################################################### $Config::Git_Data=<<'ENDOFGIT'; git_commit_id='' git_describe='' git_branch='' git_uncommitted_changes='' git_commit_id_title='' ENDOFGIT FILE42fa1c16/Config_heavy.pl# This file was created by configpm when Perl was built. Any changes # made to this file will be lost the next time perl is built. package Config; use strict; use warnings; our %Config; sub bincompat_options { return split ' ', (Internals::V())[0]; } sub non_bincompat_options { return split ' ', (Internals::V())[1]; } sub compile_date { return (Internals::V())[2] } sub local_patches { my (undef, undef, undef, @patches) = Internals::V(); return @patches; } sub _V { die "Perl lib was built for 'darwin' but is being run on '$^O'" unless "darwin" eq $^O; my ($bincompat, $non_bincompat, $date, @patches) = Internals::V(); my @opts = sort split ' ', "$bincompat $non_bincompat"; print Config::myconfig(); print "\nCharacteristics of this binary (from libperl): \n"; print " Compile-time options:\n"; print " $_\n" for @opts; if (@patches) { print " Locally applied patches:\n"; print " $_\n" foreach @patches; } print " Built under darwin\n"; print " $date\n" if defined $date; my @env = map { "$_=\"$ENV{$_}\"" } sort grep {/^PERL/} keys %ENV; if (@env) { print " \%ENV:\n"; print " $_\n" foreach @env; } print " \@INC:\n"; print " $_\n" foreach @INC; } sub header_files { return qw(EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h embed.h embedvar.h form.h gv.h handy.h hv.h hv_func.h intrpvar.h iperlsys.h keywords.h mg.h nostdio.h op.h opcode.h pad.h parser.h patchlevel.h perl.h perlio.h perliol.h perlsdio.h perlvars.h perly.h pp.h pp_proto.h proto.h regcomp.h regexp.h regnodes.h scope.h sv.h thread.h time64.h unixish.h utf8.h util.h); } ## ## This file was produced by running the Configure script. It holds all the ## definitions figured out by Configure. Should you modify one of these values, ## do not forget to propagate your changes by running "Configure -der". You may ## instead choose to run each of the .SH files by yourself, or "Configure -S". ## # ## Package name : perl5 ## Source directory : . ## Configuration time: Wed Aug 6 08:45:24 UTC 2025 ## Configured by : root ## Target system : darwin mac-1754469716739.local 23.6.0 darwin kernel version 23.6.0: thu apr 24 20:27:23 pdt 2025; root:xnu-10063.141.1.705.2~1release_arm64_vmapple arm64 # #: Configure command line arguments. # #: Variables propagated from previous config.sh file. our $summary = <<'!END!'; Summary of my $package (revision $revision $version_patchlevel_string) configuration: $git_commit_id_title $git_commit_id$git_ancestor_line Platform: osname=$osname osvers=$osvers archname=$archname uname='$myuname' config_args='$config_args' hint=$hint useposix=$useposix d_sigaction=$d_sigaction useithreads=$useithreads usemultiplicity=$usemultiplicity use64bitint=$use64bitint use64bitall=$use64bitall uselongdouble=$uselongdouble usemymalloc=$usemymalloc default_inc_excludes_dot=$default_inc_excludes_dot Compiler: cc='$cc' ccflags ='$ccflags' optimize='$optimize' cppflags='$cppflags' ccversion='$ccversion' gccversion='$gccversion' gccosandvers='$gccosandvers' intsize=$intsize longsize=$longsize ptrsize=$ptrsize doublesize=$doublesize byteorder=$byteorder doublekind=$doublekind d_longlong=$d_longlong longlongsize=$longlongsize d_longdbl=$d_longdbl longdblsize=$longdblsize longdblkind=$longdblkind ivtype='$ivtype' ivsize=$ivsize nvtype='$nvtype' nvsize=$nvsize Off_t='$lseektype' lseeksize=$lseeksize alignbytes=$alignbytes prototype=$prototype Linker and Libraries: ld='$ld' ldflags ='$ldflags' libpth=$libpth libs=$libs perllibs=$perllibs libc=$libc so=$so useshrplib=$useshrplib libperl=$libperl gnulibc_version='$gnulibc_version' Dynamic Linking: dlsrc=$dlsrc dlext=$dlext d_dlsymun=$d_dlsymun ccdlflags='$ccdlflags' cccdlflags='$cccdlflags' lddlflags='$lddlflags' !END! my $summary_expanded; sub myconfig { return $summary_expanded if $summary_expanded; ($summary_expanded = $summary) =~ s{\$(\w+)} { my $c; if ($1 eq 'git_ancestor_line') { if ($Config::Config{git_ancestor}) { $c= "\n Ancestor: $Config::Config{git_ancestor}"; } else { $c= ""; } } else { $c = $Config::Config{$1}; } defined($c) ? $c : 'undef' }ge; $summary_expanded; } local *_ = \my $a; $_ = <<'!END!'; Author='' CONFIG='true' Date='' Header='' Id='' LANG='C' LC_ALL='C' Locker='' Log='' PATCHLEVEL='42' PERL_API_REVISION='5' PERL_API_SUBVERSION='0' PERL_API_VERSION='42' PERL_CONFIG_SH='true' PERL_PATCHLEVEL='' PERL_REVISION='5' PERL_SUBVERSION='0' PERL_VERSION='42' RCSfile='' Revision='' SUBVERSION='0' Source='' State='' _a='.a' _exe='' _o='.o' afs='false' afsroot='/afs' alignbytes='8' aphostname='/bin/hostname' api_revision='5' api_subversion='0' api_version='42' api_versionstring='5.42.0' ar='ar' archlib='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0/darwin-2level' archlibexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0/darwin-2level' archname='darwin-2level' archname64='' archobjs='' asctime_r_proto='0' awk='awk' baserev='5.0' bash='' bin='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' bin_ELF='undef' binexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' bison='bison' byacc='byacc' byteorder='ffff' c='\c' castflags='1' cat='cat' cc='cc' cccdlflags='-fPIC' ccdlflags=' ' ccflags='-fno-common -DPERL_DARWIN -DNO_THREAD_SAFE_QUERYLOCALE -DNO_POSIX_2008_LOCALE -DHAS_BROKEN_LANGINFO_CODESET -fno-strict-aliasing -pipe -fstack-protector-strong' ccflags_uselargefiles='' ccname='gcc' ccsymbols='__GCC_HAVE_DWARF2_CFI_ASM=1' ccversion='' cf_by='root' cf_email='root@mac-1754469716739.local' cf_time='Wed Aug 6 08:45:24 UTC 2025' charbits='8' charsize='1' chgrp='' chmod='chmod' chown='' clocktype='clock_t' comm='comm' compiler_warning='grep -i warning' compress='' config_arg0='Configure' config_arg1='-Dprefix=/Users/runner/hostedtoolcache/perl/5.42.0/arm64' config_arg2='-de' config_arg3='-Dman1dir=none' config_arg4='-Dman3dir=none' config_arg5='-Dcccdlflags=-fPIC' config_arg6='-Duseshrplib' config_arg7='-A'eval:scriptdir=/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin'' config_argc='7' config_args='-Dprefix=/Users/runner/hostedtoolcache/perl/5.42.0/arm64 -de -Dman1dir=none -Dman3dir=none -Dcccdlflags=-fPIC -Duseshrplib -A'eval:scriptdir=/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin'' contains='grep' cp='cp' cpio='' cpp='cpp' cpp_stuff='42' cppccsymbols='' cppflags='-fno-common -DPERL_DARWIN -DNO_THREAD_SAFE_QUERYLOCALE -DNO_POSIX_2008_LOCALE -DHAS_BROKEN_LANGINFO_CODESET -fno-strict-aliasing -pipe -fstack-protector-strong' cpplast='-' cppminus='-' cpprun='cc -E' cppstdin='cc -E' cppsymbols='_FORTIFY_SOURCE=2 _LP64=1 __BYTE_ORDER__=1234 __GNUC_MINOR__=2 __GNUC__=4 __LITTLE_ENDIAN__=1 __LP64__=1 __MACH__=1 __PIC__=2 __STDC__=1 __aarch64__=1 __clang__=1 __pic__=2' crypt_r_proto='0' cryptlib='' csh='csh' ctermid_r_proto='0' ctime_r_proto='0' d_Gconvert='sprintf((b),"%.*g",(n),(x))' d_PRIEUldbl='define' d_PRIFUldbl='define' d_PRIGUldbl='define' d_PRIXU64='define' d_PRId64='define' d_PRIeldbl='define' d_PRIfldbl='define' d_PRIgldbl='define' d_PRIi64='define' d_PRIo64='define' d_PRIu64='define' d_PRIx64='define' d_SCNfldbl='define' d__fwalk='undef' d_accept4='undef' d_access='define' d_accessx='undef' d_acosh='define' d_aintl='undef' d_alarm='define' d_archlib='define' d_asctime64='undef' d_asctime_r='undef' d_asinh='define' d_atanh='define' d_atolf='undef' d_atoll='define' d_attribute_always_inline='define' d_attribute_deprecated='define' d_attribute_format='define' d_attribute_malloc='define' d_attribute_nonnull='define' d_attribute_noreturn='define' d_attribute_pure='define' d_attribute_unused='define' d_attribute_visibility='define' d_attribute_warn_unused_result='define' d_backtrace='define' d_bsd='undef' d_bsdgetpgrp='undef' d_bsdsetpgrp='undef' d_builtin_add_overflow='define' d_builtin_choose_expr='define' d_builtin_expect='define' d_builtin_mul_overflow='define' d_builtin_sub_overflow='define' d_c99_variadic_macros='define' d_casti32='define' d_castneg='undef' d_cbrt='define' d_chown='define' d_chroot='define' d_chsize='undef' d_class='undef' d_clearenv='undef' d_closedir='define' d_cmsghdr_s='define' d_copysign='define' d_copysignl='define' d_cplusplus='undef' d_crypt='define' d_crypt_r='undef' d_csh='define' d_ctermid='define' d_ctermid_r='undef' d_ctime64='undef' d_ctime_r='undef' d_cuserid='undef' d_dbminitproto='undef' d_difftime='define' d_difftime64='undef' d_dir_dd_fd='undef' d_dirfd='define' d_dirnamlen='define' d_dladdr='define' d_dlerror='define' d_dlopen='define' d_dlsymun='undef' d_dosuid='undef' d_double_has_inf='define' d_double_has_nan='define' d_double_has_negative_zero='define' d_double_has_subnormals='define' d_double_style_cray='undef' d_double_style_ibm='undef' d_double_style_ieee='define' d_double_style_vax='undef' d_drand48_r='undef' d_drand48proto='define' d_dup2='define' d_dup3='undef' d_duplocale='define' d_eaccess='undef' d_endgrent='define' d_endgrent_r='undef' d_endhent='define' d_endhostent_r='undef' d_endnent='define' d_endnetent_r='undef' d_endpent='define' d_endprotoent_r='undef' d_endpwent='define' d_endpwent_r='undef' d_endsent='define' d_endservent_r='undef' d_eofnblk='define' d_erf='define' d_erfc='define' d_eunice='undef' d_exp2='define' d_expm1='define' d_faststdio='define' d_fchdir='define' d_fchmod='define' d_fchmodat='define' d_fchown='define' d_fcntl='define' d_fcntl_can_lock='define' d_fd_macros='define' d_fd_set='define' d_fdclose='undef' d_fdim='define' d_fdopendir='define' d_fds_bits='define' d_fegetround='define' d_ffs='define' d_ffsl='define' d_fgetpos='define' d_finite='undef' d_finitel='undef' d_flexfnam='define' d_flock='define' d_flockproto='define' d_fma='define' d_fmax='define' d_fmin='define' d_fork='define' d_fp_class='undef' d_fp_classify='undef' d_fp_classl='undef' d_fpathconf='define' d_fpclass='undef' d_fpclassify='define' d_fpclassl='undef' d_fpgetround='undef' d_fpos64_t='undef' d_freelocale='define' d_frexpl='define' d_fs_data_s='undef' d_fseeko='define' d_fsetpos='define' d_fstatfs='define' d_fstatvfs='define' d_fsync='define' d_ftello='define' d_ftime='undef' d_futimes='define' d_gai_strerror='define' d_gdbm_ndbm_h_uses_prototypes='undef' d_gdbmndbm_h_uses_prototypes='undef' d_getaddrinfo='define' d_getcwd='define' d_getenv_preserves_other_thread='define' d_getespwnam='undef' d_getfsstat='define' d_getgrent='define' d_getgrent_r='undef' d_getgrgid_r='undef' d_getgrnam_r='undef' d_getgrps='define' d_gethbyaddr='define' d_gethbyname='define' d_gethent='define' d_gethname='define' d_gethostbyaddr_r='undef' d_gethostbyname_r='undef' d_gethostent_r='undef' d_gethostprotos='define' d_getitimer='define' d_getlogin='define' d_getlogin_r='undef' d_getmnt='undef' d_getmntent='undef' d_getnameinfo='define' d_getnbyaddr='define' d_getnbyname='define' d_getnent='define' d_getnetbyaddr_r='undef' d_getnetbyname_r='undef' d_getnetent_r='undef' d_getnetprotos='define' d_getpagsz='define' d_getpbyname='define' d_getpbynumber='define' d_getpent='define' d_getpgid='define' d_getpgrp='define' d_getpgrp2='undef' d_getppid='define' d_getprior='define' d_getprotobyname_r='undef' d_getprotobynumber_r='undef' d_getprotoent_r='undef' d_getprotoprotos='define' d_getprpwnam='undef' d_getpwent='define' d_getpwent_r='undef' d_getpwnam_r='undef' d_getpwuid_r='undef' d_getsbyname='define' d_getsbyport='define' d_getsent='define' d_getservbyname_r='undef' d_getservbyport_r='undef' d_getservent_r='undef' d_getservprotos='define' d_getspnam='undef' d_getspnam_r='undef' d_gettimeod='define' d_gmtime64='undef' d_gmtime_r='undef' d_gnulibc='undef' d_grpasswd='define' d_has_C_UTF8='false' d_hasmntopt='undef' d_htonl='define' d_hypot='define' d_ilogb='define' d_ilogbl='define' d_inc_version_list='undef' d_inetaton='define' d_inetntop='define' d_inetpton='define' d_int64_t='define' d_ip_mreq='define' d_ip_mreq_source='define' d_ipv6_mreq='define' d_ipv6_mreq_source='undef' d_isascii='define' d_isblank='define' d_isfinite='define' d_isfinitel='undef' d_isinf='define' d_isinfl='undef' d_isless='define' d_isnan='define' d_isnanl='undef' d_isnormal='define' d_j0='define' d_j0l='undef' d_killpg='define' d_lc_monetary_2008='define' d_lchown='define' d_ldbl_dig='define' d_ldexpl='define' d_lgamma='define' d_lgamma_r='define' d_libm_lib_version='undef' d_libname_unique='undef' d_link='define' d_linkat='define' d_llrint='define' d_llrintl='define' d_llround='define' d_llroundl='define' d_localeconv_l='define' d_localtime64='undef' d_localtime_r='undef' d_localtime_r_needs_tzset='undef' d_locconv='define' d_lockf='define' d_log1p='define' d_log2='define' d_logb='define' d_long_double_style_ieee='undef' d_long_double_style_ieee_doubledouble='undef' d_long_double_style_ieee_extended='undef' d_long_double_style_ieee_std='undef' d_long_double_style_vax='undef' d_longdbl='define' d_longlong='define' d_lrint='define' d_lrintl='define' d_lround='define' d_lroundl='define' d_lseekproto='define' d_lstat='define' d_madvise='define' d_malloc_good_size='define' d_malloc_size='define' d_malloc_usable_size='undef' d_mblen='define' d_mbrlen='define' d_mbrtowc='define' d_mbstowcs='define' d_mbtowc='define' d_memmem='define' d_memrchr='undef' d_mkdir='define' d_mkdtemp='define' d_mkfifo='define' d_mkostemp='undef' d_mkstemp='define' d_mkstemps='define' d_mktime='define' d_mktime64='undef' d_mmap='define' d_modfl='define' d_modflproto='define' d_mprotect='define' d_msg='define' d_msg_ctrunc='define' d_msg_dontroute='define' d_msg_oob='define' d_msg_peek='define' d_msg_proxy='undef' d_msgctl='define' d_msgget='define' d_msghdr_s='define' d_msgrcv='define' d_msgsnd='define' d_msync='define' d_munmap='define' d_mymalloc='undef' d_nan='define' d_nanosleep='define' d_ndbm='define' d_ndbm_h_uses_prototypes='define' d_nearbyint='define' d_newlocale='define' d_nextafter='define' d_nexttoward='define' d_nice='define' d_nl_langinfo='define' d_nl_langinfo_l='define' d_non_int_bitfields='define' d_nv_preserves_uv='undef' d_nv_zero_is_allbits_zero='define' d_off64_t='undef' d_old_pthread_create_joinable='undef' d_oldpthreads='undef' d_oldsock='undef' d_open3='define' d_openat='define' d_pathconf='define' d_pause='define' d_perl_lc_all_category_positions_init='define' d_perl_lc_all_separator='define' d_perl_lc_all_uses_name_value_pairs='undef' d_perl_otherlibdirs='undef' d_phostname='undef' d_pipe='define' d_pipe2='undef' d_poll='undef' d_portable='define' d_prctl='undef' d_prctl_set_name='undef' d_printf_format_null='define' d_procselfexe='undef' d_pseudofork='undef' d_pthread_atfork='define' d_pthread_attr_setscope='define' d_pthread_yield='undef' d_ptrdiff_t='define' d_pwage='undef' d_pwchange='define' d_pwclass='define' d_pwcomment='undef' d_pwexpire='define' d_pwgecos='define' d_pwpasswd='define' d_pwquota='undef' d_qgcvt='undef' d_quad='define' d_querylocale='define' d_random_r='undef' d_re_comp='undef' d_readdir='define' d_readdir64_r='undef' d_readdir_r='undef' d_readlink='define' d_readv='define' d_recvmsg='define' d_regcmp='undef' d_regcomp='define' d_remainder='define' d_remquo='define' d_rename='define' d_renameat='define' d_rewinddir='define' d_rint='define' d_rmdir='define' d_round='define' d_sbrkproto='define' d_scalbn='define' d_scalbnl='define' d_sched_yield='define' d_scm_rights='define' d_seekdir='define' d_select='define' d_sem='define' d_semctl='define' d_semctl_semid_ds='define' d_semctl_semun='define' d_semget='define' d_semop='define' d_sendmsg='define' d_setegid='define' d_setenv='define' d_seteuid='define' d_setgrent='define' d_setgrent_r='undef' d_setgrps='define' d_sethent='define' d_sethostent_r='undef' d_setitimer='define' d_setlinebuf='define' d_setlocale='define' d_setlocale_accepts_any_locale_name='undef' d_setlocale_r='undef' d_setnent='define' d_setnetent_r='undef' d_setpent='define' d_setpgid='define' d_setpgrp='define' d_setpgrp2='undef' d_setprior='define' d_setproctitle='undef' d_setprotoent_r='undef' d_setpwent='define' d_setpwent_r='undef' d_setregid='define' d_setresgid='undef' d_setresuid='undef' d_setreuid='define' d_setrgid='define' d_setruid='define' d_setsent='define' d_setservent_r='undef' d_setsid='define' d_setvbuf='define' d_shm='define' d_shmat='define' d_shmatprototype='define' d_shmctl='define' d_shmdt='define' d_shmget='define' d_sigaction='define' d_siginfo_si_addr='define' d_siginfo_si_band='define' d_siginfo_si_errno='define' d_siginfo_si_fd='undef' d_siginfo_si_pid='define' d_siginfo_si_status='define' d_siginfo_si_uid='define' d_siginfo_si_value='define' d_signbit='define' d_sigprocmask='define' d_sigsetjmp='define' d_sin6_scope_id='define' d_sitearch='define' d_snprintf='define' d_sockaddr_in6='define' d_sockaddr_sa_len='define' d_sockaddr_storage='define' d_sockatmark='define' d_sockatmarkproto='define' d_socket='define' d_socklen_t='define' d_sockpair='define' d_socks5_init='undef' d_sqrtl='define' d_srand48_r='undef' d_srandom_r='undef' d_sresgproto='undef' d_sresuproto='undef' d_stat='define' d_statblks='define' d_statfs_f_flags='define' d_statfs_s='define' d_static_inline='define' d_statvfs='define' d_stdio_cnt_lval='define' d_stdio_ptr_lval='define' d_stdio_ptr_lval_nochange_cnt='undef' d_stdio_ptr_lval_sets_cnt='undef' d_stdio_stream_array='undef' d_stdiobase='undef' d_stdstdio='define' d_strcoll='define' d_strerror_l='undef' d_strerror_r='undef' d_strftime='define' d_strlcat='define' d_strlcpy='define' d_strnlen='define' d_strtod='define' d_strtod_l='define' d_strtol='define' d_strtold='define' d_strtold_l='define' d_strtoll='define' d_strtoq='define' d_strtoul='define' d_strtoull='define' d_strtouq='define' d_strxfrm='define' d_strxfrm_l='define' d_suidsafe='undef' d_symlink='define' d_syscall='undef' d_syscallproto='define' d_sysconf='define' d_sysernlst='' d_syserrlst='define' d_system='define' d_tcgetpgrp='define' d_tcsetpgrp='define' d_telldir='define' d_telldirproto='define' d_tgamma='define' d_thread_local='undef' d_time='define' d_timegm='define' d_times='define' d_tm_tm_gmtoff='define' d_tm_tm_zone='define' d_tmpnam_r='undef' d_towlower='define' d_towupper='define' d_trunc='define' d_truncate='define' d_truncl='define' d_ttyname_r='undef' d_tzname='define' d_u32align='define' d_ualarm='define' d_umask='define' d_uname='define' d_union_semun='define' d_unlinkat='define' d_unordered='undef' d_unsetenv='define' d_uselocale='define' d_usleep='define' d_usleepproto='define' d_ustat='undef' d_vendorarch='undef' d_vendorbin='undef' d_vendorlib='undef' d_vendorscript='undef' d_vfork='define' d_void_closedir='undef' d_voidsig='define' d_voidtty='' d_vsnprintf='define' d_wait4='define' d_waitpid='define' d_wcrtomb='define' d_wcscmp='define' d_wcstombs='define' d_wcsxfrm='define' d_wctomb='define' d_writev='define' d_xenix='undef' date='date' db_hashtype='u_int32_t' db_prefixtype='size_t' db_version_major='1' db_version_minor='0' db_version_patch='0' default_inc_excludes_dot='define' direntrytype='struct dirent' dlext='bundle' dlsrc='dl_dlopen.xs' doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f' doublekind='3' doublemantbits='52' doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f' doublesize='8' drand01='Perl_drand48()' drand48_r_proto='0' dtrace='' dtraceobject='' dtracexnolibs='' dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap attributes mro re threads threads/shared' eagain='EAGAIN' ebcdic='undef' echo='echo' egrep='egrep' emacs='' endgrent_r_proto='0' endhostent_r_proto='0' endnetent_r_proto='0' endprotoent_r_proto='0' endpwent_r_proto='0' endservent_r_proto='0' eunicefix=':' exe_ext='' expr='expr' extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap attributes mro re threads threads/shared Archive/Tar Attribute/Handlers AutoLoader CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple FindBin Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Perl/OSType PerlIO/scalar PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Term/Table Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version' extern_C='extern' extras='' fflushNULL='define' fflushall='undef' find='' firstmakefile='GNUmakefile' flex='' fpossize='8' fpostype='fpos_t' freetype='void' from=':' full_ar='/usr/bin/ar' full_csh='/bin/csh' full_sed='/usr/bin/sed' gccansipedantic='' gccosandvers='' gccversion='Apple LLVM 15.0.0 (clang-1500.3.9.4)' getgrent_r_proto='0' getgrgid_r_proto='0' getgrnam_r_proto='0' gethostbyaddr_r_proto='0' gethostbyname_r_proto='0' gethostent_r_proto='0' getlogin_r_proto='0' getnetbyaddr_r_proto='0' getnetbyname_r_proto='0' getnetent_r_proto='0' getprotobyname_r_proto='0' getprotobynumber_r_proto='0' getprotoent_r_proto='0' getpwent_r_proto='0' getpwnam_r_proto='0' getpwuid_r_proto='0' getservbyname_r_proto='0' getservbyport_r_proto='0' getservent_r_proto='0' getspnam_r_proto='0' gidformat='"u"' gidsign='1' gidsize='4' gidtype='gid_t' glibpth='/usr/shlib /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib ' gmake='gmake' gmtime_r_proto='0' gnulibc_version='' grep='grep' groupcat='cat /etc/group' groupstype='gid_t' gzip='gzip' h_fcntl='false' h_sysfile='true' hint='recommended' hostcat='cat /etc/hosts' hostgenerate='' hostosname='' hostperl='' html1dir=' ' html1direxp='' html3dir=' ' html3direxp='' i16size='2' i16type='short' i32dformat='"d"' i32size='4' i32type='int' i64size='8' i64type='long' i8size='1' i8type='signed char' i_arpainet='define' i_bfd='undef' i_bsdioctl='' i_crypt='undef' i_db='define' i_dbm='undef' i_dirent='define' i_dlfcn='define' i_execinfo='define' i_fcntl='undef' i_fenv='define' i_fp='undef' i_fp_class='undef' i_gdbm='undef' i_gdbm_ndbm='undef' i_gdbmndbm='undef' i_grp='define' i_ieeefp='undef' i_inttypes='define' i_langinfo='define' i_libutil='undef' i_limits='define' i_locale='define' i_machcthr='undef' i_malloc='undef' i_mallocmalloc='define' i_mntent='undef' i_ndbm='define' i_netdb='define' i_neterrno='undef' i_netinettcp='define' i_niin='define' i_poll='undef' i_prot='undef' i_pthread='define' i_pwd='define' i_quadmath='undef' i_rpcsvcdbm='undef' i_sgtty='undef' i_shadow='undef' i_socks='undef' i_stdbool='define' i_stdint='define' i_stdlib='define' i_string='define' i_sunmath='undef' i_sysaccess='undef' i_sysdir='define' i_sysfile='define' i_sysfilio='define' i_sysin='undef' i_sysioctl='define' i_syslog='define' i_sysmman='define' i_sysmode='undef' i_sysmount='define' i_sysndir='undef' i_sysparam='define' i_syspoll='define' i_sysresrc='define' i_syssecrt='undef' i_sysselct='define' i_syssockio='define' i_sysstat='define' i_sysstatfs='undef' i_sysstatvfs='define' i_syssyscall='define' i_systime='define' i_systimek='undef' i_systimes='define' i_systypes='define' i_sysuio='define' i_sysun='define' i_sysutsname='define' i_sysvfs='undef' i_syswait='define' i_termio='undef' i_termios='define' i_time='define' i_unistd='define' i_ustat='undef' i_utime='define' i_vfork='undef' i_wchar='define' i_wctype='define' i_xlocale='define' ignore_versioned_solibs='' inc_version_list=' ' inc_version_list_init='0' incpath='' incpth='/Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/include /Applications/Xcode_15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include' inews='' initialinstalllocation='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' installarchlib='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0/darwin-2level' installbin='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' installhtml1dir='' installhtml3dir='' installman1dir='' installman3dir='' installprefix='/Users/runner/hostedtoolcache/perl/5.42.0/arm64' installprefixexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64' installprivlib='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0' installscript='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' installsitearch='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl/5.42.0/darwin-2level' installsitebin='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' installsitehtml1dir='' installsitehtml3dir='' installsitelib='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl/5.42.0' installsiteman1dir='' installsiteman3dir='' installsitescript='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' installstyle='lib' installusrbinperl='undef' installvendorarch='' installvendorbin='' installvendorhtml1dir='' installvendorhtml3dir='' installvendorlib='' installvendorman1dir='' installvendorman3dir='' installvendorscript='' intsize='4' issymlink='test -h' ivdformat='"ld"' ivsize='8' ivtype='long' known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call FindBin GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Term/Table Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version ' ksh='' ld='cc' ld_can_script='undef' lddlflags='-bundle -undefined dynamic_lookup -fstack-protector-strong' ldflags=' -fstack-protector-strong' ldflags_uselargefiles='' ldlibpthname='DYLD_LIBRARY_PATH' less='less' lib_ext='.a' libc='' libperl='libperl.dylib' libpth='/Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib /Applications/Xcode_15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib' libs=' ' libsdirs='' libsfiles='' libsfound='' libspath=' /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/15.0.0/lib /Applications/Xcode_15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib /Applications/Xcode_15.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib' libswanted='cl pthread socket bind inet ndbm gdbm dbm db malloc dl ld sun m crypt sec util c cposix posix ucb bsd BSD' libswanted_uselargefiles='' line='' lint='' lkflags='' ln='ln' lns='/bin/ln -s' localtime_r_proto='0' locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include' loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib' longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f' longdblkind='0' longdblmantbits='52' longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f' longdblsize='8' longlongsize='8' longsize='8' lp='' lpr='' ls='ls' lseeksize='8' lseektype='off_t' mail='' mailx='' make='make' make_set_make='#' malloc_cflags='ccflags="-DUSE_PERL_SBRK -DPERL_SBRK_VIA_MALLOC $ccflags"' mallocobj='' mallocsrc='' malloctype='void *' man1dir=' ' man1direxp='' man1ext='0' man3dir=' ' man3direxp='' man3ext='0' mips_type='' mistrustnm='' mkdir='mkdir' mmaptype='void *' modetype='mode_t' more='more' multiarch='define' mv='' myarchname='arm64-darwin' mydomain='.local' myhostname='mac-1754469716739' myuname='darwin mac-1754469716739.local 23.6.0 darwin kernel version 23.6.0: thu apr 24 20:27:23 pdt 2025; root:xnu-10063.141.1.705.2~1release_arm64_vmapple arm64 ' n='' need_va_copy='undef' netdb_hlen_type='size_t' netdb_host_type='char *' netdb_name_type='const char *' netdb_net_type='in_addr_t' nm='nm' nm_opt='' nm_so_opt='' nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/PL2Bat ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple FindBin Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Perl/OSType PerlIO/scalar PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Term/Table Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version' nroff='nroff' nvEUformat='"E"' nvFUformat='"F"' nvGUformat='"G"' nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0' nv_preserves_uv_bits='53' nveformat='"e"' nvfformat='"f"' nvgformat='"g"' nvmantbits='52' nvsize='8' nvtype='double' o_nonblock='O_NONBLOCK' obj_ext='.o' old_pthread_create_joinable='' optimize='-O3' orderlib='false' osname='darwin' osvers='23.6.0' otherlibdirs=' ' package='perl5' pager='/usr/bin/less -R' passcat='cat /etc/passwd' patchlevel='42' path_sep=':' perl='perl' perl5='/opt/homebrew/opt/perl/bin/perl' perl_lc_all_category_positions_init='{ 1, 2, 3, 4, 5, 6 }' perl_lc_all_separator='"/"' perl_patchlevel='' perl_revision='5' perl_static_inline='static __inline__' perl_subversion='0' perl_thread_local='_Thread_local' perl_version='42' perladmin='root@mac-1754469716739.local' perllibs='' perlpath='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin/perl' pg='pg' phostname='hostname' pidtype='pid_t' plibpth='' pmake='' pr='' prefix='/Users/runner/hostedtoolcache/perl/5.42.0/arm64' prefixexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64' privlib='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0' privlibexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0' procselfexe='' prototype='define' ptrsize='8' quadkind='2' quadtype='long' randbits='48' randfunc='Perl_drand48' random_r_proto='0' randseedtype='U32' ranlib='ranlib' rd_nodata='-1' readdir64_r_proto='0' readdir_r_proto='0' revision='5' rm='rm' rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*' rmail='' run='' runnm='false' sGMTIME_max='67768036191676799' sGMTIME_min='-62167219200' sLOCALTIME_max='67768036191676799' sLOCALTIME_min='-62167219200' sPRIEUldbl='"E"' sPRIFUldbl='"F"' sPRIGUldbl='"G"' sPRIXU64='"lX"' sPRId64='"ld"' sPRIeldbl='"e"' sPRIfldbl='"f"' sPRIgldbl='"g"' sPRIi64='"li"' sPRIo64='"lo"' sPRIu64='"lu"' sPRIx64='"lx"' sSCNfldbl='"f"' sched_yield='sched_yield()' scriptdir='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' scriptdirexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' sed='sed' seedfunc='Perl_drand48_init' selectminbits='32' selecttype='fd_set *' sendmail='' setgrent_r_proto='0' sethostent_r_proto='0' setlocale_r_proto='0' setnetent_r_proto='0' setprotoent_r_proto='0' setpwent_r_proto='0' setservent_r_proto='0' sh='/bin/sh' shar='' sharpbang='#!' shmattype='void *' shortsize='2' shrpenv='env LD_RUN_PATH=/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/5.42.0/darwin-2level/CORE' shsharp='true' sig_count='32' sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 IOT ' sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "URG", "STOP", "TSTP", "CONT", "CHLD", "TTIN", "TTOU", "IO", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "INFO", "USR1", "USR2", "IOT", 0' sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 6 ' sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 6, 0' sig_size='33' signal_t='void' sitearch='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl/5.42.0/darwin-2level' sitearchexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl/5.42.0/darwin-2level' sitebin='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' sitebinexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' sitelib='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl/5.42.0' sitelib_stem='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl' sitelibexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/lib/site_perl/5.42.0' siteman1dir='' siteman1direxp='' siteman3dir='' siteman3direxp='' siteprefix='/Users/runner/hostedtoolcache/perl/5.42.0/arm64' siteprefixexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64' sitescript='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' sitescriptexp='/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin' sizesize='8' sizetype='size_t' sleep='' smail='' so='dylib' sockethdr='' socketlib='' socksizetype='socklen_t' sort='sort' spackage='Perl5' spitshell='cat' srand48_r_proto='0' srandom_r_proto='0' src='.' ssizetype='ssize_t' st_dev_sign='-1' st_dev_size='4' st_ino_sign='1' st_ino_size='8' startperl='#!/Users/runner/hostedtoolcache/perl/5.42.0/arm64/bin/perl' startsh='#!/bin/sh' static_ext=' ' stdchar='char' stdio_base='((fp)->_ub._base ? (fp)->_ub._base : (fp)->_bf._base)' stdio_bufsiz='((fp)->_ub._base ? (fp)->_ub._size : (fp)->_bf._size)' stdio_cnt='((fp)->_r)' stdio_filbuf='' stdio_ptr='((fp)->_p)' stdio_stream_array='' strerror_r_proto='0' submit='' subversion='0' sysman='/usr/share/man/man1' sysroot='' tail='' taint_disabled='' taint_support='' tar='' targetarch='' targetdir='' targetenv='' targethost='' targetmkdir='' targetport='' targetsh='/bin/sh' tbl='' tee='' test='test' timeincl='/Applications/Xcode_15.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/time.h ' timetype='time_t' tmpnam_r_proto='0' to=':' touch='touch' tr='tr' trnl='\n' troff='' ttyname_r_proto='0' u16size='2' u16type='unsigned short' u32XUformat='"X"' u32oformat='"o"' u32size='4' u32type='unsigned int' u32uformat='"u"' u32xformat='"x"' u64size='8' u64type='unsigned long' u8size='1' u8type='unsigned char' uidformat='"u"' uidsign='1' uidsize='4' uidtype='uid_t' uname='uname' uniq='uniq' uquadtype='unsigned long' use64bitall='define' use64bitint='define' usecbacktrace='undef' usecrosscompile='undef' usedefaultstrict='undef' usedevel='undef' usedl='define' usedtrace='undef' usefaststdio='undef' useithreads='undef' usekernprocpathname='undef' uselanginfo='true' uselargefiles='define' uselongdouble='undef' usemallocwrap='define' usemorebits='undef' usemultiplicity='undef' usemymalloc='n' usenm='false' usensgetexecutablepath='define' useopcode='true' useperlio='define' useposix='true' usequadmath='undef' usereentrant='undef' userelocatableinc='undef' useshrplib='true' usesitecustomize='undef' usesocks='undef' usethreads='undef' usevendorprefix='undef' useversionedarchname='undef' usevfork='true' usrinc='/usr/include' uuname='' uvXUformat='"lX"' uvoformat='"lo"' uvsize='8' uvtype='unsigned long' uvuformat='"lu"' uvxformat='"lx"' vendorarch='' vendorarchexp='' vendorbin='' vendorbinexp='' vendorhtml1dir=' ' vendorhtml1direxp='' vendorhtml3dir=' ' vendorhtml3direxp='' vendorlib='' vendorlib_stem='' vendorlibexp='' vendorman1dir=' ' vendorman1direxp='' vendorman3dir=' ' vendorman3direxp='' vendorprefix='' vendorprefixexp='' vendorscript='' vendorscriptexp='' version='5.42.0' version_patchlevel_string='version 42 subversion 0' versiononly='undef' vi='' xlibpth='/usr/lib/386 /lib/386' xlocale_needed='define' yacc='yacc' yaccflags='' zcat='' zip='zip' !END! my $i = ord(8); foreach my $c (7,6,5,4,3,2,1) { $i <<= 8; $i |= ord($c); } our $byteorder = join('', unpack('aaaaaaaa', pack('L!', $i))); s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m; { # We have to set this up late as Win32 does not build miniperl # with the same defines and CC flags as it builds perl itself. my $defines = join " ", (Internals::V)[0,1]; if ( $defines =~ /\b(SILENT_NO_TAINT_SUPPORT)\b/ || $defines =~ /\b(NO_TAINT_SUPPORT)\b/ ){ my $which = $1; my $taint_disabled = ($which eq "SILENT_NO_TAINT_SUPPORT") ? "silent" : "define"; s/^(taint_disabled=['"])(["'])/$1$taint_disabled$2/m; } else { my $taint_support = 'define'; s/^(taint_support=['"])(["'])/$1$taint_support$2/m; } } my $config_sh_len = length $_; our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL'; ccflags_nolargefiles='-fno-common -DPERL_DARWIN -DNO_THREAD_SAFE_QUERYLOCALE -DNO_POSIX_2008_LOCALE -DHAS_BROKEN_LANGINFO_CODESET -fno-strict-aliasing -pipe -fstack-protector-strong' ldflags_nolargefiles=' -fstack-protector-strong' libs_nolargefiles=' ' libswanted_nolargefiles='cl pthread socket bind inet ndbm gdbm dbm db malloc dl ld sun m crypt sec util c cposix posix ucb bsd BSD' ccwarnflags=' -Wall -Werror=pointer-arith -Werror=vla -Wextra -Wno-long-long -Wno-declaration-after-statement -Wc++-compat -Wwrite-strings' ccstdflags=' -std=c99' EOVIRTUAL eval { # do not have hairy conniptions if this isnt available require 'Config_git.pl'; $Config_SH_expanded .= $Config::Git_Data; 1; } or warn "Warning: failed to load Config_git.pl, something strange about this perl...\n"; # Search for it in the big string sub fetch_string { my($self, $key) = @_; return undef unless $Config_SH_expanded =~ /\n$key=\'(.*?)\'\n/s; # So we can say "if $Config{'foo'}". $self->{$key} = $1 eq 'undef' ? undef : $1; } my $prevpos = 0; sub FIRSTKEY { $prevpos = 0; substr($Config_SH_expanded, 1, index($Config_SH_expanded, '=') - 1 ); } sub NEXTKEY { my $pos = index($Config_SH_expanded, qq('\n), $prevpos) + 2; my $len = index($Config_SH_expanded, "=", $pos) - $pos; $prevpos = $pos; $len > 0 ? substr($Config_SH_expanded, $pos, $len) : undef; } sub EXISTS { return 1 if exists($_[0]->{$_[1]}); return(index($Config_SH_expanded, "\n$_[1]='") != -1 ); } sub STORE { die "\%Config::Config is read-only\n" } *DELETE = *CLEAR = \*STORE; # Typeglob aliasing uses less space sub config_sh { substr $Config_SH_expanded, 1, $config_sh_len; } sub config_re { my $re = shift; return map { chomp; $_ } grep eval{ /^(?:$re)=/ }, split /^/, $Config_SH_expanded; } sub config_vars { # implements -V:cfgvar option (see perlrun -V:) foreach (@_) { # find optional leading, trailing colons; and query-spec my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/; # flags fore and aft, # map colon-flags to print decorations my $prfx = $notag ? '': "$qry="; # tag-prefix for print my $lnend = $lncont ? ' ' : ";\n"; # line ending for print # all config-vars are by definition \w only, any \W means regex if ($qry =~ /\W/) { my @matches = config_re($qry); print map "$_$lnend", @matches ? @matches : "$qry: not found" if !$notag; print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found" if $notag; } else { my $v = (exists $Config::Config{$qry}) ? $Config::Config{$qry} : 'UNKNOWN'; $v = 'undef' unless defined $v; print "${prfx}'${v}'$lnend"; } } } # Called by the real AUTOLOAD sub launcher { undef &AUTOLOAD; goto \&$Config::AUTOLOAD; } 1; FILE8a6b1b6e/Cwd.pmTopackage Cwd; use strict; use Exporter; our $VERSION = '3.94'; my $xs_version = $VERSION; $VERSION =~ tr/_//d; our @ISA = qw/ Exporter /; our @EXPORT = qw(cwd getcwd fastcwd fastgetcwd); push @EXPORT, qw(getdcwd) if $^O eq 'MSWin32'; our @EXPORT_OK = qw(chdir abs_path fast_abs_path realpath fast_realpath); # sys_cwd may keep the builtin command # All the functionality of this module may provided by builtins, # there is no sense to process the rest of the file. # The best choice may be to have this in BEGIN, but how to return from BEGIN? if ($^O eq 'os2') { local $^W = 0; *cwd = defined &sys_cwd ? \&sys_cwd : \&_os2_cwd; *getcwd = \&cwd; *fastgetcwd = \&cwd; *fastcwd = \&cwd; *fast_abs_path = \&sys_abspath if defined &sys_abspath; *abs_path = \&fast_abs_path; *realpath = \&fast_abs_path; *fast_realpath = \&fast_abs_path; return 1; } # Need to look up the feature settings on VMS. The preferred way is to use the # VMS::Feature module, but that may not be available to dual life modules. my $use_vms_feature; BEGIN { if ($^O eq 'VMS') { if (eval { local $SIG{__DIE__}; local @INC = @INC; pop @INC if $INC[-1] eq '.'; require VMS::Feature; }) { $use_vms_feature = 1; } } } # Need to look up the UNIX report mode. This may become a dynamic mode # in the future. sub _vms_unix_rpt { my $unix_rpt; if ($use_vms_feature) { $unix_rpt = VMS::Feature::current("filename_unix_report"); } else { my $env_unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || ''; $unix_rpt = $env_unix_rpt =~ /^[ET1]/i; } return $unix_rpt; } # Need to look up the EFS character set mode. This may become a dynamic # mode in the future. sub _vms_efs { my $efs; if ($use_vms_feature) { $efs = VMS::Feature::current("efs_charset"); } else { my $env_efs = $ENV{'DECC$EFS_CHARSET'} || ''; $efs = $env_efs =~ /^[ET1]/i; } return $efs; } # If loading the XS stuff doesn't work, we can fall back to pure perl if(! defined &getcwd && defined &DynaLoader::boot_DynaLoader) { # skipped on miniperl require XSLoader; XSLoader::load( __PACKAGE__, $xs_version); } # Big nasty table of function aliases my %METHOD_MAP = ( VMS => { cwd => '_vms_cwd', getcwd => '_vms_cwd', fastcwd => '_vms_cwd', fastgetcwd => '_vms_cwd', abs_path => '_vms_abs_path', fast_abs_path => '_vms_abs_path', }, MSWin32 => { # We assume that &_NT_cwd is defined as an XSUB or in the core. cwd => '_NT_cwd', getcwd => '_NT_cwd', fastcwd => '_NT_cwd', fastgetcwd => '_NT_cwd', abs_path => 'fast_abs_path', realpath => 'fast_abs_path', }, dos => { cwd => '_dos_cwd', getcwd => '_dos_cwd', fastgetcwd => '_dos_cwd', fastcwd => '_dos_cwd', abs_path => 'fast_abs_path', }, # QNX4. QNX6 has a $os of 'nto'. qnx => { cwd => '_qnx_cwd', getcwd => '_qnx_cwd', fastgetcwd => '_qnx_cwd', fastcwd => '_qnx_cwd', abs_path => '_qnx_abs_path', fast_abs_path => '_qnx_abs_path', }, cygwin => { getcwd => 'cwd', fastgetcwd => 'cwd', fastcwd => 'cwd', abs_path => 'fast_abs_path', realpath => 'fast_abs_path', }, amigaos => { getcwd => '_backtick_pwd', fastgetcwd => '_backtick_pwd', fastcwd => '_backtick_pwd', abs_path => 'fast_abs_path', } ); $METHOD_MAP{NT} = $METHOD_MAP{MSWin32}; # Find the pwd command in the expected locations. We assume these # are safe. This prevents _backtick_pwd() consulting $ENV{PATH} # so everything works under taint mode. my $pwd_cmd; if($^O ne 'MSWin32') { foreach my $try ('/bin/pwd', '/usr/bin/pwd', '/QOpenSys/bin/pwd', # OS/400 PASE. ) { if( -x $try ) { $pwd_cmd = $try; last; } } } # Android has a built-in pwd. Using $pwd_cmd will DTRT if # this perl was compiled with -Dd_useshellcmds, which is the # default for Android, but the block below is needed for the # miniperl running on the host when cross-compiling, and # potentially for native builds with -Ud_useshellcmds. if ($^O =~ /android/) { # If targetsh is executable, then we're either a full # perl, or a miniperl for a native build. if ( exists($Config::Config{targetsh}) && -x $Config::Config{targetsh}) { $pwd_cmd = "$Config::Config{targetsh} -c pwd" } else { my $sh = $Config::Config{sh} || (-x '/system/bin/sh' ? '/system/bin/sh' : 'sh'); $pwd_cmd = "$sh -c pwd" } } my $found_pwd_cmd = defined($pwd_cmd); # Lazy-load Carp sub _carp { require Carp; Carp::carp(@_) } sub _croak { require Carp; Carp::croak(@_) } # The 'natural and safe form' for UNIX (pwd may be setuid root) sub _backtick_pwd { # Localize %ENV entries in a way that won't create new hash keys. # Under AmigaOS we don't want to localize as it stops perl from # finding 'sh' in the PATH. my @localize = grep exists $ENV{$_}, qw(IFS CDPATH ENV BASH_ENV) if $^O ne "amigaos"; local @ENV{@localize} if @localize; # empty PATH is the same as "." on *nix, so localize it to /something/ # we won't *use* the path as code above turns $pwd_cmd into a specific # executable, but it will blow up anyway under taint. We could set it to # anything absolute. Perhaps "/" would be better. local $ENV{PATH}= "/usr/bin" if $^O ne "amigaos"; my $cwd = `$pwd_cmd`; # Belt-and-suspenders in case someone said "undef $/". local $/ = "\n"; # `pwd` may fail e.g. if the disk is full chomp($cwd) if defined $cwd; $cwd; } # Since some ports may predefine cwd internally (e.g., NT) # we take care not to override an existing definition for cwd(). unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) { if( $found_pwd_cmd ) { *cwd = \&_backtick_pwd; } else { # getcwd() might have an empty prototype *cwd = sub { getcwd(); }; } } if ($^O eq 'cygwin') { # We need to make sure cwd() is called with no args, because it's # got an arg-less prototype and will die if args are present. local $^W = 0; my $orig_cwd = \&cwd; *cwd = sub { &$orig_cwd() } } # set a reasonable (and very safe) default for fastgetcwd, in case it # isn't redefined later (20001212 rspier) *fastgetcwd = \&cwd; # A non-XS version of getcwd() - also used to bootstrap the perl build # process, when miniperl is running and no XS loading happens. sub _perl_getcwd { abs_path('.'); } # By John Bazik # # Usage: $cwd = &fastcwd; # # This is a faster version of getcwd. It's also more dangerous because # you might chdir out of a directory that you can't chdir back into. sub fastcwd_ { my($odev, $oino, $cdev, $cino, $tdev, $tino); my(@path, $path); local(*DIR); my($orig_cdev, $orig_cino) = stat('.'); ($cdev, $cino) = ($orig_cdev, $orig_cino); for (;;) { my $direntry; ($odev, $oino) = ($cdev, $cino); CORE::chdir('..') || return undef; ($cdev, $cino) = stat('.'); last if $odev == $cdev && $oino eq $cino; opendir(DIR, '.') || return undef; for (;;) { $direntry = readdir(DIR); last unless defined $direntry; next if $direntry eq '.'; next if $direntry eq '..'; ($tdev, $tino) = lstat($direntry); last unless $tdev != $odev || $tino ne $oino; } closedir(DIR); return undef unless defined $direntry; # should never happen unshift(@path, $direntry); } $path = '/' . join('/', @path); if ($^O eq 'apollo') { $path = "/".$path; } # At this point $path may be tainted (if tainting) and chdir would fail. # Untaint it then check that we landed where we started. $path =~ /^(.*)\z/s # untaint && CORE::chdir($1) or return undef; ($cdev, $cino) = stat('.'); die "Unstable directory path, current directory changed unexpectedly" if $cdev != $orig_cdev || $cino ne $orig_cino; $path; } if (not defined &fastcwd) { *fastcwd = \&fastcwd_ } # Keeps track of current working directory in PWD environment var # Usage: # use Cwd 'chdir'; # chdir $newdir; my $chdir_init = 0; sub chdir_init { if ($ENV{'PWD'} and $^O ne 'os2' and $^O ne 'dos' and $^O ne 'MSWin32') { my($dd,$di) = stat('.'); my($pd,$pi) = stat($ENV{'PWD'}); if (!defined $dd or !defined $pd or $di ne $pi or $dd != $pd) { $ENV{'PWD'} = cwd(); } } else { my $wd = cwd(); $wd = Win32::GetFullPathName($wd) if $^O eq 'MSWin32'; $ENV{'PWD'} = $wd; } # Strip an automounter prefix (where /tmp_mnt/foo/bar == /foo/bar) if ($^O ne 'MSWin32' and $ENV{'PWD'} =~ m|(/[^/]+(/[^/]+/[^/]+))(.*)|s) { my($pd,$pi) = stat($2); my($dd,$di) = stat($1); if (defined $pd and defined $dd and $di ne $pi and $dd == $pd) { $ENV{'PWD'}="$2$3"; } } $chdir_init = 1; } sub chdir { my $newdir = @_ ? shift : ''; # allow for no arg (chdir to HOME dir) if ($^O eq "cygwin") { $newdir =~ s|\A///+|//|; $newdir =~ s|(?<=[^/])//+|/|g; } elsif ($^O ne 'MSWin32') { $newdir =~ s|///*|/|g; } chdir_init() unless $chdir_init; my $newpwd; if ($^O eq 'MSWin32') { # get the full path name *before* the chdir() $newpwd = Win32::GetFullPathName($newdir); } return 0 unless CORE::chdir $newdir; if ($^O eq 'VMS') { return $ENV{'PWD'} = $ENV{'DEFAULT'} } elsif ($^O eq 'MSWin32') { $ENV{'PWD'} = $newpwd; return 1; } if (ref $newdir eq 'GLOB') { # in case a file/dir handle is passed in $ENV{'PWD'} = cwd(); } elsif ($newdir =~ m#^/#s) { $ENV{'PWD'} = $newdir; } else { my @curdir = split(m#/#,$ENV{'PWD'}); @curdir = ('') unless @curdir; my $component; foreach $component (split(m#/#, $newdir)) { next if $component eq '.'; pop(@curdir),next if $component eq '..'; push(@curdir,$component); } $ENV{'PWD'} = join('/',@curdir) || '/'; } 1; } sub _perl_abs_path { my $start = @_ ? shift : '.'; my($dotdots, $cwd, @pst, @cst, $dir, @tst); unless (@cst = stat( $start )) { return undef; } unless (-d _) { # Make sure we can be invoked on plain files, not just directories. # NOTE that this routine assumes that '/' is the only directory separator. my ($dir, $file) = $start =~ m{^(.*)/(.+)$} or return cwd() . '/' . $start; # Can't use "-l _" here, because the previous stat was a stat(), not an lstat(). if (-l $start) { my $link_target = readlink($start); die "Can't resolve link $start: $!" unless defined $link_target; require File::Spec; $link_target = $dir . '/' . $link_target unless File::Spec->file_name_is_absolute($link_target); return abs_path($link_target); } return $dir ? abs_path($dir) . "/$file" : "/$file"; } $cwd = ''; $dotdots = $start; do { $dotdots .= '/..'; @pst = @cst; local *PARENT; unless (opendir(PARENT, $dotdots)) { return undef; } unless (@cst = stat($dotdots)) { my $e = $!; closedir(PARENT); $! = $e; return undef; } if ($pst[0] == $cst[0] && $pst[1] eq $cst[1]) { $dir = undef; } else { do { unless (defined ($dir = readdir(PARENT))) { closedir(PARENT); require Errno; $! = Errno::ENOENT(); return undef; } $tst[0] = $pst[0]+1 unless (@tst = lstat("$dotdots/$dir")) } while ($dir eq '.' || $dir eq '..' || $tst[0] != $pst[0] || $tst[1] ne $pst[1]); } $cwd = (defined $dir ? "$dir" : "" ) . "/$cwd" ; closedir(PARENT); } while (defined $dir); chop($cwd) unless $cwd eq '/'; # drop the trailing / $cwd; } my $Curdir; sub fast_abs_path { local $ENV{PWD} = $ENV{PWD} || ''; # Guard against clobberage my $cwd = getcwd(); defined $cwd or return undef; require File::Spec; my $path = @_ ? shift : ($Curdir ||= File::Spec->curdir); # Detaint else we'll explode in taint mode. This is safe because # we're not doing anything dangerous with it. ($path) = $path =~ /(.*)/s; ($cwd) = $cwd =~ /(.*)/s; unless (-e $path) { require Errno; $! = Errno::ENOENT(); return undef; } unless (-d _) { # Make sure we can be invoked on plain files, not just directories. my ($vol, $dir, $file) = File::Spec->splitpath($path); return File::Spec->catfile($cwd, $path) unless length $dir; if (-l $path) { my $link_target = readlink($path); defined $link_target or return undef; $link_target = File::Spec->catpath($vol, $dir, $link_target) unless File::Spec->file_name_is_absolute($link_target); return fast_abs_path($link_target); } return $dir eq File::Spec->rootdir ? File::Spec->catpath($vol, $dir, $file) : fast_abs_path(File::Spec->catpath($vol, $dir, '')) . '/' . $file; } if (!CORE::chdir($path)) { return undef; } my $realpath = getcwd(); if (! ((-d $cwd) && (CORE::chdir($cwd)))) { _croak("Cannot chdir back to $cwd: $!"); } $realpath; } # added function alias to follow principle of least surprise # based on previous aliasing. --tchrist 27-Jan-00 *fast_realpath = \&fast_abs_path; # --- PORTING SECTION --- # VMS: $ENV{'DEFAULT'} points to default directory at all times # 06-Mar-1996 Charles Bailey bailey@newman.upenn.edu # Note: Use of Cwd::chdir() causes the logical name PWD to be defined # in the process logical name table as the default device and directory # seen by Perl. This may not be the same as the default device # and directory seen by DCL after Perl exits, since the effects # the CRTL chdir() function persist only until Perl exits. sub _vms_cwd { return $ENV{'DEFAULT'}; } sub _vms_abs_path { return $ENV{'DEFAULT'} unless @_; my $path = shift; my $efs = _vms_efs; my $unix_rpt = _vms_unix_rpt; if (defined &VMS::Filespec::vmsrealpath) { my $path_unix = 0; my $path_vms = 0; $path_unix = 1 if ($path =~ m#(?<=\^)/#); $path_unix = 1 if ($path =~ /^\.\.?$/); $path_vms = 1 if ($path =~ m#[\[<\]]#); $path_vms = 1 if ($path =~ /^--?$/); my $unix_mode = $path_unix; if ($efs) { # In case of a tie, the Unix report mode decides. if ($path_vms == $path_unix) { $unix_mode = $unix_rpt; } else { $unix_mode = 0 if $path_vms; } } if ($unix_mode) { # Unix format return VMS::Filespec::unixrealpath($path); } # VMS format my $new_path = VMS::Filespec::vmsrealpath($path); # Perl expects directories to be in directory format $new_path = VMS::Filespec::pathify($new_path) if -d $path; return $new_path; } # Fallback to older algorithm if correct ones are not # available. if (-l $path) { my $link_target = readlink($path); die "Can't resolve link $path: $!" unless defined $link_target; return _vms_abs_path($link_target); } # may need to turn foo.dir into [.foo] my $pathified = VMS::Filespec::pathify($path); $path = $pathified if defined $pathified; return VMS::Filespec::rmsexpand($path); } sub _os2_cwd { my $pwd = `cmd /c cd`; chomp $pwd; $pwd =~ s:\\:/:g ; $ENV{'PWD'} = $pwd; return $pwd; } sub _win32_cwd_simple { my $pwd = `cd`; chomp $pwd; $pwd =~ s:\\:/:g ; $ENV{'PWD'} = $pwd; return $pwd; } sub _win32_cwd { my $pwd; $pwd = Win32::GetCwd(); $pwd =~ s:\\:/:g ; $ENV{'PWD'} = $pwd; return $pwd; } *_NT_cwd = defined &Win32::GetCwd ? \&_win32_cwd : \&_win32_cwd_simple; sub _dos_cwd { my $pwd; if (!defined &Dos::GetCwd) { chomp($pwd = `command /c cd`); $pwd =~ s:\\:/:g ; } else { $pwd = Dos::GetCwd(); } $ENV{'PWD'} = $pwd; return $pwd; } sub _qnx_cwd { local $ENV{PATH} = ''; local $ENV{CDPATH} = ''; local $ENV{ENV} = ''; my $pwd = `/usr/bin/fullpath -t`; chomp $pwd; $ENV{'PWD'} = $pwd; return $pwd; } sub _qnx_abs_path { local $ENV{PATH} = ''; local $ENV{CDPATH} = ''; local $ENV{ENV} = ''; my $path = @_ ? shift : '.'; local *REALPATH; defined( open(REALPATH, '-|') || exec '/usr/bin/fullpath', '-t', $path ) or die "Can't open /usr/bin/fullpath: $!"; my $realpath = ; close REALPATH; chomp $realpath; return $realpath; } # Now that all the base-level functions are set up, alias the # user-level functions to the right places if (exists $METHOD_MAP{$^O}) { my $map = $METHOD_MAP{$^O}; foreach my $name (keys %$map) { local $^W = 0; # assignments trigger 'subroutine redefined' warning no strict 'refs'; *{$name} = \&{$map->{$name}}; } } # built-in from 5.30 *getcwd = \&Internals::getcwd if !defined &getcwd && defined &Internals::getcwd; # In case the XS version doesn't load. *abs_path = \&_perl_abs_path unless defined &abs_path; *getcwd = \&_perl_getcwd unless defined &getcwd; # added function alias for those of us more # used to the libc function. --tchrist 27-Jan-00 *realpath = \&abs_path; 1; __END__ =head1 NAME Cwd - get pathname of current working directory =head1 SYNOPSIS use Cwd; my $dir = getcwd; use Cwd 'abs_path'; my $abs_path = abs_path($file); =head1 DESCRIPTION This module provides functions for determining the pathname of the current working directory. It is recommended that getcwd (or another *cwd() function) be used in I code to ensure portability. By default, it exports the functions cwd(), getcwd(), fastcwd(), and fastgetcwd() (and, on Win32, getdcwd()) into the caller's namespace. =head2 getcwd and friends Each of these functions are called without arguments and return the absolute path of the current working directory. =over 4 =item getcwd my $cwd = getcwd(); Returns the current working directory. On error returns C, with C<$!> set to indicate the error. Exposes the POSIX function getcwd(3) or re-implements it if it's not available. =item cwd my $cwd = cwd(); The cwd() is the most natural form for the current architecture. For most systems it is identical to `pwd` (but without the trailing line terminator). =item fastcwd my $cwd = fastcwd(); A more dangerous version of getcwd(), but potentially faster. It might conceivably chdir() you out of a directory that it can't chdir() you back into. If fastcwd encounters a problem it will return undef but will probably leave you in a different directory. For a measure of extra security, if everything appears to have worked, the fastcwd() function will check that it leaves you in the same directory that it started in. If it has changed it will C with the message "Unstable directory path, current directory changed unexpectedly". That should never happen. =item fastgetcwd my $cwd = fastgetcwd(); The fastgetcwd() function is provided as a synonym for cwd(). =item getdcwd my $cwd = getdcwd(); my $cwd = getdcwd('C:'); The getdcwd() function is also provided on Win32 to get the current working directory on the specified drive, since Windows maintains a separate current working directory for each drive. If no drive is specified then the current drive is assumed. This function simply calls the Microsoft C library _getdcwd() function. =back =head2 abs_path and friends These functions are exported only on request. They each take a single argument and return the absolute pathname for it. If no argument is given they'll use the current working directory. =over 4 =item abs_path my $abs_path = abs_path($file); Uses the same algorithm as getcwd(). Symbolic links and relative-path components ("." and "..") are resolved to return the canonical pathname, just like realpath(3). On error returns C, with C<$!> set to indicate the error. =item realpath my $abs_path = realpath($file); A synonym for abs_path(). =item fast_abs_path my $abs_path = fast_abs_path($file); A more dangerous, but potentially faster version of abs_path. =back =head2 $ENV{PWD} If you ask to override your chdir() built-in function, use Cwd qw(chdir); then your PWD environment variable will be kept up to date. Note that it will only be kept up to date if all packages which use chdir import it from Cwd. =head1 NOTES =over 4 =item * Since the path separators are different on some operating systems ('/' on Unix, ':' on MacPerl, etc...) we recommend you use the File::Spec modules wherever portability is a concern. =item * Actually, on Mac OS, the C, C and C functions are all aliases for the C function, which, on Mac OS, calls `pwd`. Likewise, the C function is an alias for C. =back =head1 AUTHOR Maintained by perl5-porters >. =head1 COPYRIGHT Copyright (c) 2004 by the Perl 5 Porters. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Portions of the C code in this library are copyright (c) 1994 by the Regents of the University of California. All rights reserved. The license on this code is compatible with the licensing of the rest of the distribution - please see the source code in F for the details. =head1 SEE ALSO L =cut FILEb56a5696/Digest/SHA.pmW2package Digest::SHA; require 5.003000; use strict; use warnings; use vars qw($VERSION @ISA @EXPORT_OK $errmsg); use Fcntl qw(O_RDONLY O_RDWR); use Cwd qw(getcwd); use integer; $VERSION = '6.04'; require Exporter; @ISA = qw(Exporter); @EXPORT_OK = qw( $errmsg hmac_sha1 hmac_sha1_base64 hmac_sha1_hex hmac_sha224 hmac_sha224_base64 hmac_sha224_hex hmac_sha256 hmac_sha256_base64 hmac_sha256_hex hmac_sha384 hmac_sha384_base64 hmac_sha384_hex hmac_sha512 hmac_sha512_base64 hmac_sha512_hex hmac_sha512224 hmac_sha512224_base64 hmac_sha512224_hex hmac_sha512256 hmac_sha512256_base64 hmac_sha512256_hex sha1 sha1_base64 sha1_hex sha224 sha224_base64 sha224_hex sha256 sha256_base64 sha256_hex sha384 sha384_base64 sha384_hex sha512 sha512_base64 sha512_hex sha512224 sha512224_base64 sha512224_hex sha512256 sha512256_base64 sha512256_hex); # Inherit from Digest::base if possible eval { require Digest::base; push(@ISA, 'Digest::base'); }; # The following routines aren't time-critical, so they can be left in Perl sub new { my($class, $alg) = @_; $alg =~ s/\D+//g if defined $alg; if (ref($class)) { # instance method if (!defined($alg) || ($alg == $class->algorithm)) { sharewind($class); return($class); } return shainit($class, $alg) ? $class : undef; } $alg = 1 unless defined $alg; return $class->newSHA($alg); } BEGIN { *reset = \&new } sub add_bits { my($self, $data, $nbits) = @_; unless (defined $nbits) { $nbits = length($data); $data = pack("B*", $data); } $nbits = length($data) * 8 if $nbits > length($data) * 8; shawrite($data, $nbits, $self); return($self); } sub _bail { my $msg = shift; $errmsg = $!; $msg .= ": $!"; require Carp; Carp::croak($msg); } { my $_can_T_filehandle; sub _istext { local *FH = shift; my $file = shift; if (! defined $_can_T_filehandle) { local $^W = 0; my $istext = eval { -T FH }; $_can_T_filehandle = $@ ? 0 : 1; return $_can_T_filehandle ? $istext : -T $file; } return $_can_T_filehandle ? -T FH : -T $file; } } sub _addfile { my ($self, $handle) = @_; my $n; my $buf = ""; while (($n = read($handle, $buf, 4096))) { $self->add($buf); } _bail("Read failed") unless defined $n; $self; } sub addfile { my ($self, $file, $mode) = @_; return(_addfile($self, $file)) unless ref(\$file) eq 'SCALAR'; $mode = defined($mode) ? $mode : ""; my ($binary, $UNIVERSAL, $BITS) = map { $_ eq $mode } ("b", "U", "0"); ## Always interpret "-" to mean STDIN; otherwise use ## sysopen to handle full range of POSIX file names. ## If $file is a directory, force an EISDIR error ## by attempting to open with mode O_RDWR local *FH; if ($file eq '-') { if (-d STDIN) { sysopen(FH, getcwd(), O_RDWR) or _bail('Open failed'); } open(FH, '< -') or _bail('Open failed'); } else { sysopen(FH, $file, -d $file ? O_RDWR : O_RDONLY) or _bail('Open failed'); } if ($BITS) { my ($n, $buf) = (0, ""); while (($n = read(FH, $buf, 4096))) { $buf =~ tr/01//cd; $self->add_bits($buf); } _bail("Read failed") unless defined $n; close(FH); return($self); } binmode(FH) if $binary || $UNIVERSAL; if ($UNIVERSAL && _istext(*FH, $file)) { $self->_addfileuniv(*FH); } else { $self->_addfilebin(*FH) } close(FH); $self; } sub getstate { my $self = shift; my $alg = $self->algorithm or return; my $state = $self->_getstate or return; my $nD = $alg <= 256 ? 8 : 16; my $nH = $alg <= 256 ? 32 : 64; my $nB = $alg <= 256 ? 64 : 128; my($H, $block, $blockcnt, $lenhh, $lenhl, $lenlh, $lenll) = $state =~ /^(.{$nH})(.{$nB})(.{4})(.{4})(.{4})(.{4})(.{4})$/s; for ($alg, $H, $block, $blockcnt, $lenhh, $lenhl, $lenlh, $lenll) { return unless defined $_; } my @s = (); push(@s, "alg:" . $alg); push(@s, "H:" . join(":", unpack("H*", $H) =~ /.{$nD}/g)); push(@s, "block:" . join(":", unpack("H*", $block) =~ /.{2}/g)); push(@s, "blockcnt:" . unpack("N", $blockcnt)); push(@s, "lenhh:" . unpack("N", $lenhh)); push(@s, "lenhl:" . unpack("N", $lenhl)); push(@s, "lenlh:" . unpack("N", $lenlh)); push(@s, "lenll:" . unpack("N", $lenll)); join("\n", @s) . "\n"; } sub putstate { my($class, $state) = @_; my %s = (); for (split(/\n/, $state)) { s/^\s+//; s/\s+$//; next if (/^(#|$)/); my @f = split(/[:\s]+/); my $tag = shift(@f); $s{$tag} = join('', @f); } # H and block may contain arbitrary values, but check everything else grep { $_ == $s{'alg'} } (1,224,256,384,512,512224,512256) or return; length($s{'H'}) == ($s{'alg'} <= 256 ? 64 : 128) or return; length($s{'block'}) == ($s{'alg'} <= 256 ? 128 : 256) or return; { no integer; for (qw(blockcnt lenhh lenhl lenlh lenll)) { 0 <= $s{$_} or return; $s{$_} <= 4294967295 or return; } $s{'blockcnt'} < ($s{'alg'} <= 256 ? 512 : 1024) or return; } my $packed_state = ( pack("H*", $s{'H'}) . pack("H*", $s{'block'}) . pack("N", $s{'blockcnt'}) . pack("N", $s{'lenhh'}) . pack("N", $s{'lenhl'}) . pack("N", $s{'lenlh'}) . pack("N", $s{'lenll'}) ); return $class->new($s{'alg'})->_putstate($packed_state); } sub dump { my $self = shift; my $file = shift; my $state = $self->getstate or return; $file = "-" if (!defined($file) || $file eq ""); local *FH; open(FH, "> $file") or return; print FH $state; close(FH); return($self); } sub load { my $class = shift; my $file = shift; $file = "-" if (!defined($file) || $file eq ""); local *FH; open(FH, "< $file") or return; my $str = join('', ); close(FH); $class->putstate($str); } eval { require XSLoader; XSLoader::load('Digest::SHA', $VERSION); 1; } or do { require DynaLoader; push @ISA, 'DynaLoader'; Digest::SHA->bootstrap($VERSION); }; 1; __END__ =head1 NAME Digest::SHA - Perl extension for SHA-1/224/256/384/512 =head1 SYNOPSIS In programs: # Functional interface use Digest::SHA qw(sha1 sha1_hex sha1_base64 ...); $digest = sha1($data); $digest = sha1_hex($data); $digest = sha1_base64($data); $digest = sha256($data); $digest = sha384_hex($data); $digest = sha512_base64($data); # Object-oriented use Digest::SHA; $sha = Digest::SHA->new($alg); $sha->add($data); # feed data into stream $sha->addfile(*F); $sha->addfile($filename); $sha->add_bits($bits); $sha->add_bits($data, $nbits); $sha_copy = $sha->clone; # make copy of digest object $state = $sha->getstate; # save current state to string $sha->putstate($state); # restore previous $state $digest = $sha->digest; # compute digest $digest = $sha->hexdigest; $digest = $sha->b64digest; From the command line: $ shasum files $ shasum --help =head1 SYNOPSIS (HMAC-SHA) # Functional interface only use Digest::SHA qw(hmac_sha1 hmac_sha1_hex ...); $digest = hmac_sha1($data, $key); $digest = hmac_sha224_hex($data, $key); $digest = hmac_sha256_base64($data, $key); =head1 ABSTRACT Digest::SHA is a complete implementation of the NIST Secure Hash Standard. It gives Perl programmers a convenient way to calculate SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, and SHA-512/256 message digests. The module can handle all types of input, including partial-byte data. =head1 DESCRIPTION Digest::SHA is written in C for speed. If your platform lacks a C compiler, you can install the functionally equivalent (but much slower) L module. The programming interface is easy to use: it's the same one found in CPAN's L module. So, if your applications currently use L and you'd prefer the stronger security of SHA, it's a simple matter to convert them. The interface provides two ways to calculate digests: all-at-once, or in stages. To illustrate, the following short program computes the SHA-256 digest of "hello world" using each approach: use Digest::SHA qw(sha256_hex); $data = "hello world"; @frags = split(//, $data); # all-at-once (Functional style) $digest1 = sha256_hex($data); # in-stages (OOP style) $state = Digest::SHA->new(256); for (@frags) { $state->add($_) } $digest2 = $state->hexdigest; print $digest1 eq $digest2 ? "whew!\n" : "oops!\n"; To calculate the digest of an n-bit message where I is not a multiple of 8, use the I method. For example, consider the 446-bit message consisting of the bit-string "110" repeated 148 times, followed by "11". Here's how to display its SHA-1 digest: use Digest::SHA; $bits = "110" x 148 . "11"; $sha = Digest::SHA->new(1)->add_bits($bits); print $sha->hexdigest, "\n"; Note that for larger bit-strings, it's more efficient to use the two-argument version I, where I<$data> is in the customary packed binary format used for Perl strings. The module also lets you save intermediate SHA states to a string. The I method generates portable, human-readable text describing the current state of computation. You can subsequently restore that state with I to resume where the calculation left off. To see what a state description looks like, just run the following: use Digest::SHA; print Digest::SHA->new->add("Shaw" x 1962)->getstate; As an added convenience, the Digest::SHA module offers routines to calculate keyed hashes using the HMAC-SHA-1/224/256/384/512 algorithms. These services exist in functional form only, and mimic the style and behavior of the I, I, and I functions. # Test vector from draft-ietf-ipsec-ciph-sha-256-01.txt use Digest::SHA qw(hmac_sha256_hex); print hmac_sha256_hex("Hi There", chr(0x0b) x 32), "\n"; =head1 UNICODE AND SIDE EFFECTS Perl supports Unicode strings as of version 5.6. Such strings may contain wide characters, namely, characters whose ordinal values are greater than 255. This can cause problems for digest algorithms such as SHA that are specified to operate on sequences of bytes. The rule by which Digest::SHA handles a Unicode string is easy to state, but potentially confusing to grasp: the string is interpreted as a sequence of byte values, where each byte value is equal to the ordinal value (viz. code point) of its corresponding Unicode character. That way, the Unicode string 'abc' has exactly the same digest value as the ordinary string 'abc'. Since a wide character does not fit into a byte, the Digest::SHA routines croak if they encounter one. Whereas if a Unicode string contains no wide characters, the module accepts it quite happily. The following code illustrates the two cases: $str1 = pack('U*', (0..255)); print sha1_hex($str1); # ok $str2 = pack('U*', (0..256)); print sha1_hex($str2); # croaks Be aware that the digest routines silently convert UTF-8 input into its equivalent byte sequence in the native encoding (cf. utf8::downgrade). This side effect influences only the way Perl stores the data internally, but otherwise leaves the actual value of the data intact. =head1 NIST STATEMENT ON SHA-1 NIST acknowledges that the work of Prof. Xiaoyun Wang constitutes a practical collision attack on SHA-1. Therefore, NIST encourages the rapid adoption of the SHA-2 hash functions (e.g. SHA-256) for applications requiring strong collision resistance, such as digital signatures. ref. L =head1 PADDING OF BASE64 DIGESTS By convention, CPAN Digest modules do B pad their Base64 output. Problems can occur when feeding such digests to other software that expects properly padded Base64 encodings. For the time being, any necessary padding must be done by the user. Fortunately, this is a simple operation: if the length of a Base64-encoded digest isn't a multiple of 4, simply append "=" characters to the end of the digest until it is: while (length($b64_digest) % 4) { $b64_digest .= '='; } To illustrate, I is computed to be ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0 which has a length of 43. So, the properly padded version is ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0= =head1 EXPORT None by default. =head1 EXPORTABLE FUNCTIONS Provided your C compiler supports a 64-bit type (e.g. the I of C99, or I<__int64> used by Microsoft C/C++), all of these functions will be available for use. Otherwise, you won't be able to perform the SHA-384 and SHA-512 transforms, both of which require 64-bit operations. I =over 4 =item B =item B =item B =item B =item B =item B =item B Logically joins the arguments into a single string, and returns its SHA-1/224/256/384/512 digest encoded as a binary string. =item B =item B =item B =item B =item B =item B =item B Logically joins the arguments into a single string, and returns its SHA-1/224/256/384/512 digest encoded as a hexadecimal string. =item B =item B =item B =item B =item B =item B =item B Logically joins the arguments into a single string, and returns its SHA-1/224/256/384/512 digest encoded as a Base64 string. It's important to note that the resulting string does B contain the padding characters typical of Base64 encodings. This omission is deliberate, and is done to maintain compatibility with the family of CPAN Digest modules. See L for details. =back I =over 4 =item B Returns a new Digest::SHA object. Allowed values for I<$alg> are 1, 224, 256, 384, 512, 512224, or 512256. It's also possible to use common string representations of the algorithm (e.g. "sha256", "SHA-384"). If the argument is missing, SHA-1 will be used by default. Invoking I as an instance method will reset the object to the initial state associated with I<$alg>. If the argument is missing, the object will continue using the same algorithm that was selected at creation. =item B This method has exactly the same effect as I. In fact, I is just an alias for I. =item B Returns the number of digest bits for this object. The values are 160, 224, 256, 384, 512, 224, and 256 for SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 and SHA-512/256, respectively. =item B Returns the digest algorithm for this object. The values are 1, 224, 256, 384, 512, 512224, and 512256 for SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, and SHA-512/256, respectively. =item B Returns a duplicate copy of the object. =item B Logically joins the arguments into a single string, and uses it to update the current digest state. In other words, the following statements have the same effect: $sha->add("a"); $sha->add("b"); $sha->add("c"); $sha->add("a")->add("b")->add("c"); $sha->add("a", "b", "c"); $sha->add("abc"); The return value is the updated object itself. =item B =item B Updates the current digest state by appending bits to it. The return value is the updated object itself. The first form causes the most-significant I<$nbits> of I<$data> to be appended to the stream. The I<$data> argument is in the customary binary format used for Perl strings. The second form takes an ASCII string of "0" and "1" characters as its argument. It's equivalent to $sha->add_bits(pack("B*", $bits), length($bits)); So, the following two statements do the same thing: $sha->add_bits("111100001010"); $sha->add_bits("\xF0\xA0", 12); Note that SHA-1 and SHA-2 use I for their internal state. This means that $sha3->add_bits("110"); is equivalent to $sha3->add_bits("1")->add_bits("1")->add_bits("0"); =item B Reads from I until EOF, and appends that data to the current state. The return value is the updated object itself. =item B Reads the contents of I<$filename>, and appends that data to the current state. The return value is the updated object itself. By default, I<$filename> is simply opened and read; no special modes or I/O disciplines are used. To change this, set the optional I<$mode> argument to one of the following values: "b" read file in binary mode "U" use universal newlines "0" use BITS mode The "U" mode is modeled on Python's "Universal Newlines" concept, whereby DOS and Mac OS line terminators are converted internally to UNIX newlines before processing. This ensures consistent digest values when working simultaneously across multiple file systems. B, namely those passing Perl's I<-T> test; binary files are processed with no translation whatsoever. The BITS mode ("0") interprets the contents of I<$filename> as a logical stream of bits, where each ASCII '0' or '1' character represents a 0 or 1 bit, respectively. All other characters are ignored. This provides a convenient way to calculate the digest values of partial-byte data by using files, rather than having to write separate programs employing the I method. =item B Returns a string containing a portable, human-readable representation of the current SHA state. =item B Returns a Digest::SHA object representing the SHA state contained in I<$str>. The format of I<$str> matches the format of the output produced by method I. If called as a class method, a new object is created; if called as an instance method, the object is reset to the state contained in I<$str>. =item B Writes the output of I to I<$filename>. If the argument is missing, or equal to the empty string, the state information will be written to STDOUT. =item B Returns a Digest::SHA object that results from calling I on the contents of I<$filename>. If the argument is missing, or equal to the empty string, the state information will be read from STDIN. =item B Returns the digest encoded as a binary string. Note that the I method is a read-once operation. Once it has been performed, the Digest::SHA object is automatically reset in preparation for calculating another digest value. Call I<$sha-Eclone-Edigest> if it's necessary to preserve the original digest state. =item B Returns the digest encoded as a hexadecimal string. Like I, this method is a read-once operation. Call I<$sha-Eclone-Ehexdigest> if it's necessary to preserve the original digest state. =item B Returns the digest encoded as a Base64 string. Like I, this method is a read-once operation. Call I<$sha-Eclone-Eb64digest> if it's necessary to preserve the original digest state. It's important to note that the resulting string does B contain the padding characters typical of Base64 encodings. This omission is deliberate, and is done to maintain compatibility with the family of CPAN Digest modules. See L for details. =back I =over 4 =item B =item B =item B =item B =item B =item B =item B Returns the HMAC-SHA-1/224/256/384/512 digest of I<$data>/I<$key>, with the result encoded as a binary string. Multiple I<$data> arguments are allowed, provided that I<$key> is the last argument in the list. =item B =item B =item B =item B =item B =item B =item B Returns the HMAC-SHA-1/224/256/384/512 digest of I<$data>/I<$key>, with the result encoded as a hexadecimal string. Multiple I<$data> arguments are allowed, provided that I<$key> is the last argument in the list. =item B =item B =item B =item B =item B =item B =item B Returns the HMAC-SHA-1/224/256/384/512 digest of I<$data>/I<$key>, with the result encoded as a Base64 string. Multiple I<$data> arguments are allowed, provided that I<$key> is the last argument in the list. It's important to note that the resulting string does B contain the padding characters typical of Base64 encodings. This omission is deliberate, and is done to maintain compatibility with the family of CPAN Digest modules. See L for details. =back =head1 SEE ALSO L, L The Secure Hash Standard (Draft FIPS PUB 180-4) can be found at: L The Keyed-Hash Message Authentication Code (HMAC): L =head1 AUTHOR Mark Shelor =head1 ACKNOWLEDGMENTS The author is particularly grateful to Gisle Aas H. Merijn Brand Sean Burke Chris Carey Alexandr Ciornii Chris David Jim Doble Thomas Drugeon Julius Duque Jeffrey Friedl Robert Gilmour Brian Gladman Jarkko Hietaniemi Adam Kennedy Mark Lawrence Andy Lester Alex Muntada Steve Peters Chris Skiscim Martin Thurn Gunnar Wolf Adam Woodbury "who by trained skill rescued life from such great billows and such thick darkness and moored it in so perfect a calm and in so brilliant a light" - Lucretius =head1 COPYRIGHT AND LICENSE Copyright (C) 2003-2022 Mark Shelor This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. L =cut FILE1fe99cc1/DynaLoader.pmf # Generated from DynaLoader_pm.PL, this file is unique for every OS use strict; package DynaLoader; # And Gandalf said: 'Many folk like to know beforehand what is to # be set on the table; but those who have laboured to prepare the # feast like to keep their secret; for wonder makes the words of # praise louder.' # (Quote from Tolkien suggested by Anno Siegel.) # # See pod text at end of file for documentation. # See also ext/DynaLoader/README in source tree for other information. # # Tim.Bunce@ig.co.uk, August 1994 BEGIN { our $VERSION = '1.57'; } # Note: in almost any other piece of code "our" would have been a better # option than "use vars", but DynaLoader's bootstrap files need the # side effect of the variable being declared in any scope whose current # package is DynaLoader, not just the current lexical one. use vars qw(@dl_library_path @dl_resolve_using @dl_require_symbols $dl_debug @dl_librefs @dl_modules @dl_shared_objects $dl_dlext $dl_so $dlsrc @args $module @dirs $file $bscode); use Config; # enable debug/trace messages from DynaLoader perl code $dl_debug = $ENV{PERL_DL_DEBUG} || 0 unless defined $dl_debug; # # Flags to alter dl_load_file behaviour. Assigned bits: # 0x01 make symbols available for linking later dl_load_file's. # (only known to work on Solaris 2 using dlopen(RTLD_GLOBAL)) # (ignored under VMS; effect is built-in to image linking) # (ignored under Android; the linker always uses RTLD_LOCAL) # # This is called as a class method $module->dl_load_flags. The # definition here will be inherited and result on "default" loading # behaviour unless a sub-class of DynaLoader defines its own version. # sub dl_load_flags { 0x00 } ($dl_dlext, $dl_so, $dlsrc) = @Config::Config{qw(dlext so dlsrc)}; # Some systems need special handling to expand file specifications # (VMS support by Charles Bailey ) # See dl_expandspec() for more details. Should be harmless but # inefficient to define on systems that don't need it. use vars qw($do_expand); $do_expand = 0; @dl_require_symbols = (); # names of symbols we need @dl_library_path = (); # path to look for files #XSLoader.pm may have added elements before we were required #@dl_shared_objects = (); # shared objects for symbols we have #@dl_librefs = (); # things we have loaded #@dl_modules = (); # Modules we have loaded # Initialise @dl_library_path with the 'standard' library path # for this platform as determined by Configure. push(@dl_library_path, split(' ', $Config::Config{libpth})); my $ldlibpthname = $Config::Config{ldlibpthname}; my $ldlibpthname_defined = defined $Config::Config{ldlibpthname}; my $pthsep = $Config::Config{path_sep}; # Add to @dl_library_path any extra directories we can gather from environment # during runtime. if ($ldlibpthname_defined && exists $ENV{$ldlibpthname}) { push(@dl_library_path, split(/$pthsep/, $ENV{$ldlibpthname})); } # E.g. HP-UX supports both its native SHLIB_PATH *and* LD_LIBRARY_PATH. if ($ldlibpthname_defined && $ldlibpthname ne 'LD_LIBRARY_PATH' && exists $ENV{LD_LIBRARY_PATH}) { push(@dl_library_path, split(/$pthsep/, $ENV{LD_LIBRARY_PATH})); } # No prizes for guessing why we don't say 'bootstrap DynaLoader;' here. # NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) && !defined(&dl_error); if ($dl_debug) { print STDERR "DynaLoader.pm loaded (@INC, @dl_library_path)\n"; print STDERR "DynaLoader not linked into this perl\n" unless defined(&boot_DynaLoader); } 1; # End of main code sub croak { require Carp; Carp::croak(@_) } sub bootstrap_inherit { my $module = $_[0]; no strict qw/refs vars/; local *isa = *{"$module\::ISA"}; local @isa = (@isa, 'DynaLoader'); # Cannot goto due to delocalization. Will report errors on a wrong line? bootstrap(@_); } sub bootstrap { # use local vars to enable $module.bs script to edit values local(@args) = @_; local($module) = $args[0]; local(@dirs, $file); unless ($module) { require Carp; Carp::confess("Usage: DynaLoader::bootstrap(module)"); } # A common error on platforms which don't support dynamic loading. # Since it's fatal and potentially confusing we give a detailed message. croak("Can't load module $module, dynamic loading not available in this perl.\n". " (You may need to build a new perl executable which either supports\n". " dynamic loading or has the $module module statically linked into it.)\n") unless defined(&dl_load_file); my @modparts = split(/::/,$module); my $modfname = $modparts[-1]; my $modfname_orig = $modfname; # For .bs file search # Some systems have restrictions on files names for DLL's etc. # mod2fname returns appropriate file base name (typically truncated) # It may also edit @modparts if required. $modfname = &mod2fname(\@modparts) if defined &mod2fname; my $modpname = join('/',@modparts); print STDERR "DynaLoader::bootstrap for $module ", "(auto/$modpname/$modfname.$dl_dlext)\n" if $dl_debug; my $dir; foreach (@INC) { $dir = "$_/auto/$modpname"; next unless -d $dir; # skip over uninteresting directories # check for common cases to avoid autoload of dl_findfile my $try = "$dir/$modfname.$dl_dlext"; last if $file = ($do_expand) ? dl_expandspec($try) : ((-f $try) && $try); # no luck here, save dir for possible later dl_findfile search push @dirs, $dir; } # last resort, let dl_findfile have a go in all known locations $file = dl_findfile(map("-L$_",@dirs,@INC), $modfname) unless $file; croak("Can't locate loadable object for module $module in \@INC (\@INC contains: @INC)") unless $file; # wording similar to error from 'require' my $bootname = "boot_$module"; $bootname =~ s/\W/_/g; @dl_require_symbols = ($bootname); # Execute optional '.bootstrap' perl script for this module. # The .bs file can be used to configure @dl_resolve_using etc to # match the needs of the individual module on this architecture. # N.B. The .bs file does not following the naming convention used # by mod2fname. my $bs = "$dir/$modfname_orig"; $bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library if (-s $bs) { # only read file if it's not empty print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug; eval { local @INC = ('.'); do $bs; }; warn "$bs: $@\n" if $@; } my $boot_symbol_ref; if ($boot_symbol_ref = dl_find_symbol(0, $bootname, 1)) { goto boot; #extension library has already been loaded, e.g. darwin } # Many dynamic extension loading problems will appear to come from # this section of code: XYZ failed at line 123 of DynaLoader.pm. # Often these errors are actually occurring in the initialisation # C code of the extension XS file. Perl reports the error as being # in this perl code simply because this was the last perl code # it executed. my $flags = $module->dl_load_flags; my $libref = dl_load_file($file, $flags) or croak("Can't load '$file' for module $module: ".dl_error()); push(@dl_librefs,$libref); # record loaded object $boot_symbol_ref = dl_find_symbol($libref, $bootname) or croak("Can't find '$bootname' symbol in $file\n"); push(@dl_modules, $module); # record loaded module boot: my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file); # See comment block above push(@dl_shared_objects, $file); # record files loaded &$xs(@args); } sub dl_findfile { # This function does not automatically consider the architecture # or the perl library auto directories. my (@args) = @_; my (@dirs, $dir); # which directories to search my (@found); # full paths to real files we have found #my $dl_ext= 'bundle'; # $Config::Config{'dlext'} suffix for perl extensions #my $dl_so = 'dylib'; # $Config::Config{'so'} suffix for shared libraries print STDERR "dl_findfile(@args)\n" if $dl_debug; # accumulate directories but process files as they appear arg: foreach(@args) { # Special fast case: full filepath requires no search if (m:/: && -f $_) { push(@found,$_); last arg unless wantarray; next; } # Deal with directories first: # Using a -L prefix is the preferred option (faster and more robust) if ( s{^-L}{} ) { push(@dirs, $_); next; } # Otherwise we try to try to spot directories by a heuristic # (this is a more complicated issue than it first appears) if (m:/: && -d $_) { push(@dirs, $_); next; } # Only files should get this far... my(@names, $name); # what filenames to look for if ( s{^-l}{} ) { # convert -lname to appropriate library name push(@names, "lib$_.$dl_so", "lib$_.a"); } else { # Umm, a bare name. Try various alternatives: # these should be ordered with the most likely first push(@names,"$_.$dl_dlext") unless m/\.$dl_dlext$/o; push(@names,"$_.$dl_so") unless m/\.$dl_so$/o; push(@names,"lib$_.$dl_so") unless m:/:; push(@names, $_); } my $dirsep = '/'; foreach $dir (@dirs, @dl_library_path) { next unless -d $dir; foreach $name (@names) { my($file) = "$dir$dirsep$name"; print STDERR " checking in $dir for $name\n" if $dl_debug; if ($do_expand && ($file = dl_expandspec($file))) { push @found, $file; next arg; # no need to look any further } elsif (-f $file) { push(@found, $file); next arg; # no need to look any further } elsif (dl_load_file($file, 0)) { push @found, $file; next arg; # no need to look any further } } } } if ($dl_debug) { foreach(@dirs) { print STDERR " dl_findfile ignored non-existent directory: $_\n" unless -d $_; } print STDERR "dl_findfile found: @found\n"; } return $found[0] unless wantarray; @found; } sub dl_expandspec { my($spec) = @_; # Optional function invoked if DynaLoader.pm sets $do_expand. # Most systems do not require or use this function. # Some systems may implement it in the dl_*.xs file in which case # this Perl version should be excluded at build time. # This function is designed to deal with systems which treat some # 'filenames' in a special way. For example VMS 'Logical Names' # (something like unix environment variables - but different). # This function should recognise such names and expand them into # full file paths. # Must return undef if $spec is invalid or file does not exist. my $file = $spec; # default output to input return undef unless -f $file; print STDERR "dl_expandspec($spec) => $file\n" if $dl_debug; $file; } sub dl_find_symbol_anywhere { my $sym = shift; my $libref; foreach $libref (@dl_librefs) { my $symref = dl_find_symbol($libref,$sym,1); return $symref if $symref; } return undef; } __END__ =head1 NAME DynaLoader - Dynamically load C libraries into Perl code =head1 SYNOPSIS package YourPackage; require DynaLoader; @ISA = qw(... DynaLoader ...); __PACKAGE__->bootstrap; # optional method for 'global' loading sub dl_load_flags { 0x01 } =head1 DESCRIPTION This document defines a standard generic interface to the dynamic linking mechanisms available on many platforms. Its primary purpose is to implement automatic dynamic loading of Perl modules. This document serves as both a specification for anyone wishing to implement the DynaLoader for a new platform and as a guide for anyone wishing to use the DynaLoader directly in an application. The DynaLoader is designed to be a very simple high-level interface that is sufficiently general to cover the requirements of SunOS, HP-UX, Linux, VMS and other platforms. It is also hoped that the interface will cover the needs of OS/2, NT etc and also allow pseudo-dynamic linking (using C at runtime). It must be stressed that the DynaLoader, by itself, is practically useless for accessing non-Perl libraries because it provides almost no Perl-to-C 'glue'. There is, for example, no mechanism for calling a C library function or supplying arguments. A C::DynaLib module is available from CPAN sites which performs that function for some common system types. And since the year 2000, there's also Inline::C, a module that allows you to write Perl subroutines in C. Also available from your local CPAN site. DynaLoader Interface Summary @dl_library_path @dl_resolve_using @dl_require_symbols $dl_debug $dl_dlext @dl_librefs @dl_modules @dl_shared_objects Implemented in: bootstrap($modulename) Perl @filepaths = dl_findfile(@names) Perl $flags = $modulename->dl_load_flags Perl $symref = dl_find_symbol_anywhere($symbol) Perl $libref = dl_load_file($filename, $flags) C $status = dl_unload_file($libref) C $symref = dl_find_symbol($libref, $symbol) C @symbols = dl_undef_symbols() C dl_install_xsub($name, $symref [, $filename]) C $message = dl_error C =over 4 =item @dl_library_path The standard/default list of directories in which dl_findfile() will search for libraries etc. Directories are searched in order: $dl_library_path[0], [1], ... etc @dl_library_path is initialised to hold the list of 'normal' directories (F, etc) determined by B (C<$Config{'libpth'}>). This should ensure portability across a wide range of platforms. @dl_library_path should also be initialised with any other directories that can be determined from the environment at runtime (such as LD_LIBRARY_PATH for SunOS). After initialisation @dl_library_path can be manipulated by an application using push and unshift before calling dl_findfile(). Unshift can be used to add directories to the front of the search order either to save search time or to override libraries with the same name in the 'normal' directories. The load function that dl_load_file() calls may require an absolute pathname. The dl_findfile() function and @dl_library_path can be used to search for and return the absolute pathname for the library/object that you wish to load. =item @dl_resolve_using A list of additional libraries or other shared objects which can be used to resolve any undefined symbols that might be generated by a later call to load_file(). This is only required on some platforms which do not handle dependent libraries automatically. For example the Socket Perl extension library (F) contains references to many socket functions which need to be resolved when it's loaded. Most platforms will automatically know where to find the 'dependent' library (e.g., F). A few platforms need to be told the location of the dependent library explicitly. Use @dl_resolve_using for this. Example usage: @dl_resolve_using = dl_findfile('-lsocket'); =item @dl_require_symbols A list of one or more symbol names that are in the library/object file to be dynamically loaded. This is only required on some platforms. =item @dl_librefs An array of the handles returned by successful calls to dl_load_file(), made by bootstrap, in the order in which they were loaded. Can be used with dl_find_symbol() to look for a symbol in any of the loaded files. =item @dl_modules An array of module (package) names that have been bootstrap'ed. =item @dl_shared_objects An array of file names for the shared objects that were loaded. =item dl_error() Syntax: $message = dl_error(); Error message text from the last failed DynaLoader function. Note that, similar to errno in unix, a successful function call does not reset this message. Implementations should detect the error as soon as it occurs in any of the other functions and save the corresponding message for later retrieval. This will avoid problems on some platforms (such as SunOS) where the error message is very temporary (e.g., dlerror()). =item $dl_debug Internal debugging messages are enabled when $dl_debug is set true. Currently setting $dl_debug only affects the Perl side of the DynaLoader. These messages should help an application developer to resolve any DynaLoader usage problems. $dl_debug is set to C<$ENV{'PERL_DL_DEBUG'}> if defined. For the DynaLoader developer/porter there is a similar debugging variable added to the C code (see dlutils.c) and enabled if Perl was built with the B<-DDEBUGGING> flag. This can also be set via the PERL_DL_DEBUG environment variable. Set to 1 for minimal information or higher for more. =item $dl_dlext When specified (localised) in a module's F<.pm> file, indicates the extension which the module's loadable object will have. For example: local $DynaLoader::dl_dlext = 'unusual_ext'; would indicate that the module's loadable object has an extension of C instead of the more usual C<$Config{dlext}>. NOTE: This also requires that the module's F specify (in C): DLEXT => 'unusual_ext', =item dl_findfile() Syntax: @filepaths = dl_findfile(@names) Determine the full paths (including file suffix) of one or more loadable files given their generic names and optionally one or more directories. Searches directories in @dl_library_path by default and returns an empty list if no files were found. Names can be specified in a variety of platform independent forms. Any names in the form B<-lname> are converted into F, where F<.*> is an appropriate suffix for the platform. If a name does not already have a suitable prefix and/or suffix then the corresponding file will be searched for by trying combinations of prefix and suffix appropriate to the platform: "$name.o", "lib$name.*" and "$name". If any directories are included in @names they are searched before @dl_library_path. Directories may be specified as B<-Ldir>. Any other names are treated as filenames to be searched for. Using arguments of the form C<-Ldir> and C<-lname> is recommended. Example: @dl_resolve_using = dl_findfile(qw(-L/usr/5lib -lposix)); =item dl_expandspec() Syntax: $filepath = dl_expandspec($spec) Some unusual systems, such as VMS, require special filename handling in order to deal with symbolic names for files (i.e., VMS's Logical Names). To support these systems a dl_expandspec() function can be implemented either in the F file or code can be added to the dl_expandspec() function in F. See F for more information. =item dl_load_file() Syntax: $libref = dl_load_file($filename, $flags) Dynamically load $filename, which must be the path to a shared object or library. An opaque 'library reference' is returned as a handle for the loaded object. Returns undef on error. The $flags argument to alters dl_load_file behaviour. Assigned bits: 0x01 make symbols available for linking later dl_load_file's. (only known to work on Solaris 2 using dlopen(RTLD_GLOBAL)) (ignored under VMS; this is a normal part of image linking) (On systems that provide a handle for the loaded object such as SunOS and HPUX, $libref will be that handle. On other systems $libref will typically be $filename or a pointer to a buffer containing $filename. The application should not examine or alter $libref in any way.) This is the function that does the real work. It should use the current values of @dl_require_symbols and @dl_resolve_using if required. SunOS: dlopen($filename) HP-UX: shl_load($filename) Linux: dld_create_reference(@dl_require_symbols); dld_link($filename) VMS: lib$find_image_symbol($filename,$dl_require_symbols[0]) (The dlopen() function is also used by Solaris and some versions of Linux, and is a common choice when providing a "wrapper" on other mechanisms as is done in the OS/2 port.) =item dl_unload_file() Syntax: $status = dl_unload_file($libref) Dynamically unload $libref, which must be an opaque 'library reference' as returned from dl_load_file. Returns one on success and zero on failure. This function is optional and may not necessarily be provided on all platforms. If it is defined and perl is compiled with the C macro C defined, then it is called automatically when the interpreter exits for every shared object or library loaded by DynaLoader::bootstrap. All such library references are stored in @dl_librefs by DynaLoader::Bootstrap as it loads the libraries. The files are unloaded in last-in, first-out order. This unloading is usually necessary when embedding a shared-object perl (e.g. one configured with -Duseshrplib) within a larger application, and the perl interpreter is created and destroyed several times within the lifetime of the application. In this case it is possible that the system dynamic linker will unload and then subsequently reload the shared libperl without relocating any references to it from any files DynaLoaded by the previous incarnation of the interpreter. As a result, any shared objects opened by DynaLoader may point to a now invalid 'ghost' of the libperl shared object, causing apparently random memory corruption and crashes. This behaviour is most commonly seen when using Apache and mod_perl built with the APXS mechanism. SunOS: dlclose($libref) HP-UX: ??? Linux: ??? VMS: ??? (The dlclose() function is also used by Solaris and some versions of Linux, and is a common choice when providing a "wrapper" on other mechanisms as is done in the OS/2 port.) =item dl_load_flags() Syntax: $flags = dl_load_flags $modulename; Designed to be a method call, and to be overridden by a derived class (i.e. a class which has DynaLoader in its @ISA). The definition in DynaLoader itself returns 0, which produces standard behavior from dl_load_file(). =item dl_find_symbol() Syntax: $symref = dl_find_symbol($libref, $symbol) Return the address of the symbol $symbol or C if not found. If the target system has separate functions to search for symbols of different types then dl_find_symbol() should search for function symbols first and then other types. The exact manner in which the address is returned in $symref is not currently defined. The only initial requirement is that $symref can be passed to, and understood by, dl_install_xsub(). SunOS: dlsym($libref, $symbol) HP-UX: shl_findsym($libref, $symbol) Linux: dld_get_func($symbol) and/or dld_get_symbol($symbol) VMS: lib$find_image_symbol($libref,$symbol) =item dl_find_symbol_anywhere() Syntax: $symref = dl_find_symbol_anywhere($symbol) Applies dl_find_symbol() to the members of @dl_librefs and returns the first match found. =item dl_undef_symbols() Example @symbols = dl_undef_symbols() Return a list of symbol names which remain undefined after load_file(). Returns C<()> if not known. Don't worry if your platform does not provide a mechanism for this. Most do not need it and hence do not provide it, they just return an empty list. =item dl_install_xsub() Syntax: dl_install_xsub($perl_name, $symref [, $filename]) Create a new Perl external subroutine named $perl_name using $symref as a pointer to the function which implements the routine. This is simply a direct call to newXS()/newXS_flags(). Returns a reference to the installed function. The $filename parameter is used by Perl to identify the source file for the function if required by die(), caller() or the debugger. If $filename is not defined then "DynaLoader" will be used. =item bootstrap() Syntax: bootstrap($module [...]) This is the normal entry point for automatic dynamic loading in Perl. It performs the following actions: =over 8 =item * locates an auto/$module directory by searching @INC =item * uses dl_findfile() to determine the filename to load =item * sets @dl_require_symbols to C<("boot_$module")> =item * executes an F file if it exists (typically used to add to @dl_resolve_using any files which are required to load the module on the current platform) =item * calls dl_load_flags() to determine how to load the file. =item * calls dl_load_file() to load the file =item * calls dl_undef_symbols() and warns if any symbols are undefined =item * calls dl_find_symbol() for "boot_$module" =item * calls dl_install_xsub() to install it as "${module}::bootstrap" =item * calls &{"${module}::bootstrap"} to bootstrap the module (actually it uses the function reference returned by dl_install_xsub for speed) =back All arguments to bootstrap() are passed to the module's bootstrap function. The default code generated by F expects $module [, $version] If the optional $version argument is not given, it defaults to C<$XS_VERSION // $VERSION> in the module's symbol table. The default code compares the Perl-space version with the version of the compiled XS code, and croaks with an error if they do not match. =back =head1 AUTHOR Tim Bunce, 11 August 1994. This interface is based on the work and comments of (in no particular order): Larry Wall, Robert Sanders, Dean Roehrich, Jeff Okamoto, Anno Siegel, Thomas Neumann, Paul Marquess, Charles Bailey, myself and others. Larry Wall designed the elegant inherited bootstrap mechanism and implemented the first Perl 5 dynamic loader using it. Solaris global loading added by Nick Ing-Simmons with design/coding assistance from Tim Bunce, January 1996. =cut FILEb96d29f9/Encode.pm}# # $Id: Encode.pm,v 3.21 2024/02/25 22:17:32 dankogai Exp $ # package Encode; use strict; use warnings; use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; our $VERSION; BEGIN { $VERSION = sprintf "%d.%02d", q$Revision: 3.21 $ =~ /(\d+)/g; require XSLoader; XSLoader::load( __PACKAGE__, $VERSION ); } use Exporter 5.57 'import'; use Carp (); our @CARP_NOT = qw(Encode::Encoder); # Public, encouraged API is exported by default our @EXPORT = qw( decode decode_utf8 encode encode_utf8 str2bytes bytes2str encodings find_encoding find_mime_encoding clone_encoding ); our @FB_FLAGS = qw( DIE_ON_ERR WARN_ON_ERR RETURN_ON_ERR LEAVE_SRC PERLQQ HTMLCREF XMLCREF STOP_AT_PARTIAL ); our @FB_CONSTS = qw( FB_DEFAULT FB_CROAK FB_QUIET FB_WARN FB_PERLQQ FB_HTMLCREF FB_XMLCREF ); our @EXPORT_OK = ( qw( _utf8_off _utf8_on define_encoding from_to is_16bit is_8bit is_utf8 perlio_ok resolve_alias utf8_downgrade utf8_upgrade ), @FB_FLAGS, @FB_CONSTS, ); our %EXPORT_TAGS = ( all => [ @EXPORT, @EXPORT_OK ], default => [ @EXPORT ], fallbacks => [ @FB_CONSTS ], fallback_all => [ @FB_CONSTS, @FB_FLAGS ], ); # Documentation moved after __END__ for speed - NI-S our $ON_EBCDIC = ( ord("A") == 193 ); use Encode::Alias (); use Encode::MIME::Name; use Storable; # Make a %Encoding package variable to allow a certain amount of cheating our %Encoding; our %ExtModule; require Encode::Config; # See # https://bugzilla.redhat.com/show_bug.cgi?id=435505#c2 # to find why sig handlers inside eval{} are disabled. eval { local $SIG{__DIE__}; local $SIG{__WARN__}; local @INC = @INC; pop @INC if @INC && $INC[-1] eq '.'; require Encode::ConfigLocal; }; sub encodings { my %enc; my $arg = $_[1] || ''; if ( $arg eq ":all" ) { %enc = ( %Encoding, %ExtModule ); } else { %enc = %Encoding; for my $mod ( map { m/::/ ? $_ : "Encode::$_" } @_ ) { DEBUG and warn $mod; for my $enc ( keys %ExtModule ) { $ExtModule{$enc} eq $mod and $enc{$enc} = $mod; } } } return sort { lc $a cmp lc $b } grep { !/^(?:Internal|Unicode|Guess)$/o } keys %enc; } sub perlio_ok { my $obj = ref( $_[0] ) ? $_[0] : find_encoding( $_[0] ); $obj->can("perlio_ok") and return $obj->perlio_ok(); return 0; # safety net } sub define_encoding { my $obj = shift; my $name = shift; $Encoding{$name} = $obj; my $lc = lc($name); define_alias( $lc => $obj ) unless $lc eq $name; while (@_) { my $alias = shift; define_alias( $alias, $obj ); } my $class = ref($obj); push @Encode::CARP_NOT, $class unless grep { $_ eq $class } @Encode::CARP_NOT; push @Encode::Encoding::CARP_NOT, $class unless grep { $_ eq $class } @Encode::Encoding::CARP_NOT; return $obj; } sub getEncoding { my ( $class, $name, $skip_external ) = @_; defined($name) or return; $name =~ s/\s+//g; # https://rt.cpan.org/Ticket/Display.html?id=65796 ref($name) && $name->can('renew') and return $name; exists $Encoding{$name} and return $Encoding{$name}; my $lc = lc $name; exists $Encoding{$lc} and return $Encoding{$lc}; my $oc = $class->find_alias($name); defined($oc) and return $oc; $lc ne $name and $oc = $class->find_alias($lc); defined($oc) and return $oc; unless ($skip_external) { if ( my $mod = $ExtModule{$name} || $ExtModule{$lc} ) { $mod =~ s,::,/,g; $mod .= '.pm'; eval { require $mod; }; exists $Encoding{$name} and return $Encoding{$name}; } } return; } # HACK: These two functions must be defined in Encode and because of # cyclic dependency between Encode and Encode::Alias, Exporter does not work sub find_alias { goto &Encode::Alias::find_alias; } sub define_alias { goto &Encode::Alias::define_alias; } sub find_encoding($;$) { my ( $name, $skip_external ) = @_; return __PACKAGE__->getEncoding( $name, $skip_external ); } sub find_mime_encoding($;$) { my ( $mime_name, $skip_external ) = @_; my $name = Encode::MIME::Name::get_encode_name( $mime_name ); return find_encoding( $name, $skip_external ); } sub resolve_alias($) { my $obj = find_encoding(shift); defined $obj and return $obj->name; return; } sub clone_encoding($) { my $obj = find_encoding(shift); ref $obj or return; return Storable::dclone($obj); } onBOOT; if ($ON_EBCDIC) { package Encode::UTF_EBCDIC; use parent 'Encode::Encoding'; my $obj = bless { Name => "UTF_EBCDIC" } => "Encode::UTF_EBCDIC"; Encode::define_encoding($obj, 'Unicode'); sub decode { my ( undef, $str, $chk ) = @_; my $res = ''; for ( my $i = 0 ; $i < length($str) ; $i++ ) { $res .= chr( utf8::unicode_to_native( ord( substr( $str, $i, 1 ) ) ) ); } $_[1] = '' if $chk; return $res; } sub encode { my ( undef, $str, $chk ) = @_; my $res = ''; for ( my $i = 0 ; $i < length($str) ; $i++ ) { $res .= chr( utf8::native_to_unicode( ord( substr( $str, $i, 1 ) ) ) ); } $_[1] = '' if $chk; return $res; } } { # https://rt.cpan.org/Public/Bug/Display.html?id=103253 package Encode::XS; use parent 'Encode::Encoding'; } { package Encode::utf8; use parent 'Encode::Encoding'; my %obj = ( 'utf8' => { Name => 'utf8' }, 'utf-8-strict' => { Name => 'utf-8-strict', strict_utf8 => 1 } ); for ( keys %obj ) { bless $obj{$_} => __PACKAGE__; Encode::define_encoding( $obj{$_} => $_ ); } sub cat_decode { # ($obj, $dst, $src, $pos, $trm, $chk) # currently ignores $chk my ( undef, undef, undef, $pos, $trm ) = @_; my ( $rdst, $rsrc, $rpos ) = \@_[ 1, 2, 3 ]; use bytes; if ( ( my $npos = index( $$rsrc, $trm, $pos ) ) >= 0 ) { $$rdst .= substr( $$rsrc, $pos, $npos - $pos + length($trm) ); $$rpos = $npos + length($trm); return 1; } $$rdst .= substr( $$rsrc, $pos ); $$rpos = length($$rsrc); return ''; } } 1; __END__ =head1 NAME Encode - character encodings in Perl =head1 SYNOPSIS use Encode qw(decode encode); $characters = decode('UTF-8', $octets, Encode::FB_CROAK); $octets = encode('UTF-8', $characters, Encode::FB_CROAK); =head2 Table of Contents Encode consists of a collection of modules whose details are too extensive to fit in one document. This one itself explains the top-level APIs and general topics at a glance. For other topics and more details, see the documentation for these modules: =over 2 =item L - Alias definitions to encodings =item L - Encode Implementation Base Class =item L - List of Supported Encodings =item L - Simplified Chinese Encodings =item L - Japanese Encodings =item L - Korean Encodings =item L - Traditional Chinese Encodings =back =head1 DESCRIPTION The C module provides the interface between Perl strings and the rest of the system. Perl strings are sequences of I. The repertoire of characters that Perl can represent is a superset of those defined by the Unicode Consortium. On most platforms the ordinal values of a character as returned by C)> is the I for that character. The exceptions are platforms where the legacy encoding is some variant of EBCDIC rather than a superset of ASCII; see L. During recent history, data is moved around a computer in 8-bit chunks, often called "bytes" but also known as "octets" in standards documents. Perl is widely used to manipulate data of many types: not only strings of characters representing human or computer languages, but also "binary" data, being the machine's representation of numbers, pixels in an image, or just about anything. When Perl is processing "binary data", the programmer wants Perl to process "sequences of bytes". This is not a problem for Perl: because a byte has 256 possible values, it easily fits in Perl's much larger "logical character". This document mostly explains the I. L and L explain the I. =head2 TERMINOLOGY =head3 character A character in the range 0 .. 2**32-1 (or more); what Perl's strings are made of. =head3 byte A character in the range 0..255; a special case of a Perl character. =head3 octet 8 bits of data, with ordinal values 0..255; term for bytes passed to or from a non-Perl context, such as a disk file, standard I/O stream, database, command-line argument, environment variable, socket etc. =head1 THE PERL ENCODING API =head2 Basic methods =head3 encode $octets = encode(ENCODING, STRING[, CHECK]) Encodes the scalar value I from Perl's internal form into I and returns a sequence of octets. I can be either a canonical name or an alias. For encoding names and aliases, see L. For CHECK, see L. B: the input scalar I might be modified in-place depending on what is set in CHECK. See L if you want your inputs to be left unchanged. For example, to convert a string from Perl's internal format into ISO-8859-1, also known as Latin1: $octets = encode("iso-8859-1", $string); B: When you run C<$octets = encode("UTF-8", $string)>, then $octets I $string. Though both contain the same data, the UTF8 flag for $octets is I off. When you encode anything, the UTF8 flag on the result is always off, even when it contains a completely valid UTF-8 string. See L below. If the $string is C, then C is returned. C may be used as an alias for C. =head3 decode $string = decode(ENCODING, OCTETS[, CHECK]) This function returns the string that results from decoding the scalar value I, assumed to be a sequence of octets in I, into Perl's internal form. As with encode(), I can be either a canonical name or an alias. For encoding names and aliases, see L; for I, see L. B: the input scalar I might be modified in-place depending on what is set in CHECK. See L if you want your inputs to be left unchanged. For example, to convert ISO-8859-1 data into a string in Perl's internal format: $string = decode("iso-8859-1", $octets); B: When you run C<$string = decode("UTF-8", $octets)>, then $string I $octets. Though both contain the same data, the UTF8 flag for $string is on. See L below. If the $string is C, then C is returned. C may be used as an alias for C. =head3 find_encoding [$obj =] find_encoding(ENCODING) Returns the I corresponding to I. Returns C if no matching I is find. The returned object is what does the actual encoding or decoding. $string = decode($name, $bytes); is in fact $string = do { $obj = find_encoding($name); croak qq(encoding "$name" not found) unless ref $obj; $obj->decode($bytes); }; with more error checking. You can therefore save time by reusing this object as follows; my $enc = find_encoding("iso-8859-1"); while(<>) { my $string = $enc->decode($_); ... # now do something with $string; } Besides L and L, other methods are available as well. For instance, C returns the canonical name of the encoding object. find_encoding("latin1")->name; # iso-8859-1 See L for details. =head3 find_mime_encoding [$obj =] find_mime_encoding(MIME_ENCODING) Returns the I corresponding to I. Acts same as C but C of returned object must match to I. So as opposite of C canonical names and aliases are not used when searching for object. find_mime_encoding("utf8"); # returns undef because "utf8" is not a valid MIME_ENCODING find_mime_encoding("utf-8"); # returns encode object "utf-8-strict" find_mime_encoding("UTF-8"); # same as "utf-8" because MIME_ENCODING is case insensitive find_mime_encoding("utf-8-strict"); returns undef because "utf-8-strict" is not a valid MIME_ENCODING =head3 from_to [$length =] from_to($octets, FROM_ENC, TO_ENC [, CHECK]) Converts I data between two encodings. The data in $octets must be encoded as octets and I as characters in Perl's internal format. For example, to convert ISO-8859-1 data into Microsoft's CP1250 encoding: from_to($octets, "iso-8859-1", "cp1250"); and to convert it back: from_to($octets, "cp1250", "iso-8859-1"); Because the conversion happens in place, the data to be converted cannot be a string constant: it must be a scalar variable. C returns the length of the converted string in octets on success, and C on error. B: The following operations may look the same, but are not: from_to($data, "iso-8859-1", "UTF-8"); #1 $data = decode("iso-8859-1", $data); #2 Both #1 and #2 make $data consist of a completely valid UTF-8 string, but only #2 turns the UTF8 flag on. #1 is equivalent to: $data = encode("UTF-8", decode("iso-8859-1", $data)); See L below. Also note that: from_to($octets, $from, $to, $check); is equivalent to: $octets = encode($to, decode($from, $octets), $check); Yes, it does I respect the $check during decoding. It is deliberately done that way. If you need minute control, use C followed by C as follows: $octets = encode($to, decode($from, $octets, $check_from), $check_to); =head3 encode_utf8 $octets = encode_utf8($string); B: L Do not use it for data exchange. Unless you want Perl's older "lax" mode, prefer C<$octets = encode("UTF-8", $string)>. Equivalent to C<$octets = encode("utf8", $string)>. The characters in $string are encoded in Perl's internal format, and the result is returned as a sequence of octets. Because all possible characters in Perl have a (loose, not strict) utf8 representation, this function cannot fail. =head3 decode_utf8 $string = decode_utf8($octets [, CHECK]); B: L Do not use it for data exchange. Unless you want Perl's older "lax" mode, prefer C<$string = decode("UTF-8", $octets [, CHECK])>. Equivalent to C<$string = decode("utf8", $octets [, CHECK])>. The sequence of octets represented by $octets is decoded from (loose, not strict) utf8 into a sequence of logical characters. Because not all sequences of octets are valid not strict utf8, it is quite possible for this function to fail. For CHECK, see L. B: the input I<$octets> might be modified in-place depending on what is set in CHECK. See L if you want your inputs to be left unchanged. =head2 Listing available encodings use Encode; @list = Encode->encodings(); Returns a list of canonical names of available encodings that have already been loaded. To get a list of all available encodings including those that have not yet been loaded, say: @all_encodings = Encode->encodings(":all"); Or you can give the name of a specific module: @with_jp = Encode->encodings("Encode::JP"); When "C<::>" is not in the name, "C" is assumed. @ebcdic = Encode->encodings("EBCDIC"); To find out in detail which encodings are supported by this package, see L. =head2 Defining Aliases To add a new alias to a given encoding, use: use Encode; use Encode::Alias; define_alias(NEWNAME => ENCODING); After that, I can be used as an alias for I. I may be either the name of an encoding or an I. Before you do that, first make sure the alias is nonexistent using C, which returns the canonical name thereof. For example: Encode::resolve_alias("latin1") eq "iso-8859-1" # true Encode::resolve_alias("iso-8859-12") # false; nonexistent Encode::resolve_alias($name) eq $name # true if $name is canonical C does not need C; it can be imported via C. See L for details. =head2 Finding IANA Character Set Registry names The canonical name of a given encoding does not necessarily agree with IANA Character Set Registry, commonly seen as C<< Content-Type: text/plain; charset=I >>. For most cases, the canonical name works, but sometimes it does not, most notably with "utf-8-strict". As of C version 2.21, a new method C is therefore added. use Encode; my $enc = find_encoding("UTF-8"); warn $enc->name; # utf-8-strict warn $enc->mime_name; # UTF-8 See also: L =head1 Encoding via PerlIO If your perl supports C (which is the default), you can use a C layer to decode and encode directly via a filehandle. The following two examples are fully identical in functionality: ### Version 1 via PerlIO open(INPUT, "< :encoding(shiftjis)", $infile) || die "Can't open < $infile for reading: $!"; open(OUTPUT, "> :encoding(euc-jp)", $outfile) || die "Can't open > $output for writing: $!"; while () { # auto decodes $_ print OUTPUT; # auto encodes $_ } close(INPUT) || die "can't close $infile: $!"; close(OUTPUT) || die "can't close $outfile: $!"; ### Version 2 via from_to() open(INPUT, "< :raw", $infile) || die "Can't open < $infile for reading: $!"; open(OUTPUT, "> :raw", $outfile) || die "Can't open > $output for writing: $!"; while () { from_to($_, "shiftjis", "euc-jp", 1); # switch encoding print OUTPUT; # emit raw (but properly encoded) data } close(INPUT) || die "can't close $infile: $!"; close(OUTPUT) || die "can't close $outfile: $!"; In the first version above, you let the appropriate encoding layer handle the conversion. In the second, you explicitly translate from one encoding to the other. Unfortunately, it may be that encodings are not C-savvy. You can check to see whether your encoding is supported by C by invoking the C method on it: Encode::perlio_ok("hz"); # false find_encoding("euc-cn")->perlio_ok; # true wherever PerlIO is available use Encode qw(perlio_ok); # imported upon request perlio_ok("euc-jp") Fortunately, all encodings that come with C core are C-savvy except for C and C. For the gory details, see L and L. =head1 Handling Malformed Data The optional I argument tells C what to do when encountering malformed data. Without I, C (== 0) is assumed. As of version 2.12, C supports coderef values for C; see below. B Not all encodings support this feature. Some encodings ignore the I argument. For example, L ignores I and it always croaks on error. =head2 List of I values =head3 FB_DEFAULT CHECK = Encode::FB_DEFAULT ( == 0) If I is 0, encoding and decoding replace any malformed character with a I. When you encode, I is used. When you decode, the Unicode REPLACEMENT CHARACTER, code point U+FFFD, is used. If the data is supposed to be UTF-8, an optional lexical warning of warning category C<"utf8"> is given. =head3 FB_CROAK CHECK = Encode::FB_CROAK ( == 1) If I is 1, methods immediately die with an error message. Therefore, when I is 1, you should trap exceptions with C, unless you really want to let it C. =head3 FB_QUIET CHECK = Encode::FB_QUIET If I is set to C, encoding and decoding immediately return the portion of the data that has been processed so far when an error occurs. The data argument is overwritten with everything after that point; that is, the unprocessed portion of the data. This is handy when you have to call C repeatedly in the case where your source data may contain partial multi-byte character sequences, (that is, you are reading with a fixed-width buffer). Here's some sample code to do exactly that: my($buffer, $string) = ("", ""); while (read($fh, $buffer, 256, length($buffer))) { $string .= decode($encoding, $buffer, Encode::FB_QUIET); # $buffer now contains the unprocessed partial character } =head3 FB_WARN CHECK = Encode::FB_WARN This is the same as C above, except that instead of being silent on errors, it issues a warning. This is handy for when you are debugging. B: All warnings from Encode module are reported, independently of L settings. If you want to follow settings of lexical warnings configured by L then append also check value C. This value is available since Encode version 2.99. =head3 FB_PERLQQ FB_HTMLCREF FB_XMLCREF =over 2 =item perlqq mode (I = Encode::FB_PERLQQ) =item HTML charref mode (I = Encode::FB_HTMLCREF) =item XML charref mode (I = Encode::FB_XMLCREF) =back For encodings that are implemented by the C module, C C<==> C puts C and C into C fallback mode. When you decode, C<\xI> is inserted for a malformed character, where I is the hex representation of the octet that could not be decoded to utf8. When you encode, C<\x{I}> will be inserted, where I is the Unicode code point (in any number of hex digits) of the character that cannot be found in the character repertoire of the encoding. The HTML/XML character reference modes are about the same. In place of C<\x{I}>, HTML uses C<&#I;> where I is a decimal number, and XML uses C<&#xI;> where I is the hexadecimal number. In C 2.10 or later, C is also implied. =head3 The bitmask These modes are all actually set via a bitmask. Here is how the C> constants are laid out. You can import the C> constants via C, and you can import the generic bitmask constants via C. FB_DEFAULT FB_CROAK FB_QUIET FB_WARN FB_PERLQQ DIE_ON_ERR 0x0001 X WARN_ON_ERR 0x0002 X RETURN_ON_ERR 0x0004 X X LEAVE_SRC 0x0008 X PERLQQ 0x0100 X HTMLCREF 0x0200 XMLCREF 0x0400 =head3 LEAVE_SRC Encode::LEAVE_SRC If the C bit is I set but I is set, then the source string to encode() or decode() will be overwritten in place. If you're not interested in this, then bitwise-OR it with the bitmask. =head2 coderef for CHECK As of C 2.12, C can also be a code reference which takes the ordinal value of the unmapped character as an argument and returns octets that represent the fallback character. For instance: $ascii = encode("ascii", $utf8, sub{ sprintf "", shift }); Acts like C but U+I is used instead of C<\x{I}>. Fallback for C must return decoded string (sequence of characters) and takes a list of ordinal values as its arguments. So for example if you wish to decode octets as UTF-8, and use ISO-8859-15 as a fallback for bytes that are not valid UTF-8, you could write $str = decode 'UTF-8', $octets, sub { my $tmp = join '', map chr, @_; return decode 'ISO-8859-15', $tmp; }; =head1 Defining Encodings To define a new encoding, use: use Encode qw(define_encoding); define_encoding($object, CANONICAL_NAME [, alias...]); I will be associated with I<$object>. The object should provide the interface described in L. If more than two arguments are provided, additional arguments are considered aliases for I<$object>. See L for details. =head1 The UTF8 flag Before the introduction of Unicode support in Perl, the C operator just compared the strings represented by two scalars. Beginning with Perl 5.8, C compares two strings with simultaneous consideration of I. To explain why we made it so, I quote from page 402 of I =over 2 =item Goal #1: Old byte-oriented programs should not spontaneously break on the old byte-oriented data they used to work on. =item Goal #2: Old byte-oriented programs should magically start working on the new character-oriented data when appropriate. =item Goal #3: Programs should run just as fast in the new character-oriented mode as in the old byte-oriented mode. =item Goal #4: Perl should remain one language, rather than forking into a byte-oriented Perl and a character-oriented Perl. =back When I was written, not even Perl 5.6.0 had been born yet, many features documented in the book remained unimplemented for a long time. Perl 5.8 corrected much of this, and the introduction of the UTF8 flag is one of them. You can think of there being two fundamentally different kinds of strings and string-operations in Perl: one a byte-oriented mode for when the internal UTF8 flag is off, and the other a character-oriented mode for when the internal UTF8 flag is on. This UTF8 flag is not visible in Perl scripts, exactly for the same reason you cannot (or rather, you I) see whether a scalar contains a string, an integer, or a floating-point number. But you can still peek and poke these if you will. See the next section. =head2 Messing with Perl's Internals The following API uses parts of Perl's internals in the current implementation. As such, they are efficient but may change in a future release. =head3 is_utf8 is_utf8(STRING [, CHECK]) [INTERNAL] Tests whether the UTF8 flag is turned on in the I. If I is true, also checks whether I contains well-formed UTF-8. Returns true if successful, false otherwise. Typically only necessary for debugging and testing. Don't use this flag as a marker to distinguish character and binary data, that should be decided for each variable when you write your code. B: If I has UTF8 flag set, it does B mean that I is UTF-8 encoded and vice-versa. As of Perl 5.8.1, L also has the C function. =head3 _utf8_on _utf8_on(STRING) [INTERNAL] Turns the I's internal UTF8 flag B. The I is I checked for containing only well-formed UTF-8. Do not use this unless you I that the STRING holds only well-formed UTF-8. Returns the previous state of the UTF8 flag (so please don't treat the return value as indicating success or failure), or C if I is not a string. B: For security reasons, this function does not work on tainted values. =head3 _utf8_off _utf8_off(STRING) [INTERNAL] Turns the I's internal UTF8 flag B. Do not use frivolously. Returns the previous state of the UTF8 flag, or C if I is not a string. Do not treat the return value as indicative of success or failure, because that isn't what it means: it is only the previous setting. B: For security reasons, this function does not work on tainted values. =head1 UTF-8 vs. utf8 vs. UTF8 ....We now view strings not as sequences of bytes, but as sequences of numbers in the range 0 .. 2**32-1 (or in the case of 64-bit computers, 0 .. 2**64-1) -- Programming Perl, 3rd ed. That has historically been Perl's notion of UTF-8, as that is how UTF-8 was first conceived by Ken Thompson when he invented it. However, thanks to later revisions to the applicable standards, official UTF-8 is now rather stricter than that. For example, its range is much narrower (0 .. 0x10_FFFF to cover only 21 bits instead of 32 or 64 bits) and some sequences are not allowed, like those used in surrogate pairs, the 31 non-character code points 0xFDD0 .. 0xFDEF, the last two code points in I plane (0xI_FFFE and 0xI_FFFF), all non-shortest encodings, etc. The former default in which Perl would always use a loose interpretation of UTF-8 has now been overruled: From: Larry Wall Date: December 04, 2004 11:51:58 JST To: perl-unicode@perl.org Subject: Re: Make Encode.pm support the real UTF-8 Message-Id: <20041204025158.GA28754@wall.org> On Fri, Dec 03, 2004 at 10:12:12PM +0000, Tim Bunce wrote: : I've no problem with 'utf8' being perl's unrestricted uft8 encoding, : but "UTF-8" is the name of the standard and should give the : corresponding behaviour. For what it's worth, that's how I've always kept them straight in my head. Also for what it's worth, Perl 6 will mostly default to strict but make it easy to switch back to lax. Larry Got that? As of Perl 5.8.7, B<"UTF-8"> means UTF-8 in its current sense, which is conservative and strict and security-conscious, whereas B<"utf8"> means UTF-8 in its former sense, which was liberal and loose and lax. C version 2.10 or later thus groks this subtle but critically important distinction between C<"UTF-8"> and C<"utf8">. encode("utf8", "\x{FFFF_FFFF}", 1); # okay encode("UTF-8", "\x{FFFF_FFFF}", 1); # croaks This distinction is also important for decoding. In the following, C<$s> stores character U+200000, which exceeds UTF-8's allowed range. C<$s> thus stores an invalid Unicode code point: $s = decode("utf8", "\xf8\x88\x80\x80\x80"); C<"UTF-8">, by contrast, will either coerce the input to something valid: $s = decode("UTF-8", "\xf8\x88\x80\x80\x80"); # U+FFFD .. or croak: decode("UTF-8", "\xf8\x88\x80\x80\x80", FB_CROAK|LEAVE_SRC); In the C module, C<"UTF-8"> is actually a canonical name for C<"utf-8-strict">. That hyphen between the C<"UTF"> and the C<"8"> is critical; without it, C goes "liberal" and (perhaps overly-)permissive: find_encoding("UTF-8")->name # is 'utf-8-strict' find_encoding("utf-8")->name # ditto. names are case insensitive find_encoding("utf_8")->name # ditto. "_" are treated as "-" find_encoding("UTF8")->name # is 'utf8'. Perl's internal UTF8 flag is called "UTF8", without a hyphen. It indicates whether a string is internally encoded as "utf8", also without a hyphen. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L L, the Perl Unicode Mailing List L =head1 MAINTAINER This project was originated by the late Nick Ing-Simmons and later maintained by Dan Kogai I<< >>. See AUTHORS for a full list of people involved. For any questions, send mail to I<< >> so that we can all share. While Dan Kogai retains the copyright as a maintainer, credit should go to all those involved. See AUTHORS for a list of those who submitted code to the project. =head1 COPYRIGHT Copyright 2002-2014 Dan Kogai I<< >>. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut FILEb14b6a19/Encode/Alias.pm1package Encode::Alias; use strict; use warnings; our $VERSION = do { my @r = ( q$Revision: 2.25 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; use Exporter 'import'; # Public, encouraged API is exported by default our @EXPORT = qw ( define_alias find_alias ); our @Alias; # ordered matching list our %Alias; # cached known aliases sub find_alias { my $class = shift; my $find = shift; unless ( exists $Alias{$find} ) { $Alias{$find} = undef; # Recursion guard for ( my $i = 0 ; $i < @Alias ; $i += 2 ) { my $alias = $Alias[$i]; my $val = $Alias[ $i + 1 ]; my $new; if ( ref($alias) eq 'Regexp' && $find =~ $alias ) { DEBUG and warn "eval $val"; $new = eval $val; DEBUG and $@ and warn "$val, $@"; } elsif ( ref($alias) eq 'CODE' ) { DEBUG and warn "$alias", "->", "($find)"; $new = $alias->($find); } elsif ( lc($find) eq lc($alias) ) { $new = $val; } if ( defined($new) ) { next if $new eq $find; # avoid (direct) recursion on bugs DEBUG and warn "$alias, $new"; my $enc = ( ref($new) ) ? $new : Encode::find_encoding($new); if ($enc) { $Alias{$find} = $enc; last; } } } # case insensitive search when canonical is not in all lowercase # RT ticket #7835 unless ( $Alias{$find} ) { my $lcfind = lc($find); for my $name ( keys %Encode::Encoding, keys %Encode::ExtModule ) { $lcfind eq lc($name) or next; $Alias{$find} = Encode::find_encoding($name); DEBUG and warn "$find => $name"; } } } if (DEBUG) { my $name; if ( my $e = $Alias{$find} ) { $name = $e->name; } else { $name = ""; } warn "find_alias($class, $find)->name = $name"; } return $Alias{$find}; } sub define_alias { while (@_) { my $alias = shift; my $name = shift; unshift( @Alias, $alias => $name ) # newer one has precedence if defined $alias; if ( ref($alias) ) { # clear %Alias cache to allow overrides my @a = keys %Alias; for my $k (@a) { if ( ref($alias) eq 'Regexp' && $k =~ $alias ) { DEBUG and warn "delete \$Alias\{$k\}"; delete $Alias{$k}; } elsif ( ref($alias) eq 'CODE' && $alias->($k) ) { DEBUG and warn "delete \$Alias\{$k\}"; delete $Alias{$k}; } } } elsif (defined $alias) { DEBUG and warn "delete \$Alias\{$alias\}"; delete $Alias{$alias}; } elsif (DEBUG) { require Carp; Carp::croak("undef \$alias"); } } } # HACK: Encode must be used after define_alias is declarated as Encode calls define_alias use Encode (); # Allow latin-1 style names as well # 0 1 2 3 4 5 6 7 8 9 10 our @Latin2iso = ( 0, 1, 2, 3, 4, 9, 10, 13, 14, 15, 16 ); # Allow winlatin1 style names as well our %Winlatin2cp = ( 'latin1' => 1252, 'latin2' => 1250, 'cyrillic' => 1251, 'greek' => 1253, 'turkish' => 1254, 'hebrew' => 1255, 'arabic' => 1256, 'baltic' => 1257, 'vietnamese' => 1258, ); init_aliases(); sub undef_aliases { @Alias = (); %Alias = (); } sub init_aliases { undef_aliases(); # Try all-lower-case version should all else fails define_alias( qr/^(.*)$/ => '"\L$1"' ); # UTF/UCS stuff define_alias( qr/^(unicode-1-1-)?UTF-?7$/i => '"UTF-7"' ); define_alias( qr/^UCS-?2-?LE$/i => '"UCS-2LE"' ); define_alias( qr/^UCS-?2-?(BE)?$/i => '"UCS-2BE"', qr/^UCS-?4-?(BE|LE|)?$/i => 'uc("UTF-32$1")', qr/^iso-10646-1$/i => '"UCS-2BE"' ); define_alias( qr/^UTF-?(16|32)-?BE$/i => '"UTF-$1BE"', qr/^UTF-?(16|32)-?LE$/i => '"UTF-$1LE"', qr/^UTF-?(16|32)$/i => '"UTF-$1"', ); # ASCII define_alias( qr/^(?:US-?)ascii$/i => '"ascii"' ); define_alias( 'C' => 'ascii' ); define_alias( qr/\b(?:ISO[-_]?)?646(?:[-_]?US)?$/i => '"ascii"' ); # Allow variants of iso-8859-1 etc. define_alias( qr/\biso[-_]?(\d+)[-_](\d+)$/i => '"iso-$1-$2"' ); # ISO-8859-8-I => ISO-8859-8 # https://en.wikipedia.org/wiki/ISO-8859-8-I define_alias( qr/\biso[-_]8859[-_]8[-_]I$/i => '"iso-8859-8"' ); # At least HP-UX has these. define_alias( qr/\biso8859(\d+)$/i => '"iso-8859-$1"' ); # More HP stuff. define_alias( qr/\b(?:hp-)?(arabic|greek|hebrew|kana|roman|thai|turkish)8$/i => '"${1}8"' ); # The Official name of ASCII. define_alias( qr/\bANSI[-_]?X3\.4[-_]?1968$/i => '"ascii"' ); # This is a font issue, not an encoding issue. # (The currency symbol of the Latin 1 upper half # has been redefined as the euro symbol.) define_alias( qr/^(.+)\@euro$/i => '"$1"' ); define_alias( qr/\b(?:iso[-_]?)?latin[-_]?(\d+)$/i => 'defined $Encode::Alias::Latin2iso[$1] ? "iso-8859-$Encode::Alias::Latin2iso[$1]" : undef' ); define_alias( qr/\bwin(latin[12]|cyrillic|baltic|greek|turkish| hebrew|arabic|baltic|vietnamese)$/ix => '"cp" . $Encode::Alias::Winlatin2cp{lc($1)}' ); # Common names for non-latin preferred MIME names define_alias( 'ascii' => 'US-ascii', 'cyrillic' => 'iso-8859-5', 'arabic' => 'iso-8859-6', 'greek' => 'iso-8859-7', 'hebrew' => 'iso-8859-8', 'thai' => 'iso-8859-11', ); # RT #20781 define_alias(qr/\btis-?620\b/i => '"iso-8859-11"'); # At least AIX has IBM-NNN (surprisingly...) instead of cpNNN. # And Microsoft has their own naming (again, surprisingly). # And windows-* is registered in IANA! define_alias( qr/\b(?:cp|ibm|ms|windows)[-_ ]?(\d{2,4})$/i => '"cp$1"' ); # Sometimes seen with a leading zero. # define_alias( qr/\bcp037\b/i => '"cp37"'); # Mac Mappings # predefined in *.ucm; unneeded # define_alias( qr/\bmacIcelandic$/i => '"macIceland"'); define_alias( qr/^(?:x[_-])?mac[_-](.*)$/i => '"mac$1"' ); # http://rt.cpan.org/Ticket/Display.html?id=36326 define_alias( qr/^macintosh$/i => '"MacRoman"' ); # https://rt.cpan.org/Ticket/Display.html?id=78125 define_alias( qr/^macce$/i => '"MacCentralEurRoman"' ); # Ououououou. gone. They are different! # define_alias( qr/\bmacRomanian$/i => '"macRumanian"'); # Standardize on the dashed versions. define_alias( qr/\bkoi8[\s\-_]*([ru])$/i => '"koi8-$1"' ); unless ($Encode::ON_EBCDIC) { # for Encode::CN define_alias( qr/\beuc.*cn$/i => '"euc-cn"' ); define_alias( qr/\bcn.*euc$/i => '"euc-cn"' ); # define_alias( qr/\bGB[- ]?(\d+)$/i => '"euc-cn"' ) # CP936 doesn't have vendor-addon for GBK, so they're identical. define_alias( qr/^gbk$/i => '"cp936"' ); # This fixes gb2312 vs. euc-cn confusion, practically define_alias( qr/\bGB[-_ ]?2312(?!-?raw)/i => '"euc-cn"' ); # for Encode::JP define_alias( qr/\bjis$/i => '"7bit-jis"' ); define_alias( qr/\beuc.*jp$/i => '"euc-jp"' ); define_alias( qr/\bjp.*euc$/i => '"euc-jp"' ); define_alias( qr/\bujis$/i => '"euc-jp"' ); define_alias( qr/\bshift.*jis$/i => '"shiftjis"' ); define_alias( qr/\bsjis$/i => '"shiftjis"' ); define_alias( qr/\bwindows-31j$/i => '"cp932"' ); # for Encode::KR define_alias( qr/\beuc.*kr$/i => '"euc-kr"' ); define_alias( qr/\bkr.*euc$/i => '"euc-kr"' ); # This fixes ksc5601 vs. euc-kr confusion, practically define_alias( qr/(?:x-)?uhc$/i => '"cp949"' ); define_alias( qr/(?:x-)?windows-949$/i => '"cp949"' ); define_alias( qr/\bks_c_5601-1987$/i => '"cp949"' ); # for Encode::TW define_alias( qr/\bbig-?5$/i => '"big5-eten"' ); define_alias( qr/\bbig5-?et(?:en)?$/i => '"big5-eten"' ); define_alias( qr/\btca[-_]?big5$/i => '"big5-eten"' ); define_alias( qr/\bbig5-?hk(?:scs)?$/i => '"big5-hkscs"' ); define_alias( qr/\bhk(?:scs)?[-_]?big5$/i => '"big5-hkscs"' ); } # https://github.com/dankogai/p5-encode/issues/37 define_alias(qr/cp65000/i => '"UTF-7"'); define_alias(qr/cp65001/i => '"utf-8-strict"'); # utf8 is blessed :) define_alias( qr/\bUTF-8$/i => '"utf-8-strict"' ); # At last, Map white space and _ to '-' define_alias( qr/^([^\s_]+)[\s_]+([^\s_]*)$/i => '"$1-$2"' ); } 1; __END__ # TODO: HP-UX '8' encodings arabic8 greek8 hebrew8 kana8 thai8 turkish8 # TODO: HP-UX '15' encodings japanese15 korean15 roi15 # TODO: Cyrillic encoding ISO-IR-111 (useful?) # TODO: Armenian encoding ARMSCII-8 # TODO: Hebrew encoding ISO-8859-8-1 # TODO: Thai encoding TCVN # TODO: Vietnamese encodings VPS # TODO: Mac Asian+African encodings: Arabic Armenian Bengali Burmese # ChineseSimp ChineseTrad Devanagari Ethiopic ExtArabic # Farsi Georgian Gujarati Gurmukhi Hebrew Japanese # Kannada Khmer Korean Laotian Malayalam Mongolian # Oriya Sinhalese Symbol Tamil Telugu Tibetan Vietnamese =head1 NAME Encode::Alias - alias definitions to encodings =head1 SYNOPSIS use Encode; use Encode::Alias; define_alias( "newName" => ENCODING); define_alias( qr/.../ => ENCODING); define_alias( sub { return ENCODING if ...; } ); =head1 DESCRIPTION Allows newName to be used as an alias for ENCODING. ENCODING may be either the name of an encoding or an encoding object (as described in L). Currently the first argument to define_alias() can be specified in the following ways: =over 4 =item As a simple string. =item As a qr// compiled regular expression, e.g.: define_alias( qr/^iso8859-(\d+)$/i => '"iso-8859-$1"' ); In this case, if I is not a reference, it is C-ed in order to allow C<$1> etc. to be substituted. The example is one way to alias names as used in X11 fonts to the MIME names for the iso-8859-* family. Note the double quotes inside the single quotes. (or, you don't have to do this yourself because this example is predefined) If you are using a regex here, you have to use the quotes as shown or it won't work. Also note that regex handling is tricky even for the experienced. Use this feature with caution. =item As a code reference, e.g.: define_alias( sub {shift =~ /^iso8859-(\d+)$/i ? "iso-8859-$1" : undef } ); The same effect as the example above in a different way. The coderef takes the alias name as an argument and returns a canonical name on success or undef if not. Note the second argument is ignored if provided. Use this with even more caution than the regex version. =back =head3 Changes in code reference aliasing As of Encode 1.87, the older form define_alias( sub { return /^iso8859-(\d+)$/i ? "iso-8859-$1" : undef } ); no longer works. Encode up to 1.86 internally used "local $_" to implement this older form. But consider the code below; use Encode; $_ = "eeeee" ; while (/(e)/g) { my $utf = decode('aliased-encoding-name', $1); print "position:",pos,"\n"; } Prior to Encode 1.86 this fails because of "local $_". =head2 Alias overloading You can override predefined aliases by simply applying define_alias(). The new alias is always evaluated first, and when necessary, define_alias() flushes the internal cache to make the new definition available. # redirect SHIFT_JIS to MS/IBM Code Page 932, which is a # superset of SHIFT_JIS define_alias( qr/shift.*jis$/i => '"cp932"' ); define_alias( qr/sjis$/i => '"cp932"' ); If you want to zap all predefined aliases, you can use Encode::Alias->undef_aliases; to do so. And Encode::Alias->init_aliases; gets the factory settings back. Note that define_alias() will not be able to override the canonical name of encodings. Encodings are first looked up by canonical name before potential aliases are tried. =head1 SEE ALSO L, L =cut FILE314fa882/Encode/Config.pm# # Demand-load module list # package Encode::Config; our $VERSION = do { my @r = ( q$Revision: 2.5 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; use strict; use warnings; our %ExtModule = ( # Encode::Byte #iso-8859-1 is in Encode.pm itself 'iso-8859-2' => 'Encode::Byte', 'iso-8859-3' => 'Encode::Byte', 'iso-8859-4' => 'Encode::Byte', 'iso-8859-5' => 'Encode::Byte', 'iso-8859-6' => 'Encode::Byte', 'iso-8859-7' => 'Encode::Byte', 'iso-8859-8' => 'Encode::Byte', 'iso-8859-9' => 'Encode::Byte', 'iso-8859-10' => 'Encode::Byte', 'iso-8859-11' => 'Encode::Byte', 'iso-8859-13' => 'Encode::Byte', 'iso-8859-14' => 'Encode::Byte', 'iso-8859-15' => 'Encode::Byte', 'iso-8859-16' => 'Encode::Byte', 'koi8-f' => 'Encode::Byte', 'koi8-r' => 'Encode::Byte', 'koi8-u' => 'Encode::Byte', 'viscii' => 'Encode::Byte', 'cp424' => 'Encode::Byte', 'cp437' => 'Encode::Byte', 'cp737' => 'Encode::Byte', 'cp775' => 'Encode::Byte', 'cp850' => 'Encode::Byte', 'cp852' => 'Encode::Byte', 'cp855' => 'Encode::Byte', 'cp856' => 'Encode::Byte', 'cp857' => 'Encode::Byte', 'cp858' => 'Encode::Byte', 'cp860' => 'Encode::Byte', 'cp861' => 'Encode::Byte', 'cp862' => 'Encode::Byte', 'cp863' => 'Encode::Byte', 'cp864' => 'Encode::Byte', 'cp865' => 'Encode::Byte', 'cp866' => 'Encode::Byte', 'cp869' => 'Encode::Byte', 'cp874' => 'Encode::Byte', 'cp1006' => 'Encode::Byte', 'cp1250' => 'Encode::Byte', 'cp1251' => 'Encode::Byte', 'cp1252' => 'Encode::Byte', 'cp1253' => 'Encode::Byte', 'cp1254' => 'Encode::Byte', 'cp1255' => 'Encode::Byte', 'cp1256' => 'Encode::Byte', 'cp1257' => 'Encode::Byte', 'cp1258' => 'Encode::Byte', 'AdobeStandardEncoding' => 'Encode::Byte', 'MacArabic' => 'Encode::Byte', 'MacCentralEurRoman' => 'Encode::Byte', 'MacCroatian' => 'Encode::Byte', 'MacCyrillic' => 'Encode::Byte', 'MacFarsi' => 'Encode::Byte', 'MacGreek' => 'Encode::Byte', 'MacHebrew' => 'Encode::Byte', 'MacIcelandic' => 'Encode::Byte', 'MacRoman' => 'Encode::Byte', 'MacRomanian' => 'Encode::Byte', 'MacRumanian' => 'Encode::Byte', 'MacSami' => 'Encode::Byte', 'MacThai' => 'Encode::Byte', 'MacTurkish' => 'Encode::Byte', 'MacUkrainian' => 'Encode::Byte', 'nextstep' => 'Encode::Byte', 'hp-roman8' => 'Encode::Byte', #'gsm0338' => 'Encode::Byte', 'gsm0338' => 'Encode::GSM0338', # Encode::EBCDIC 'cp37' => 'Encode::EBCDIC', 'cp500' => 'Encode::EBCDIC', 'cp875' => 'Encode::EBCDIC', 'cp1026' => 'Encode::EBCDIC', 'cp1047' => 'Encode::EBCDIC', 'posix-bc' => 'Encode::EBCDIC', # Encode::Symbol 'dingbats' => 'Encode::Symbol', 'symbol' => 'Encode::Symbol', 'AdobeSymbol' => 'Encode::Symbol', 'AdobeZdingbat' => 'Encode::Symbol', 'MacDingbats' => 'Encode::Symbol', 'MacSymbol' => 'Encode::Symbol', # Encode::Unicode 'UCS-2BE' => 'Encode::Unicode', 'UCS-2LE' => 'Encode::Unicode', 'UTF-16' => 'Encode::Unicode', 'UTF-16BE' => 'Encode::Unicode', 'UTF-16LE' => 'Encode::Unicode', 'UTF-32' => 'Encode::Unicode', 'UTF-32BE' => 'Encode::Unicode', 'UTF-32LE' => 'Encode::Unicode', 'UTF-7' => 'Encode::Unicode::UTF7', ); unless ( ord("A") == 193 ) { %ExtModule = ( %ExtModule, 'euc-cn' => 'Encode::CN', 'gb12345-raw' => 'Encode::CN', 'gb2312-raw' => 'Encode::CN', 'hz' => 'Encode::CN', 'iso-ir-165' => 'Encode::CN', 'cp936' => 'Encode::CN', 'MacChineseSimp' => 'Encode::CN', '7bit-jis' => 'Encode::JP', 'euc-jp' => 'Encode::JP', 'iso-2022-jp' => 'Encode::JP', 'iso-2022-jp-1' => 'Encode::JP', 'jis0201-raw' => 'Encode::JP', 'jis0208-raw' => 'Encode::JP', 'jis0212-raw' => 'Encode::JP', 'cp932' => 'Encode::JP', 'MacJapanese' => 'Encode::JP', 'shiftjis' => 'Encode::JP', 'euc-kr' => 'Encode::KR', 'iso-2022-kr' => 'Encode::KR', 'johab' => 'Encode::KR', 'ksc5601-raw' => 'Encode::KR', 'cp949' => 'Encode::KR', 'MacKorean' => 'Encode::KR', 'big5-eten' => 'Encode::TW', 'big5-hkscs' => 'Encode::TW', 'cp950' => 'Encode::TW', 'MacChineseTrad' => 'Encode::TW', #'big5plus' => 'Encode::HanExtra', #'euc-tw' => 'Encode::HanExtra', #'gb18030' => 'Encode::HanExtra', 'MIME-Header' => 'Encode::MIME::Header', 'MIME-B' => 'Encode::MIME::Header', 'MIME-Q' => 'Encode::MIME::Header', 'MIME-Header-ISO_2022_JP' => 'Encode::MIME::Header::ISO_2022_JP', ); } # # Why not export ? to keep ConfigLocal Happy! # while ( my ( $enc, $mod ) = each %ExtModule ) { $Encode::ExtModule{$enc} = $mod; } 1; __END__ =head1 NAME Encode::Config -- internally used by Encode =cut FILE2894aaa1/Encode/Encoding.pm#gpackage Encode::Encoding; # Base class for classes which implement encodings use strict; use warnings; our $VERSION = do { my @r = ( q$Revision: 2.8 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; our @CARP_NOT = qw(Encode Encode::Encoder); use Carp (); use Encode (); use Encode::MIME::Name; use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; sub Define { my $obj = shift; my $canonical = shift; $obj = bless { Name => $canonical }, $obj unless ref $obj; # warn "$canonical => $obj\n"; Encode::define_encoding( $obj, $canonical, @_ ); } sub name { return shift->{'Name'} } sub mime_name { return Encode::MIME::Name::get_mime_name(shift->name); } sub renew { my $self = shift; my $clone = bless {%$self} => ref($self); $clone->{renewed}++; # so the caller can see it DEBUG and warn $clone->{renewed}; return $clone; } sub renewed { return $_[0]->{renewed} || 0 } *new_sequence = \&renew; sub needs_lines { 0 } sub perlio_ok { return eval { require PerlIO::encoding } ? 1 : 0; } # (Temporary|legacy) methods sub toUnicode { shift->decode(@_) } sub fromUnicode { shift->encode(@_) } # # Needs to be overloaded or just croak # sub encode { my $obj = shift; my $class = ref($obj) ? ref($obj) : $obj; Carp::croak( $class . "->encode() not defined!" ); } sub decode { my $obj = shift; my $class = ref($obj) ? ref($obj) : $obj; Carp::croak( $class . "->encode() not defined!" ); } sub DESTROY { } 1; __END__ =head1 NAME Encode::Encoding - Encode Implementation Base Class =head1 SYNOPSIS package Encode::MyEncoding; use parent qw(Encode::Encoding); __PACKAGE__->Define(qw(myCanonical myAlias)); =head1 DESCRIPTION As mentioned in L, encodings are (in the current implementation at least) defined as objects. The mapping of encoding name to object is via the C<%Encode::Encoding> hash. Though you can directly manipulate this hash, it is strongly encouraged to use this base class module and add encode() and decode() methods. =head2 Methods you should implement You are strongly encouraged to implement methods below, at least either encode() or decode(). =over 4 =item -Eencode($string [,$check]) MUST return the octet sequence representing I<$string>. =over 2 =item * If I<$check> is true, it SHOULD modify I<$string> in place to remove the converted part (i.e. the whole string unless there is an error). If perlio_ok() is true, SHOULD becomes MUST. =item * If an error occurs, it SHOULD return the octet sequence for the fragment of string that has been converted and modify $string in-place to remove the converted part leaving it starting with the problem fragment. If perlio_ok() is true, SHOULD becomes MUST. =item * If I<$check> is false then C MUST make a "best effort" to convert the string - for example, by using a replacement character. =back =item -Edecode($octets [,$check]) MUST return the string that I<$octets> represents. =over 2 =item * If I<$check> is true, it SHOULD modify I<$octets> in place to remove the converted part (i.e. the whole sequence unless there is an error). If perlio_ok() is true, SHOULD becomes MUST. =item * If an error occurs, it SHOULD return the fragment of string that has been converted and modify $octets in-place to remove the converted part leaving it starting with the problem fragment. If perlio_ok() is true, SHOULD becomes MUST. =item * If I<$check> is false then C should make a "best effort" to convert the string - for example by using Unicode's "\x{FFFD}" as a replacement character. =back =back If you want your encoding to work with L pragma, you should also implement the method below. =over 4 =item -Ecat_decode($destination, $octets, $offset, $terminator [,$check]) MUST decode I<$octets> with I<$offset> and concatenate it to I<$destination>. Decoding will terminate when $terminator (a string) appears in output. I<$offset> will be modified to the last $octets position at end of decode. Returns true if $terminator appears output, else returns false. =back =head2 Other methods defined in Encode::Encodings You do not have to override methods shown below unless you have to. =over 4 =item -Ename Predefined As: sub name { return shift->{'Name'} } MUST return the string representing the canonical name of the encoding. =item -Emime_name Predefined As: sub mime_name{ return Encode::MIME::Name::get_mime_name(shift->name); } MUST return the string representing the IANA charset name of the encoding. =item -Erenew Predefined As: sub renew { my $self = shift; my $clone = bless { %$self } => ref($self); $clone->{renewed}++; return $clone; } This method reconstructs the encoding object if necessary. If you need to store the state during encoding, this is where you clone your object. PerlIO ALWAYS calls this method to make sure it has its own private encoding object. =item -Erenewed Predefined As: sub renewed { $_[0]->{renewed} || 0 } Tells whether the object is renewed (and how many times). Some modules emit C warning unless the value is numeric so return 0 for false. =item -Eperlio_ok() Predefined As: sub perlio_ok { return eval { require PerlIO::encoding } ? 1 : 0; } If your encoding does not support PerlIO for some reasons, just; sub perlio_ok { 0 } =item -Eneeds_lines() Predefined As: sub needs_lines { 0 }; If your encoding can work with PerlIO but needs line buffering, you MUST define this method so it returns true. 7bit ISO-2022 encodings are one example that needs this. When this method is missing, false is assumed. =back =head2 Example: Encode::ROT13 package Encode::ROT13; use strict; use parent qw(Encode::Encoding); __PACKAGE__->Define('rot13'); sub encode($$;$){ my ($obj, $str, $chk) = @_; $str =~ tr/A-Za-z/N-ZA-Mn-za-m/; $_[1] = '' if $chk; # this is what in-place edit means return $str; } # Jr pna or ynml yvxr guvf; *decode = \&encode; 1; =head1 Why the heck Encode API is different? It should be noted that the I<$check> behaviour is different from the outer public API. The logic is that the "unchecked" case is useful when the encoding is part of a stream which may be reporting errors (e.g. STDERR). In such cases, it is desirable to get everything through somehow without causing additional errors which obscure the original one. Also, the encoding is best placed to know what the correct replacement character is, so if that is the desired behaviour then letting low level code do it is the most efficient. By contrast, if I<$check> is true, the scheme above allows the encoding to do as much as it can and tell the layer above how much that was. What is lacking at present is a mechanism to report what went wrong. The most likely interface will be an additional method call to the object, or perhaps (to avoid forcing per-stream objects on otherwise stateless encodings) an additional parameter. It is also highly desirable that encoding classes inherit from C as a base class. This allows that class to define additional behaviour for all encoding objects. package Encode::MyEncoding; use parent qw(Encode::Encoding); __PACKAGE__->Define(qw(myCanonical myAlias)); to create an object with C<< bless {Name => ...}, $class >>, and call define_encoding. They inherit their C method from C. =head2 Compiled Encodings For the sake of speed and efficiency, most of the encodings are now supported via a I: XS modules generated from UCM files. Encode provides the enc2xs tool to achieve that. Please see L for more details. =head1 SEE ALSO L, L =begin future =over 4 =item Scheme 1 The fixup routine gets passed the remaining fragment of string being processed. It modifies it in place to remove bytes/characters it can understand and returns a string used to represent them. For example: sub fixup { my $ch = substr($_[0],0,1,''); return sprintf("\x{%02X}",ord($ch); } This scheme is close to how the underlying C code for Encode works, but gives the fixup routine very little context. =item Scheme 2 The fixup routine gets passed the original string, an index into it of the problem area, and the output string so far. It appends what it wants to the output string and returns a new index into the original string. For example: sub fixup { # my ($s,$i,$d) = @_; my $ch = substr($_[0],$_[1],1); $_[2] .= sprintf("\x{%02X}",ord($ch); return $_[1]+1; } This scheme gives maximal control to the fixup routine but is more complicated to code, and may require that the internals of Encode be tweaked to keep the original string intact. =item Other Schemes Hybrids of the above. Multiple return values rather than in-place modifications. Index into the string could be C allowing C. =back =end future =cut FILEd5ff5da4/Encode/MIME/Name.pmpackage Encode::MIME::Name; use strict; use warnings; our $VERSION = do { my @r = ( q$Revision: 1.3 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; # NOTE: This table must be 1:1 mapping our %MIME_NAME_OF = ( 'AdobeStandardEncoding' => 'Adobe-Standard-Encoding', 'AdobeSymbol' => 'Adobe-Symbol-Encoding', 'ascii' => 'US-ASCII', 'big5-hkscs' => 'Big5-HKSCS', 'cp1026' => 'IBM1026', 'cp1047' => 'IBM1047', 'cp1250' => 'windows-1250', 'cp1251' => 'windows-1251', 'cp1252' => 'windows-1252', 'cp1253' => 'windows-1253', 'cp1254' => 'windows-1254', 'cp1255' => 'windows-1255', 'cp1256' => 'windows-1256', 'cp1257' => 'windows-1257', 'cp1258' => 'windows-1258', 'cp37' => 'IBM037', 'cp424' => 'IBM424', 'cp437' => 'IBM437', 'cp500' => 'IBM500', 'cp775' => 'IBM775', 'cp850' => 'IBM850', 'cp852' => 'IBM852', 'cp855' => 'IBM855', 'cp857' => 'IBM857', 'cp860' => 'IBM860', 'cp861' => 'IBM861', 'cp862' => 'IBM862', 'cp863' => 'IBM863', 'cp864' => 'IBM864', 'cp865' => 'IBM865', 'cp866' => 'IBM866', 'cp869' => 'IBM869', 'cp936' => 'GBK', 'euc-cn' => 'EUC-CN', 'euc-jp' => 'EUC-JP', 'euc-kr' => 'EUC-KR', #'gb2312-raw' => 'GB2312', # no, you're wrong, I18N::Charset 'hp-roman8' => 'hp-roman8', 'hz' => 'HZ-GB-2312', 'iso-2022-jp' => 'ISO-2022-JP', 'iso-2022-jp-1' => 'ISO-2022-JP-1', 'iso-2022-kr' => 'ISO-2022-KR', 'iso-8859-1' => 'ISO-8859-1', 'iso-8859-10' => 'ISO-8859-10', 'iso-8859-13' => 'ISO-8859-13', 'iso-8859-14' => 'ISO-8859-14', 'iso-8859-15' => 'ISO-8859-15', 'iso-8859-16' => 'ISO-8859-16', 'iso-8859-2' => 'ISO-8859-2', 'iso-8859-3' => 'ISO-8859-3', 'iso-8859-4' => 'ISO-8859-4', 'iso-8859-5' => 'ISO-8859-5', 'iso-8859-6' => 'ISO-8859-6', 'iso-8859-7' => 'ISO-8859-7', 'iso-8859-8' => 'ISO-8859-8', 'iso-8859-9' => 'ISO-8859-9', #'jis0201-raw' => 'JIS_X0201', #'jis0208-raw' => 'JIS_C6226-1983', #'jis0212-raw' => 'JIS_X0212-1990', 'koi8-r' => 'KOI8-R', 'koi8-u' => 'KOI8-U', #'ksc5601-raw' => 'KS_C_5601-1987', 'shiftjis' => 'Shift_JIS', 'UTF-16' => 'UTF-16', 'UTF-16BE' => 'UTF-16BE', 'UTF-16LE' => 'UTF-16LE', 'UTF-32' => 'UTF-32', 'UTF-32BE' => 'UTF-32BE', 'UTF-32LE' => 'UTF-32LE', 'UTF-7' => 'UTF-7', 'utf-8-strict' => 'UTF-8', 'viscii' => 'VISCII', ); # NOTE: %MIME_NAME_OF is still 1:1 mapping our %ENCODE_NAME_OF = map { uc $MIME_NAME_OF{$_} => $_ } keys %MIME_NAME_OF; # Add additional 1:N mapping $MIME_NAME_OF{'utf8'} = 'UTF-8'; sub get_mime_name($) { $MIME_NAME_OF{$_[0]} }; sub get_encode_name($) { $ENCODE_NAME_OF{uc $_[0]} }; 1; __END__ =head1 NAME Encode::MIME::NAME -- internally used by Encode =head1 SEE ALSO L =cut FILE58103fc2/Errno.pm# -*- buffer-read-only: t -*- # # This file is auto-generated by ext/Errno/Errno_pm.PL. # ***ANY*** changes here will be lost. # package Errno; use Exporter 'import'; use strict; use Config; "$Config{'archname'}-$Config{'osvers'}" eq "darwin\-2level-23\.6\.0" or die "Errno architecture (darwin\-2level-23\.6\.0) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})"; our $VERSION = "1.38"; $VERSION = eval $VERSION; my %err; BEGIN { %err = ( EPERM => 1, ENOENT => 2, ESRCH => 3, EINTR => 4, EIO => 5, ENXIO => 6, E2BIG => 7, ENOEXEC => 8, EBADF => 9, ECHILD => 10, EDEADLK => 11, ENOMEM => 12, EACCES => 13, EFAULT => 14, ENOTBLK => 15, EBUSY => 16, EEXIST => 17, EXDEV => 18, ENODEV => 19, ENOTDIR => 20, EISDIR => 21, EINVAL => 22, ENFILE => 23, EMFILE => 24, ENOTTY => 25, ETXTBSY => 26, EFBIG => 27, ENOSPC => 28, ESPIPE => 29, EROFS => 30, EMLINK => 31, EPIPE => 32, EDOM => 33, ERANGE => 34, EAGAIN => 35, EWOULDBLOCK => 35, EINPROGRESS => 36, EALREADY => 37, ENOTSOCK => 38, EDESTADDRREQ => 39, EMSGSIZE => 40, EPROTOTYPE => 41, ENOPROTOOPT => 42, EPROTONOSUPPORT => 43, ESOCKTNOSUPPORT => 44, ENOTSUP => 45, EPFNOSUPPORT => 46, EAFNOSUPPORT => 47, EADDRINUSE => 48, EADDRNOTAVAIL => 49, ENETDOWN => 50, ENETUNREACH => 51, ENETRESET => 52, ECONNABORTED => 53, ECONNRESET => 54, ENOBUFS => 55, EISCONN => 56, ENOTCONN => 57, ESHUTDOWN => 58, ETOOMANYREFS => 59, ETIMEDOUT => 60, ECONNREFUSED => 61, ELOOP => 62, ENAMETOOLONG => 63, EHOSTDOWN => 64, EHOSTUNREACH => 65, ENOTEMPTY => 66, EPROCLIM => 67, EUSERS => 68, EDQUOT => 69, ESTALE => 70, EREMOTE => 71, EBADRPC => 72, ERPCMISMATCH => 73, EPROGUNAVAIL => 74, EPROGMISMATCH => 75, EPROCUNAVAIL => 76, ENOLCK => 77, ENOSYS => 78, EFTYPE => 79, EAUTH => 80, ENEEDAUTH => 81, EPWROFF => 82, EDEVERR => 83, EOVERFLOW => 84, EBADEXEC => 85, EBADARCH => 86, ESHLIBVERS => 87, EBADMACHO => 88, ECANCELED => 89, EIDRM => 90, ENOMSG => 91, EILSEQ => 92, ENOATTR => 93, EBADMSG => 94, EMULTIHOP => 95, ENODATA => 96, ENOLINK => 97, ENOSR => 98, ENOSTR => 99, EPROTO => 100, ETIME => 101, EOPNOTSUPP => 102, ENOPOLICY => 103, ENOTRECOVERABLE => 104, EOWNERDEAD => 105, ELAST => 106, EQFULL => 106, ); # Generate proxy constant subroutines for all the values. # Well, almost all the values. Unfortunately we can't assume that at this # point that our symbol table is empty, as code such as if the parser has # seen code such as C, it will have created the # typeglob. # Doing this before defining @EXPORT_OK etc means that even if a platform is # crazy enough to define EXPORT_OK as an error constant, everything will # still work, because the parser will upgrade the PCS to a real typeglob. # We rely on the subroutine definitions below to update the internal caches. # Don't use %each, as we don't want a copy of the value. foreach my $name (keys %err) { if ($Errno::{$name}) { # We expect this to be reached fairly rarely, so take an approach # which uses the least compile time effort in the common case: eval "sub $name() { $err{$name} }; 1" or die $@; } else { $Errno::{$name} = \$err{$name}; } } } our @EXPORT_OK = keys %err; our %EXPORT_TAGS = ( POSIX => [qw( E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE EROFS ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV )], ); sub TIEHASH { bless \%err } sub FETCH { my (undef, $errname) = @_; return "" unless exists $err{$errname}; my $errno = $err{$errname}; return $errno == $! ? $errno : 0; } sub STORE { require Carp; Carp::confess("ERRNO hash is read only!"); } # This is the true return value *CLEAR = *DELETE = \*STORE; # Typeglob aliasing uses less space sub NEXTKEY { each %err; } sub FIRSTKEY { my $s = scalar keys %err; # initialize iterator each %err; } sub EXISTS { my (undef, $errname) = @_; exists $err{$errname}; } sub _tie_it { tie %{$_[0]}, __PACKAGE__; } __END__ =head1 NAME Errno - System errno constants =head1 SYNOPSIS use Errno qw(EINTR EIO :POSIX); =head1 DESCRIPTION C defines and conditionally exports all the error constants defined in your system F include file. It has a single export tag, C<:POSIX>, which will export all POSIX defined error numbers. On Windows, C also defines and conditionally exports all the Winsock error constants defined in your system F include file. These are included in a second export tag, C<:WINSOCK>. C also makes C<%!> magic such that each element of C<%!> has a non-zero value only if C<$!> is set to that value. For example: my $fh; unless (open($fh, "<", "/fangorn/spouse")) { if ($!{ENOENT}) { warn "Get a wife!\n"; } else { warn "This path is barred: $!"; } } If a specified constant C does not exist on the system, C<$!{EFOO}> returns C<"">. You may use C to check whether the constant is available on the system. Perl automatically loads C the first time you use C<%!>, so you don't need an explicit C. =head1 CAVEATS Importing a particular constant may not be very portable, because the import will fail on platforms that do not have that constant. A more portable way to set C<$!> to a valid value is to use: if (exists &Errno::EFOO) { $! = &Errno::EFOO; } =head1 AUTHOR Graham Barr =head1 COPYRIGHT Copyright (c) 1997-8 Graham Barr. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut # ex: set ro: FILEab6f8fb8/Fcntl.pmJspackage Fcntl; use strict; use Exporter 'import'; require XSLoader; our $VERSION = '1.20'; XSLoader::load(); # Named groups of exports our %EXPORT_TAGS = ( 'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)], 'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)], 'seek' => [qw(SEEK_SET SEEK_CUR SEEK_END)], 'mode' => [qw(S_ISUID S_ISGID S_ISVTX S_ISTXT _S_IFMT S_IFREG S_IFDIR S_IFLNK S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT S_IRUSR S_IWUSR S_IXUSR S_IRWXU S_IRGRP S_IWGRP S_IXGRP S_IRWXG S_IROTH S_IWOTH S_IXOTH S_IRWXO S_IREAD S_IWRITE S_IEXEC S_ISREG S_ISDIR S_ISLNK S_ISSOCK S_ISBLK S_ISCHR S_ISFIFO S_ISWHT S_IFMT S_IMODE )], ); # Items to export into callers namespace by default # (move infrequently used names to @EXPORT_OK below) our @EXPORT = qw( FD_CLOEXEC F_ALLOCSP F_ALLOCSP64 F_COMPAT F_DUP2FD F_DUPFD F_EXLCK F_FREESP F_FREESP64 F_FSYNC F_FSYNC64 F_GETFD F_GETFL F_GETLK F_GETLK64 F_GETOWN F_NODNY F_POSIX F_RDACC F_RDDNY F_RDLCK F_RWACC F_RWDNY F_SETFD F_SETFL F_SETLK F_SETLK64 F_SETLKW F_SETLKW64 F_SETOWN F_SHARE F_SHLCK F_UNLCK F_UNSHARE F_WRACC F_WRDNY F_WRLCK O_ACCMODE O_ALIAS O_APPEND O_ASYNC O_BINARY O_CREAT O_DEFER O_DIRECT O_DIRECTORY O_DSYNC O_EXCL O_EXLOCK O_LARGEFILE O_NDELAY O_NOCTTY O_NOFOLLOW O_NOINHERIT O_NONBLOCK O_RANDOM O_RAW O_RDONLY O_RDWR O_RSRC O_RSYNC O_SEQUENTIAL O_SHLOCK O_SYNC O_TEMPORARY O_TEXT O_TRUNC O_WRONLY ); # Other items we are prepared to export if requested our @EXPORT_OK = (qw( DN_ACCESS DN_ATTRIB DN_CREATE DN_DELETE DN_MODIFY DN_MULTISHOT DN_RENAME F_ADD_SEALS F_GETLEASE F_GETPIPE_SZ F_GET_SEALS F_GETSIG F_NOTIFY F_SEAL_FUTURE_WRITE F_SEAL_GROW F_SEAL_SEAL F_SEAL_SHRINK F_SEAL_WRITE F_SETLEASE F_SETPIPE_SZ F_SETSIG LOCK_MAND LOCK_READ LOCK_RW LOCK_WRITE O_ALT_IO O_EVTONLY O_IGNORE_CTTY O_NOATIME O_NOLINK O_NOSIGPIPE O_NOTRANS O_SYMLINK O_TMPFILE O_TTY_INIT ), map {@{$_}} values %EXPORT_TAGS); 1; __END__ =head1 NAME Fcntl - various flag constants and helper functions from C's fcntl.h =head1 SYNOPSIS use Fcntl; use Fcntl qw(:DEFAULT :flock); use Fcntl qw(F_GETFD F_SETFD FD_CLOEXEC); =head1 DESCRIPTION This module provides flags and helper functions for use with L (S_*), L (F_*), L (LOCK_*), L (SEEK_*), L (S_*), L (O_*), and L (SEEK_*). They correspond to the C macros defined in F. Not all symbols are available on all systems. Except where noted otherwise, the constants and functions provided by this module will throw a runtime exception if the corresponding C macro is not available. Consult your system documentation to see the full description of each symbol and whether it is available on your platform: L, L, L, L, L, L. (In particular, some of the F_* symbols are highly non-portable because they only exist on a single platform or require system-specific C data structures to be passed as the third argument to C, which can't be portably constructed in pure Perl.) =head1 EXPORTED SYMBOLS =head2 Default exports and export tags The full list of default exports can be found below in L. In addition, the following export tags are available (see L for more information on export tags): =over =item C<:DEFAULT> Equivalent to the list of default export symbols (see L). =item C<:flock> Equivalent to all LOCK_* symbols listed below. =item C<:mode> Equivalent to all S_* symbols listed below. =item C<:seek> Equivalent to all SEEK_* symbols listed below. =item C<:Fcompat> Equivalent to C. These only exist for compatibility with old code (if your platform defines them at all) and should not be used in new code. =back =head2 Symbols for use with C =over =item C File storage manipulation. =item C File storage manipulation. =item C Duplicate a file descriptor to the number specified in the third argument to C (if it refers to an open file, it is automatically closed first). =item C Duplicate a file descriptor to the lowest unused number greater than or equal to the third argument of C. =item C File storage manipulation. =item C File storage manipulation. =item C Synchronize file data to disk. =item C Synchronize file data to disk. =item C Return (as a number) the set of file descriptor flags, in which the following bits may be set: =over =item C During a successful C call, the file descriptor will be closed automatically. =back =item C Return (as a number) the set of file description status flags (O_*) as set by C and C. To determine the file access mode, perform a bitwise AND with L> and see whether the result is equal to C, C, or C. =item C Indicate the type of lease associated with the filehandle (if any) by returning one of the following flags: =over =item C A read lease. =item C A write lease. =item C No lease. =back =item C Test for the existence of record locks on the file. =item C Test for the existence of record locks on the file. =item C Return the ID of the process (as a positive number) or group (as a negative number) that is currently receiving signals for events on the file descriptor. =item C Return the capacity of the pipe associated with the filehandle. =item C Return the number of the signal sent when input or output becomes possible on the filehandle. A return value of C<0> means C. =item C File and directory change notification with signals. =over =item C =item C =item C =item C =item C =item C =item C =back Z<> =item C Set the file descriptor flags. See L> for the list of available flags. =item C Set the file description status flags (O_*). Only some flags can be changed this way. =item C Set a file lease as specified by the third C argument, which must be one of the following: =over =item C Set a read lease. =item C Set a write lease. =item C Remove a lease. =back =item C Acquire a record lock. =item C Acquire a record lock. =item C Acquire a record lock and wait for conflicting locks to be released. =item C Acquire a record lock and wait for conflicting locks to be released. =item C Set the ID of the process (as a positive number) or group (as a negative number) that will receive signals for events on the file descriptor. =item C Set the capacity of the pipe associated with the filehandle. Return the actual capacity reserved for the pipe, which may be higher than requested. =item C Set the number of the signal sent when input or output becomes possible on the filehandle. An argument of C<0> means C. =item C Set share reservation. =item C Remove share reservation. =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =item C =back =head2 Symbols for use with C =over =item C Request an exclusive lock. =item C Request a mandatory lock. =item C Make lock request non-blocking (can be combined with other LOCK_* flags using bitwise OR). =item C With C: Allow concurrent reads. =item C With C: Allow concurrent reads and writes. =item C Request a shared lock. =item C Release a held lock. =item C With C: Allow concurrent writes. =back =head2 Symbols for use with C =over =item C Bit mask for extracting the file access mode (read-only, write-only, or read/write) from the other flags. This is mainly useful in combination with L>. =item C (Mac OS) Open alias file (instead of the file that the alias refers to). =item C (NetBSD) Use alternative I/O semantics. =item C Open the file in append mode. Writes always go to the end of the file. =item C Enable signal-based I/O. When the file becomes readable or writable, a signal is sent. =item C (Windows) Open the file in binary mode. =item C If the file to be opened does not exist yet, create it. =item C (AIX) Changes to the file are kept in memory and not written to disk until the program performs an explicit L<< C<< $fh->sync() >>|IO::Handle/$io->sync >>. =item C Perform direct I/O to/from user-space buffers; avoid caching at the OS level. =item C Fail if the filename to be opened does not refer to a directory. =item C Synchronize file data immediately, like calling L after each write. =item C (Mac OS) Open the file for event notifications, not reading or writing. =item C If the file already exists, fail and set C<$!> to L|Errno> (this only makes sense in combination with C). =item C When the file is opened, atomically obtain an exclusive lock. =item C (Hurd) If the file to be opened is the controlling terminal for this process, don't recognize it as such. Operations on this filehandle won't trigger job control signals. =item C On 32-bit platforms, allow opening files whose size exceeds 2 GiB (2,147,483,647 bytes). =item C Compatibility symbol. Use C instead. =item C Don't update the access time of the file when reading from it. =item C If the process does not have a controlling terminal and the file to be opened is a terminal device, don't make it the controlling terminal of the process. =item C If the final component of the filename is a symbolic link, fail and set C<$!> to L|Errno>. =item C (Windows) Don't let child processes inherit the opened file descriptor. =item C (Hurd) If the file to be opened is a symbolic link, don't follow it; open the link itself. =item C Open the file in non-blocking mode. Neither the open itself nor any read/write operations on the filehandle will block. (This is mainly useful for pipes and sockets. It has no effect on regular files.) =item C If the file to be opened is a pipe, then don't raise C for write operations when the read end of the pipe is closed; make the write fail with C instead. =item C (Hurd) If the file to be opened is specially translated, don't invoke the translator; open the bare file itself. =item C (Windows) Indicate that the program intends to access the file contents randomly (without a predictable pattern). This is an optimization hint for the file cache (but may cause excessive memory use on large files). =item C (Windows) Same as C. =item C Open the file for reading (only). =item C Open the file for reading and writing. =item C (Mac OS) Open the resource fork of the file. =item C Extend the effects of C and C to read operations. In particular, reading from a filehandle opened with C will wait until the access time of the file has been modified on disk. =item C (Windows) Indicate that the program intends to access the file contents sequentially. This is an optimization hint for the file cache. =item C When the file is opened, atomically obtain a shared lock. =item C If the file to be opened is a symbolic link, don't follow it; open the link itself. =item C Synchronize file data and metadata immediately, like calling L after each write. =item C (Windows) Delete the file when its last open file descriptor is closed. =item C (Windows) Open the file in text mode. =item C Create an unnamed temporary file. The filename argument specifies the directory the unnamed file should be placed in. =item C If the file already exists, truncate its contents to length 0. =item C If the file to be opened is a terminal that is not already open in any process, initialize its L> parameters. =item C Open the file for writing (only). =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =item C Compatibility symbol. Use C instead. =back =head2 Symbols for use with C and C =over =item C File offsets are relative to the current position in the file. =item C File offsets are relative to the end of the file (i.e. mostly negative). =item C File offsets are absolute (i.e. relative to the beginning of the file). =back =head2 Symbols for use with C and C =over =item C Enforce mandatory file locks. (This symbol typically shares its value with C.) =item C Compatibility symbol. Use C instead. =item C File type: Block device. =item C File type: Character device. =item C File type: Directory. =item C File type: Fifo/pipe. =item C File type: Symbolic link. =item C Bit mask for extracting the file type bits. This symbol can also be used as a function: C acts like C<$mode & S_IFMT>. The result will be equal to one of the other S_IF* constants. =item C<_S_IFMT> Bit mask for extracting the file type bits. This symbol is an actual constant and cannot be used as a function; otherwise it is identical to C. =item C File type: Regular file. =item C File type: Socket. =item C File type: Whiteout file (used to mark the absence/deletion of a file in overlays). =item C Function for extracting the permission bits from a file mode. =item C Compatibility symbol. Use C instead. =item C Permissions: Readable by group. =item C Permissions: Readable by others. =item C Permissions: Readable by owner. =item C Bit mask for extracting group permissions. =item C Bit mask for extracting other permissions. =item C Bit mask for extracting owner ("user") permissions. =item C Convenience function to check for block devices: C is equivalent to C. =item C Convenience function to check for character devices: C is equivalent to C. =item C Convenience function to check for directories: C is equivalent to C. =item C Convenience function to check for fifos: C is equivalent to C. =item C Permissions: Set effective group ID from file (when running executables); mandatory locking (on non-group-executable files); new files inherit their group from the directory (on directories). =item C Convenience function to check for symbolic links: C is equivalent to C. =item C Convenience function to check for regular files: C is equivalent to C. =item C Convenience function to check for sockets: C is equivalent to C. =item C Compatibility symbol. Use C instead. =item C Permissions: Set effective user ID from file (when running executables). =item C Permissions: Files in this directory can only be deleted/renamed by their owner (or the directory's owner), even if other users have write permissions to the directory ("sticky bit"). =item C Convenience function to check for whiteout files: C is equivalent to C. =item C Permissions: Writable by group. =item C Permissions: Writable by others. =item C Compatibility symbol. Use C instead. =item C Permissions: Writable by owner. =item C Permissions: Executable/searchable by group. =item C Permissions: Executable/searchable by others. =item C Permissions: Executable/searchable by owner. =back =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L =head1 APPENDIX A By default, if you say C, the following symbols are exported: FD_CLOEXEC F_ALLOCSP F_ALLOCSP64 F_COMPAT F_DUP2FD F_DUPFD F_EXLCK F_FREESP F_FREESP64 F_FSYNC F_FSYNC64 F_GETFD F_GETFL F_GETLK F_GETLK64 F_GETOWN F_NODNY F_POSIX F_RDACC F_RDDNY F_RDLCK F_RWACC F_RWDNY F_SETFD F_SETFL F_SETLK F_SETLK64 F_SETLKW F_SETLKW64 F_SETOWN F_SHARE F_SHLCK F_UNLCK F_UNSHARE F_WRACC F_WRDNY F_WRLCK O_ACCMODE O_ALIAS O_APPEND O_ASYNC O_BINARY O_CREAT O_DEFER O_DIRECT O_DIRECTORY O_DSYNC O_EXCL O_EXLOCK O_LARGEFILE O_NDELAY O_NOCTTY O_NOFOLLOW O_NOINHERIT O_NONBLOCK O_RANDOM O_RAW O_RDONLY O_RDWR O_RSRC O_RSYNC O_SEQUENTIAL O_SHLOCK O_SYNC O_TEMPORARY O_TEXT O_TRUNC O_WRONLY =cut FILE52a960aa/File/Glob.pm1cpackage File::Glob; use strict; our($DEFAULT_FLAGS); require XSLoader; # NOTE: The glob() export is only here for compatibility with 5.6.0. # csh_glob() should not be used directly, unless you know what you're doing. our %EXPORT_TAGS = ( 'glob' => [ qw( GLOB_ABEND GLOB_ALPHASORT GLOB_ALTDIRFUNC GLOB_BRACE GLOB_CSH GLOB_ERR GLOB_ERROR GLOB_LIMIT GLOB_MARK GLOB_NOCASE GLOB_NOCHECK GLOB_NOMAGIC GLOB_NOSORT GLOB_NOSPACE GLOB_QUOTE GLOB_TILDE bsd_glob ) ], ); $EXPORT_TAGS{bsd_glob} = [@{$EXPORT_TAGS{glob}}]; our @EXPORT_OK = (@{$EXPORT_TAGS{'glob'}}, 'csh_glob'); our $VERSION = '1.42'; sub import { require Exporter; local $Exporter::ExportLevel = $Exporter::ExportLevel + 1; Exporter::import(grep { my $passthrough; if ($_ eq ':case') { $DEFAULT_FLAGS &= ~GLOB_NOCASE() } elsif ($_ eq ':nocase') { $DEFAULT_FLAGS |= GLOB_NOCASE(); } elsif ($_ eq ':globally') { no warnings 'redefine'; *CORE::GLOBAL::glob = \&File::Glob::csh_glob; } elsif ($_ eq ':bsd_glob') { no strict; *{caller."::glob"} = \&bsd_glob_override; $passthrough = 1; } else { $passthrough = 1; } $passthrough; } @_); } XSLoader::load(); $DEFAULT_FLAGS = GLOB_CSH(); if ($^O =~ /^(?:MSWin32|VMS|os2|riscos)$/) { $DEFAULT_FLAGS |= GLOB_NOCASE(); } 1; __END__ =head1 NAME File::Glob - Perl extension for BSD glob routine =head1 SYNOPSIS use File::Glob ':bsd_glob'; @list = bsd_glob('*.[ch]'); $homedir = bsd_glob('~gnat', GLOB_TILDE | GLOB_ERR); if (GLOB_ERROR) { # an error occurred reading $homedir } ## override the core glob (CORE::glob() does this automatically ## by default anyway, since v5.6.0) use File::Glob ':globally'; my @sources = <*.{c,h,y}>; ## override the core glob, forcing case sensitivity use File::Glob qw(:globally :case); my @sources = <*.{c,h,y}>; ## override the core glob forcing case insensitivity use File::Glob qw(:globally :nocase); my @sources = <*.{c,h,y}>; ## glob on all files in home directory use File::Glob ':globally'; my @sources = <~gnat/*>; =head1 DESCRIPTION The glob angle-bracket operator C<< <> >> is a pathname generator that implements the rules for file name pattern matching used by Unix-like shells such as the Bourne shell or C shell. File::Glob::bsd_glob() implements the FreeBSD glob(3) routine, which is a superset of the POSIX glob() (described in IEEE Std 1003.2 "POSIX.2"). bsd_glob() takes a mandatory C argument, and an optional C argument, and returns a list of filenames matching the pattern, with interpretation of the pattern modified by the C variable. Since v5.6.0, Perl's CORE::glob() is implemented in terms of bsd_glob(). Note that they don't share the same prototype--CORE::glob() only accepts a single argument. Due to historical reasons, CORE::glob() will also split its argument on whitespace, treating it as multiple patterns, whereas bsd_glob() considers them as one pattern. But see C<:bsd_glob> under L, below. =head2 META CHARACTERS \ Quote the next metacharacter [] Character class {} Multiple pattern * Match any string of characters ? Match any single character ~ User name home directory The metanotation C is a shorthand for C. Left to right order is preserved, with results of matches being sorted separately at a low level to preserve this order. As a special case C<{>, C<}>, and C<{}> are passed undisturbed. =head2 EXPORTS See also the L below, which can be exported individually. =head3 C<:bsd_glob> The C<:bsd_glob> export tag exports bsd_glob() and the constants listed below. It also overrides glob() in the calling package with one that behaves like bsd_glob() with regard to spaces (the space is treated as part of a file name), but supports iteration in scalar context; i.e., it preserves the core function's feature of returning the next item each time it is called. =head3 C<:glob> The C<:glob> tag, now discouraged, is the old version of C<:bsd_glob>. It exports the same constants and functions, but its glob() override does not support iteration; it returns the last file name in scalar context. That means this will loop forever: use File::Glob ':glob'; while (my $file = <* copy.txt>) { ... } =head3 C This function, which is included in the two export tags listed above, takes one or two arguments. The first is the glob pattern. The second, if given, is a set of flags ORed together. The available flags and the default set of flags are listed below under L. Remember that to use the named constants for flags you must import them, for example with C<:bsd_glob> described above. If not imported, and C is not in effect, then the constants will be treated as bareword strings, which won't do what you what. =head3 C<:nocase> and C<:case> These two export tags globally modify the default flags that bsd_glob() and, except on VMS, Perl's built-in C operator use. C is turned on or off, respectively. =head3 C The csh_glob() function can also be exported, but you should not use it directly unless you really know what you are doing. It splits the pattern into words and feeds each one to bsd_glob(). Perl's own glob() function uses this internally. =head2 POSIX FLAGS If no flags argument is given then C is set, and on VMS and Windows systems, C too. Otherwise the flags to use are determined solely by the flags argument. The POSIX defined flags are: =over 4 =item C Force bsd_glob() to return an error when it encounters a directory it cannot open or read. Ordinarily bsd_glob() continues to find matches. =item C Make bsd_glob() return an error (GLOB_NOSPACE) when the pattern expands to a size bigger than the system constant C (usually found in limits.h). If your system does not define this constant, bsd_glob() uses C or C<_POSIX_ARG_MAX> where available (in that order). You can inspect these values using the standard C extension. =item C Each pathname that is a directory that matches the pattern has a slash appended. =item C By default, file names are assumed to be case sensitive; this flag makes bsd_glob() treat case differences as not significant. =item C If the pattern does not match any pathname, then bsd_glob() returns a list consisting of only the pattern. If C is set, its effect is present in the pattern returned. =item C By default, the pathnames are sorted in ascending ASCII order; this flag prevents that sorting (speeding up bsd_glob()). =back The FreeBSD extensions to the POSIX standard are the following flags: =over 4 =item C Pre-process the string to expand C<{pat,pat,...}> strings like csh(1). The pattern '{}' is left unexpanded for historical reasons (and csh(1) does the same thing to ease typing of find(1) patterns). =item C Same as C but it only returns the pattern if it does not contain any of the special characters "*", "?" or "[". C is provided to simplify implementing the historic csh(1) globbing behaviour and should probably not be used anywhere else. =item C Use the backslash ('\') character for quoting: every occurrence of a backslash followed by a character in the pattern is replaced by that character, avoiding any special interpretation of the character. (But see below for exceptions on DOSISH systems). =item C Expand patterns that start with '~' to user name home directories. =item C For convenience, C is a synonym for C. =back The POSIX provided C, C, and the FreeBSD extensions C, and C flags have not been implemented in the Perl version because they involve more complex interaction with the underlying C structures. The following flag has been added in the Perl implementation for csh compatibility: =over 4 =item C If C is not in effect, sort filenames is alphabetical order (case does not matter) rather than in ASCII order. =back =head1 DIAGNOSTICS bsd_glob() returns a list of matching paths, possibly zero length. If an error occurred, &File::Glob::GLOB_ERROR will be non-zero and C<$!> will be set. &File::Glob::GLOB_ERROR is guaranteed to be zero if no error occurred, or one of the following values otherwise: =over 4 =item C An attempt to allocate memory failed. =item C The glob was stopped because an error was encountered. =back In the case where bsd_glob() has found some matching paths, but is interrupted by an error, it will return a list of filenames B set &File::Glob::ERROR. Note that bsd_glob() deviates from POSIX and FreeBSD glob(3) behaviour by not considering C and C as errors - bsd_glob() will continue processing despite those errors, unless the C flag is set. Be aware that all filenames returned from File::Glob are tainted. =head1 NOTES =over 4 =item * If you want to use multiple patterns, e.g. C, you should probably throw them in a set as in C. This is because the argument to bsd_glob() isn't subjected to parsing by the C shell. Remember that you can use a backslash to escape things. =item * On DOSISH systems, backslash is a valid directory separator character. In this case, use of backslash as a quoting character (via GLOB_QUOTE) interferes with the use of backslash as a directory separator. The best (simplest, most portable) solution is to use forward slashes for directory separators, and backslashes for quoting. However, this does not match "normal practice" on these systems. As a concession to user expectation, therefore, backslashes (under GLOB_QUOTE) only quote the glob metacharacters '[', ']', '{', '}', '-', '~', and backslash itself. All other backslashes are passed through unchanged. =item * Win32 users should use the real slash. If you really want to use backslashes, consider using Sarathy's File::DosGlob, which comes with the standard Perl distribution. =back =head1 SEE ALSO L, glob(3) =head1 AUTHOR The Perl interface was written by Nathan Torkington Egnat@frii.comE, and is released under the artistic license. Further modifications were made by Greg Bacon Egbacon@cs.uah.eduE, Gurusamy Sarathy Egsar@activestate.comE, and Thomas Wegner Ewegner_thomas@yahoo.comE. The C glob code has the following copyright: Copyright (c) 1989, 1993 The Regents of the University of California. All rights reserved. This code is derived from software contributed to Berkeley by Guido van Rossum. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: =over 4 =item 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. =item 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. =item 3. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. =back THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. =cut FILEd4f5eb3d/File/Spec.pm)package File::Spec; use strict; # Keep $VERSION consistent in all *.pm files in this distribution, including # Cwd.pm. our $VERSION = '3.94'; $VERSION =~ tr/_//d; my %module = ( MSWin32 => 'Win32', os2 => 'OS2', VMS => 'VMS', NetWare => 'Win32', # Yes, File::Spec::Win32 works on NetWare. symbian => 'Win32', # Yes, File::Spec::Win32 works on symbian. dos => 'OS2', # Yes, File::Spec::OS2 works on DJGPP. cygwin => 'Cygwin', amigaos => 'AmigaOS'); my $module = $module{$^O} || 'Unix'; require "File/Spec/$module.pm"; our @ISA = ("File::Spec::$module"); 1; __END__ =head1 NAME File::Spec - portably perform operations on file names =head1 SYNOPSIS use File::Spec; my $x = File::Spec->catfile('a', 'b', 'c'); which returns 'a/b/c' under Unix. Or: use File::Spec::Functions; my $x = catfile('a', 'b', 'c'); =head1 DESCRIPTION This module is designed to support operations commonly performed on file specifications (usually called "file names", but not to be confused with the contents of a file, or Perl's file handles), such as concatenating several directory and file names into a single path, or determining whether a path is rooted. It is based on code directly taken from MakeMaker 5.17, code written by Andreas KEnig, Andy Dougherty, Charles Bailey, Ilya Zakharevich, Paul Schinder, and others. Since these functions are different for most operating systems, each set of OS specific routines is available in a separate module, including: File::Spec::Unix File::Spec::Mac File::Spec::OS2 File::Spec::Win32 File::Spec::VMS The module appropriate for the current OS is automatically loaded by File::Spec. Since some modules (like VMS) make use of facilities available only under that OS, it may not be possible to load all modules under all operating systems. Since File::Spec is object oriented, subroutines should not be called directly, as in: File::Spec::catfile('a','b'); but rather as class methods: File::Spec->catfile('a','b'); For simple uses, L provides convenient functional forms of these methods. =head1 METHODS =over 2 =item canonpath X No physical check on the filesystem, but a logical cleanup of a path. $cpath = File::Spec->canonpath( $path ) ; Note that this does *not* collapse F sections into F. This is by design. If F on your system is a symlink to F, then F is actually F, not F as a naive F<../>-removal would give you. If you want to do this kind of processing, you probably want C's C function to actually traverse the filesystem cleaning up paths like this. =item catdir X Concatenate two or more directory names to form a complete path ending with a directory. But remove the trailing slash from the resulting string, because it doesn't look good, isn't necessary and confuses OS/2. Of course, if this is the root directory, don't cut off the trailing slash :-) $path = File::Spec->catdir( @directories ); =item catfile X Concatenate one or more directory names and a filename to form a complete path ending with a filename $path = File::Spec->catfile( @directories, $filename ); =item curdir X Returns a string representation of the current directory. $curdir = File::Spec->curdir(); =item devnull X Returns a string representation of the null device. $devnull = File::Spec->devnull(); =item rootdir X Returns a string representation of the root directory. $rootdir = File::Spec->rootdir(); =item tmpdir X Returns a string representation of the first writable directory from a list of possible temporary directories. Returns the current directory if no writable temporary directories are found. The list of directories checked depends on the platform; e.g. File::Spec::Unix checks C<$ENV{TMPDIR}> (unless taint is on) and F. $tmpdir = File::Spec->tmpdir(); =item updir X Returns a string representation of the parent directory. $updir = File::Spec->updir(); =item no_upwards Given a list of files in a directory (such as from C), strip out C<'.'> and C<'..'>. B This does NOT filter paths containing C<'..'>, like C<'../../../../etc/passwd'>, only literal matches to C<'.'> and C<'..'>. @paths = File::Spec->no_upwards( readdir $dirhandle ); =item case_tolerant Returns a true or false value indicating, respectively, that alphabetic case is not or is significant when comparing file specifications. Cygwin and Win32 accept an optional drive argument. $is_case_tolerant = File::Spec->case_tolerant(); =item file_name_is_absolute Takes as its argument a path, and returns true if it is an absolute path. $is_absolute = File::Spec->file_name_is_absolute( $path ); This does not consult the local filesystem on Unix, Win32, OS/2, or Mac OS (Classic). It does consult the working environment for VMS (see L). =item path X Takes no argument. Returns the environment variable C (or the local platform's equivalent) as a list. @PATH = File::Spec->path(); =item join X join is the same as catfile. =item splitpath X X Splits a path in to volume, directory, and filename portions. On systems with no concept of volume, returns '' for volume. ($volume,$directories,$file) = File::Spec->splitpath( $path ); ($volume,$directories,$file) = File::Spec->splitpath( $path, $no_file ); For systems with no syntax differentiating filenames from directories, assumes that the last file is a path unless C<$no_file> is true or a trailing separator or F or F is present. On Unix, this means that C<$no_file> true makes this return ( '', $path, '' ). The directory portion may or may not be returned with a trailing '/'. The results can be passed to L to get back a path equivalent to (usually identical to) the original path. =item splitdir X X The opposite of L. @dirs = File::Spec->splitdir( $directories ); C<$directories> must be only the directory portion of the path on systems that have the concept of a volume or that have path syntax that differentiates files from directories. Unlike just splitting the directories on the separator, empty directory names (C<''>) can be returned, because these are significant on some OSes. =item catpath() Takes volume, directory and file portions and returns an entire path. Under Unix, C<$volume> is ignored, and directory and file are concatenated. A '/' is inserted if need be. On other OSes, C<$volume> is significant. $full_path = File::Spec->catpath( $volume, $directory, $file ); =item abs2rel X X X Takes a destination path and an optional base path returns a relative path from the base path to the destination path: $rel_path = File::Spec->abs2rel( $path ) ; $rel_path = File::Spec->abs2rel( $path, $base ) ; If C<$base> is not present or '', then L is used. If C<$base> is relative, then it is converted to absolute form using L. This means that it is taken to be relative to L. On systems with the concept of volume, if C<$path> and C<$base> appear to be on two different volumes, we will not attempt to resolve the two paths, and we will instead simply return C<$path>. Note that previous versions of this module ignored the volume of C<$base>, which resulted in garbage results part of the time. On systems that have a grammar that indicates filenames, this ignores the C<$base> filename as well. Otherwise all path components are assumed to be directories. If C<$path> is relative, it is converted to absolute form using L. This means that it is taken to be relative to L. No checks against the filesystem are made. On VMS, there is interaction with the working environment, as logicals and macros are expanded. Based on code written by Shigio Yamaguchi. =item rel2abs() X X X Converts a relative path to an absolute path. $abs_path = File::Spec->rel2abs( $path ) ; $abs_path = File::Spec->rel2abs( $path, $base ) ; If C<$base> is not present or '', then L is used. If C<$base> is relative, then it is converted to absolute form using L. This means that it is taken to be relative to L. On systems with the concept of volume, if C<$path> and C<$base> appear to be on two different volumes, we will not attempt to resolve the two paths, and we will instead simply return C<$path>. Note that previous versions of this module ignored the volume of C<$base>, which resulted in garbage results part of the time. On systems that have a grammar that indicates filenames, this ignores the C<$base> filename as well. Otherwise all path components are assumed to be directories. If C<$path> is absolute, it is cleaned up and returned using L. No checks against the filesystem are made. On VMS, there is interaction with the working environment, as logicals and macros are expanded. Based on code written by Shigio Yamaguchi. =back For further information, please see L, L, L, L, or L. =head1 SEE ALSO L, L, L, L, L, L, L =head1 AUTHOR Maintained by perl5-porters >. The vast majority of the code was written by Kenneth Albanowski C<< >>, Andy Dougherty C<< >>, Andreas KEnig C<< >>, Tim Bunce C<< >>. VMS support by Charles Bailey C<< >>. OS/2 support by Ilya Zakharevich C<< >>. Mac support by Paul Schinder C<< >>, and Thomas Wegner C<< >>. abs2rel() and rel2abs() written by Shigio Yamaguchi C<< >>, modified by Barrie Slaymaker C<< >>. splitpath(), splitdir(), catpath() and catdir() by Barrie Slaymaker. =head1 COPYRIGHT Copyright (c) 2004-2013 by the Perl 5 Porters. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut FILEc3337512/File/Spec/Unix.pm> package File::Spec::Unix; use strict; use Cwd (); our $VERSION = '3.94'; $VERSION =~ tr/_//d; =head1 NAME File::Spec::Unix - File::Spec for Unix, base for other File::Spec modules =head1 SYNOPSIS require File::Spec::Unix; # Done automatically by File::Spec =head1 DESCRIPTION Methods for manipulating file specifications. Other File::Spec modules, such as File::Spec::Mac, inherit from File::Spec::Unix and override specific methods. =head1 METHODS =over 2 =item canonpath() No physical check on the filesystem, but a logical cleanup of a path. On UNIX eliminates successive slashes and successive "/.". $cpath = File::Spec->canonpath( $path ) ; Note that this does *not* collapse F sections into F. This is by design. If F on your system is a symlink to F, then F is actually F, not F as a naive F<../>-removal would give you. If you want to do this kind of processing, you probably want C's C function to actually traverse the filesystem cleaning up paths like this. =cut sub _pp_canonpath { my ($self,$path) = @_; return unless defined $path; # Handle POSIX-style node names beginning with double slash (qnx, nto) # (POSIX says: "a pathname that begins with two successive slashes # may be interpreted in an implementation-defined manner, although # more than two leading slashes shall be treated as a single slash.") my $node = ''; my $double_slashes_special = $^O eq 'qnx' || $^O eq 'nto'; if ( $double_slashes_special && ( $path =~ s{^(//[^/]+)/?\z}{}s || $path =~ s{^(//[^/]+)/}{/}s ) ) { $node = $1; } # This used to be # $path =~ s|/+|/|g unless ($^O eq 'cygwin'); # but that made tests 29, 30, 35, 46, and 213 (as of #13272) to fail # (Mainly because trailing "" directories didn't get stripped). # Why would cygwin avoid collapsing multiple slashes into one? --jhi $path =~ s|/{2,}|/|g; # xx////xx -> xx/xx $path =~ s{(?:/\.)+(?:/|\z)}{/}g; # xx/././xx -> xx/xx $path =~ s|^(?:\./)+||s unless $path eq "./"; # ./xx -> xx $path =~ s|^/(?:\.\./)+|/|; # /../../xx -> xx $path =~ s|^/\.\.$|/|; # /.. -> / $path =~ s|/\z|| unless $path eq "/"; # xx/ -> xx return "$node$path"; } *canonpath = \&_pp_canonpath unless defined &canonpath; =item catdir() Concatenate two or more directory names to form a complete path ending with a directory. But remove the trailing slash from the resulting string, because it doesn't look good, isn't necessary and confuses OS2. Of course, if this is the root directory, don't cut off the trailing slash :-) =cut sub _pp_catdir { my $self = shift; $self->canonpath(join('/', @_, '')); # '' because need a trailing '/' } *catdir = \&_pp_catdir unless defined &catdir; =item catfile Concatenate one or more directory names and a filename to form a complete path ending with a filename =cut sub _pp_catfile { my $self = shift; my $file = $self->canonpath(pop @_); return $file unless @_; my $dir = $self->catdir(@_); $dir .= "/" unless substr($dir,-1) eq "/"; return $dir.$file; } *catfile = \&_pp_catfile unless defined &catfile; =item curdir Returns a string representation of the current directory. "." on UNIX. =cut sub curdir { '.' } use constant _fn_curdir => "."; =item devnull Returns a string representation of the null device. "/dev/null" on UNIX. =cut sub devnull { '/dev/null' } use constant _fn_devnull => "/dev/null"; =item rootdir Returns a string representation of the root directory. "/" on UNIX. =cut sub rootdir { '/' } use constant _fn_rootdir => "/"; =item tmpdir Returns a string representation of the first writable directory from the following list or the current directory if none from the list are writable: $ENV{TMPDIR} /tmp If running under taint mode, and if $ENV{TMPDIR} is tainted, it is not used. =cut my ($tmpdir, %tmpenv); # Cache and return the calculated tmpdir, recording which env vars # determined it. sub _cache_tmpdir { @tmpenv{@_[2..$#_]} = @ENV{@_[2..$#_]}; return $tmpdir = $_[1]; } # Retrieve the cached tmpdir, checking first whether relevant env vars have # changed and invalidated the cache. sub _cached_tmpdir { shift; local $^W; return if grep $ENV{$_} ne $tmpenv{$_}, @_; return $tmpdir; } sub _tmpdir { my $self = shift; my @dirlist = @_; my $taint = do { no strict 'refs'; ${"\cTAINT"} }; if ($taint) { # Check for taint mode on perl >= 5.8.0 require Scalar::Util; @dirlist = grep { ! Scalar::Util::tainted($_) } @dirlist; } elsif ($] < 5.007) { # No ${^TAINT} before 5.8 @dirlist = grep { !defined($_) || eval { eval('1'.substr $_,0,0) } } @dirlist; } foreach (@dirlist) { next unless defined && -d && -w _; $tmpdir = $_; last; } $tmpdir = $self->curdir unless defined $tmpdir; $tmpdir = defined $tmpdir && $self->canonpath($tmpdir); if ( !$self->file_name_is_absolute($tmpdir) ) { # See [perl #120593] for the full details # If possible, return a full path, rather than '.' or 'lib', but # jump through some hoops to avoid returning a tainted value. ($tmpdir) = grep { $taint ? ! Scalar::Util::tainted($_) : $] < 5.007 ? eval { eval('1'.substr $_,0,0) } : 1 } $self->rel2abs($tmpdir), $tmpdir; } return $tmpdir; } sub tmpdir { my $cached = $_[0]->_cached_tmpdir('TMPDIR'); return $cached if defined $cached; $_[0]->_cache_tmpdir($_[0]->_tmpdir( $ENV{TMPDIR}, "/tmp" ), 'TMPDIR'); } =item updir Returns a string representation of the parent directory. ".." on UNIX. =cut sub updir { '..' } use constant _fn_updir => ".."; =item no_upwards Given a list of file names, strip out those that refer to a parent directory. (Does not strip symlinks, only '.', '..', and equivalents.) =cut sub no_upwards { my $self = shift; return grep(!/^\.{1,2}\z/s, @_); } =item case_tolerant Returns a true or false value indicating, respectively, that alphabetic is not or is significant when comparing file specifications. =cut sub case_tolerant { 0 } use constant _fn_case_tolerant => 0; =item file_name_is_absolute Takes as argument a path and returns true if it is an absolute path. This does not consult the local filesystem on Unix, Win32, OS/2 or Mac OS (Classic). It does consult the working environment for VMS (see L). =cut sub file_name_is_absolute { my ($self,$file) = @_; return scalar($file =~ m:^/:s); } =item path Takes no argument, returns the environment variable PATH as an array. =cut sub path { return () unless exists $ENV{PATH}; my @path = split(':', $ENV{PATH}, -1); foreach (@path) { $_ = '.' if $_ eq '' } return @path; } =item join join is the same as catfile. =cut sub join { my $self = shift; return $self->catfile(@_); } =item splitpath ($volume,$directories,$file) = File::Spec->splitpath( $path ); ($volume,$directories,$file) = File::Spec->splitpath( $path, $no_file ); Splits a path into volume, directory, and filename portions. On systems with no concept of volume, returns '' for volume. For systems with no syntax differentiating filenames from directories, assumes that the last file is a path unless $no_file is true or a trailing separator or /. or /.. is present. On Unix this means that $no_file true makes this return ( '', $path, '' ). The directory portion may or may not be returned with a trailing '/'. The results can be passed to L to get back a path equivalent to (usually identical to) the original path. =cut sub splitpath { my ($self,$path, $nofile) = @_; my ($volume,$directory,$file) = ('','',''); if ( $nofile ) { $directory = $path; } else { $path =~ m|^ ( (?: .* / (?: \.\.?\z )? )? ) ([^/]*) |xs; $directory = $1; $file = $2; } return ($volume,$directory,$file); } =item splitdir The opposite of L. @dirs = File::Spec->splitdir( $directories ); $directories must be only the directory portion of the path on systems that have the concept of a volume or that have path syntax that differentiates files from directories. Unlike just splitting the directories on the separator, empty directory names (C<''>) can be returned, because these are significant on some OSs. On Unix, File::Spec->splitdir( "/a/b//c/" ); Yields: ( '', 'a', 'b', '', 'c', '' ) =cut sub splitdir { return split m|/|, $_[1], -1; # Preserve trailing fields } =item catpath() Takes volume, directory and file portions and returns an entire path. Under Unix, $volume is ignored, and directory and file are concatenated. A '/' is inserted if needed (though if the directory portion doesn't start with '/' it is not added). On other OSs, $volume is significant. =cut sub catpath { my ($self,$volume,$directory,$file) = @_; if ( $directory ne '' && $file ne '' && substr( $directory, -1 ) ne '/' && substr( $file, 0, 1 ) ne '/' ) { $directory .= "/$file" ; } else { $directory .= $file ; } return $directory ; } =item abs2rel Takes a destination path and an optional base path returns a relative path from the base path to the destination path: $rel_path = File::Spec->abs2rel( $path ) ; $rel_path = File::Spec->abs2rel( $path, $base ) ; If $base is not present or '', then L is used. If $base is relative, then it is converted to absolute form using L. This means that it is taken to be relative to L. On systems that have a grammar that indicates filenames, this ignores the $base filename. Otherwise all path components are assumed to be directories. If $path is relative, it is converted to absolute form using L. This means that it is taken to be relative to L. No checks against the filesystem are made, so the result may not be correct if C<$base> contains symbolic links. (Apply L beforehand if that is a concern.) On VMS, there is interaction with the working environment, as logicals and macros are expanded. Based on code written by Shigio Yamaguchi. =cut sub abs2rel { my($self,$path,$base) = @_; $base = Cwd::getcwd() unless defined $base and length $base; ($path, $base) = map $self->canonpath($_), $path, $base; my $path_directories; my $base_directories; if (grep $self->file_name_is_absolute($_), $path, $base) { ($path, $base) = map $self->rel2abs($_), $path, $base; my ($path_volume) = $self->splitpath($path, 1); my ($base_volume) = $self->splitpath($base, 1); # Can't relativize across volumes return $path unless $path_volume eq $base_volume; $path_directories = ($self->splitpath($path, 1))[1]; $base_directories = ($self->splitpath($base, 1))[1]; # For UNC paths, the user might give a volume like //foo/bar that # strictly speaking has no directory portion. Treat it as if it # had the root directory for that volume. if (!length($base_directories) and $self->file_name_is_absolute($base)) { $base_directories = $self->rootdir; } } else { my $wd= ($self->splitpath(Cwd::getcwd(), 1))[1]; $path_directories = $self->catdir($wd, $path); $base_directories = $self->catdir($wd, $base); } # Now, remove all leading components that are the same my @pathchunks = $self->splitdir( $path_directories ); my @basechunks = $self->splitdir( $base_directories ); if ($base_directories eq $self->rootdir) { return $self->curdir if $path_directories eq $self->rootdir; shift @pathchunks; return $self->canonpath( $self->catpath('', $self->catdir( @pathchunks ), '') ); } my @common; while (@pathchunks && @basechunks && $self->_same($pathchunks[0], $basechunks[0])) { push @common, shift @pathchunks ; shift @basechunks ; } return $self->curdir unless @pathchunks || @basechunks; # @basechunks now contains the directories the resulting relative path # must ascend out of before it can descend to $path_directory. If there # are updir components, we must descend into the corresponding directories # (this only works if they are no symlinks). my @reverse_base; while( defined(my $dir= shift @basechunks) ) { if( $dir ne $self->updir ) { unshift @reverse_base, $self->updir; push @common, $dir; } elsif( @common ) { if( @reverse_base && $reverse_base[0] eq $self->updir ) { shift @reverse_base; pop @common; } else { unshift @reverse_base, pop @common; } } } my $result_dirs = $self->catdir( @reverse_base, @pathchunks ); return $self->canonpath( $self->catpath('', $result_dirs, '') ); } sub _same { $_[1] eq $_[2]; } =item rel2abs() Converts a relative path to an absolute path. $abs_path = File::Spec->rel2abs( $path ) ; $abs_path = File::Spec->rel2abs( $path, $base ) ; If $base is not present or '', then L is used. If $base is relative, then it is converted to absolute form using L. This means that it is taken to be relative to L. On systems that have a grammar that indicates filenames, this ignores the $base filename. Otherwise all path components are assumed to be directories. If $path is absolute, it is cleaned up and returned using L. No checks against the filesystem are made. On VMS, there is interaction with the working environment, as logicals and macros are expanded. Based on code written by Shigio Yamaguchi. =cut sub rel2abs { my ($self,$path,$base ) = @_; # Clean up $path if ( ! $self->file_name_is_absolute( $path ) ) { # Figure out the effective $base and clean it up. if ( !defined( $base ) || $base eq '' ) { $base = Cwd::getcwd(); } elsif ( ! $self->file_name_is_absolute( $base ) ) { $base = $self->rel2abs( $base ) ; } else { $base = $self->canonpath( $base ) ; } # Glom them together $path = $self->catdir( $base, $path ) ; } return $self->canonpath( $path ) ; } =back =head1 COPYRIGHT Copyright (c) 2004 by the Perl 5 Porters. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Please submit bug reports at L. =head1 SEE ALSO L =cut # Internal method to reduce xx\..\yy -> yy sub _collapse { my($fs, $path) = @_; my $updir = $fs->updir; my $curdir = $fs->curdir; my($vol, $dirs, $file) = $fs->splitpath($path); my @dirs = $fs->splitdir($dirs); pop @dirs if @dirs && $dirs[-1] eq ''; my @collapsed; foreach my $dir (@dirs) { if( $dir eq $updir and # if we have an updir @collapsed and # and something to collapse length $collapsed[-1] and # and its not the rootdir $collapsed[-1] ne $updir and # nor another updir $collapsed[-1] ne $curdir # nor the curdir ) { # then pop @collapsed; # collapse } else { # else push @collapsed, $dir; # just hang onto it } } return $fs->catpath($vol, $fs->catdir(@collapsed), $file ); } 1; FILE30c8f929/IO.pm# package IO; use XSLoader (); use Carp; use strict; use warnings; our $VERSION = "1.55"; XSLoader::load 'IO', $VERSION; sub import { shift; warnings::warnif('deprecated', qq{Parameterless "use IO" deprecated}) if @_ == 0 ; my @l = @_ ? @_ : qw(Handle Seekable File Pipe Socket Dir); local @INC = @INC; pop @INC if $INC[-1] eq '.'; eval join("", map { "require IO::" . (/(\w+)/)[0] . ";\n" } @l) or croak $@; } 1; __END__ =head1 NAME IO - load various IO modules =head1 SYNOPSIS use IO qw(Handle File); # loads IO modules, here IO::Handle, IO::File use IO; # DEPRECATED =head1 DESCRIPTION C provides a simple mechanism to load several of the IO modules in one go. The IO modules belonging to the core are: IO::Handle IO::Seekable IO::File IO::Pipe IO::Socket IO::Dir IO::Select IO::Poll Some other IO modules don't belong to the perl core but can be loaded as well if they have been installed from CPAN. You can discover which ones exist with this query: L. For more information on any of these modules, please see its respective documentation. =head1 DEPRECATED use IO; # loads all the modules listed below The loaded modules are IO::Handle, IO::Seekable, IO::File, IO::Pipe, IO::Socket, IO::Dir. You should instead explicitly import the IO modules you want. =cut FILEc009e5ec/IO/File.pm:# package IO::File; =head1 NAME IO::File - supply object methods for filehandles =head1 SYNOPSIS use IO::File; my $fh = IO::File->new(); if ($fh->open("< file")) { print <$fh>; $fh->close; } my $fh = IO::File->new("> file"); if (defined $fh) { print $fh "bar\n"; $fh->close; } my $fh = IO::File->new("file", "r"); if (defined $fh) { print <$fh>; undef $fh; # automatically closes the file } my $fh = IO::File->new("file", O_WRONLY|O_APPEND); if (defined $fh) { print $fh "corge\n"; my $pos = $fh->getpos; $fh->setpos($pos); undef $fh; # automatically closes the file } autoflush STDOUT 1; =head1 DESCRIPTION C inherits from C and C. It extends these classes with methods that are specific to file handles. =head1 CONSTRUCTOR =over 4 =item new ( FILENAME [,MODE [,PERMS]] ) Creates an C. If it receives any parameters, they are passed to the method C; if the open fails, the object is destroyed. Otherwise, it is returned to the caller. =item new_tmpfile Creates an C opened for read/write on a newly created temporary file. On systems where this is possible, the temporary file is anonymous (i.e. it is unlinked after creation, but held open). If the temporary file cannot be created or opened, the C object is destroyed. Otherwise, it is returned to the caller. =back =head1 METHODS =over 4 =item open( FILENAME [,MODE [,PERMS]] ) =item open( FILENAME, IOLAYERS ) C accepts one, two or three parameters. With one parameter, it is just a front end for the built-in C function. With two or three parameters, the first parameter is a filename that may include whitespace or other special characters, and the second parameter is the open mode, optionally followed by a file permission value. If C receives a Perl mode string ("E", "+E", etc.) or an ANSI C fopen() mode string ("w", "r+", etc.), it uses the basic Perl C operator (but protects any special characters). If C is given a numeric mode, it passes that mode and the optional permissions value to the Perl C operator. The permissions default to 0666. If C is given a mode that includes the C<:> character, it passes all the three arguments to the three-argument C operator. For convenience, C exports the O_XXX constants from the Fcntl module, if this module is available. =back =head1 NOTE Some operating systems may perform C or C on a directory without errors. This behavior is not portable and not suggested for use. Using C and C or C are suggested instead. =head1 SEE ALSO L, L, L, L, L =head1 HISTORY Derived from FileHandle.pm by Graham Barr EFE. =cut use 5.008_001; use strict; use Carp; use Symbol; use SelectSaver; use IO::Seekable; require Exporter; our @ISA = qw(IO::Handle IO::Seekable Exporter); our $VERSION = "1.55"; our @EXPORT = @IO::Seekable::EXPORT; eval { # Make all Fcntl O_XXX constants available for importing require Fcntl; my @O = grep /^O_/, @Fcntl::EXPORT; Fcntl->import(@O); # first we import what we want to export push(@EXPORT, @O); }; ################################################ ## Constructor ## sub new { my $type = shift; my $class = ref($type) || $type || "IO::File"; @_ >= 0 && @_ <= 3 or croak "usage: $class->new([FILENAME [,MODE [,PERMS]]])"; my $fh = $class->SUPER::new(); if (@_) { $fh->open(@_) or return undef; } $fh; } ################################################ ## Open ## sub open { @_ >= 2 && @_ <= 4 or croak 'usage: $fh->open(FILENAME [,MODE [,PERMS]])'; my ($fh, $file) = @_; if (@_ > 2) { my ($mode, $perms) = @_[2, 3]; if ($mode =~ /^\d+$/) { defined $perms or $perms = 0666; return sysopen($fh, $file, $mode, $perms); } elsif ($mode =~ /:/) { return open($fh, $mode, $file) if @_ == 3; croak 'usage: $fh->open(FILENAME, IOLAYERS)'; } else { return open($fh, IO::Handle::_open_mode_string($mode), $file); } } open($fh, $file); } 1; FILE4f66e782/IO/Handle.pmBpackage IO::Handle; =head1 NAME IO::Handle - supply object methods for I/O handles =head1 SYNOPSIS use IO::Handle; my $io = IO::Handle->new(); if ($io->fdopen(fileno(STDIN),"r")) { print $io->getline; $io->close; } my $io = IO::Handle->new(); if ($io->fdopen(fileno(STDOUT),"w")) { $io->print("Some text\n"); } # setvbuf is not available by default on Perls 5.8.0 and later. use IO::Handle '_IOLBF'; $io->setvbuf(my $buffer_var, _IOLBF, 1024); undef $io; # automatically closes the file if it's open autoflush STDOUT 1; =head1 DESCRIPTION C is the base class for all other IO handle classes. It is not intended that objects of C would be created directly, but instead C is inherited from by several other classes in the IO hierarchy. If you are reading this documentation, looking for a replacement for the C package, then I suggest you read the documentation for C too. =head1 CONSTRUCTOR =over 4 =item new () Creates a new C object. =item new_from_fd ( FD, MODE ) Creates an C like C does. It requires two parameters, which are passed to the method C; if the fdopen fails, the object is destroyed. Otherwise, it is returned to the caller. =back =head1 METHODS See L for complete descriptions of each of the following supported C methods, which are just front ends for the corresponding built-in functions: $io->close $io->eof $io->fcntl( FUNCTION, SCALAR ) $io->fileno $io->format_write( [FORMAT_NAME] ) $io->getc $io->ioctl( FUNCTION, SCALAR ) $io->read ( BUF, LEN, [OFFSET] ) $io->print ( ARGS ) $io->printf ( FMT, [ARGS] ) $io->say ( ARGS ) $io->stat $io->sysread ( BUF, LEN, [OFFSET] ) $io->syswrite ( BUF, [LEN, [OFFSET]] ) $io->truncate ( LEN ) See L for complete descriptions of each of the following supported C methods. All of them return the previous value of the attribute and takes an optional single argument that when given will set the value. If no argument is given the previous value is unchanged (except for $io->autoflush will actually turn ON autoflush by default). $io->autoflush ( [BOOL] ) $| $io->format_page_number( [NUM] ) $% $io->format_lines_per_page( [NUM] ) $= $io->format_lines_left( [NUM] ) $- $io->format_name( [STR] ) $~ $io->format_top_name( [STR] ) $^ $io->input_line_number( [NUM]) $. The following methods are not supported on a per-filehandle basis. IO::Handle->format_line_break_characters( [STR] ) $: IO::Handle->format_formfeed( [STR]) $^L IO::Handle->output_field_separator( [STR] ) $, IO::Handle->output_record_separator( [STR] ) $\ IO::Handle->input_record_separator( [STR] ) $/ Furthermore, for doing normal I/O you might need these: =over 4 =item $io->fdopen ( FD, MODE ) C is like an ordinary C except that its first parameter is not a filename but rather a file handle name, an IO::Handle object, or a file descriptor number. (For the documentation of the C method, see L.) =item $io->opened Returns true if the object is currently a valid file descriptor, false otherwise. =item $io->getline This works like <$io> described in L except that it's more readable and can be safely called in a list context but still returns just one line. If used as the conditional within a C or C-style C loop, however, you will need to emulate the functionality of <$io> with C<< defined($_ = $io->getline) >>. =item $io->getlines This works like <$io> when called in a list context to read all the remaining lines in a file, except that it's more readable. It will also croak() if accidentally called in a scalar context. =item $io->ungetc ( ORD ) Pushes a character with the given ordinal value back onto the given handle's input stream. Only one character of pushback per handle is guaranteed. =item $io->write ( BUF, LEN [, OFFSET ] ) This C is somewhat like C found in C, in that it is the opposite of read. The wrapper for the perl C function is called C. However, whilst the C C function returns the number of bytes written, this C function simply returns true if successful (like C). A more C-like C is C (see above). =item $io->error Returns a true value if the given handle has experienced any errors since it was opened or since the last call to C, or if the handle is invalid. It only returns false for a valid handle with no outstanding errors. =item $io->clearerr Clear the given handle's error indicator. Returns -1 if the handle is invalid, 0 otherwise. =item $io->sync C synchronizes a file's in-memory state with that on the physical medium. C does not operate at the perlio api level, but operates on the file descriptor (similar to sysread, sysseek and systell). This means that any data held at the perlio api level will not be synchronized. To synchronize data that is buffered at the perlio api level you must use the flush method. C is not implemented on all platforms. Returns "0 but true" on success, C on error, C for an invalid handle. See L. =item $io->flush C causes perl to flush any buffered data at the perlio api level. Any unread data in the buffer will be discarded, and any unwritten data will be written to the underlying file descriptor. Returns "0 but true" on success, C on error. =item $io->printflush ( ARGS ) Turns on autoflush, print ARGS and then restores the autoflush status of the C object. Returns the return value from print. =item $io->blocking ( [ BOOL ] ) If called with an argument C will turn on non-blocking IO if C is false, and turn it off if C is true. C will return the value of the previous setting, or the current setting if C is not given. If an error occurs C will return undef and C<$!> will be set. =item binmode( [LAYER] ) C sets C on the underlying C object, as documented in C. C accepts one optional parameter, which is the layer to be passed on to the C call. =back If the C functions setbuf() and/or setvbuf() are available, then C and C set the buffering policy for an IO::Handle. The calling sequences for the Perl functions are the same as their C counterparts--including the constants C<_IOFBF>, C<_IOLBF>, and C<_IONBF> for setvbuf()--except that the buffer parameter specifies a scalar variable to use as a buffer. You should only change the buffer before any I/O, or immediately after calling flush. WARNING: The IO::Handle::setvbuf() is not available by default on Perls 5.8.0 and later because setvbuf() is rather specific to using the stdio library, while Perl prefers the new perlio subsystem instead. WARNING: A variable used as a buffer by C or C B in any way until the IO::Handle is closed or C or C is called again, or memory corruption may result! Remember that the order of global destruction is undefined, so even if your buffer variable remains in scope until program termination, it may be undefined before the file IO::Handle is closed. Note that you need to import the constants C<_IOFBF>, C<_IOLBF>, and C<_IONBF> explicitly. Like C, setbuf returns nothing. setvbuf returns "0 but true", on success, C on failure. Lastly, there is a special method for working under B<-T> and setuid/gid scripts: =over 4 =item $io->untaint Marks the object as taint-clean, and as such data read from it will also be considered taint-clean. Note that this is a very trusting action to take, and appropriate consideration for the data source and potential vulnerability should be kept in mind. Returns 0 on success, -1 if setting the taint-clean flag failed. (eg invalid handle) =back =head1 NOTE An C object is a reference to a symbol/GLOB reference (see the L package). Some modules that inherit from C may want to keep object related variables in the hash table part of the GLOB. In an attempt to prevent modules trampling on each other I propose the that any such module should prefix its variables with its own name separated by _'s. For example the IO::Socket module keeps a C variable in 'io_socket_timeout'. =head1 SEE ALSO L, L, L =head1 BUGS Due to backwards compatibility, all filehandles resemble objects of class C, or actually classes derived from that class. They actually aren't. Which means you can't derive your own class from C and inherit those methods. =head1 HISTORY Derived from FileHandle.pm by Graham Barr EFE =cut use 5.008_001; use strict; use Carp; use Symbol; use SelectSaver; use IO (); # Load the XS module require Exporter; our @ISA = qw(Exporter); our $VERSION = "1.55"; our @EXPORT_OK = qw( autoflush output_field_separator output_record_separator input_record_separator input_line_number format_page_number format_lines_per_page format_lines_left format_name format_top_name format_line_break_characters format_formfeed format_write print printf say getline getlines printflush flush SEEK_SET SEEK_CUR SEEK_END _IOFBF _IOLBF _IONBF ); ################################################ ## Constructors, destructors. ## sub new { my $class = ref($_[0]) || $_[0] || "IO::Handle"; if (@_ != 1) { # Since perl will automatically require IO::File if needed, but # also initialises IO::File's @ISA as part of the core we must # ensure IO::File is loaded if IO::Handle is. This avoids effect- # ively "half-loading" IO::File. if ($] > 5.013 && $class eq 'IO::File' && !$INC{"IO/File.pm"}) { require IO::File; shift; return IO::File::->new(@_); } croak "usage: $class->new()"; } my $io = gensym; bless $io, $class; } sub new_from_fd { my $class = ref($_[0]) || $_[0] || "IO::Handle"; @_ == 3 or croak "usage: $class->new_from_fd(FD, MODE)"; my $io = gensym; shift; IO::Handle::fdopen($io, @_) or return undef; bless $io, $class; } # # There is no need for DESTROY to do anything, because when the # last reference to an IO object is gone, Perl automatically # closes its associated files (if any). However, to avoid any # attempts to autoload DESTROY, we here define it to do nothing. # sub DESTROY {} ################################################ ## Open and close. ## sub _open_mode_string { my ($mode) = @_; $mode =~ /^\+?(<|>>?)$/ or $mode =~ s/^r(\+?)$/$1/ or $mode =~ s/^a(\+?)$/$1>>/ or croak "IO::Handle: bad open mode: $mode"; $mode; } sub fdopen { @_ == 3 or croak 'usage: $io->fdopen(FD, MODE)'; my ($io, $fd, $mode) = @_; local(*GLOB); if (ref($fd) && "$fd" =~ /GLOB\(/o) { # It's a glob reference; Alias it as we cannot get name of anon GLOBs my $n = qualify(*GLOB); *GLOB = *{*$fd}; $fd = $n; } elsif ($fd =~ m#^\d+$#) { # It's an FD number; prefix with "=". $fd = "=$fd"; } open($io, _open_mode_string($mode) . '&' . $fd) ? $io : undef; } sub close { @_ == 1 or croak 'usage: $io->close()'; my($io) = @_; close($io); } ################################################ ## Normal I/O functions. ## # flock # select sub opened { @_ == 1 or croak 'usage: $io->opened()'; defined fileno($_[0]); } sub fileno { @_ == 1 or croak 'usage: $io->fileno()'; fileno($_[0]); } sub getc { @_ == 1 or croak 'usage: $io->getc()'; getc($_[0]); } sub eof { @_ == 1 or croak 'usage: $io->eof()'; eof($_[0]); } sub print { @_ or croak 'usage: $io->print(ARGS)'; my $this = shift; print $this @_; } sub printf { @_ >= 2 or croak 'usage: $io->printf(FMT,[ARGS])'; my $this = shift; printf $this @_; } sub say { @_ or croak 'usage: $io->say(ARGS)'; my $this = shift; local $\ = "\n"; print $this @_; } sub truncate { @_ == 2 or croak 'usage: $io->truncate(LEN)'; truncate($_[0], $_[1]); } sub read { @_ == 3 || @_ == 4 or croak 'usage: $io->read(BUF, LEN [, OFFSET])'; read($_[0], $_[1], $_[2], $_[3] || 0); } sub sysread { @_ == 3 || @_ == 4 or croak 'usage: $io->sysread(BUF, LEN [, OFFSET])'; sysread($_[0], $_[1], $_[2], $_[3] || 0); } sub write { @_ >= 2 && @_ <= 4 or croak 'usage: $io->write(BUF [, LEN [, OFFSET]])'; local($\) = ""; $_[2] = length($_[1]) unless defined $_[2]; print { $_[0] } substr($_[1], $_[3] || 0, $_[2]); } sub syswrite { @_ >= 2 && @_ <= 4 or croak 'usage: $io->syswrite(BUF [, LEN [, OFFSET]])'; if (defined($_[2])) { syswrite($_[0], $_[1], $_[2], $_[3] || 0); } else { syswrite($_[0], $_[1]); } } sub stat { @_ == 1 or croak 'usage: $io->stat()'; stat($_[0]); } ################################################ ## State modification functions. ## sub autoflush { my $old = SelectSaver->new(qualify($_[0], caller)); my $prev = $|; $| = @_ > 1 ? $_[1] : 1; $prev; } sub output_field_separator { carp "output_field_separator is not supported on a per-handle basis" if ref($_[0]); my $prev = $,; $, = $_[1] if @_ > 1; $prev; } sub output_record_separator { carp "output_record_separator is not supported on a per-handle basis" if ref($_[0]); my $prev = $\; $\ = $_[1] if @_ > 1; $prev; } sub input_record_separator { carp "input_record_separator is not supported on a per-handle basis" if ref($_[0]); my $prev = $/; $/ = $_[1] if @_ > 1; $prev; } sub input_line_number { local $.; () = tell qualify($_[0], caller) if ref($_[0]); my $prev = $.; $. = $_[1] if @_ > 1; $prev; } sub format_page_number { my $old; $old = SelectSaver->new(qualify($_[0], caller)) if ref($_[0]); my $prev = $%; $% = $_[1] if @_ > 1; $prev; } sub format_lines_per_page { my $old; $old = SelectSaver->new(qualify($_[0], caller)) if ref($_[0]); my $prev = $=; $= = $_[1] if @_ > 1; $prev; } sub format_lines_left { my $old; $old = SelectSaver->new(qualify($_[0], caller)) if ref($_[0]); my $prev = $-; $- = $_[1] if @_ > 1; $prev; } sub format_name { my $old; $old = SelectSaver->new(qualify($_[0], caller)) if ref($_[0]); my $prev = $~; $~ = qualify($_[1], caller) if @_ > 1; $prev; } sub format_top_name { my $old; $old = SelectSaver->new(qualify($_[0], caller)) if ref($_[0]); my $prev = $^; $^ = qualify($_[1], caller) if @_ > 1; $prev; } sub format_line_break_characters { carp "format_line_break_characters is not supported on a per-handle basis" if ref($_[0]); my $prev = $:; $: = $_[1] if @_ > 1; $prev; } sub format_formfeed { carp "format_formfeed is not supported on a per-handle basis" if ref($_[0]); my $prev = $^L; $^L = $_[1] if @_ > 1; $prev; } sub formline { my $io = shift; my $picture = shift; local($^A) = $^A; local($\) = ""; formline($picture, @_); print $io $^A; } sub format_write { @_ < 3 || croak 'usage: $io->write( [FORMAT_NAME] )'; if (@_ == 2) { my ($io, $fmt) = @_; my $oldfmt = $io->format_name(qualify($fmt,caller)); CORE::write($io); $io->format_name($oldfmt); } else { CORE::write($_[0]); } } sub fcntl { @_ == 3 || croak 'usage: $io->fcntl( OP, VALUE );'; my ($io, $op) = @_; return fcntl($io, $op, $_[2]); } sub ioctl { @_ == 3 || croak 'usage: $io->ioctl( OP, VALUE );'; my ($io, $op) = @_; return ioctl($io, $op, $_[2]); } # this sub is for compatibility with older releases of IO that used # a sub called constant to determine if a constant existed -- GMB # # The SEEK_* and _IO?BF constants were the only constants at that time # any new code should just check defined(&CONSTANT_NAME) sub constant { no strict 'refs'; my $name = shift; (($name =~ /^(SEEK_(SET|CUR|END)|_IO[FLN]BF)$/) && defined &{$name}) ? &{$name}() : undef; } # so that flush.pl can be deprecated sub printflush { my $io = shift; my $old; $old = SelectSaver->new(qualify($io, caller)) if ref($io); local $| = 1; if(ref($io)) { print $io @_; } else { print @_; } } ################################################ ## Binmode ## sub binmode { ( @_ == 1 or @_ == 2 ) or croak 'usage $fh->binmode([LAYER])'; my($fh, $layer) = @_; return binmode $$fh unless $layer; return binmode $$fh, $layer; } 1; FILEd325c340/IO/Seekable.pm K# package IO::Seekable; =head1 NAME IO::Seekable - supply seek based methods for I/O objects =head1 SYNOPSIS use IO::Seekable; package IO::Something; @ISA = qw(IO::Seekable); =head1 DESCRIPTION C does not have a constructor of its own as it is intended to be inherited by other C based objects. It provides methods which allow seeking of the file descriptors. =over 4 =item $io->getpos Returns an opaque value that represents the current position of the IO::File, or C if this is not possible (eg an unseekable stream such as a terminal, pipe or socket). If the fgetpos() function is available in your C library it is used to implements getpos, else perl emulates getpos using C's ftell() function. =item $io->setpos Uses the value of a previous getpos call to return to a previously visited position. Returns "0 but true" on success, C on failure. =back See L for complete descriptions of each of the following supported C methods, which are just front ends for the corresponding built-in functions: =over 4 =item $io->seek ( POS, WHENCE ) Seek the IO::File to position POS, relative to WHENCE: =over 8 =item WHENCE=0 (SEEK_SET) POS is absolute position. (Seek relative to the start of the file) =item WHENCE=1 (SEEK_CUR) POS is an offset from the current position. (Seek relative to current) =item WHENCE=2 (SEEK_END) POS is an offset from the end of the file. (Seek relative to end) =back The SEEK_* constants can be imported from the C module if you don't wish to use the numbers C<0> C<1> or C<2> in your code. Returns C<1> upon success, C<0> otherwise. =item $io->sysseek( POS, WHENCE ) Similar to $io->seek, but sets the IO::File's position using the system call lseek(2) directly, so will confuse most perl IO operators except sysread and syswrite (see L for full details) Returns the new position, or C on failure. A position of zero is returned as the string C<"0 but true"> =item $io->tell Returns the IO::File's current position, or -1 on error. =back =head1 SEE ALSO L, L, L L =head1 HISTORY Derived from FileHandle.pm by Graham Barr Egbarr@pobox.comE =cut use 5.008_001; use Carp; use strict; use IO::Handle (); # XXX we can't get these from IO::Handle or we'll get prototype # mismatch warnings on C :-( use Fcntl qw(SEEK_SET SEEK_CUR SEEK_END); require Exporter; our @EXPORT = qw(SEEK_SET SEEK_CUR SEEK_END); our @ISA = qw(Exporter); our $VERSION = "1.55"; sub seek { @_ == 3 or croak 'usage: $io->seek(POS, WHENCE)'; seek($_[0], $_[1], $_[2]); } sub sysseek { @_ == 3 or croak 'usage: $io->sysseek(POS, WHENCE)'; sysseek($_[0], $_[1], $_[2]); } sub tell { @_ == 1 or croak 'usage: $io->tell()'; tell($_[0]); } 1; FILEfba8be79/List/Util.pmis# Copyright (c) 1997-2009 Graham Barr . All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # # Maintained since 2013 by Paul Evans package List::Util; use strict; use warnings; require Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw( all any first min max minstr maxstr none notall product reduce reductions sum sum0 sample shuffle uniq uniqint uniqnum uniqstr zip zip_longest zip_shortest mesh mesh_longest mesh_shortest head tail pairs unpairs pairkeys pairvalues pairmap pairgrep pairfirst ); our $VERSION = "1.68_01"; our $XS_VERSION = $VERSION; $VERSION =~ tr/_//d; require XSLoader; XSLoader::load('List::Util', $XS_VERSION); # Used by shuffle() our $RAND; sub import { my $pkg = caller; # (RT88848) Touch the caller's $a and $b, to avoid the warning of # Name "main::a" used only once: possible typo" warning no strict 'refs'; ${"${pkg}::a"} = ${"${pkg}::a"}; ${"${pkg}::b"} = ${"${pkg}::b"}; goto &Exporter::import; } # For objects returned by pairs() sub List::Util::_Pair::key { shift->[0] } sub List::Util::_Pair::value { shift->[1] } sub List::Util::_Pair::TO_JSON { [ @{+shift} ] } =head1 NAME List::Util - A selection of general-utility list subroutines =head1 SYNOPSIS use List::Util qw( reduce any all none notall first reductions max maxstr min minstr product sum sum0 pairs unpairs pairkeys pairvalues pairfirst pairgrep pairmap shuffle uniq uniqint uniqnum uniqstr head tail zip mesh ); =head1 DESCRIPTION C contains a selection of subroutines that people have expressed would be nice to have in the perl core, but the usage would not really be high enough to warrant the use of a keyword, and the size so small such that being individual extensions would be wasteful. By default C does not export any subroutines. =cut =head1 LIST-REDUCTION FUNCTIONS The following set of functions all apply a given block of code to a list of values. =cut =head2 reduce $result = reduce { BLOCK } @list Reduces C<@list> by calling C in a scalar context multiple times, setting C<$a> and C<$b> each time. The first call will be with C<$a> and C<$b> set to the first two elements of the list, subsequent calls will be done by setting C<$a> to the result of the previous call and C<$b> to the next element in the list. Returns the result of the last call to the C. If C<@list> is empty then C is returned. If C<@list> only contains one element then that element is returned and C is not executed. The following examples all demonstrate how C could be used to implement the other list-reduction functions in this module. (They are not in fact implemented like this, but instead in a more efficient manner in individual C functions). $foo = reduce { defined($a) ? $a : $code->(local $_ = $b) ? $b : undef } undef, @list # first $foo = reduce { $a > $b ? $a : $b } 1..10 # max $foo = reduce { $a gt $b ? $a : $b } 'A'..'Z' # maxstr $foo = reduce { $a < $b ? $a : $b } 1..10 # min $foo = reduce { $a lt $b ? $a : $b } 'aa'..'zz' # minstr $foo = reduce { $a + $b } 1 .. 10 # sum $foo = reduce { $a . $b } @bar # concat $foo = reduce { $a || $code->(local $_ = $b) } 0, @bar # any $foo = reduce { $a && $code->(local $_ = $b) } 1, @bar # all $foo = reduce { $a && !$code->(local $_ = $b) } 1, @bar # none $foo = reduce { $a || !$code->(local $_ = $b) } 0, @bar # notall # Note that these implementations do not fully short-circuit If your algorithm requires that C produce an identity value, then make sure that you always pass that identity value as the first argument to prevent C being returned $foo = reduce { $a + $b } 0, @values; # sum with 0 identity value The above example code blocks also suggest how to use C to build a more efficient combined version of one of these basic functions and a C block. For example, to find the total length of all the strings in a list, we could use $total = sum map { length } @strings; However, this produces a list of temporary integer values as long as the original list of strings, only to reduce it down to a single value again. We can compute the same result more efficiently by using C with a code block that accumulates lengths by writing this instead as: $total = reduce { $a + length $b } 0, @strings The other scalar-returning list reduction functions are all specialisations of this generic idea. =head2 reductions @results = reductions { BLOCK } @list I Similar to C except that it also returns the intermediate values along with the final result. As before, C<$a> is set to the first element of the given list, and the C is then called once for remaining item in the list set into C<$b>, with the result being captured for return as well as becoming the new value for C<$a>. The returned list will begin with the initial value for C<$a>, followed by each return value from the block in order. The final value of the result will be identical to what the C function would have returned given the same block and list. reduce { "$a-$b" } "a".."d" # "a-b-c-d" reductions { "$a-$b" } "a".."d" # "a", "a-b", "a-b-c", "a-b-c-d" =head2 any my $bool = any { BLOCK } @list; I Similar to C in that it evaluates C setting C<$_> to each element of C<@list> in turn. C returns true if any element makes the C return a true value. If C never returns true or C<@list> was empty then it returns false. Many cases of using C in a conditional can be written using C instead, as it can short-circuit after the first true result. if( any { length > 10 } @strings ) { # at least one string has more than 10 characters } Note: Due to XS issues the block passed may be able to access the outer @_ directly. This is not intentional and will break under debugger. =head2 all my $bool = all { BLOCK } @list; I Similar to L, except that it requires all elements of the C<@list> to make the C return true. If any element returns false, then it returns false. If the C never returns false or the C<@list> was empty then it returns true. Note: Due to XS issues the block passed may be able to access the outer @_ directly. This is not intentional and will break under debugger. =head2 none =head2 notall my $bool = none { BLOCK } @list; my $bool = notall { BLOCK } @list; I Similar to L and L, but with the return sense inverted. C returns true only if no value in the C<@list> causes the C to return true, and C returns true only if not all of the values do. Note: Due to XS issues the block passed may be able to access the outer @_ directly. This is not intentional and will break under debugger. =head2 first my $val = first { BLOCK } @list; Similar to C in that it evaluates C setting C<$_> to each element of C<@list> in turn. C returns the first element where the result from C is a true value. If C never returns true or C<@list> was empty then C is returned. $foo = first { defined($_) } @list # first defined value in @list $foo = first { $_ > $value } @list # first value in @list which # is greater than $value =head2 max my $num = max @list; Returns the entry in the list with the highest numerical value. If the list is empty then C is returned. $foo = max 1..10 # 10 $foo = max 3,9,12 # 12 $foo = max @bar, @baz # whatever =head2 maxstr my $str = maxstr @list; Similar to L, but treats all the entries in the list as strings and returns the highest string as defined by the C operator. If the list is empty then C is returned. $foo = maxstr 'A'..'Z' # 'Z' $foo = maxstr "hello","world" # "world" $foo = maxstr @bar, @baz # whatever =head2 min my $num = min @list; Similar to L but returns the entry in the list with the lowest numerical value. If the list is empty then C is returned. $foo = min 1..10 # 1 $foo = min 3,9,12 # 3 $foo = min @bar, @baz # whatever =head2 minstr my $str = minstr @list; Similar to L, but treats all the entries in the list as strings and returns the lowest string as defined by the C operator. If the list is empty then C is returned. $foo = minstr 'A'..'Z' # 'A' $foo = minstr "hello","world" # "hello" $foo = minstr @bar, @baz # whatever =head2 product my $num = product @list; I Returns the numerical product of all the elements in C<@list>. If C<@list> is empty then C<1> is returned. $foo = product 1..10 # 3628800 $foo = product 3,9,12 # 324 =head2 sum my $num_or_undef = sum @list; Returns the numerical sum of all the elements in C<@list>. For backwards compatibility, if C<@list> is empty then C is returned. $foo = sum 1..10 # 55 $foo = sum 3,9,12 # 24 $foo = sum @bar, @baz # whatever =head2 sum0 my $num = sum0 @list; I Similar to L, except this returns 0 when given an empty list, rather than C. =cut =head1 KEY/VALUE PAIR LIST FUNCTIONS The following set of functions, all inspired by L, consume an even-sized list of pairs. The pairs may be key/value associations from a hash, or just a list of values. The functions will all preserve the original ordering of the pairs, and will not be confused by multiple pairs having the same "key" value - nor even do they require that the first of each pair be a plain string. B: At the time of writing, the following C functions that take a block do not modify the value of C<$_> within the block, and instead operate using the C<$a> and C<$b> globals instead. This has turned out to be a poor design, as it precludes the ability to provide a C function. Better would be to pass pair-like objects as 2-element array references in C<$_>, in a style similar to the return value of the C function. At some future version this behaviour may be added. Until then, users are alerted B to rely on the value of C<$_> remaining unmodified between the outside and the inside of the control block. In particular, the following example is B: my @kvlist = ... foreach (qw( some keys here )) { my @items = pairgrep { $a eq $_ } @kvlist; ... } Instead, write this using a lexical variable: foreach my $key (qw( some keys here )) { my @items = pairgrep { $a eq $key } @kvlist; ... } =cut =head2 pairs my @pairs = pairs @kvlist; I A convenient shortcut to operating on even-sized lists of pairs, this function returns a list of C references, each containing two items from the given list. It is a more efficient version of @pairs = pairmap { [ $a, $b ] } @kvlist It is most convenient to use in a C loop, for example: foreach my $pair ( pairs @kvlist ) { my ( $key, $value ) = @$pair; ... } Since version C<1.39> these C references are blessed objects, recognising the two methods C and C. The following code is equivalent: foreach my $pair ( pairs @kvlist ) { my $key = $pair->key; my $value = $pair->value; ... } Since version C<1.51> they also have a C method to ease serialisation. =head2 unpairs my @kvlist = unpairs @pairs I The inverse function to C; this function takes a list of C references containing two elements each, and returns a flattened list of the two values from each of the pairs, in order. This is notionally equivalent to my @kvlist = map { @{$_}[0,1] } @pairs except that it is implemented more efficiently internally. Specifically, for any input item it will extract exactly two values for the output list; using C if the input array references are short. Between C and C, a higher-order list function can be used to operate on the pairs as single scalars; such as the following near-equivalents of the other C higher-order functions: @kvlist = unpairs grep { FUNC } pairs @kvlist # Like pairgrep, but takes $_ instead of $a and $b @kvlist = unpairs map { FUNC } pairs @kvlist # Like pairmap, but takes $_ instead of $a and $b Note however that these versions will not behave as nicely in scalar context. Finally, this technique can be used to implement a sort on a keyvalue pair list; e.g.: @kvlist = unpairs sort { $a->key cmp $b->key } pairs @kvlist =head2 pairkeys my @keys = pairkeys @kvlist; I A convenient shortcut to operating on even-sized lists of pairs, this function returns a list of the first values of each of the pairs in the given list. It is a more efficient version of @keys = pairmap { $a } @kvlist =head2 pairvalues my @values = pairvalues @kvlist; I A convenient shortcut to operating on even-sized lists of pairs, this function returns a list of the second values of each of the pairs in the given list. It is a more efficient version of @values = pairmap { $b } @kvlist =head2 pairgrep my @kvlist = pairgrep { BLOCK } @kvlist; my $count = pairgrep { BLOCK } @kvlist; I Similar to perl's C keyword, but interprets the given list as an even-sized list of pairs. It invokes the C multiple times, in scalar context, with C<$a> and C<$b> set to successive pairs of values from the C<@kvlist>. Returns an even-sized list of those pairs for which the C returned true in list context, or the count of the B in scalar context. (Note, therefore, in scalar context that it returns a number half the size of the count of items it would have returned in list context). @subset = pairgrep { $a =~ m/^[[:upper:]]+$/ } @kvlist As with C aliasing C<$_> to list elements, C aliases C<$a> and C<$b> to elements of the given list. Any modifications of it by the code block will be visible to the caller. =head2 pairfirst my ( $key, $val ) = pairfirst { BLOCK } @kvlist; my $found = pairfirst { BLOCK } @kvlist; I Similar to the L function, but interprets the given list as an even-sized list of pairs. It invokes the C multiple times, in scalar context, with C<$a> and C<$b> set to successive pairs of values from the C<@kvlist>. Returns the first pair of values from the list for which the C returned true in list context, or an empty list of no such pair was found. In scalar context it returns a simple boolean value, rather than either the key or the value found. ( $key, $value ) = pairfirst { $a =~ m/^[[:upper:]]+$/ } @kvlist As with C aliasing C<$_> to list elements, C aliases C<$a> and C<$b> to elements of the given list. Any modifications of it by the code block will be visible to the caller. =head2 pairmap my @list = pairmap { BLOCK } @kvlist; my $count = pairmap { BLOCK } @kvlist; I Similar to perl's C keyword, but interprets the given list as an even-sized list of pairs. It invokes the C multiple times, in list context, with C<$a> and C<$b> set to successive pairs of values from the C<@kvlist>. Returns the concatenation of all the values returned by the C in list context, or the count of the number of items that would have been returned in scalar context. @result = pairmap { "The key $a has value $b" } @kvlist As with C aliasing C<$_> to list elements, C aliases C<$a> and C<$b> to elements of the given list. Any modifications of it by the code block will be visible to the caller. See L for a known-bug with C, and a workaround. =cut =head1 OTHER FUNCTIONS =cut =head2 shuffle my @values = shuffle @values; Returns the values of the input in a random order @cards = shuffle 0..51 # 0..51 in a random order This function is affected by the C<$RAND> variable. =cut =head2 sample my @items = sample $count, @values I Randomly select the given number of elements from the input list. Any given position in the input list will be selected at most once. If there are fewer than C<$count> items in the list then the function will return once all of them have been randomly selected; effectively the function behaves similarly to L. This function is affected by the C<$RAND> variable. =head2 uniq my @subset = uniq @values I Filters a list of values to remove subsequent duplicates, as judged by a DWIM-ish string equality or C test. Preserves the order of unique elements, and retains the first value of any duplicate set. my $count = uniq @values In scalar context, returns the number of elements that would have been returned as a list. The C value is treated by this function as distinct from the empty string, and no warning will be produced. It is left as-is in the returned list. Subsequent C values are still considered identical to the first, and will be removed. =head2 uniqint my @subset = uniqint @values I Filters a list of values to remove subsequent duplicates, as judged by an integer numerical equality test. Preserves the order of unique elements, and retains the first value of any duplicate set. Values in the returned list will be coerced into integers. my $count = uniqint @values In scalar context, returns the number of elements that would have been returned as a list. Note that C is treated much as other numerical operations treat it; it compares equal to zero but additionally produces a warning if such warnings are enabled (C). In addition, an C in the returned list is coerced into a numerical zero, so that the entire list of values returned by C are well-behaved as integers. =head2 uniqnum my @subset = uniqnum @values I Filters a list of values to remove subsequent duplicates, as judged by a numerical equality test. Preserves the order of unique elements, and retains the first value of any duplicate set. my $count = uniqnum @values In scalar context, returns the number of elements that would have been returned as a list. Note that C is treated much as other numerical operations treat it; it compares equal to zero but additionally produces a warning if such warnings are enabled (C). In addition, an C in the returned list is coerced into a numerical zero, so that the entire list of values returned by C are well-behaved as numbers. Note also that multiple IEEE C values are treated as duplicates of each other, regardless of any differences in their payloads, and despite the fact that C<< 0+'NaN' == 0+'NaN' >> yields false. =head2 uniqstr my @subset = uniqstr @values I Filters a list of values to remove subsequent duplicates, as judged by a string equality test. Preserves the order of unique elements, and retains the first value of any duplicate set. my $count = uniqstr @values In scalar context, returns the number of elements that would have been returned as a list. Note that C is treated much as other string operations treat it; it compares equal to the empty string but additionally produces a warning if such warnings are enabled (C). In addition, an C in the returned list is coerced into an empty string, so that the entire list of values returned by C are well-behaved as strings. =cut =head2 head my @values = head $size, @list; I Returns the first C<$size> elements from C<@list>. If C<$size> is negative, returns all but the last C<$size> elements from C<@list>. @result = head 2, qw( foo bar baz ); # foo, bar @result = head -2, qw( foo bar baz ); # foo =head2 tail my @values = tail $size, @list; I Returns the last C<$size> elements from C<@list>. If C<$size> is negative, returns all but the first C<$size> elements from C<@list>. @result = tail 2, qw( foo bar baz ); # bar, baz @result = tail -2, qw( foo bar baz ); # baz =head2 zip my @result = zip [1..3], ['a'..'c']; # [1, 'a'], [2, 'b'], [3, 'c'] I Returns a list of array references, composed of elements from the given list of array references. Each array in the returned list is composed of elements at that corresponding position from each of the given input arrays. If any input arrays run out of elements before others, then C will be inserted into the result to fill in the gaps. The C function is particularly handy for iterating over multiple arrays at the same time with a C loop, taking one element from each: foreach ( zip \@xs, \@ys, \@zs ) { my ($x, $y, $z) = @$_; ... } B to users of L: This function does not behave the same as C, but is actually a non-prototyped equivalent to C. This function does not apply a prototype, so make sure to invoke it with references to arrays. For a function similar to the C function from C, see L. my @result = zip_shortest ... A variation of the function that differs in how it behaves when given input arrays of differing lengths. C will stop as soon as any one of the input arrays run out of elements, discarding any remaining unused values from the others. my @result = zip_longest ... C is an alias to the C function, provided simply to be explicit about that behaviour as compared to C. =head2 mesh my @result = mesh [1..3], ['a'..'c']; # (1, 'a', 2, 'b', 3, 'c') I Returns a list of items collected from elements of the given list of array references. Each section of items in the returned list is composed of elements at the corresponding position from each of the given input arrays. If any input arrays run out of elements before others, then C will be inserted into the result to fill in the gaps. This is similar to L, except that all of the ranges in the result are returned in one long flattened list, instead of being bundled into separate arrays. Because it returns a flat list of items, the C function is particularly useful for building a hash out of two separate arrays of keys and values: my %hash = mesh \@keys, \@values; my $href = { mesh \@keys, \@values }; B to users of L: This function is a non-prototyped equivalent to C or C (themselves aliases of each other). This function does not apply a prototype, so make sure to invoke it with references to arrays. my @result = mesh_shortest ... my @result = mesh_longest ... These variations are similar to those of L, in that they differ in behaviour when one of the input lists runs out of elements before the others. =head1 CONFIGURATION VARIABLES =head2 $RAND local $List::Util::RAND = sub { ... }; I This package variable is used by code which needs to generate random numbers (such as the L and L functions). If set to a CODE reference it provides an alternative to perl's builtin C function. When a new random number is needed this function will be invoked with no arguments and is expected to return a floating-point value, of which only the fractional part will be used. =head1 KNOWN BUGS =head2 RT #95409 L If the block of code given to L contains lexical variables that are captured by a returned closure, and the closure is executed after the block has been re-used for the next iteration, these lexicals will not see the correct values. For example: my @subs = pairmap { my $var = "$a is $b"; sub { print "$var\n" }; } one => 1, two => 2, three => 3; $_->() for @subs; Will incorrectly print three is 3 three is 3 three is 3 This is due to the performance optimisation of using C for the code block, which means that fresh SVs do not get allocated for each call to the block. Instead, the same SV is re-assigned for each iteration, and all the closures will share the value seen on the final iteration. To work around this bug, surround the code with a second set of braces. This creates an inner block that defeats the C logic, and does get fresh SVs allocated each time: my @subs = pairmap { { my $var = "$a is $b"; sub { print "$var\n"; } } } one => 1, two => 2, three => 3; This bug only affects closures that are generated by the block but used afterwards. Lexical variables that are only used during the lifetime of the block's execution will take their individual values for each invocation, as normal. =head2 uniqnum() on oversized bignums Due to the way that C compares numbers, it cannot distinguish differences between bignums (especially bigints) that are too large to fit in the native platform types. For example, my $x = Math::BigInt->new( "1" x 100 ); my $y = $x + 1; say for uniqnum( $x, $y ); Will print just the value of C<$x>, believing that C<$y> is a numerically- equivalent value. This bug does not affect C, which will correctly observe that the two values stringify to different strings. =head1 SUGGESTED ADDITIONS The following are additions that have been requested, but I have been reluctant to add due to them being very simple to implement in perl # How many elements are true sub true { scalar grep { $_ } @_ } # How many elements are false sub false { scalar grep { !$_ } @_ } =head1 SEE ALSO L, L =head1 COPYRIGHT Copyright (c) 1997-2007 Graham Barr . All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Recent additions and current maintenance by Paul Evans, . =cut 1; FILE51835385/Scalar/Util.pm+# Copyright (c) 1997-2007 Graham Barr . All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # # Maintained since 2013 by Paul Evans package Scalar::Util; use strict; use warnings; require Exporter; our @ISA = qw(Exporter); our @EXPORT_OK = qw( blessed refaddr reftype weaken unweaken isweak dualvar isdual isvstring looks_like_number openhandle readonly set_prototype tainted ); our $VERSION = "1.68_01"; $VERSION =~ tr/_//d; require List::Util; # List::Util loads the XS List::Util->VERSION( $VERSION ); # Ensure we got the right XS version (RT#100863) if( $] >= 5.040 ) { # On Perl 5.40 and above, these builtins are stable, so we can use them # instead of our own XS implementation # Using this instead of a globref means we don't create an empty # "builtins::" glob on older perls no strict 'refs'; my $builtins = \%{"builtin::"}; *$_ = \&{ $builtins->{$_} } for (qw( blessed refaddr reftype weaken unweaken )); *isweak = \&{ $builtins->{is_weak} }; # renamed } # populating @EXPORT_FAIL is done in the XS code sub export_fail { if (grep { /^isvstring$/ } @_ ) { require Carp; Carp::croak("Vstrings are not implemented in this version of perl"); } @_; } # set_prototype has been moved to Sub::Util with a different interface sub set_prototype(&$) { my ( $code, $proto ) = @_; return Sub::Util::set_prototype( $proto, $code ); } 1; __END__ =head1 NAME Scalar::Util - A selection of general-utility scalar subroutines =head1 SYNOPSIS use Scalar::Util qw(blessed dualvar isdual readonly refaddr reftype tainted weaken isweak isvstring looks_like_number set_prototype); # and other useful utils appearing below =head1 DESCRIPTION C contains a selection of subroutines that people have expressed would be nice to have in the perl core, but the usage would not really be high enough to warrant the use of a keyword, and the size would be so small that being individual extensions would be wasteful. By default C does not export any subroutines. =head2 Core Perl C Functions Many functions in this module have served as the inspiration for a new experimental facility in recent versions of Perl. From various development versions, starting at 5.35.7, equivalent functions to many of these utilities are available in the C package. use Scalar::Util qw(blessed); $class = blessed $obj; $class = builtin::blessed $obj; # equivalent For more information, see the documentation on L. =cut =head1 FUNCTIONS FOR REFERENCES The following functions all perform some useful activity on reference values. =head2 blessed my $pkg = blessed( $ref ); If C<$ref> is a blessed reference, the name of the package that it is blessed into is returned. Otherwise C is returned. $scalar = "foo"; $class = blessed $scalar; # undef $ref = []; $class = blessed $ref; # undef $obj = bless [], "Foo"; $class = blessed $obj; # "Foo" Take care when using this function simply as a truth test (such as in C) because the package name C<"0"> is defined yet false. I an equivalent function is available as C. =head2 refaddr my $addr = refaddr( $ref ); If C<$ref> is reference, the internal memory address of the referenced value is returned as a plain integer. Otherwise C is returned. $addr = refaddr "string"; # undef $addr = refaddr \$var; # eg 12345678 $addr = refaddr []; # eg 23456784 $obj = bless {}, "Foo"; $addr = refaddr $obj; # eg 88123488 I an equivalent function is available as C. =head2 reftype my $type = reftype( $ref ); If C<$ref> is a reference, the basic Perl type of the variable referenced is returned as a plain string (such as C or C). Otherwise C is returned. $type = reftype "string"; # undef $type = reftype \$var; # SCALAR $type = reftype []; # ARRAY $obj = bless {}, "Foo"; $type = reftype $obj; # HASH Note that for internal reasons, all precompiled regexps (C) are blessed references; thus C returns the package name string C<"Regexp"> on these but C will return the underlying C structure type of C<"REGEXP"> in all capitals. I an equivalent function is available as C. =head2 weaken weaken( $ref ); The lvalue C<$ref> will be turned into a weak reference. This means that it will not hold a reference count on the object it references. Also, when the reference count on that object reaches zero, the reference will be set to undef. This function mutates the lvalue passed as its argument and returns no value. This is useful for keeping copies of references, but you don't want to prevent the object being DESTROY-ed at its usual time. { my $var; $ref = \$var; weaken($ref); # Make $ref a weak reference } # $ref is now undef Note that if you take a copy of a scalar with a weakened reference, the copy will be a strong reference. my $var; my $foo = \$var; weaken($foo); # Make $foo a weak reference my $bar = $foo; # $bar is now a strong reference This may be less obvious in other situations, such as C, for instance when grepping through a list of weakened references to objects that may have been destroyed already: @object = grep { defined } @object; This will indeed remove all references to destroyed objects, but the remaining references to objects will be strong, causing the remaining objects to never be destroyed because there is now always a strong reference to them in the @object array. I an equivalent function is available as C. =head2 unweaken unweaken( $ref ); I The lvalue C will be turned from a weak reference back into a normal (strong) reference again. This function mutates the lvalue passed as its argument and returns no value. This undoes the action performed by L. This function is slightly neater and more convenient than the otherwise-equivalent code my $tmp = $REF; undef $REF; $REF = $tmp; (because in particular, simply assigning a weak reference back to itself does not work to unweaken it; C<$REF = $REF> does not work). I an equivalent function is available as C. =head2 isweak my $weak = isweak( $ref ); Returns true if C<$ref> is a weak reference. $ref = \$foo; $weak = isweak($ref); # false weaken($ref); $weak = isweak($ref); # true B: Copying a weak reference creates a normal, strong, reference. $copy = $ref; $weak = isweak($copy); # false I an equivalent function is available as C. =head1 OTHER FUNCTIONS =head2 dualvar my $var = dualvar( $num, $string ); Returns a scalar that has the value C<$num> in a numeric context and the value C<$string> in a string context. $foo = dualvar 10, "Hello"; $num = $foo + 2; # 12 $str = $foo . " world"; # Hello world =head2 isdual my $dual = isdual( $var ); I If C<$var> is a scalar that has both numeric and string values, the result is true. $foo = dualvar 86, "Nix"; $dual = isdual($foo); # true Note that a scalar can be made to have both string and numeric content through standard operations: $foo = "10"; $dual = isdual($foo); # false $bar = $foo + 0; $dual = isdual($foo); # true The C<$!> variable is commonly dual-valued, though it is also magical in other ways: $! = 1; $dual = isdual($!); # true print("$!\n"); # "Operation not permitted" B: This function is not as useful as it may seem. Dualvars are not a distinct concept in Perl, but a standard internal construct of all scalar values. Almost any value could be considered as a dualvar by this function through the course of normal operations. =head2 isvstring my $vstring = isvstring( $var ); If C<$var> is a scalar which was coded as a vstring, the result is true. $vs = v49.46.48; $fmt = isvstring($vs) ? "%vd" : "%s"; #true printf($fmt,$vs); =head2 looks_like_number my $isnum = looks_like_number( $var ); Returns true if perl thinks C<$var> is a number. See L. =head2 openhandle my $fh = openhandle( $fh ); Returns C<$fh> itself, if C<$fh> may be used as a filehandle and is open, or if it is a tied handle. Otherwise C is returned. $fh = openhandle(*STDIN); # \*STDIN $fh = openhandle(\*STDIN); # \*STDIN $fh = openhandle(*NOTOPEN); # undef $fh = openhandle("scalar"); # undef =head2 readonly my $ro = readonly( $var ); Returns true if C<$var> is readonly. sub foo { readonly($_[0]) } $readonly = foo($bar); # false $readonly = foo(0); # true =head2 set_prototype my $code = set_prototype( $code, $prototype ); Sets the prototype of the function given by the C<$code> reference, or deletes it if C<$prototype> is C. Returns the C<$code> reference itself. set_prototype \&foo, '$$'; =head2 tainted my $t = tainted( $var ); Return true if C<$var> is tainted. $taint = tainted("constant"); # false $taint = tainted($ENV{PWD}); # true if running under -T =head1 DIAGNOSTICS Module use may give one of the following errors during import. =over =item Vstrings are not implemented in this version of perl The version of perl that you are using does not implement Vstrings, to use L you will need to use a newer release of perl. =back =head1 KNOWN BUGS There is a bug in perl5.6.0 with UV's that are >= 1<<31. This will show up as tests 8 and 9 of dualvar.t failing =head1 SEE ALSO L =head1 COPYRIGHT Copyright (c) 1997-2007 Graham Barr . All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Additionally L and L which are Copyright (c) 1999 Tuomas J. Lukka . All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as perl itself. Copyright (C) 2004, 2008 Matthijs van Duin. All rights reserved. Copyright (C) 2014 cPanel Inc. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut FILE5820ee25/Storable.pmǒ# # Copyright (c) 1995-2001, Raphael Manfredi # Copyright (c) 2002-2014 by the Perl 5 Porters # Copyright (c) 2015-2016 cPanel Inc # Copyright (c) 2017 Reini Urban # # You may redistribute only under the same terms as Perl 5, as specified # in the README file that comes with the distribution. # package Storable; use strict; use XSLoader (); use Exporter (); our @ISA = qw(Exporter); our @EXPORT = qw(store retrieve); our @EXPORT_OK = qw( nstore store_fd nstore_fd fd_retrieve freeze nfreeze thaw dclone retrieve_fd lock_store lock_nstore lock_retrieve file_magic read_magic BLESS_OK TIE_OK FLAGS_COMPAT stack_depth stack_depth_hash ); our ($canonical, $forgive_me); BEGIN { our $VERSION = '3.37'; } our $recursion_limit; our $recursion_limit_hash; $recursion_limit = 512 unless defined $recursion_limit; $recursion_limit_hash = 256 unless defined $recursion_limit_hash; use Carp; use Fcntl qw(LOCK_SH LOCK_EX); BEGIN { if (eval { local $SIG{__DIE__}; local @INC = @INC; pop @INC if $INC[-1] eq '.'; require Log::Agent; 1; }) { Log::Agent->import; } # # Use of Log::Agent is optional. If it hasn't imported these subs then # provide a fallback implementation. # unless ($Storable::{logcroak} && *{$Storable::{logcroak}}{CODE}) { *logcroak = \&Carp::croak; } else { # Log::Agent's logcroak always adds a newline to the error it is # given. This breaks refs getting thrown. We can just discard what # it throws (but keep whatever logging it does) and throw the original # args. no warnings 'redefine'; my $logcroak = \&logcroak; *logcroak = sub { my @args = @_; eval { &$logcroak }; Carp::croak(@args); }; } unless ($Storable::{logcarp} && *{$Storable::{logcarp}}{CODE}) { *logcarp = \&Carp::carp; } } sub CLONE { # clone context under threads Storable::init_perinterp(); } sub BLESS_OK () { 2 } sub TIE_OK () { 4 } sub FLAGS_COMPAT () { BLESS_OK | TIE_OK } # By default restricted hashes are downgraded on earlier perls. our $flags = FLAGS_COMPAT; our $downgrade_restricted = 1; our $accept_future_minor = 1; BEGIN { XSLoader::load('Storable') }; # # Determine whether locking is possible, but only when needed. # sub show_file_magic { print <4 byte >0 (net-order %d) >>4 byte &01 (network-ordered) >>4 byte =3 (major 1) >>4 byte =2 (major 1) 0 string pst0 perl Storable(v0.7) data >4 byte >0 >>4 byte &01 (network-ordered) >>4 byte =5 (major 2) >>4 byte =4 (major 2) >>5 byte >0 (minor %d) EOM } sub file_magic { my $file = shift; open(my $fh, "<", $file) || die "Can't open '$file': $!"; binmode($fh); defined(sysread($fh, my $buf, 32)) || die "Can't read from '$file': $!"; close($fh); $file = "./$file" unless $file; # ensure TRUE value return read_magic($buf, $file); } sub read_magic { my($buf, $file) = @_; my %info; my $buflen = length($buf); my $magic; if ($buf =~ s/^(pst0|perl-store)//) { $magic = $1; $info{file} = $file || 1; } else { return undef if $file; $magic = ""; } return undef unless length($buf); my $net_order; if ($magic eq "perl-store" && ord(substr($buf, 0, 1)) > 1) { $info{version} = -1; $net_order = 0; } else { $buf =~ s/(.)//s; my $major = (ord $1) >> 1; return undef if $major > 4; # sanity (assuming we never go that high) $info{major} = $major; $net_order = (ord $1) & 0x01; if ($major > 1) { return undef unless $buf =~ s/(.)//s; my $minor = ord $1; $info{minor} = $minor; $info{version} = "$major.$minor"; $info{version_nv} = sprintf "%d.%03d", $major, $minor; } else { $info{version} = $major; } } $info{version_nv} ||= $info{version}; $info{netorder} = $net_order; unless ($net_order) { return undef unless $buf =~ s/(.)//s; my $len = ord $1; return undef unless length($buf) >= $len; return undef unless $len == 4 || $len == 8; # sanity @info{qw(byteorder intsize longsize ptrsize)} = unpack "a${len}CCC", $buf; (substr $buf, 0, $len + 3) = ''; if ($info{version_nv} >= 2.002) { return undef unless $buf =~ s/(.)//s; $info{nvsize} = ord $1; } } $info{hdrsize} = $buflen - length($buf); return \%info; } sub BIN_VERSION_NV { sprintf "%d.%03d", BIN_MAJOR(), BIN_MINOR(); } sub BIN_WRITE_VERSION_NV { sprintf "%d.%03d", BIN_MAJOR(), BIN_WRITE_MINOR(); } # # store # # Store target object hierarchy, identified by a reference to its root. # The stored object tree may later be retrieved to memory via retrieve. # Returns undef if an I/O error occurred, in which case the file is # removed. # sub store { return _store(\&pstore, @_, 0); } # # nstore # # Same as store, but in network order. # sub nstore { return _store(\&net_pstore, @_, 0); } # # lock_store # # Same as store, but flock the file first (advisory locking). # sub lock_store { return _store(\&pstore, @_, 1); } # # lock_nstore # # Same as nstore, but flock the file first (advisory locking). # sub lock_nstore { return _store(\&net_pstore, @_, 1); } # Internal store to file routine sub _store { my $xsptr = shift; my $self = shift; my ($file, $use_locking) = @_; logcroak "not a reference" unless ref($self); logcroak "wrong argument number" unless @_ == 2; # No @foo in arglist my $FILE; if ($use_locking) { open($FILE, ">>", $file) || logcroak "can't write into $file: $!"; unless (CAN_FLOCK) { logcarp "Storable::lock_store: fcntl/flock emulation broken on $^O"; return undef; } flock($FILE, LOCK_EX) || logcroak "can't get exclusive lock on $file: $!"; truncate $FILE, 0; # Unlocking will happen when FILE is closed } else { open($FILE, ">", $file) || logcroak "can't create $file: $!"; } binmode $FILE; # Archaic systems... my $da = $@; # Don't mess if called from exception handler my $ret; # Call C routine nstore or pstore, depending on network order eval { $ret = &$xsptr($FILE, $self) }; # close will return true on success, so the or short-circuits, the () # expression is true, and for that case the block will only be entered # if $@ is true (ie eval failed) # if close fails, it returns false, $ret is altered, *that* is (also) # false, so the () expression is false, !() is true, and the block is # entered. if (!(close($FILE) or undef $ret) || $@) { unlink($file) or warn "Can't unlink $file: $!\n"; } if ($@) { $@ =~ s/\.?\n$/,/ unless ref $@; logcroak $@; } $@ = $da; return $ret; } # # store_fd # # Same as store, but perform on an already opened file descriptor instead. # Returns undef if an I/O error occurred. # sub store_fd { return _store_fd(\&pstore, @_); } # # nstore_fd # # Same as store_fd, but in network order. # sub nstore_fd { my ($self, $file) = @_; return _store_fd(\&net_pstore, @_); } # Internal store routine on opened file descriptor sub _store_fd { my $xsptr = shift; my $self = shift; my ($file) = @_; logcroak "not a reference" unless ref($self); logcroak "too many arguments" unless @_ == 1; # No @foo in arglist my $fd = fileno($file); logcroak "not a valid file descriptor" unless defined $fd; $file = do { no strict 'refs'; \*{ $file }; }; my $da = $@; # Don't mess if called from exception handler my $ret; # Call C routine nstore or pstore, depending on network order eval { $ret = &$xsptr($file, $self) }; logcroak $@ if $@ =~ s/\.?\n$/,/; local $\; print $file ''; # Autoflush the file if wanted $@ = $da; return $ret; } # # freeze # # Store object and its hierarchy in memory and return a scalar # containing the result. # sub freeze { _freeze(\&mstore, @_); } # # nfreeze # # Same as freeze but in network order. # sub nfreeze { _freeze(\&net_mstore, @_); } # Internal freeze routine sub _freeze { my $xsptr = shift; my $self = shift; logcroak "not a reference" unless ref($self); logcroak "too many arguments" unless @_ == 0; # No @foo in arglist my $da = $@; # Don't mess if called from exception handler my $ret; # Call C routine mstore or net_mstore, depending on network order eval { $ret = &$xsptr($self) }; if ($@) { $@ =~ s/\.?\n$/,/ unless ref $@; logcroak $@; } $@ = $da; return $ret ? $ret : undef; } # # retrieve # # Retrieve object hierarchy from disk, returning a reference to the root # object of that tree. # # retrieve(file, flags) # flags include by default BLESS_OK=2 | TIE_OK=4 # with flags=0 or the global $Storable::flags set to 0, no resulting object # will be blessed nor tied. # sub retrieve { _retrieve(shift, 0, @_); } # # lock_retrieve # # Same as retrieve, but with advisory locking. # sub lock_retrieve { _retrieve(shift, 1, @_); } # Internal retrieve routine sub _retrieve { my ($file, $use_locking, $flags) = @_; $flags = $Storable::flags unless defined $flags; my $FILE; open($FILE, "<", $file) || logcroak "can't open $file: $!"; binmode $FILE; # Archaic systems... my $self; my $da = $@; # Could be from exception handler if ($use_locking) { unless (CAN_FLOCK) { logcarp "Storable::lock_store: fcntl/flock emulation broken on $^O"; return undef; } flock($FILE, LOCK_SH) || logcroak "can't get shared lock on $file: $!"; # Unlocking will happen when FILE is closed } eval { $self = pretrieve($FILE, $flags) }; # Call C routine close($FILE); if ($@) { $@ =~ s/\.?\n$/,/ unless ref $@; logcroak $@; } $@ = $da; return $self; } # # fd_retrieve # # Same as retrieve, but perform from an already opened file descriptor instead. # sub fd_retrieve { my ($file, $flags) = @_; $flags = $Storable::flags unless defined $flags; my $fd = fileno($file); logcroak "not a valid file descriptor" unless defined $fd; my $self; my $da = $@; # Could be from exception handler eval { $self = pretrieve($file, $flags) }; # Call C routine if ($@) { $@ =~ s/\.?\n$/,/ unless ref $@; logcroak $@; } $@ = $da; return $self; } sub retrieve_fd { &fd_retrieve } # Backward compatibility # # thaw # # Recreate objects in memory from an existing frozen image created # by freeze. If the frozen image passed is undef, return undef. # # thaw(frozen_obj, flags) # flags include by default BLESS_OK=2 | TIE_OK=4 # with flags=0 or the global $Storable::flags set to 0, no resulting object # will be blessed nor tied. # sub thaw { my ($frozen, $flags) = @_; $flags = $Storable::flags unless defined $flags; return undef unless defined $frozen; my $self; my $da = $@; # Could be from exception handler eval { $self = mretrieve($frozen, $flags) }; # Call C routine if ($@) { $@ =~ s/\.?\n$/,/ unless ref $@; logcroak $@; } $@ = $da; return $self; } # # _make_re($re, $flags) # # Internal function used to thaw a regular expression. # my $re_flags; BEGIN { if ($] < 5.010) { $re_flags = qr/\A[imsx]*\z/; } elsif ($] < 5.014) { $re_flags = qr/\A[msixp]*\z/; } elsif ($] < 5.022) { $re_flags = qr/\A[msixpdual]*\z/; } else { $re_flags = qr/\A[msixpdualn]*\z/; } } sub _make_re { my ($re, $flags) = @_; $flags =~ $re_flags or die "regexp flags invalid"; my $qr = eval "qr/\$re/$flags"; die $@ if $@; $qr; } if ($] < 5.012) { eval <<'EOS' sub _regexp_pattern { my $re = "" . shift; $re =~ /\A\(\?([xism]*)(?:-[xism]*)?:(.*)\)\z/s or die "Cannot parse regexp /$re/"; return ($2, $1); } 1 EOS or die "Cannot define _regexp_pattern: $@"; } 1; __END__ =head1 NAME Storable - persistence for Perl data structures =head1 SYNOPSIS use Storable; store \%table, 'file'; $hashref = retrieve('file'); use Storable qw(nstore store_fd nstore_fd freeze thaw dclone); # Network order nstore \%table, 'file'; $hashref = retrieve('file'); # There is NO nretrieve() # Storing to and retrieving from an already opened file store_fd \@array, \*STDOUT; nstore_fd \%table, \*STDOUT; $aryref = fd_retrieve(\*SOCKET); $hashref = fd_retrieve(\*SOCKET); # Serializing to memory $serialized = freeze \%table; %table_clone = %{ thaw($serialized) }; # Deep (recursive) cloning $cloneref = dclone($ref); # Advisory locking use Storable qw(lock_store lock_nstore lock_retrieve) lock_store \%table, 'file'; lock_nstore \%table, 'file'; $hashref = lock_retrieve('file'); =head1 DESCRIPTION The Storable package brings persistence to your Perl data structures containing SCALAR, ARRAY, HASH or REF objects, i.e. anything that can be conveniently stored to disk and retrieved at a later time. It can be used in the regular procedural way by calling C with a reference to the object to be stored, along with the file name where the image should be written. The routine returns C for I/O problems or other internal error, a true value otherwise. Serious errors are propagated as a C exception. To retrieve data stored to disk, use C with a file name. The objects stored into that file are recreated into memory for you, and a I to the root object is returned. In case an I/O error occurs while reading, C is returned instead. Other serious errors are propagated via C. Since storage is performed recursively, you might want to stuff references to objects that share a lot of common data into a single array or hash table, and then store that object. That way, when you retrieve back the whole thing, the objects will continue to share what they originally shared. At the cost of a slight header overhead, you may store to an already opened file descriptor using the C routine, and retrieve from a file via C. Those names aren't imported by default, so you will have to do that explicitly if you need those routines. The file descriptor you supply must be already opened, for read if you're going to retrieve and for write if you wish to store. store_fd(\%table, *STDOUT) || die "can't store to stdout\n"; $hashref = fd_retrieve(*STDIN); You can also store data in network order to allow easy sharing across multiple platforms, or when storing on a socket known to be remotely connected. The routines to call have an initial C prefix for I, as in C and C. At retrieval time, your data will be correctly restored so you don't have to know whether you're restoring from native or network ordered data. Double values are stored stringified to ensure portability as well, at the slight risk of loosing some precision in the last decimals. When using C, objects are retrieved in sequence, one object (i.e. one recursive tree) per associated C. If you're more from the object-oriented camp, you can inherit from Storable and directly store your objects by invoking C as a method. The fact that the root of the to-be-stored tree is a blessed reference (i.e. an object) is special-cased so that the retrieve does not provide a reference to that object but rather the blessed object reference itself. (Otherwise, you'd get a reference to that blessed object). =head1 MEMORY STORE The Storable engine can also store data into a Perl scalar instead, to later retrieve them. This is mainly used to freeze a complex structure in some safe compact memory place (where it can possibly be sent to another process via some IPC, since freezing the structure also serializes it in effect). Later on, and maybe somewhere else, you can thaw the Perl scalar out and recreate the original complex structure in memory. Surprisingly, the routines to be called are named C and C. If you wish to send out the frozen scalar to another machine, use C instead to get a portable image. Note that freezing an object structure and immediately thawing it actually achieves a deep cloning of that structure: dclone(.) = thaw(freeze(.)) Storable provides you with a C interface which does not create that intermediary scalar but instead freezes the structure in some internal memory space and then immediately thaws it out. =head1 ADVISORY LOCKING The C and C routine are equivalent to C and C, except that they get an exclusive lock on the file before writing. Likewise, C does the same as C, but also gets a shared lock on the file before reading. As with any advisory locking scheme, the protection only works if you systematically use C and C. If one side of your application uses C whilst the other uses C, you will get no protection at all. The internal advisory locking is implemented using Perl's flock() routine. If your system does not support any form of flock(), or if you share your files across NFS, you might wish to use other forms of locking by using modules such as LockFile::Simple which lock a file using a filesystem entry, instead of locking the file descriptor. =head1 SPEED The heart of Storable is written in C for decent speed. Extra low-level optimizations have been made when manipulating perl internals, to sacrifice encapsulation for the benefit of greater speed. =head1 CANONICAL REPRESENTATION Normally, Storable stores elements of hashes in the order they are stored internally by Perl, i.e. pseudo-randomly. If you set C<$Storable::canonical> to some C value, Storable will store hashes with the elements sorted by their key. This allows you to compare data structures by comparing their frozen representations (or even the compressed frozen representations), which can be useful for creating lookup tables for complicated queries. Canonical order does not imply network order; those are two orthogonal settings. =head1 CODE REFERENCES Since Storable version 2.05, CODE references may be serialized with the help of L. To enable this feature, set C<$Storable::Deparse> to a true value. To enable deserialization, C<$Storable::Eval> should be set to a true value. Be aware that deserialization is done through C, which is dangerous if the Storable file contains malicious data. You can set C<$Storable::Eval> to a subroutine reference which would be used instead of C. See below for an example using a L compartment for deserialization of CODE references. If C<$Storable::Deparse> and/or C<$Storable::Eval> are set to false values, then the value of C<$Storable::forgive_me> (see below) is respected while serializing and deserializing. =head1 FORWARD COMPATIBILITY This release of Storable can be used on a newer version of Perl to serialize data which is not supported by earlier Perls. By default, Storable will attempt to do the right thing, by Cing if it encounters data that it cannot deserialize. However, the defaults can be changed as follows: =over 4 =item utf8 data Perl 5.6 added support for Unicode characters with code points > 255, and Perl 5.8 has full support for Unicode characters in hash keys. Perl internally encodes strings with these characters using utf8, and Storable serializes them as utf8. By default, if an older version of Perl encounters a utf8 value it cannot represent, it will C. To change this behaviour so that Storable deserializes utf8 encoded values as the string of bytes (effectively dropping the I flag) set C<$Storable::drop_utf8> to some C value. This is a form of data loss, because with C<$drop_utf8> true, it becomes impossible to tell whether the original data was the Unicode string, or a series of bytes that happen to be valid utf8. =item restricted hashes Perl 5.8 adds support for restricted hashes, which have keys restricted to a given set, and can have values locked to be read only. By default, when Storable encounters a restricted hash on a perl that doesn't support them, it will deserialize it as a normal hash, silently discarding any placeholder keys and leaving the keys and all values unlocked. To make Storable C instead, set C<$Storable::downgrade_restricted> to a C value. To restore the default set it back to some C value. The cperl PERL_PERTURB_KEYS_TOP hash strategy has a known problem with restricted hashes. =item huge objects On 64bit systems some data structures may exceed the 2G (i.e. I32_MAX) limit. On 32bit systems also strings between I32 and U32 (2G-4G). Since Storable 3.00 (not in perl5 core) we are able to store and retrieve these objects, even if perl5 itself is not able to handle them. These are strings longer then 4G, arrays with more then 2G elements and hashes with more then 2G elements. cperl forbids hashes with more than 2G elements, but this fail in cperl then. perl5 itself at least until 5.26 allows it, but cannot iterate over them. Note that creating those objects might cause out of memory exceptions by the operating system before perl has a chance to abort. =item files from future versions of Storable Earlier versions of Storable would immediately croak if they encountered a file with a higher internal version number than the reading Storable knew about. Internal version numbers are increased each time new data types (such as restricted hashes) are added to the vocabulary of the file format. This meant that a newer Storable module had no way of writing a file readable by an older Storable, even if the writer didn't store newer data types. This version of Storable will defer croaking until it encounters a data type in the file that it does not recognize. This means that it will continue to read files generated by newer Storable modules which are careful in what they write out, making it easier to upgrade Storable modules in a mixed environment. The old behaviour of immediate croaking can be re-instated by setting C<$Storable::accept_future_minor> to some C value. =back All these variables have no effect on a newer Perl which supports the relevant feature. =head1 ERROR REPORTING Storable uses the "exception" paradigm, in that it does not try to workaround failures: if something bad happens, an exception is generated from the caller's perspective (see L and C). Use eval {} to trap those exceptions. When Storable croaks, it tries to report the error via the C routine from the C package, if it is available. Normal errors are reported by having store() or retrieve() return C. Such errors are usually I/O errors (or truncated stream errors at retrieval). When Storable throws the "Max. recursion depth with nested structures exceeded" error we are already out of stack space. Unfortunately on some earlier perl versions cleaning up a recursive data structure recurses into the free calls, which will lead to stack overflows in the cleanup. This data structure is not properly cleaned up then, it will only be destroyed during global destruction. =head1 WIZARDS ONLY =head2 Hooks Any class may define hooks that will be called during the serialization and deserialization process on objects that are instances of that class. Those hooks can redefine the way serialization is performed (and therefore, how the symmetrical deserialization should be conducted). Since we said earlier: dclone(.) = thaw(freeze(.)) everything we say about hooks should also hold for deep cloning. However, hooks get to know whether the operation is a mere serialization, or a cloning. Therefore, when serializing hooks are involved, dclone(.) <> thaw(freeze(.)) Well, you could keep them in sync, but there's no guarantee it will always hold on classes somebody else wrote. Besides, there is little to gain in doing so: a serializing hook could keep only one attribute of an object, which is probably not what should happen during a deep cloning of that same object. Here is the hooking interface: =over 4 =item C I, I The serializing hook, called on the object during serialization. It can be inherited, or defined in the class itself, like any other method. Arguments: I is the object to serialize, I is a flag indicating whether we're in a dclone() or a regular serialization via store() or freeze(). Returned value: A LIST C<($serialized, $ref1, $ref2, ...)> where $serialized is the serialized form to be used, and the optional $ref1, $ref2, etc... are extra references that you wish to let the Storable engine serialize. At deserialization time, you will be given back the same LIST, but all the extra references will be pointing into the deserialized structure. The B the hook is hit in a serialization flow, you may have it return an empty list. That will signal the Storable engine to further discard that hook for this class and to therefore revert to the default serialization of the underlying Perl data. The hook will again be normally processed in the next serialization. Unless you know better, serializing hook should always say: sub STORABLE_freeze { my ($self, $cloning) = @_; return if $cloning; # Regular default serialization .... } in order to keep reasonable dclone() semantics. =item C I, I, I, ... The deserializing hook called on the object during deserialization. But wait: if we're deserializing, there's no object yet... right? Wrong: the Storable engine creates an empty one for you. If you know Eiffel, you can view C as an alternate creation routine. This means the hook can be inherited like any other method, and that I is your blessed reference for this particular instance. The other arguments should look familiar if you know C: I is true when we're part of a deep clone operation, I is the serialized string you returned to the engine in C, and there may be an optional list of references, in the same order you gave them at serialization time, pointing to the deserialized objects (which have been processed courtesy of the Storable engine). When the Storable engine does not find any C hook routine, it tries to load the class by requiring the package dynamically (using the blessed package name), and then re-attempts the lookup. If at that time the hook cannot be located, the engine croaks. Note that this mechanism will fail if you define several classes in the same file, but L warned you. It is up to you to use this information to populate I the way you want. Returned value: none. =item C I, I, I While C and C are useful for classes where each instance is independent, this mechanism has difficulty (or is incompatible) with objects that exist as common process-level or system-level resources, such as singleton objects, database pools, caches or memoized objects. The alternative C method provides a solution for these shared objects. Instead of C --E C, you implement C --E C instead. Arguments: I is the class we are attaching to, I is a flag indicating whether we're in a dclone() or a regular de-serialization via thaw(), and I is the stored string for the resource object. Because these resource objects are considered to be owned by the entire process/system, and not the "property" of whatever is being serialized, no references underneath the object should be included in the serialized string. Thus, in any class that implements C, the C method cannot return any references, and C will throw an error if C tries to return references. All information required to "attach" back to the shared resource object B be contained B in the C return string. Otherwise, C behaves as normal for C classes. Because C is passed the class (rather than an object), it also returns the object directly, rather than modifying the passed object. Returned value: object of type C =back =head2 Predicates Predicates are not exportable. They must be called by explicitly prefixing them with the Storable package name. =over 4 =item C The C predicate will tell you whether network order was used in the last store or retrieve operation. If you don't know how to use this, just forget about it. =item C Returns true if within a store operation (via STORABLE_freeze hook). =item C Returns true if within a retrieve operation (via STORABLE_thaw hook). =back =head2 Recursion With hooks comes the ability to recurse back to the Storable engine. Indeed, hooks are regular Perl code, and Storable is convenient when it comes to serializing and deserializing things, so why not use it to handle the serialization string? There are a few things you need to know, however: =over 4 =item * From Storable 3.05 to 3.13 we probed for the stack recursion limit for references, arrays and hashes to a maximal depth of ~1200-35000, otherwise we might fall into a stack-overflow. On JSON::XS this limit is 512 btw. With references not immediately referencing each other there's no such limit yet, so you might fall into such a stack-overflow segfault. This probing and the checks we performed have some limitations: =over =item * the stack size at build time might be different at run time, eg. the stack size may have been modified with ulimit(1). If it's larger at run time Storable may fail the freeze() or thaw() unnecessarily. If it's larger at build time Storable may segmentation fault when processing a deep structure at run time. =item * the stack size might be different in a thread. =item * array and hash recursion limits are checked separately against the same recursion depth, a frozen structure with a large sequence of nested arrays within many nested hashes may exhaust the processor stack without triggering Storable's recursion protection. =back So these now have simple defaults rather than probing at build-time. You can control the maximum array and hash recursion depths by modifying C<$Storable::recursion_limit> and C<$Storable::recursion_limit_hash> respectively. Either can be set to C<-1> to prevent any depth checks, though this isn't recommended. If you want to test what the limits are, the F tool is included in the C distribution. =item * You can create endless loops if the things you serialize via freeze() (for instance) point back to the object we're trying to serialize in the hook. =item * Shared references among objects will not stay shared: if we're serializing the list of object [A, C] where both object A and C refer to the SAME object B, and if there is a serializing hook in A that says freeze(B), then when deserializing, we'll get [A', C'] where A' refers to B', but C' refers to D, a deep clone of B'. The topology was not preserved. =item * The maximal stack recursion limit for your system is returned by C and C. The hash limit is usually half the size of the array and ref limit, as the Perl hash API is not optimal. =back That's why C lets you provide a list of references to serialize. The engine guarantees that those will be serialized in the same context as the other objects, and therefore that shared objects will stay shared. In the above [A, C] example, the C hook could return: ("something", $self->{B}) and the B part would be serialized by the engine. In C, you would get back the reference to the B' object, deserialized for you. Therefore, recursion should normally be avoided, but is nonetheless supported. =head2 Deep Cloning There is a Clone module available on CPAN which implements deep cloning natively, i.e. without freezing to memory and thawing the result. It is aimed to replace Storable's dclone() some day. However, it does not currently support Storable hooks to redefine the way deep cloning is performed. =head1 Storable magic Yes, there's a lot of that :-) But more precisely, in UNIX systems there's a utility called C, which recognizes data files based on their contents (usually their first few bytes). For this to work, a certain file called F needs to taught about the I of the data. Where that configuration file lives depends on the UNIX flavour; often it's something like F or F. Your system administrator needs to do the updating of the F file. The necessary signature information is output to STDOUT by invoking Storable::show_file_magic(). Note that the GNU implementation of the C utility, version 3.38 or later, is expected to contain support for recognising Storable files out-of-the-box, in addition to other kinds of Perl files. You can also use the following functions to extract the file header information from Storable images: =over =item $info = Storable::file_magic( $filename ) If the given file is a Storable image return a hash describing it. If the file is readable, but not a Storable image return C. If the file does not exist or is unreadable then croak. The hash returned has the following elements: =over =item C This returns the file format version. It is a string like "2.7". Note that this version number is not the same as the version number of the Storable module itself. For instance Storable v0.7 create files in format v2.0 and Storable v2.15 create files in format v2.7. The file format version number only increment when additional features that would confuse older versions of the module are added. Files older than v2.0 will have the one of the version numbers "-1", "0" or "1". No minor number was used at that time. =item C This returns the file format version as number. It is a string like "2.007". This value is suitable for numeric comparisons. The constant function C returns a comparable number that represents the highest file version number that this version of Storable fully supports (but see discussion of C<$Storable::accept_future_minor> above). The constant C function returns what file version is written and might be less than C in some configurations. =item C, C This also returns the file format version. If the version is "2.7" then major would be 2 and minor would be 7. The minor element is missing for when major is less than 2. =item C The is the number of bytes that the Storable header occupies. =item C This is TRUE if the image store data in network order. This means that it was created with nstore() or similar. =item C This is only present when C is FALSE. It is the $Config{byteorder} string of the perl that created this image. It is a string like "1234" (32 bit little endian) or "87654321" (64 bit big endian). This must match the current perl for the image to be readable by Storable. =item C, C, C, C These are only present when C is FALSE. These are the sizes of various C datatypes of the perl that created this image. These must match the current perl for the image to be readable by Storable. The C element is only present for file format v2.2 and higher. =item C The name of the file. =back =item $info = Storable::read_magic( $buffer ) =item $info = Storable::read_magic( $buffer, $must_be_file ) The $buffer should be a Storable image or the first few bytes of it. If $buffer starts with a Storable header, then a hash describing the image is returned, otherwise C is returned. The hash has the same structure as the one returned by Storable::file_magic(). The C element is true if the image is a file image. If the $must_be_file argument is provided and is TRUE, then return C unless the image looks like it belongs to a file dump. The maximum size of a Storable header is currently 21 bytes. If the provided $buffer is only the first part of a Storable image it should at least be this long to ensure that read_magic() will recognize it as such. =back =head1 EXAMPLES Here are some code samples showing a possible usage of Storable: use Storable qw(store retrieve freeze thaw dclone); %color = ('Blue' => 0.1, 'Red' => 0.8, 'Black' => 0, 'White' => 1); store(\%color, 'mycolors') or die "Can't store %a in mycolors!\n"; $colref = retrieve('mycolors'); die "Unable to retrieve from mycolors!\n" unless defined $colref; printf "Blue is still %lf\n", $colref->{'Blue'}; $colref2 = dclone(\%color); $str = freeze(\%color); printf "Serialization of %%color is %d bytes long.\n", length($str); $colref3 = thaw($str); which prints (on my machine): Blue is still 0.100000 Serialization of %color is 102 bytes long. Serialization of CODE references and deserialization in a safe compartment: =for example begin use Storable qw(freeze thaw); use Safe; use strict; my $safe = Safe->new; # because of opcodes used in "use strict": $safe->permit(qw(:default require)); local $Storable::Deparse = 1; local $Storable::Eval = sub { $safe->reval($_[0]) }; my $serialized = freeze(sub { 42 }); my $code = thaw($serialized); $code->() == 42; =for example end =for example_testing is( $code->(), 42 ); =head1 SECURITY WARNING B There is B way to configure Storable so that it can be used safely to process untrusted data. While there I various options that can be used to mitigate specific security issues these options do I comprise a complete safety net for the user, and processing untrusted data may result in segmentation faults, remote code execution, or privilege escalation. The following lists some known features which represent security issues that should be considered by users of this module. Most obviously, the optional (off by default) CODE reference serialization feature allows transfer of code to the deserializing process. Furthermore, any serialized object will cause Storable to helpfully load the module corresponding to the class of the object in the deserializing module. For manipulated module names, this can load almost arbitrary code. Finally, the deserialized object's destructors will be invoked when the objects get destroyed in the deserializing process. Maliciously crafted Storable documents may put such objects in the value of a hash key that is overridden by another key/value pair in the same hash, thus causing immediate destructor execution. To disable blessing objects while thawing/retrieving remove the flag C = 2 from C<$Storable::flags> or set the 2nd argument for thaw/retrieve to 0. To disable tieing data while thawing/retrieving remove the flag C = 4 from C<$Storable::flags> or set the 2nd argument for thaw/retrieve to 0. With the default setting of C<$Storable::flags> = 6, creating or destroying random objects, even renamed objects can be controlled by an attacker. See CVE-2015-1592 and its metasploit module. If your application requires accepting data from untrusted sources, you are best off with a less powerful and more-likely safe serialization format and implementation. If your data is sufficiently simple, L or L are fine alternatives. For more complex data structures containing various Perl specific data types like regular expressions or aliased data L is the best alternative and offers maximum interoperability. Note that Sereal is L, but you can configure the encoder and decoder to mitigate any security issues. =head1 WARNING If you're using references as keys within your hash tables, you're bound to be disappointed when retrieving your data. Indeed, Perl stringifies references used as hash table keys. If you later wish to access the items via another reference stringification (i.e. using the same reference that was used for the key originally to record the value into the hash table), it will work because both references stringify to the same string. It won't work across a sequence of C and C operations, however, because the addresses in the retrieved objects, which are part of the stringified references, will probably differ from the original addresses. The topology of your structure is preserved, but not hidden semantics like those. On platforms where it matters, be sure to call C on the descriptors that you pass to Storable functions. Storing data canonically that contains large hashes can be significantly slower than storing the same data normally, as temporary arrays to hold the keys for each hash have to be allocated, populated, sorted and freed. Some tests have shown a halving of the speed of storing -- the exact penalty will depend on the complexity of your data. There is no slowdown on retrieval. =head1 REGULAR EXPRESSIONS Storable now has experimental support for storing regular expressions, but there are significant limitations: =over =item * perl 5.8 or later is required. =item * regular expressions with code blocks, ie C or C will throw an exception when thawed. =item * regular expression syntax and flags have changed over the history of perl, so a regular expression that you freeze in one version of perl may fail to thaw or behave differently in another version of perl. =item * depending on the version of perl, regular expressions can change in behaviour depending on the context, but later perls will bake that behaviour into the regexp. =back Storable will throw an exception if a frozen regular expression cannot be thawed. =head1 BUGS You can't store GLOB, FORMLINE, etc.... If you can define semantics for those operations, feel free to enhance Storable so that it can deal with them. The store functions will C if they run into such references unless you set C<$Storable::forgive_me> to some C value. In that case, the fatal message is converted to a warning and some meaningless string is stored instead. Setting C<$Storable::canonical> may not yield frozen strings that compare equal due to possible stringification of numbers. When the string version of a scalar exists, it is the form stored; therefore, if you happen to use your numbers as strings between two freezing operations on the same data structures, you will get different results. When storing doubles in network order, their value is stored as text. However, you should also not expect non-numeric floating-point values such as infinity and "not a number" to pass successfully through a nstore()/retrieve() pair. As Storable neither knows nor cares about character sets (although it does know that characters may be more than eight bits wide), any difference in the interpretation of character codes between a host and a target system is your problem. In particular, if host and target use different code points to represent the characters used in the text representation of floating-point numbers, you will not be able be able to exchange floating-point data, even with nstore(). C is a blunt tool. There is no facility either to return B strings as utf8 sequences, or to attempt to convert utf8 data back to 8 bit and C if the conversion fails. Prior to Storable 2.01, no distinction was made between signed and unsigned integers on storing. By default Storable prefers to store a scalars string representation (if it has one) so this would only cause problems when storing large unsigned integers that had never been converted to string or floating point. In other words values that had been generated by integer operations such as logic ops and then not used in any string or arithmetic context before storing. =head2 64 bit data in perl 5.6.0 and 5.6.1 This section only applies to you if you have existing data written out by Storable 2.02 or earlier on perl 5.6.0 or 5.6.1 on Unix or Linux which has been configured with 64 bit integer support (not the default) If you got a precompiled perl, rather than running Configure to build your own perl from source, then it almost certainly does not affect you, and you can stop reading now (unless you're curious). If you're using perl on Windows it does not affect you. Storable writes a file header which contains the sizes of various C language types for the C compiler that built Storable (when not writing in network order), and will refuse to load files written by a Storable not on the same (or compatible) architecture. This check and a check on machine byteorder is needed because the size of various fields in the file are given by the sizes of the C language types, and so files written on different architectures are incompatible. This is done for increased speed. (When writing in network order, all fields are written out as standard lengths, which allows full interworking, but takes longer to read and write) Perl 5.6.x introduced the ability to optional configure the perl interpreter to use C's C type to allow scalars to store 64 bit integers on 32 bit systems. However, due to the way the Perl configuration system generated the C configuration files on non-Windows platforms, and the way Storable generates its header, nothing in the Storable file header reflected whether the perl writing was using 32 or 64 bit integers, despite the fact that Storable was storing some data differently in the file. Hence Storable running on perl with 64 bit integers will read the header from a file written by a 32 bit perl, not realise that the data is actually in a subtly incompatible format, and then go horribly wrong (possibly crashing) if it encountered a stored integer. This is a design failure. Storable has now been changed to write out and read in a file header with information about the size of integers. It's impossible to detect whether an old file being read in was written with 32 or 64 bit integers (they have the same header) so it's impossible to automatically switch to a correct backwards compatibility mode. Hence this Storable defaults to the new, correct behaviour. What this means is that if you have data written by Storable 1.x running on perl 5.6.0 or 5.6.1 configured with 64 bit integers on Unix or Linux then by default this Storable will refuse to read it, giving the error I. If you have such data then you should set C<$Storable::interwork_56_64bit> to a true value to make this Storable read and write files with the old header. You should also migrate your data, or any older perl you are communicating with, to this current version of Storable. If you don't have data written with specific configuration of perl described above, then you do not and should not do anything. Don't set the flag - not only will Storable on an identically configured perl refuse to load them, but Storable a differently configured perl will load them believing them to be correct for it, and then may well fail or crash part way through reading them. =head1 CREDITS Thank you to (in chronological order): Jarkko Hietaniemi Ulrich Pfeifer Benjamin A. Holzman Andrew Ford Gisle Aas Jeff Gresham Murray Nesbitt Marc Lehmann Justin Banks Jarkko Hietaniemi (AGAIN, as perl 5.7.0 Pumpkin!) Salvador Ortiz Garcia Dominic Dunlop Erik Haugan Benjamin A. Holzman Reini Urban Todd Rinaldo Aaron Crane for their bug reports, suggestions and contributions. Benjamin Holzman contributed the tied variable support, Andrew Ford contributed the canonical order for hashes, and Gisle Aas fixed a few misunderstandings of mine regarding the perl internals, and optimized the emission of "tags" in the output streams by simply counting the objects instead of tagging them (leading to a binary incompatibility for the Storable image starting at version 0.6--older images are, of course, still properly understood). Murray Nesbitt made Storable thread-safe. Marc Lehmann added overloading and references to tied items support. Benjamin Holzman added a performance improvement for overloaded classes; thanks to Grant Street Group for footing the bill. Reini Urban took over maintenance from p5p, and added security fixes and huge object support. =head1 AUTHOR Storable was written by Raphael Manfredi FRaphael_Manfredi@pobox.comE> Maintenance is now done by cperl L Please e-mail us with problems, bug fixes, comments and complaints, although if you have compliments you should send them to Raphael. Please don't e-mail Raphael with problems, as he no longer works on Storable, and your message will be delayed while he forwards it to us. =head1 SEE ALSO L. =cut FILEa7517d56/Time/HiRes.pmd4package Time::HiRes; { use 5.006; } use strict; require Exporter; use XSLoader (); our @ISA = qw(Exporter); our @EXPORT = qw( ); # More or less this same list is in Makefile.PL. Should unify. our @EXPORT_OK = qw (usleep sleep ualarm alarm gettimeofday time tv_interval getitimer setitimer nanosleep clock_gettime clock_getres clock clock_nanosleep CLOCKS_PER_SEC CLOCK_BOOTTIME CLOCK_HIGHRES CLOCK_MONOTONIC CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC_FAST CLOCK_MONOTONIC_PRECISE CLOCK_MONOTONIC_RAW CLOCK_PROCESS_CPUTIME_ID CLOCK_PROF CLOCK_REALTIME CLOCK_REALTIME_COARSE CLOCK_REALTIME_FAST CLOCK_REALTIME_PRECISE CLOCK_REALTIME_RAW CLOCK_SECOND CLOCK_SOFTTIME CLOCK_THREAD_CPUTIME_ID CLOCK_TIMEOFDAY CLOCK_UPTIME CLOCK_UPTIME_COARSE CLOCK_UPTIME_FAST CLOCK_UPTIME_PRECISE CLOCK_UPTIME_RAW CLOCK_VIRTUAL ITIMER_PROF ITIMER_REAL ITIMER_REALPROF ITIMER_VIRTUAL TIMER_ABSTIME d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer d_nanosleep d_clock_gettime d_clock_getres d_clock d_clock_nanosleep d_hires_stat d_futimens d_utimensat d_hires_utime stat lstat utime ); our $VERSION = '1.9778'; our $XS_VERSION = $VERSION; $VERSION = eval $VERSION; our $AUTOLOAD; sub AUTOLOAD { my $constname; ($constname = $AUTOLOAD) =~ s/.*:://; # print "AUTOLOAD: constname = $constname ($AUTOLOAD)\n"; die "&Time::HiRes::constant not defined" if $constname eq 'constant'; my ($error, $val) = constant($constname); # print "AUTOLOAD: error = $error, val = $val\n"; if ($error) { my (undef,$file,$line) = caller; die "$error at $file line $line.\n"; } { no strict 'refs'; *$AUTOLOAD = sub { $val }; } goto &$AUTOLOAD; } sub import { for my $i (@_[1 .. $#_]) { if (($i eq 'clock_getres' && !&d_clock_getres) || ($i eq 'clock_gettime' && !&d_clock_gettime) || ($i eq 'clock_nanosleep' && !&d_clock_nanosleep) || ($i eq 'clock' && !&d_clock) || ($i eq 'nanosleep' && !&d_nanosleep) || ($i eq 'usleep' && !&d_usleep) || ($i eq 'utime' && !&d_hires_utime) || ($i eq 'ualarm' && !&d_ualarm)) { require Carp; Carp::croak("Time::HiRes::$i(): unimplemented in this platform"); } } goto &Exporter::import; } XSLoader::load( 'Time::HiRes', $XS_VERSION ); # Preloaded methods go here. sub tv_interval { # probably could have been done in C my ($a, $b) = @_; $b = [gettimeofday()] unless defined($b); (${$b}[0] - ${$a}[0]) + ((${$b}[1] - ${$a}[1]) / 1_000_000); } # Autoload methods go after =cut, and are processed by the autosplit program. 1; __END__ =head1 NAME Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers =head1 SYNOPSIS use Time::HiRes qw( usleep ualarm gettimeofday tv_interval nanosleep clock_gettime clock_getres clock_nanosleep clock stat lstat utime); usleep ($microseconds); nanosleep ($nanoseconds); ualarm ($microseconds); ualarm ($microseconds, $interval_microseconds); $t0 = [gettimeofday]; ($seconds, $microseconds) = gettimeofday; $elapsed = tv_interval ( $t0, [$seconds, $microseconds]); $elapsed = tv_interval ( $t0, [gettimeofday]); $elapsed = tv_interval ( $t0 ); use Time::HiRes qw ( time alarm sleep ); $now_fractions = time; sleep ($floating_seconds); alarm ($floating_seconds); alarm ($floating_seconds, $floating_interval); use Time::HiRes qw( setitimer getitimer ); setitimer ($which, $floating_seconds, $floating_interval ); getitimer ($which); use Time::HiRes qw( clock_gettime clock_getres clock_nanosleep CLOCK_REALTIME ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF ITIMER_REALPROF ); $realtime = clock_gettime(CLOCK_REALTIME); $resolution = clock_getres(CLOCK_REALTIME); clock_nanosleep(CLOCK_REALTIME, 1.5e9); clock_nanosleep(CLOCK_REALTIME, time()*1e9 + 10e9, TIMER_ABSTIME); my $ticktock = clock(); use Time::HiRes qw( stat lstat ); my @stat = stat("file"); my @stat = stat(FH); my @stat = lstat("file"); use Time::HiRes qw( utime ); utime $floating_seconds, $floating_seconds, file...; =head1 DESCRIPTION The C module implements a Perl interface to the C, C, C, C, and C/C system calls, in other words, high resolution time and timers. See the L section below and the test scripts for usage; see your system documentation for the description of the underlying C or C, C, C, and C/C calls. If your system lacks C or an emulation of it you don't get C or the one-argument form of C. If your system lacks all of C, C, C, and C, you don't get C, C, or C. If your system lacks both C and C you don't get C or C. If you try to import an unimplemented function in the C statement it will fail at compile time. If your subsecond sleeping is implemented with C instead of C, you can mix subsecond sleeping with signals since C does not use signals. This, however, is not portable, and you should first check for the truth value of C<&Time::HiRes::d_nanosleep> to see whether you have nanosleep, and then carefully read your C C API documentation for any peculiarities. If you are using C for something else than mixing sleeping with signals, give some thought to whether Perl is the tool you should be using for work requiring nanosecond accuracies. Remember that unless you are working on a I system, any clocks and timers will be imprecise, especially so if you are working in a pre-emptive multiuser system. Understand the difference between I and process time (in UNIX-like systems the sum of I and I times). Any attempt to sleep for X seconds will most probably end up sleeping B than that, but don't be surprised if you end up sleeping slightly B. The following functions can be imported from this module. No functions are exported by default. =over 4 =item gettimeofday () In array context returns a two-element array with the seconds and microseconds since the epoch. In scalar context returns floating seconds like C (see below). =item usleep ( $useconds ) Sleeps for the number of microseconds (millionths of a second) specified. Returns the number of microseconds actually slept. Can sleep for more than one second, unlike the C system call. Can also sleep for zero seconds, which often works like a I. See also L|/sleep ( $floating_seconds )>, and L|/clock_nanosleep ( $which, $nanoseconds, $flags = 0)>. Do not expect usleep() to be exact down to one microsecond. =item nanosleep ( $nanoseconds ) Sleeps for the number of nanoseconds (1e9ths of a second) specified. Returns the number of nanoseconds actually slept (accurate only to microseconds, the nearest thousand of them). Can sleep for more than one second. Can also sleep for zero seconds, which often works like a I. See also L|/sleep ( $floating_seconds )>, L|/usleep ( $useconds )>, and L|/clock_nanosleep ( $which, $nanoseconds, $flags = 0)>. Do not expect nanosleep() to be exact down to one nanosecond. Getting even accuracy of one thousand nanoseconds is good. =item ualarm ( $useconds [, $interval_useconds ] ) Issues a C call; the C<$interval_useconds> is optional and will be zero if unspecified, resulting in C-like behaviour. Returns the remaining time in the alarm in microseconds, or C if an error occurred. ualarm(0) will cancel an outstanding ualarm(). Note that the interaction between alarms and sleeps is unspecified. =item tv_interval tv_interval ( $ref_to_gettimeofday [, $ref_to_later_gettimeofday] ) Returns the floating seconds between the two times, which should have been returned by C. If the second argument is omitted, then the current time is used. =item time () Returns a floating seconds since the epoch. This function can be imported, resulting in a nice drop-in replacement for the C described later. For example, the C above declared no subroutine for any of the operators C<-->, C (the overload key for unary minus), or C<-=>. Thus operation | generates a call to ============|====================== -$x | minus($x, 0, 1) $x-- | minus($x, 1, undef) $x -= 3 | minus($x, 3, undef) Note the Cs: where autogeneration results in the method for a standard operator which does not change either of its operands, such as C<->, being used to implement an operator which changes the operand ("mutators": here, C<--> and C<-=>), Perl passes undef as the third argument. This still evaluates as FALSE, consistent with the fact that the operands have not been swapped, but gives the subroutine a chance to alter its behaviour in these cases. In all the above examples, C is required only to return the result of the subtraction: Perl takes care of the assignment to $x. In fact, such methods should I modify their operands, even if C is passed as the third argument (see L). The same is not true of implementations of C<++> and C<-->: these are expected to modify their operand. An appropriate implementation of C<--> might look like use overload '--' => "decr", # ... sub decr { --${$_[0]}; } If the "bitwise" feature is enabled (see L), a fifth TRUE argument is passed to subroutines handling C<&>, C<|>, C<^> and C<~>. This indicates that the caller is expecting numeric behaviour. The fourth argument will be C, as that position (C<$_[3]>) is reserved for use by L. =head3 Mathemagic, Mutators, and Copy Constructors The term 'mathemagic' describes the overloaded implementation of mathematical operators. Mathemagical operations raise an issue. Consider the code: $a = $b; --$a; If C<$a> and C<$b> are scalars then after these statements $a == $b - 1 An object, however, is a reference to blessed data, so if C<$a> and C<$b> are objects then the assignment C<$a = $b> copies only the reference, leaving C<$a> and C<$b> referring to the same object data. One might therefore expect the operation C<--$a> to decrement C<$b> as well as C<$a>. However, this would not be consistent with how we expect the mathematical operators to work. Perl resolves this dilemma by transparently calling a copy constructor before calling a method defined to implement a mutator (C<-->, C<+=>, and so on.). In the above example, when Perl reaches the decrement statement, it makes a copy of the object data in C<$a> and assigns to C<$a> a reference to the copied data. Only then does it call C, which alters the copied data, leaving C<$b> unchanged. Thus the object metaphor is preserved as far as possible, while mathemagical operations still work according to the arithmetic metaphor. Note: the preceding paragraph describes what happens when Perl autogenerates the copy constructor for an object based on a scalar. For other cases, see L. =head2 Overloadable Operations The complete list of keys that can be specified in the C directive are given, separated by spaces, in the values of the hash C<%overload::ops>: with_assign => '+ - * / % ** << >> x .', assign => '+= -= *= /= %= **= <<= >>= x= .=', num_comparison => '< <= > >= == !=', '3way_comparison' => '<=> cmp', str_comparison => 'lt le gt ge eq ne', binary => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=', unary => 'neg ! ~ ~.', mutators => '++ --', func => 'atan2 cos sin exp abs log sqrt int', conversion => 'bool "" 0+ qr', iterators => '<>', filetest => '-X', dereferencing => '${} @{} %{} &{} *{}', matching => '~~', special => 'nomethod fallback =', Most of the overloadable operators map one-to-one to these keys. Exceptions, including additional overloadable operations not apparent from this hash, are included in the notes which follow. This list is subject to growth over time. A warning is issued if an attempt is made to register an operator not found above. =over 5 =item * C The operator C is not a valid key for C. However, if the operator C is overloaded then the same implementation will be used for C (since the two operators differ only in precedence). =item * C The key C is used for unary minus to disambiguate it from binary C<->. =item * C<++>, C<--> Assuming they are to behave analogously to Perl's C<++> and C<-->, overloaded implementations of these operators are required to mutate their operands. No distinction is made between prefix and postfix forms of the increment and decrement operators: these differ only in the point at which Perl calls the associated subroutine when evaluating an expression. =item * I += -= *= /= %= **= <<= >>= x= .= &= |= ^= &.= |.= ^.= Simple assignment is not overloadable (the C<'='> key is used for the L). Perl does have a way to make assignments to an object do whatever you want, but this involves using tie(), not overload - see L and the L examples below. The subroutine for the assignment variant of an operator is required only to return the result of the operation. It is permitted to change the value of its operand (this is safe because Perl calls the copy constructor first), but this is optional since Perl assigns the returned value to the left-hand operand anyway. An object that overloads an assignment operator does so only in respect of assignments to that object. In other words, Perl never calls the corresponding methods with the third argument (the "swap" argument) set to TRUE. For example, the operation $a *= $b cannot lead to C<$b>'s implementation of C<*=> being called, even if C<$a> is a scalar. (It can, however, generate a call to C<$b>'s method for C<*>). =item * I + - * / % ** << >> x . & | ^ &. |. ^. As described L, Perl may call methods for operators like C<+> and C<&> in the course of implementing missing operations like C<++>, C<+=>, and C<&=>. While these methods may detect this usage by testing the definedness of the third argument, they should in all cases avoid changing their operands. This is because Perl does not call the copy constructor before invoking these methods. =item * C Traditionally, the Perl function C rounds to 0 (see L), and so for floating-point-like types one should follow the same semantic. =item * I "" 0+ bool These conversions are invoked according to context as necessary. For example, the subroutine for C<'""'> (stringify) may be used where the overloaded object is passed as an argument to C, and that for C<'bool'> where it is tested in the condition of a flow control statement (like C) or the ternary C operation. Of course, in contexts like, for example, C<$obj + 1>, Perl will invoke C<$obj>'s implementation of C<+> rather than (in this example) converting C<$obj> to a number using the numify method C<'0+'> (an exception to this is when no method has been provided for C<'+'> and L is set to TRUE). The subroutines for C<'""'>, C<'0+'>, and C<'bool'> can return any arbitrary Perl value. If the corresponding operation for this value is overloaded too, the operation will be called again with this value. As a special case if the overload returns the object itself then it will be used directly. An overloaded conversion returning the object is probably a bug, because you're likely to get something that looks like C. qr The subroutine for C<'qr'> is used wherever the object is interpolated into or used as a regexp, including when it appears on the RHS of a C<=~> or C operator. C must return a compiled regexp, or a ref to a compiled regexp (such as C returns), and any further overloading on the return value will be ignored. =item * I If CE> is overloaded then the same implementation is used for both the I syntax C$varE> and I syntax C${var}E>. =item * I The key C<'-X'> is used to specify a subroutine to handle all the filetest operators (C<-f>, C<-x>, and so on: see L for the full list); it is not possible to overload any filetest operator individually. To distinguish them, the letter following the '-' is passed as the second argument (that is, in the slot that for binary operators is used to pass the second operand). Calling an overloaded filetest operator does not affect the stat value associated with the special filehandle C<_>. It still refers to the result of the last C, C or unoverloaded filetest. This overload was introduced in Perl 5.12. =item * I The key C<"~~"> allows you to override the smart matching logic used by the C<~~> operator and the switch construct (C/C). See L and L. Unusually, the overloaded implementation of the smart match operator does not get full control of the smart match behaviour. In particular, in the following code: package Foo; use overload '~~' => 'match'; my $obj = Foo->new(); $obj ~~ [ 1,2,3 ]; the smart match does I invoke the method call like this: $obj->match([1,2,3],0); rather, the smart match distributive rule takes precedence, so $obj is smart matched against each array element in turn until a match is found, so you may see between one and three of these calls instead: $obj->match(1,0); $obj->match(2,0); $obj->match(3,0); Consult the match table in L for details of when overloading is invoked. =item * I ${} @{} %{} &{} *{} If these operators are not explicitly overloaded then they work in the normal way, yielding the underlying scalar, array, or whatever stores the object data (or the appropriate error message if the dereference operator doesn't match it). Defining a catch-all C<'nomethod'> (see L) makes no difference to this as the catch-all function will not be called to implement a missing dereference operator. If a dereference operator is overloaded then it must return a I of the appropriate type (for example, the subroutine for key C<'${}'> should return a reference to a scalar, not a scalar), or another object which overloads the operator: that is, the subroutine only determines what is dereferenced and the actual dereferencing is left to Perl. As a special case, if the subroutine returns the object itself then it will not be called again - avoiding infinite recursion. =item * I nomethod fallback = See L>. =back =head2 Magic Autogeneration If a method for an operation is not found then Perl tries to autogenerate a substitute implementation from the operations that have been defined. Note: the behaviour described in this section can be disabled by setting C to FALSE (see L). In the following tables, numbers indicate priority. For example, the table below states that, if no implementation for C<'!'> has been defined then Perl will implement it using C<'bool'> (that is, by inverting the value returned by the method for C<'bool'>); if boolean conversion is also unimplemented then Perl will use C<'0+'> or, failing that, C<'""'>. operator | can be autogenerated from | | 0+ "" bool . x =========|========================== 0+ | 1 2 "" | 1 2 bool | 1 2 int | 1 2 3 ! | 2 3 1 qr | 2 1 3 . | 2 1 3 x | 2 1 3 .= | 3 2 4 1 x= | 3 2 4 1 <> | 2 1 3 -X | 2 1 3 Note: The iterator (C<'EE'>) and file test (C<'-X'>) operators work as normal: if the operand is not a blessed glob or IO reference then it is converted to a string (using the method for C<'""'>, C<'0+'>, or C<'bool'>) to be interpreted as a glob or filename. operator | can be autogenerated from | | < <=> neg -= - =========|========================== neg | 1 -= | 1 -- | 1 2 abs | a1 a2 b1 b2 [*] < | 1 <= | 1 > | 1 >= | 1 == | 1 != | 1 * one from [a1, a2] and one from [b1, b2] Just as numeric comparisons can be autogenerated from the method for C<< '<=>' >>, string comparisons can be autogenerated from that for C<'cmp'>: operators | can be autogenerated from ====================|=========================== lt gt le ge eq ne | cmp Similarly, autogeneration for keys C<'+='> and C<'++'> is analogous to C<'-='> and C<'--'> above: operator | can be autogenerated from | | += + =========|========================== += | 1 ++ | 1 2 And other assignment variations are analogous to C<'+='> and C<'-='> (and similar to C<'.='> and C<'x='> above): operator || *= /= %= **= <<= >>= &= ^= |= &.= ^.= |.= -------------------||------------------------------------------- autogenerated from || * / % ** << >> & ^ | &. ^. |. Note also that the copy constructor (key C<'='>) may be autogenerated, but only for objects based on scalars. See L. =head3 Minimal Set of Overloaded Operations Since some operations can be automatically generated from others, there is a minimal set of operations that need to be overloaded in order to have the complete set of overloaded operations at one's disposal. Of course, the autogenerated operations may not do exactly what the user expects. The minimal set is: + - * / % ** << >> x <=> cmp & | ^ ~ &. |. ^. ~. atan2 cos sin exp log sqrt int "" 0+ bool ~~ Of the conversions, only one of string, boolean or numeric is needed because each can be generated from either of the other two. =head2 Special Keys for C =head3 C The C<'nomethod'> key is used to specify a catch-all function to be called for any operator that is not individually overloaded. The specified function will be passed four parameters. The first three arguments coincide with those that would have been passed to the corresponding method if it had been defined. The fourth argument is the C key for that missing method. If the "bitwise" feature is enabled (see L), a fifth TRUE argument is passed to subroutines handling C<&>, C<|>, C<^> and C<~> to indicate that the caller is expecting numeric behaviour. For example, if C<$a> is an object blessed into a package declaring use overload 'nomethod' => 'catch_all', # ... then the operation 3 + $a could (unless a method is specifically declared for the key C<'+'>) result in a call catch_all($a, 3, 1, '+') See L. =head3 C The value assigned to the key C<'fallback'> tells Perl how hard it should try to find an alternative way to implement a missing operator. =over =item * defined, but FALSE use overload "fallback" => 0, # ... ; This disables L. =item * C In the default case where no value is explicitly assigned to C, magic autogeneration is enabled. =item * TRUE The same as for C, but if a missing operator cannot be autogenerated then, instead of issuing an error message, Perl is allowed to revert to what it would have done for that operator if there had been no C directive. Note: in most cases, particularly the L, this is unlikely to be appropriate behaviour. =back See L. =head3 Copy Constructor As mentioned L, this operation is called when a mutator is applied to a reference that shares its object with some other reference. For example, if C<$b> is mathemagical, and C<'++'> is overloaded with C<'incr'>, and C<'='> is overloaded with C<'clone'>, then the code $a = $b; # ... (other code which does not modify $a or $b) ... ++$b; would be executed in a manner equivalent to $a = $b; # ... $b = $b->clone(undef, ""); $b->incr(undef, ""); Note: =over =item * The subroutine for C<'='> does not overload the Perl assignment operator: it is used only to allow mutators to work as described here. (See L above.) =item * As for other operations, the subroutine implementing '=' is passed three arguments, though the last two are always C and C<''>. =item * The copy constructor is called only before a call to a function declared to implement a mutator, for example, if C<++$b;> in the code above is effected via a method declared for key C<'++'> (or 'nomethod', passed C<'++'> as the fourth argument) or, by autogeneration, C<'+='>. It is not called if the increment operation is effected by a call to the method for C<'+'> since, in the equivalent code, $a = $b; $b = $b + 1; the data referred to by C<$a> is unchanged by the assignment to C<$b> of a reference to new object data. =item * The copy constructor is not called if Perl determines that it is unnecessary because there is no other reference to the data being modified. =item * If C<'fallback'> is undefined or TRUE then a copy constructor can be autogenerated, but only for objects based on scalars. In other cases it needs to be defined explicitly. Where an object's data is stored as, for example, an array of scalars, the following might be appropriate: use overload '=' => sub { bless [ @{$_[0]} ] }, # ... =item * If C<'fallback'> is TRUE and no copy constructor is defined then, for objects not based on scalars, Perl may silently fall back on simple assignment - that is, assignment of the object reference. In effect, this disables the copy constructor mechanism since no new copy of the object data is created. This is almost certainly not what you want. (It is, however, consistent: for example, Perl's fallback for the C<++> operator is to increment the reference itself.) =back =head2 How Perl Chooses an Operator Implementation Which is checked first, C or C? If the two operands of an operator are of different types and both overload the operator, which implementation is used? The following are the precedence rules: =over =item 1. If the first operand has declared a subroutine to overload the operator then use that implementation. =item 2. Otherwise, if fallback is TRUE or undefined for the first operand then see if the L allows another of its operators to be used instead. =item 3. Unless the operator is an assignment (C<+=>, C<-=>, etc.), repeat step (1) in respect of the second operand. =item 4. Repeat Step (2) in respect of the second operand. =item 5. If the first operand has a "nomethod" method then use that. =item 6. If the second operand has a "nomethod" method then use that. =item 7. If C is TRUE for both operands then perform the usual operation for the operator, treating the operands as numbers, strings, or booleans as appropriate for the operator (see note). =item 8. Nothing worked - die. =back Where there is only one operand (or only one operand with overloading) the checks in respect of the other operand above are skipped. There are exceptions to the above rules for dereference operations (which, if Step 1 fails, always fall back to the normal, built-in implementations - see Dereferencing), and for C<~~> (which has its own set of rules - see C under L above). Note on Step 7: some operators have a different semantic depending on the type of their operands. As there is no way to instruct Perl to treat the operands as, e.g., numbers instead of strings, the result here may not be what you expect. See L. =head2 Losing Overloading The restriction for the comparison operation is that even if, for example, C should return a blessed reference, the autogenerated C function will produce only a standard logical value based on the numerical value of the result of C. In particular, a working numeric conversion is needed in this case (possibly expressed in terms of other conversions). Similarly, C<.=> and C operators lose their mathemagical properties if the string conversion substitution is applied. When you chop() a mathemagical object it is promoted to a string and its mathemagical properties are lost. The same can happen with other operations as well. =head2 Inheritance and Overloading Overloading respects inheritance via the @ISA hierarchy. Inheritance interacts with overloading in two ways. =over =item Method names in the C directive If C in use overload key => value; is a string, it is interpreted as a method name - which may (in the usual way) be inherited from another class. =item Overloading of an operation is inherited by derived classes Any class derived from an overloaded class is also overloaded and inherits its operator implementations. If the same operator is overloaded in more than one ancestor then the implementation is determined by the usual inheritance rules. For example, if C inherits from C and C (in that order), C overloads C<+> with C<\&D::plus_sub>, and C overloads C<+> by C<"plus_meth">, then the subroutine C will be called to implement operation C<+> for an object in package C. =back Note that in Perl version prior to 5.18 inheritance of the C key was not governed by the above rules. The value of C in the first overloaded ancestor was used. This was fixed in 5.18 to follow the usual rules of inheritance. =head2 Run-time Overloading Since all C directives are executed at compile-time, the only way to change overloading during run-time is to eval 'use overload "+" => \&addmethod'; You can also use eval 'no overload "+", "--", "<="'; though the use of these constructs during run-time is questionable. =head2 Public Functions Package C provides the following public functions: =over 5 =item overload::StrVal(arg) Gives the string value of C as in the absence of stringify overloading. If you are using this to get the address of a reference (useful for checking if two references point to the same thing) then you may be better off using C or C, which are faster. =item overload::Overloaded(arg) Returns true if C is subject to overloading of some operations. =item overload::Method(obj,op) Returns C or a reference to the method that implements C. Such a method always takes three arguments, which will be enforced if it is an XS method. =back =head2 Overloading Constants For some applications, the Perl parser mangles constants too much. It is possible to hook into this process via C and C functions. These functions take a hash as an argument. The recognized keys of this hash are: =over 8 =item integer to overload integer constants, =item float to overload floating point constants, =item binary to overload octal and hexadecimal constants, =item q to overload C-quoted strings, constant pieces of C- and C-quoted strings and here-documents, =item qr to overload constant pieces of regular expressions. =back The corresponding values are references to functions which take three arguments: the first one is the I string form of the constant, the second one is how Perl interprets this constant, the third one is how the constant is used. Note that the initial string form does not contain string delimiters, and has backslashes in backslash-delimiter combinations stripped (thus the value of delimiter is not relevant for processing of this string). The return value of this function is how this constant is going to be interpreted by Perl. The third argument is undefined unless for overloaded C- and C- constants, it is C in single-quote context (comes from strings, regular expressions, and single-quote HERE documents), it is C for arguments of C/C operators, it is C for right-hand side of C-operator, and it is C otherwise. Since an expression C<"ab$cd,,"> is just a shortcut for C<'ab' . $cd . ',,'>, it is expected that overloaded constant strings are equipped with reasonable overloaded catenation operator, otherwise absurd results will result. Similarly, negative numbers are considered as negations of positive constants. Note that it is probably meaningless to call the functions overload::constant() and overload::remove_constant() from anywhere but import() and unimport() methods. From these methods they may be called as sub import { shift; return unless @_; die "unknown import: @_" unless @_ == 1 and $_[0] eq ':constant'; overload::constant integer => sub {Math::BigInt->new(shift)}; } =head1 IMPLEMENTATION What follows is subject to change RSN. The table of methods for all operations is cached in magic for the symbol table hash for the package. The cache is invalidated during processing of C, C, new function definitions, and changes in @ISA. (Every SVish thing has a magic queue, and magic is an entry in that queue. This is how a single variable may participate in multiple forms of magic simultaneously. For instance, environment variables regularly have two forms at once: their %ENV magic and their taint magic. However, the magic which implements overloading is applied to the stashes, which are rarely used directly, thus should not slow down Perl.) If a package uses overload, it carries a special flag. This flag is also set when new functions are defined or @ISA is modified. There will be a slight speed penalty on the very first operation thereafter that supports overloading, while the overload tables are updated. If there is no overloading present, the flag is turned off. Thus the only speed penalty thereafter is the checking of this flag. It is expected that arguments to methods that are not explicitly supposed to be changed are constant (but this is not enforced). =head1 COOKBOOK Please add examples to what follows! =head2 Two-face Scalars Put this in F in your Perl library directory: package two_face; # Scalars with separate string and # numeric values. sub new { my $p = shift; bless [@_], $p } use overload '""' => \&str, '0+' => \&num, fallback => 1; sub num {shift->[1]} sub str {shift->[0]} Use it as follows: require two_face; my $seven = two_face->new("vii", 7); printf "seven=$seven, seven=%d, eight=%d\n", $seven, $seven+1; print "seven contains 'i'\n" if $seven =~ /i/; (The second line creates a scalar which has both a string value, and a numeric value.) This prints: seven=vii, seven=7, eight=8 seven contains 'i' =head2 Two-face References Suppose you want to create an object which is accessible as both an array reference and a hash reference. package two_refs; use overload '%{}' => \&gethash, '@{}' => sub { $ {shift()} }; sub new { my $p = shift; bless \ [@_], $p; } sub gethash { my %h; my $self = shift; tie %h, ref $self, $self; \%h; } sub TIEHASH { my $p = shift; bless \ shift, $p } my %fields; my $i = 0; $fields{$_} = $i++ foreach qw{zero one two three}; sub STORE { my $self = ${shift()}; my $key = $fields{shift()}; defined $key or die "Out of band access"; $$self->[$key] = shift; } sub FETCH { my $self = ${shift()}; my $key = $fields{shift()}; defined $key or die "Out of band access"; $$self->[$key]; } Now one can access an object using both the array and hash syntax: my $bar = two_refs->new(3,4,5,6); $bar->[2] = 11; $bar->{two} == 11 or die 'bad hash fetch'; Note several important features of this example. First of all, the I type of $bar is a scalar reference, and we do not overload the scalar dereference. Thus we can get the I non-overloaded contents of $bar by just using C<$$bar> (what we do in functions which overload dereference). Similarly, the object returned by the TIEHASH() method is a scalar reference. Second, we create a new tied hash each time the hash syntax is used. This allows us not to worry about a possibility of a reference loop, which would lead to a memory leak. Both these problems can be cured. Say, if we want to overload hash dereference on a reference to an object which is I as a hash itself, the only problem one has to circumvent is how to access this I hash (as opposed to the I hash exhibited by the overloaded dereference operator). Here is one possible fetching routine: sub access_hash { my ($self, $key) = (shift, shift); my $class = ref $self; bless $self, 'overload::dummy'; # Disable overloading of %{} my $out = $self->{$key}; bless $self, $class; # Restore overloading $out; } To remove creation of the tied hash on each access, one may an extra level of indirection which allows a non-circular structure of references: package two_refs1; use overload '%{}' => sub { ${shift()}->[1] }, '@{}' => sub { ${shift()}->[0] }; sub new { my $p = shift; my $a = [@_]; my %h; tie %h, $p, $a; bless \ [$a, \%h], $p; } sub gethash { my %h; my $self = shift; tie %h, ref $self, $self; \%h; } sub TIEHASH { my $p = shift; bless \ shift, $p } my %fields; my $i = 0; $fields{$_} = $i++ foreach qw{zero one two three}; sub STORE { my $a = ${shift()}; my $key = $fields{shift()}; defined $key or die "Out of band access"; $a->[$key] = shift; } sub FETCH { my $a = ${shift()}; my $key = $fields{shift()}; defined $key or die "Out of band access"; $a->[$key]; } Now if $baz is overloaded like this, then C<$baz> is a reference to a reference to the intermediate array, which keeps a reference to an actual array, and the access hash. The tie()ing object for the access hash is a reference to a reference to the actual array, so =over =item * There are no loops of references. =item * Both "objects" which are blessed into the class C are references to a reference to an array, thus references to a I. Thus the accessor expression C<$$foo-E[$ind]> involves no overloaded operations. =back =head2 Symbolic Calculator Put this in F in your Perl library directory: package symbolic; # Primitive symbolic calculator use overload nomethod => \&wrap; sub new { shift; bless ['n', @_] } sub wrap { my ($obj, $other, $inv, $meth) = @_; ($obj, $other) = ($other, $obj) if $inv; bless [$meth, $obj, $other]; } This module is very unusual as overloaded modules go: it does not provide any usual overloaded operators, instead it provides an implementation for C>. In this example the C subroutine returns an object which encapsulates operations done over the objects: C<< symbolic->new(3) >> contains C<['n', 3]>, C<< 2 + symbolic->new(3) >> contains C<['+', 2, ['n', 3]]>. Here is an example of the script which "calculates" the side of circumscribed octagon using the above package: require symbolic; my $iter = 1; # 2**($iter+2) = 8 my $side = symbolic->new(1); my $cnt = $iter; while ($cnt--) { $side = (sqrt(1 + $side**2) - 1)/$side; } print "OK\n"; The value of $side is ['/', ['-', ['sqrt', ['+', 1, ['**', ['n', 1], 2]], undef], 1], ['n', 1]] Note that while we obtained this value using a nice little script, there is no simple way to I this value. In fact this value may be inspected in debugger (see L), but only if C Bption is set, and not via C

command. If one attempts to print this value, then the overloaded operator C<""> will be called, which will call C operator. The result of this operator will be stringified again, but this result is again of type C, which will lead to an infinite loop. Add a pretty-printer method to the module F: sub pretty { my ($meth, $a, $b) = @{+shift}; $a = 'u' unless defined $a; $b = 'u' unless defined $b; $a = $a->pretty if ref $a; $b = $b->pretty if ref $b; "[$meth $a $b]"; } Now one can finish the script by print "side = ", $side->pretty, "\n"; The method C is doing object-to-string conversion, so it is natural to overload the operator C<""> using this method. However, inside such a method it is not necessary to pretty-print the I $a and $b of an object. In the above subroutine C<"[$meth $a $b]"> is a catenation of some strings and components $a and $b. If these components use overloading, the catenation operator will look for an overloaded operator C<.>; if not present, it will look for an overloaded operator C<"">. Thus it is enough to use use overload nomethod => \&wrap, '""' => \&str; sub str { my ($meth, $a, $b) = @{+shift}; $a = 'u' unless defined $a; $b = 'u' unless defined $b; "[$meth $a $b]"; } Now one can change the last line of the script to print "side = $side\n"; which outputs side = [/ [- [sqrt [+ 1 [** [n 1 u] 2]] u] 1] [n 1 u]] and one can inspect the value in debugger using all the possible methods. Something is still amiss: consider the loop variable $cnt of the script. It was a number, not an object. We cannot make this value of type C, since then the loop will not terminate. Indeed, to terminate the cycle, the $cnt should become false. However, the operator C for checking falsity is overloaded (this time via overloaded C<"">), and returns a long string, thus any object of type C is true. To overcome this, we need a way to compare an object to 0. In fact, it is easier to write a numeric conversion routine. Here is the text of F with such a routine added (and slightly modified str()): package symbolic; # Primitive symbolic calculator use overload nomethod => \&wrap, '""' => \&str, '0+' => \# sub new { shift; bless ['n', @_] } sub wrap { my ($obj, $other, $inv, $meth) = @_; ($obj, $other) = ($other, $obj) if $inv; bless [$meth, $obj, $other]; } sub str { my ($meth, $a, $b) = @{+shift}; $a = 'u' unless defined $a; if (defined $b) { "[$meth $a $b]"; } else { "[$meth $a]"; } } my %subr = ( n => sub {$_[0]}, sqrt => sub {sqrt $_[0]}, '-' => sub {shift() - shift()}, '+' => sub {shift() + shift()}, '/' => sub {shift() / shift()}, '*' => sub {shift() * shift()}, '**' => sub {shift() ** shift()}, ); sub num { my ($meth, $a, $b) = @{+shift}; my $subr = $subr{$meth} or die "Do not know how to ($meth) in symbolic"; $a = $a->num if ref $a eq __PACKAGE__; $b = $b->num if ref $b eq __PACKAGE__; $subr->($a,$b); } All the work of numeric conversion is done in %subr and num(). Of course, %subr is not complete, it contains only operators used in the example below. Here is the extra-credit question: why do we need an explicit recursion in num()? (Answer is at the end of this section.) Use this module like this: require symbolic; my $iter = symbolic->new(2); # 16-gon my $side = symbolic->new(1); my $cnt = $iter; while ($cnt) { $cnt = $cnt - 1; # Mutator '--' not implemented $side = (sqrt(1 + $side**2) - 1)/$side; } printf "%s=%f\n", $side, $side; printf "pi=%f\n", $side*(2**($iter+2)); It prints (without so many line breaks) [/ [- [sqrt [+ 1 [** [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1] [n 1]] 2]]] 1] [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1] [n 1]]]=0.198912 pi=3.182598 The above module is very primitive. It does not implement mutator methods (C<++>, C<-=> and so on), does not do deep copying (not required without mutators!), and implements only those arithmetic operations which are used in the example. To implement most arithmetic operations is easy; one should just use the tables of operations, and change the code which fills %subr to my %subr = ( 'n' => sub {$_[0]} ); foreach my $op (split " ", $overload::ops{with_assign}) { $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}"; } my @bins = qw(binary 3way_comparison num_comparison str_comparison); foreach my $op (split " ", "@overload::ops{ @bins }") { $subr{$op} = eval "sub {shift() $op shift()}"; } foreach my $op (split " ", "@overload::ops{qw(unary func)}") { print "defining '$op'\n"; $subr{$op} = eval "sub {$op shift()}"; } Since subroutines implementing assignment operators are not required to modify their operands (see L above), we do not need anything special to make C<+=> and friends work, besides adding these operators to %subr and defining a copy constructor (needed since Perl has no way to know that the implementation of C<'+='> does not mutate the argument - see L). To implement a copy constructor, add C<< '=' => \&cpy >> to C line, and code (this code assumes that mutators change things one level deep only, so recursive copying is not needed): sub cpy { my $self = shift; bless [@$self], ref $self; } To make C<++> and C<--> work, we need to implement actual mutators, either directly, or in C. We continue to do things inside C, thus add if ($meth eq '++' or $meth eq '--') { @$obj = ($meth, (bless [@$obj]), 1); # Avoid circular reference return $obj; } after the first line of wrap(). This is not a most effective implementation, one may consider sub inc { $_[0] = bless ['++', shift, 1]; } instead. As a final remark, note that one can fill %subr by my %subr = ( 'n' => sub {$_[0]} ); foreach my $op (split " ", $overload::ops{with_assign}) { $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}"; } my @bins = qw(binary 3way_comparison num_comparison str_comparison); foreach my $op (split " ", "@overload::ops{ @bins }") { $subr{$op} = eval "sub {shift() $op shift()}"; } foreach my $op (split " ", "@overload::ops{qw(unary func)}") { $subr{$op} = eval "sub {$op shift()}"; } $subr{'++'} = $subr{'+'}; $subr{'--'} = $subr{'-'}; This finishes implementation of a primitive symbolic calculator in 50 lines of Perl code. Since the numeric values of subexpressions are not cached, the calculator is very slow. Here is the answer for the exercise: In the case of str(), we need no explicit recursion since the overloaded C<.>-operator will fall back to an existing overloaded operator C<"">. Overloaded arithmetic operators I fall back to numeric conversion if C is not explicitly requested. Thus without an explicit recursion num() would convert C<['+', $a, $b]> to C<$a + $b>, which would just rebuild the argument of num(). If you wonder why defaults for conversion are different for str() and num(), note how easy it was to write the symbolic calculator. This simplicity is due to an appropriate choice of defaults. One extra note: due to the explicit recursion num() is more fragile than sym(): we need to explicitly check for the type of $a and $b. If components $a and $b happen to be of some related type, this may lead to problems. =head2 I Symbolic Calculator One may wonder why we call the above calculator symbolic. The reason is that the actual calculation of the value of expression is postponed until the value is I. To see it in action, add a method sub STORE { my $obj = shift; $#$obj = 1; @$obj->[0,1] = ('=', shift); } to the package C. After this change one can do my $a = symbolic->new(3); my $b = symbolic->new(4); my $c = sqrt($a**2 + $b**2); and the numeric value of $c becomes 5. However, after calling $a->STORE(12); $b->STORE(5); the numeric value of $c becomes 13. There is no doubt now that the module symbolic provides a I calculator indeed. To hide the rough edges under the hood, provide a tie()d interface to the package C. Add methods sub TIESCALAR { my $pack = shift; $pack->new(@_) } sub FETCH { shift } sub nop { } # Around a bug (the bug, fixed in Perl 5.14, is described in L<"BUGS">). One can use this new interface as tie $a, 'symbolic', 3; tie $b, 'symbolic', 4; $a->nop; $b->nop; # Around a bug my $c = sqrt($a**2 + $b**2); Now numeric value of $c is 5. After C<$a = 12; $b = 5> the numeric value of $c becomes 13. To insulate the user of the module add a method sub vars { my $p = shift; tie($_, $p), $_->nop foreach @_; } Now my ($a, $b); symbolic->vars($a, $b); my $c = sqrt($a**2 + $b**2); $a = 3; $b = 4; printf "c5 %s=%f\n", $c, $c; $a = 12; $b = 5; printf "c13 %s=%f\n", $c, $c; shows that the numeric value of $c follows changes to the values of $a and $b. =head1 AUTHOR Ilya Zakharevich EFE. =head1 SEE ALSO The C pragma can be used to enable or disable overloaded operations within a lexical scope - see L. =head1 DIAGNOSTICS When Perl is run with the B<-Do> switch or its equivalent, overloading induces diagnostic messages. Using the C command of Perl debugger (see L) one can deduce which operations are overloaded (and which ancestor triggers this overloading). Say, if C is overloaded, then the method C<(eq> is shown by debugger. The method C<()> corresponds to the C key (in fact a presence of this method shows that this package has overloading enabled, and it is what is used by the C function of module C). The module might issue the following warnings: =over 4 =item Odd number of arguments for overload::constant (W) The call to overload::constant contained an odd number of arguments. The arguments should come in pairs. =item '%s' is not an overloadable type (W) You tried to overload a constant type the overload package is unaware of. =item '%s' is not a code reference (W) The second (fourth, sixth, ...) argument of overload::constant needs to be a code reference. Either an anonymous subroutine, or a reference to a subroutine. =item overload arg '%s' is invalid (W) C was passed an argument it did not recognize. Did you mistype an operator? =back =head1 BUGS AND PITFALLS =over =item * A pitfall when fallback is TRUE and Perl resorts to a built-in implementation of an operator is that some operators have more than one semantic, for example C<|>: use overload '0+' => sub { $_[0]->{n}; }, fallback => 1; my $x = bless { n => 4 }, "main"; my $y = bless { n => 8 }, "main"; print $x | $y, "\n"; You might expect this to output "12". In fact, it prints "<": the ASCII result of treating "|" as a bitwise string operator - that is, the result of treating the operands as the strings "4" and "8" rather than numbers. The fact that numify (C<0+>) is implemented but stringify (C<"">) isn't makes no difference since the latter is simply autogenerated from the former. The only way to change this is to provide your own subroutine for C<'|'>. =item * Magic autogeneration increases the potential for inadvertently creating self-referential structures. Currently Perl will not free self-referential structures until cycles are explicitly broken. For example, use overload '+' => 'add'; sub add { bless [ \$_[0], \$_[1] ] }; is asking for trouble, since $obj += $y; will effectively become $obj = add($obj, $y, undef); with the same result as $obj = [\$obj, \$foo]; Even if no I assignment-variants of operators are present in the script, they may be generated by the optimizer. For example, "obj = $obj\n" may be optimized to my $tmp = 'obj = ' . $obj; $tmp .= "\n"; =item * The symbol table is filled with names looking like line-noise. =item * This bug was fixed in Perl 5.18, but may still trip you up if you are using older versions: For the purpose of inheritance every overloaded package behaves as if C is present (possibly undefined). This may create interesting effects if some package is not overloaded, but inherits from two overloaded packages. =item * Before Perl 5.14, the relation between overloading and tie()ing was broken. Overloading was triggered or not based on the I class of the tie()d variable. This happened because the presence of overloading was checked too early, before any tie()d access was attempted. If the class of the value FETCH()ed from the tied variable does not change, a simple workaround for code that is to run on older Perl versions is to access the value (via C<() = $foo> or some such) immediately after tie()ing, so that after this call the I class coincides with the current one. =item * Barewords are not covered by overloaded string constants. =item * The range operator C<..> cannot be overloaded. =back =cut # ex: set ts=8 sts=4 sw=4 et: FILEa0c659a5/overloading.pmpackage overloading; use warnings; our $VERSION = '0.02'; my $HINT_NO_AMAGIC = 0x01000000; # see perl.h require 5.010001; sub _ops_to_nums { require overload::numbers; map { exists $overload::numbers::names{"($_"} ? $overload::numbers::names{"($_"} : do { require Carp; Carp::croak("'$_' is not a valid overload") } } @_; } sub import { my ( $class, @ops ) = @_; if ( @ops ) { if ( $^H{overloading} ) { vec($^H{overloading} , $_, 1) = 0 for _ops_to_nums(@ops); } if ( $^H{overloading} !~ /[^\0]/ ) { delete $^H{overloading}; $^H &= ~$HINT_NO_AMAGIC; } } else { delete $^H{overloading}; $^H &= ~$HINT_NO_AMAGIC; } } sub unimport { my ( $class, @ops ) = @_; if ( exists $^H{overloading} or not $^H & $HINT_NO_AMAGIC ) { if ( @ops ) { vec($^H{overloading} ||= '', $_, 1) = 1 for _ops_to_nums(@ops); } else { delete $^H{overloading}; } } $^H |= $HINT_NO_AMAGIC; } 1; __END__ =head1 NAME overloading - perl pragma to lexically control overloading =head1 SYNOPSIS { no overloading; my $str = "$object"; # doesn't call stringification overload } # it's lexical, so this stringifies: warn "$object"; # it can be enabled per op no overloading qw(""); warn "$object"; # and also reenabled use overloading; =head1 DESCRIPTION This pragma allows you to lexically disable or enable overloading. =over 6 =item C Disables overloading entirely in the current lexical scope. =item C Disables only specific overloads in the current lexical scope. =item C Reenables overloading in the current lexical scope. =item C Reenables overloading only for specific ops in the current lexical scope. =back =cut FILE490999b1/parent.pm package parent; use strict; our $VERSION = '0.244'; sub import { my $class = shift; my $inheritor = caller(0); if ( @_ and $_[0] eq '-norequire' ) { shift @_; } else { for ( my @filename = @_ ) { local @_; # protect us against the loaded module changing @_ s{::|'}{/}g; require "$_.pm"; # dies if the file is not found } } { no strict 'refs'; push @{"$inheritor\::ISA"}, @_; # dies if a loop is detected }; }; 1; __END__ =encoding utf8 =head1 NAME parent - Establish an ISA relationship with base classes at compile time =head1 SYNOPSIS package Baz; use parent qw(Foo Bar); =head1 DESCRIPTION Allows you to both load one or more modules, while setting up inheritance from those modules at the same time. Mostly similar in effect to package Baz; BEGIN { require Foo; require Bar; push @ISA, qw(Foo Bar); } By default, every base class needs to live in a file of its own. If you want to have a subclass and its parent class in the same file, you can tell C not to load any modules by using the C<-norequire> switch: package Foo; sub exclaim { "I CAN HAS PERL" } package DoesNotLoadFooBar; use parent -norequire, 'Foo', 'Bar'; # will not go looking for Foo.pm or Bar.pm This is equivalent to the following code: package Foo; sub exclaim { "I CAN HAS PERL" } package DoesNotLoadFooBar; push @DoesNotLoadFooBar::ISA, 'Foo', 'Bar'; This is also helpful for the case where a package lives within a differently named file: package MyHash; use Tie::Hash; use parent -norequire, 'Tie::StdHash'; This is equivalent to the following code: package MyHash; require Tie::Hash; push @ISA, 'Tie::StdHash'; If you want to load a subclass from a file that C would not consider an eligible filename (that is, it does not end in either C<.pm> or C<.pmc>), use the following code: package MySecondPlugin; require './plugins/custom.plugin'; # contains Plugin::Custom use parent -norequire, 'Plugin::Custom'; =head1 HISTORY This module was forked from L to remove the cruft that had accumulated in it. =head1 CAVEATS =head1 SEE ALSO =over 4 =item L =item L A fork of L that provides version checking in parent class modules. =back =head1 AUTHORS AND CONTRIBUTORS Rafaël Garcia-Suarez, Bart Lateur, Max Maischein, Anno Siegel, Michael Schwern =head1 MAINTAINER Max Maischein C< corion@cpan.org > Copyright (c) 2007-2017 Max Maischein C<< >> Based on the idea of C, which was introduced with Perl 5.004_04. =head1 LICENSE This module is released under the same terms as Perl itself. =cut FILE95b29963/strict.pmspackage strict; $strict::VERSION = "1.14"; my ( %bitmask, %explicit_bitmask ); BEGIN { # Verify that we're called correctly so that strictures will work. # Can't use Carp, since Carp uses us! # see also warnings.pm. die sprintf "Incorrect use of pragma '%s' at %s line %d.\n", __PACKAGE__, +(caller)[1,2] if __FILE__ !~ ( '(?x) \b '.__PACKAGE__.' \.pmc? \z' ) && __FILE__ =~ ( '(?x) \b (?i:'.__PACKAGE__.') \.pmc? \z' ); # which strictures are actually in force %bitmask = ( refs => 0x00000002, subs => 0x00000200, vars => 0x00000400, ); # which strictures have at some point been turned on or off explicitly # and must therefore not be touched by any subsequent `use VERSION` or `no VERSION` %explicit_bitmask = ( refs => 0x00000020, subs => 0x00000040, vars => 0x00000080, ); my $bits = 0; $bits |= $_ for values %bitmask; my $inline_all_bits = $bits; *all_bits = sub () { $inline_all_bits }; $bits = 0; $bits |= $_ for values %explicit_bitmask; my $inline_all_explicit_bits = $bits; *all_explicit_bits = sub () { $inline_all_explicit_bits }; } sub bits { my $do_explicit = caller eq __PACKAGE__; my $bits = 0; my @wrong; foreach my $s (@_) { if (exists $bitmask{$s}) { $bits |= $explicit_bitmask{$s} if $do_explicit; $bits |= $bitmask{$s}; } else { push @wrong, $s; } } if (@wrong) { require Carp; Carp::croak("Unknown 'strict' tag(s) '@wrong'"); } $bits; } sub import { shift; $^H |= @_ ? &bits : all_bits | all_explicit_bits; } sub unimport { shift; if (@_) { my $bits = &bits; $^H &= ~$bits; $^H |= all_explicit_bits & $bits; } else { $^H &= ~all_bits; $^H |= all_explicit_bits; } } 1; __END__ =head1 NAME strict - Perl pragma to restrict unsafe constructs =head1 SYNOPSIS use strict; use strict "vars"; use strict "refs"; use strict "subs"; use strict; no strict "vars"; =head1 DESCRIPTION The C pragma disables certain Perl expressions that could behave unexpectedly or are difficult to debug, turning them into errors. The effect of this pragma is limited to the current file or scope block. If no import list is supplied, all possible restrictions are assumed. (This is the safest mode to operate in, but is sometimes too strict for casual programming.) Currently, there are three possible things to be strict about: "subs", "vars", and "refs". =over 6 =item C This generates a runtime error if you use symbolic references (see L). use strict 'refs'; $ref = \$foo; print $$ref; # ok $ref = "foo"; print $$ref; # runtime error; normally ok $file = "STDOUT"; print $file "Hi!"; # error; note: no comma after $file There is one exception to this rule: $bar = \&{'foo'}; &$bar; is allowed so that C would not break under stricture. =item C This generates a compile-time error if you access a variable that was neither explicitly declared (using any of C, C, C, or C) nor fully qualified. (Because this is to avoid variable suicide problems and subtle dynamic scoping issues, a merely C variable isn't good enough.) See L, L, L, L, and L. use strict 'vars'; $X::foo = 1; # ok, fully qualified my $foo = 10; # ok, my() var local $baz = 9; # blows up, $baz not declared before package Cinna; our $bar; # Declares $bar in current package $bar = 'HgS'; # ok, global declared via pragma The local() generated a compile-time error because you just touched a global name without fully qualifying it. Because of their special use by sort(), the variables $a and $b are exempted from this check. =item C This disables the poetry optimization, generating a compile-time error if you try to use a bareword identifier that's not a subroutine, unless it is a simple identifier (no colons) and that it appears in curly braces, on the left hand side of the C<< => >> symbol, or has the unary minus operator applied to it. use strict 'subs'; $SIG{PIPE} = Plumber; # blows up $SIG{PIPE} = "Plumber"; # fine: quoted string is always ok $SIG{PIPE} = \&Plumber; # preferred form =back See L. =head1 HISTORY C, with Perl 5.6.1, erroneously permitted to use an unquoted compound identifier (e.g. C) as a hash key (before C<< => >> or inside curlies), but without forcing it always to a literal string. Starting with Perl 5.8.1 strict is strict about its restrictions: if unknown restrictions are used, the strict pragma will abort with Unknown 'strict' tag(s) '...' As of version 1.04 (Perl 5.10), strict verifies that it is used as "strict" to avoid the dreaded Strict trap on case insensitive file systems. Beginning with Perl 5.12, use of "use VERSION" (where VERSION >= 5.11.0) now lexically enables strictures just like "use strict" (in addition to the normal "use VERSION" effects and features.) In other words, "use v5.011" or higher now implies "use strict" automatically, as noted in L and L|perlfunc/use VERSION>. =cut FILEefadda20/utf8.pm*package utf8; use strict; use warnings; our $utf8_hint_bits = 0x00800000; our $ascii_hint_bits = 0x00000010; # Turned off when utf8 turned on our $VERSION = '1.27'; our $AUTOLOAD; sub import { $^H |= $utf8_hint_bits; $^H &= ~$ascii_hint_bits; } sub unimport { $^H &= ~$utf8_hint_bits; } sub AUTOLOAD { goto &$AUTOLOAD if defined &$AUTOLOAD; require Carp; Carp::croak("Undefined subroutine $AUTOLOAD called"); } 1; __END__ =head1 NAME utf8 - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code =head1 SYNOPSIS use utf8; no utf8; # Convert the internal representation of a Perl scalar to/from UTF-8. $num_octets = utf8::upgrade($string); $success = utf8::downgrade($string[, $fail_ok]); # Change each character of a Perl scalar to/from a series of # characters that represent the UTF-8 bytes of each original character. utf8::encode($string); # "\x{100}" becomes "\xc4\x80" utf8::decode($string); # "\xc4\x80" becomes "\x{100}" # Convert a code point from the platform native character set to # Unicode, and vice-versa. $unicode = utf8::native_to_unicode(ord('A')); # returns 65 on both # ASCII and EBCDIC # platforms $native = utf8::unicode_to_native(65); # returns 65 on ASCII # platforms; 193 on # EBCDIC $flag = utf8::is_utf8($string); # since Perl 5.8.1 $flag = utf8::valid($string); =head1 DESCRIPTION The C pragma tells the Perl parser to allow UTF-8 in the program text in the current lexical scope. The C pragma tells Perl to switch back to treating the source text as literal bytes in the current lexical scope. (On EBCDIC platforms, technically it is allowing UTF-EBCDIC, and not UTF-8, but this distinction is academic, so in this document the term UTF-8 is used to mean both). B The utility functions described below are directly usable without C. Because it is not possible to reliably tell UTF-8 from native 8 bit encodings, you need either a Byte Order Mark at the beginning of your source code, or C, to instruct perl. When UTF-8 becomes the standard source format, this pragma will effectively become a no-op. See also the effects of the C<-C> switch and its cousin, the C environment variable, in L. Enabling the C pragma has the following effect: =over 4 =item * Bytes in the source text that are not in the ASCII character set will be treated as being part of a literal UTF-8 sequence. This includes most literals such as identifier names, string constants, and constant regular expression patterns. =back Note that if you have non-ASCII, non-UTF-8 bytes in your script (for example embedded Latin-1 in your string literals), C will be unhappy. If you want to have such bytes under C, you can disable this pragma until the end the block (or file, if at top level) by C. =head2 Utility functions The following functions are defined in the C package by the Perl core. You do not need to say C to use these and in fact you should not say that unless you really want to have UTF-8 source code. =over 4 =item * C<$num_octets = utf8::upgrade($string)> (Since Perl v5.8.0) Converts in-place the internal representation of the string from an octet sequence in the native encoding (Latin-1 or EBCDIC) to UTF-8. The logical character sequence itself is unchanged. If I<$string> is already upgraded, then this is a no-op. Returns the number of octets necessary to represent the string as UTF-8. Since Perl v5.38, if C<$string> is C no action is taken; prior to that, it would be converted to be defined and zero-length. If your code needs to be compatible with versions of perl without C, you can force Unicode semantics on a given string: # force unicode semantics for $string without the # "unicode_strings" feature utf8::upgrade($string); For example: # without explicit or implicit use feature 'unicode_strings' my $x = "\xDF"; # LATIN SMALL LETTER SHARP S $x =~ /ss/i; # won't match my $y = uc($x); # won't convert utf8::upgrade($x); $x =~ /ss/i; # matches my $z = uc($x); # converts to "SS" B; use L instead. =item * C<$success = utf8::downgrade($string[, $fail_ok])> (Since Perl v5.8.0) Converts in-place the internal representation of the string from UTF-8 to the equivalent octet sequence in the native encoding (Latin-1 or EBCDIC). The logical character sequence itself is unchanged. If I<$string> is already stored as native 8 bit, then this is a no-op. Can be used to make sure that the UTF-8 flag is off, e.g. when you want to make sure that the substr() or length() function works with the usually faster byte algorithm. Fails if the original UTF-8 sequence cannot be represented in the native 8 bit encoding. On failure dies or, if the value of I<$fail_ok> is true, returns false. Returns true on success. If your code expects an octet sequence this can be used to validate that you've received one: # throw an exception if not representable as octets utf8::downgrade($string) # or do your own error handling utf8::downgrade($string, 1) or die "string must be octets"; B; use L instead. =item * C (Since Perl v5.8.0) Converts in-place the character sequence to the corresponding octet sequence in Perl's extended UTF-8. That is, every (possibly wide) character gets replaced with a sequence of one or more characters that represent the individual UTF-8 bytes of the character. The UTF8 flag is turned off. Returns nothing. my $x = "\x{100}"; # $x contains one character, with ord 0x100 utf8::encode($x); # $x contains two characters, with ords (on # ASCII platforms) 0xc4 and 0x80. On EBCDIC # 1047, this would instead be 0x8C and 0x41. Similar to: use Encode; $x = Encode::encode("utf8", $x); B; use L instead. =item * C<$success = utf8::decode($string)> (Since Perl v5.8.0) Attempts to convert in-place the octet sequence encoded in Perl's extended UTF-8 to the corresponding character sequence. That is, it replaces each sequence of characters in the string whose ords represent a valid (extended) UTF-8 byte sequence, with the corresponding single character. The UTF-8 flag is turned on only if the source string contains multiple-byte UTF-8 characters. If I<$string> is invalid as extended UTF-8, returns false; otherwise returns true. my $x = "\xc4\x80"; # $x contains two characters, with ords # 0xc4 and 0x80 utf8::decode($x); # On ASCII platforms, $x contains one char, # with ord 0x100. Since these bytes aren't # legal UTF-EBCDIC, on EBCDIC platforms, $x is # unchanged and the function returns FALSE. my $y = "\xc3\x83\xc2\xab"; This has been encoded twice; this # example is only for ASCII platforms utf8::decode($y); # Converts $y to \xc3\xab, returns TRUE; utf8::decode($y); # Further converts to \xeb, returns TRUE; utf8::decode($y); # Returns FALSE, leaves $y unchanged B; use L instead. =item * C<$unicode = utf8::native_to_unicode($code_point)> (Since Perl v5.8.0) This takes an unsigned integer (which represents the ordinal number of a character (or a code point) on the platform the program is being run on) and returns its Unicode equivalent value. Since ASCII platforms natively use the Unicode code points, this function returns its input on them. On EBCDIC platforms it converts from EBCDIC to Unicode. A meaningless value will currently be returned if the input is not an unsigned integer. Since Perl v5.22.0, calls to this function are optimized out on ASCII platforms, so there is no performance hit in using it there. =item * C<$native = utf8::unicode_to_native($code_point)> (Since Perl v5.8.0) This is the inverse of C, converting the other direction. Again, on ASCII platforms, this returns its input, but on EBCDIC platforms it will find the native platform code point, given any Unicode one. A meaningless value will currently be returned if the input is not an unsigned integer. Since Perl v5.22.0, calls to this function are optimized out on ASCII platforms, so there is no performance hit in using it there. =item * C<$flag = utf8::is_utf8($string)> (Since Perl 5.8.1) Test whether I<$string> is marked internally as encoded in UTF-8. Functionally the same as C. Typically only necessary for debugging and testing, if you need to dump the internals of an SV, L Dump() provides more detail in a compact form. If you still think you need this outside of debugging, testing or dealing with filenames, you should probably read L and L. Don't use this flag as a marker to distinguish character and binary data: that should be decided for each variable when you write your code. To force unicode semantics in code portable to perl 5.8 and 5.10, call C unconditionally. =item * C<$flag = utf8::valid($string)> [INTERNAL] Test whether I<$string> is in a consistent state regarding UTF-8. Will return true if it is well-formed Perl extended UTF-8 and has the UTF-8 flag on B if I<$string> is held as bytes (both these states are 'consistent'). The main reason for this routine is to allow Perl's test suite to check that operations have left strings in a consistent state. =back C is like C, but the UTF8 flag is cleared. See L, and the C API functions C>, C>, C>, and C>, which are wrapped by the Perl functions C, C, C and C. Also, the functions C, C, C, C, C, and C are actually internal, and thus always available, without a C statement. =head1 BUGS Some filesystems may not support UTF-8 file names, or they may be supported incompatibly with Perl. Therefore UTF-8 names that are visible to the filesystem, such as module names may not work. =head1 SEE ALSO L, L, L, L, L =cut FILEab7f7a02/vars.pm package vars; use 5.006; our $VERSION = '1.05'; use warnings::register; use strict qw(vars subs); sub import { my $callpack = caller; my (undef, @imports) = @_; my ($sym, $ch); foreach (@imports) { if (($ch, $sym) = /^([\$\@\%\*\&])(.+)/) { if ($sym =~ /\W/) { # time for a more-detailed check-up if ($sym =~ /^\w+[[{].*[]}]$/) { require Carp; Carp::croak("Can't declare individual elements of hash or array"); } elsif (warnings::enabled() and length($sym) == 1 and $sym !~ tr/a-zA-Z//) { warnings::warn("No need to declare built-in vars"); } elsif (($^H & strict::bits('vars'))) { require Carp; Carp::croak("'$_' is not a valid variable name under strict vars"); } } $sym = "${callpack}::$sym" unless $sym =~ /::/; *$sym = ( $ch eq "\$" ? \$$sym : $ch eq "\@" ? \@$sym : $ch eq "\%" ? \%$sym : $ch eq "\*" ? \*$sym : $ch eq "\&" ? \&$sym : do { require Carp; Carp::croak("'$_' is not a valid variable name"); }); } else { require Carp; Carp::croak("'$_' is not a valid variable name"); } } }; 1; __END__ =head1 NAME vars - Perl pragma to predeclare global variable names =head1 SYNOPSIS use vars qw($frob @mung %seen); =head1 DESCRIPTION NOTE: For use with variables in the current package for a single scope, the functionality provided by this pragma has been superseded by C declarations, available in Perl v5.6.0 or later, and use of this pragma is discouraged. See L. This pragma will predeclare all the variables whose names are in the list, allowing you to use them under C, and disabling any typo warnings for them. Unlike pragmas that affect the C<$^H> hints variable, the C and C declarations are not lexically scoped to the block they appear in: they affect the entire package in which they appear. It is not possible to rescind these declarations with C or C. Packages such as the B and B that delay loading of subroutines within packages can create problems with package lexicals defined using C. While the B pragma cannot duplicate the effect of package lexicals (total transparency outside of the package), it can act as an acceptable substitute by pre-declaring global symbols, ensuring their availability to the later-loaded routines. See L. =cut FILE6812ffab/warnings.pm# -*- mode: Perl; buffer-read-only: t -*- # !!!!!!! DO NOT EDIT THIS FILE !!!!!!! # This file is built by regen/warnings.pl. # Any changes made here will be lost! package warnings; our $VERSION = "1.74"; # Verify that we're called correctly so that warnings will work. # Can't use Carp, since Carp uses us! # String regexps because constant folding = smaller optree = less memory vs regexp literal # see also strict.pm. die sprintf "Incorrect use of pragma '%s' at %s line %d.\n", __PACKAGE__, +(caller)[1,2] if __FILE__ !~ ( '(?x) \b '.__PACKAGE__.' \.pmc? \z' ) && __FILE__ =~ ( '(?x) \b (?i:'.__PACKAGE__.') \.pmc? \z' ); our %Offsets = ( # Warnings Categories added in Perl 5.008 'all' => 0, 'closure' => 2, 'deprecated' => 4, 'exiting' => 6, 'glob' => 8, 'io' => 10, 'closed' => 12, 'exec' => 14, 'layer' => 16, 'newline' => 18, 'pipe' => 20, 'unopened' => 22, 'misc' => 24, 'numeric' => 26, 'once' => 28, 'overflow' => 30, 'pack' => 32, 'portable' => 34, 'recursion' => 36, 'redefine' => 38, 'regexp' => 40, 'severe' => 42, 'debugging' => 44, 'inplace' => 46, 'internal' => 48, 'malloc' => 50, 'signal' => 52, 'substr' => 54, 'syntax' => 56, 'ambiguous' => 58, 'bareword' => 60, 'digit' => 62, 'parenthesis' => 64, 'precedence' => 66, 'printf' => 68, 'prototype' => 70, 'qw' => 72, 'reserved' => 74, 'semicolon' => 76, 'taint' => 78, 'threads' => 80, 'uninitialized' => 82, 'unpack' => 84, 'untie' => 86, 'utf8' => 88, 'void' => 90, # Warnings Categories added in Perl 5.011 'imprecision' => 92, 'illegalproto' => 94, # Warnings Categories added in Perl 5.011003 'deprecated::goto_construct' => 96, 'deprecated::unicode_property_name' => 98, # Warnings Categories added in Perl 5.013 'non_unicode' => 100, 'nonchar' => 102, 'surrogate' => 104, # Warnings Categories added in Perl 5.017 'experimental' => 106, 'experimental::regex_sets' => 108, # Warnings Categories added in Perl 5.019 'syscalls' => 110, # Warnings Categories added in Perl 5.021 'experimental::re_strict' => 112, 'experimental::refaliasing' => 114, 'locale' => 116, 'missing' => 118, 'redundant' => 120, # Warnings Categories added in Perl 5.025 'experimental::declared_refs' => 122, # Warnings Categories added in Perl 5.025011 'deprecated::dot_in_inc' => 124, # Warnings Categories added in Perl 5.027 'shadow' => 126, # Warnings Categories added in Perl 5.029 'experimental::private_use' => 128, 'experimental::uniprop_wildcards' => 130, 'experimental::vlb' => 132, # Warnings Categories added in Perl 5.033 'experimental::try' => 134, # Warnings Categories added in Perl 5.035 'experimental::args_array_with_signatures'=> 136, 'experimental::builtin' => 138, 'experimental::defer' => 140, 'experimental::extra_paired_delimiters'=> 142, 'scalar' => 144, # Warnings Categories added in Perl 5.035009 'deprecated::version_downgrade' => 146, # Warnings Categories added in Perl 5.03501 'deprecated::delimiter_will_be_paired'=> 148, # Warnings Categories added in Perl 5.037 'experimental::class' => 150, # Warnings Categories added in Perl 5.039002 'deprecated::missing_import_called_with_args'=> 152, # Warnings Categories added in Perl 5.039008 'deprecated::subsequent_use_version'=> 154, # Warnings Categories added in Perl 5.041 'experimental::keyword_all' => 156, 'experimental::keyword_any' => 158, ); our %Bits = ( 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..79] 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29] 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30] 'closed' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6] 'closure' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1] 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22] 'deprecated' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x10\x00\x00\x14\x05", # [2,48,49,62,73,74,76,77] 'deprecated::delimiter_will_be_paired'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [74] 'deprecated::dot_in_inc' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [62] 'deprecated::goto_construct' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [48] 'deprecated::missing_import_called_with_args'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [76] 'deprecated::subsequent_use_version'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [77] 'deprecated::unicode_property_name' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [49] 'deprecated::version_downgrade' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [73] 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31] 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7] 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3] 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x05\x04\x55\x55\x40\x50", # [53,54,56,57,61,64..71,75,78,79] 'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [68] 'experimental::builtin' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [69] 'experimental::class' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [75] 'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [61] 'experimental::defer' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [70] 'experimental::extra_paired_delimiters'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [71] 'experimental::keyword_all' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [78] 'experimental::keyword_any' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [79] 'experimental::private_use' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [64] 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [56] 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [57] 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [54] 'experimental::try' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [67] 'experimental::uniprop_wildcards' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [65] 'experimental::vlb' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [66] 'glob' => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4] 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [47] 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [46] 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23] 'internal' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24] 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [5..11,55] 'layer' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8] 'locale' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [58] 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25] 'misc' => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12] 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [59] 'newline' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9] 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [50] 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [51] 'numeric' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13] 'once' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14] 'overflow' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15] 'pack' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16] 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [32] 'pipe' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10] 'portable' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17] 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [33] 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [34] 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [35] 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [36] 'recursion' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18] 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19] 'redundant' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [60] 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20] 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [37] 'scalar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [72] 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [38] 'severe' => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25] 'shadow' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [63] 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26] 'substr' => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27] 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [52] 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [28..38,47] 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [55] 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [39] 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [40] 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [41] 'unopened' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11] 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [42] 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [43] 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x50\x01\x00\x00\x00\x00\x00\x00", # [44,50..52] 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [45] ); our %DeadBits = ( 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", # [0..79] 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29] 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30] 'closed' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6] 'closure' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1] 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22] 'deprecated' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x20\x00\x00\x28\x0a", # [2,48,49,62,73,74,76,77] 'deprecated::delimiter_will_be_paired'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [74] 'deprecated::dot_in_inc' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [62] 'deprecated::goto_construct' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [48] 'deprecated::missing_import_called_with_args'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [76] 'deprecated::subsequent_use_version'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [77] 'deprecated::unicode_property_name' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [49] 'deprecated::version_downgrade' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [73] 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31] 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7] 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3] 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x0a\x08\xaa\xaa\x80\xa0", # [53,54,56,57,61,64..71,75,78,79] 'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [68] 'experimental::builtin' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [69] 'experimental::class' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [75] 'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [61] 'experimental::defer' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [70] 'experimental::extra_paired_delimiters'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [71] 'experimental::keyword_all' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [78] 'experimental::keyword_any' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [79] 'experimental::private_use' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [64] 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [56] 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [57] 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [54] 'experimental::try' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [67] 'experimental::uniprop_wildcards' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [65] 'experimental::vlb' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [66] 'glob' => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4] 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [47] 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [46] 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23] 'internal' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24] 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [5..11,55] 'layer' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8] 'locale' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [58] 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25] 'misc' => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12] 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [59] 'newline' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9] 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [50] 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [51] 'numeric' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13] 'once' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14] 'overflow' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15] 'pack' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16] 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [32] 'pipe' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10] 'portable' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17] 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [33] 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [34] 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [35] 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [36] 'recursion' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18] 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19] 'redundant' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [60] 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20] 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [37] 'scalar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [72] 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [38] 'severe' => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25] 'shadow' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [63] 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26] 'substr' => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27] 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [52] 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [28..38,47] 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [55] 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [39] 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [40] 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [41] 'unopened' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11] 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [42] 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [43] 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xa0\x02\x00\x00\x00\x00\x00\x00", # [44,50..52] 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [45] ); our %NoOp = ( 'deprecated::smartmatch' => 1, 'experimental::alpha_assertions' => 1, 'experimental::bitwise' => 1, 'experimental::const_attr' => 1, 'experimental::for_list' => 1, 'experimental::isa' => 1, 'experimental::lexical_subs' => 1, 'experimental::postderef' => 1, 'experimental::script_run' => 1, 'experimental::signatures' => 1, 'experimental::smartmatch' => 1, ); # These are used by various things, including our own tests our $NONE = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; our $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x05\x00\x15\x14\x55\x55\x54\x55"; # [2,4,22,23,25,48,49,56..58,61,62,64..71,73..79] our $LAST_BIT = 160 ; our $BYTES = 20 ; sub Croaker { require Carp; # this initializes %CarpInternal local $Carp::CarpInternal{'warnings'}; delete $Carp::CarpInternal{'warnings'}; Carp::croak(@_); } sub _expand_bits { my $bits = shift; my $want_len = ($LAST_BIT + 7) >> 3; my $len = length($bits); if ($len != $want_len) { if ($bits eq "") { $bits = "\x00" x $want_len; } elsif ($len > $want_len) { substr $bits, $want_len, $len-$want_len, ""; } else { my $x = vec($bits, $Offsets{all} >> 1, 2); $x |= $x << 2; $x |= $x << 4; $bits .= chr($x) x ($want_len - $len); } } return $bits; } sub _bits { my $mask = shift ; my $catmask ; my $fatal = 0 ; my $no_fatal = 0 ; $mask = _expand_bits($mask); foreach my $word ( @_ ) { next if $NoOp{$word}; if ($word eq 'FATAL') { $fatal = 1; $no_fatal = 0; } elsif ($word eq 'NONFATAL') { $fatal = 0; $no_fatal = 1; } elsif ($catmask = $Bits{$word}) { $mask |= $catmask ; $mask |= $DeadBits{$word} if $fatal ; $mask = ~(~$mask | $DeadBits{$word}) if $no_fatal ; } else { Croaker("Unknown warnings category '$word'")} } return $mask ; } sub bits { # called from B::Deparse.pm push @_, 'all' unless @_ ; return _bits("", @_) ; } sub import { my $invocant = shift; # append 'all' when implied (empty import list or after a lone # "FATAL" or "NONFATAL") push @_, 'all' if !@_ || (@_==1 && ($_[0] eq 'FATAL' || $_[0] eq 'NONFATAL')); my @fatal = (); foreach my $warning (@_) { if($warning =~ /^(NON)?FATAL$/) { @fatal = ($warning); } elsif(substr($warning, 0, 1) ne '-') { my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ; ${^WARNING_BITS} = _bits($mask, @fatal, $warning); } else { $invocant->unimport(substr($warning, 1)); } } } sub unimport { shift; my $catmask ; my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ; # append 'all' when implied (empty import list or after a lone "FATAL") push @_, 'all' if !@_ || @_==1 && $_[0] eq 'FATAL'; $mask = _expand_bits($mask); foreach my $word ( @_ ) { next if $NoOp{$word}; if ($word eq 'FATAL') { next; } elsif ($catmask = $Bits{$word}) { $mask = ~(~$mask | $catmask | $DeadBits{$word}); } else { Croaker("Unknown warnings category '$word'")} } ${^WARNING_BITS} = $mask ; } my %builtin_type; @builtin_type{qw(SCALAR ARRAY HASH CODE REF GLOB LVALUE Regexp)} = (); sub LEVEL () { 8 }; sub MESSAGE () { 4 }; sub FATAL () { 2 }; sub NORMAL () { 1 }; sub __chk { my $category ; my $offset ; my $isobj = 0 ; my $wanted = shift; my $has_message = $wanted & MESSAGE; my $has_level = $wanted & LEVEL ; if ($has_level) { if (@_ != ($has_message ? 3 : 2)) { my $sub = (caller 1)[3]; my $syntax = $has_message ? "category, level, 'message'" : 'category, level'; Croaker("Usage: $sub($syntax)"); } } elsif (not @_ == 1 || @_ == ($has_message ? 2 : 0)) { my $sub = (caller 1)[3]; my $syntax = $has_message ? "[category,] 'message'" : '[category]'; Croaker("Usage: $sub($syntax)"); } my $message = pop if $has_message; if (@_) { # check the category supplied. $category = shift ; if (my $type = ref $category) { Croaker("not an object") if exists $builtin_type{$type}; $category = $type; $isobj = 1 ; } $offset = $Offsets{$category}; Croaker("Unknown warnings category '$category'") unless defined $offset; } else { $category = caller(1); $offset = $Offsets{$category}; Croaker("package '$category' not registered for warnings") unless defined $offset ; } my $i; if ($isobj) { my $pkg; $i = 2; while (do { { package DB; $pkg = (caller($i++))[0] } } ) { last unless @DB::args && $DB::args[0] =~ /^$category=/ ; } $i -= 2 ; } elsif ($has_level) { $i = 2 + shift; } else { $i = _error_loc(); # see where Carp will allocate the error } # Default to 0 if caller returns nothing. Default to $DEFAULT if it # explicitly returns undef. my(@callers_bitmask) = (caller($i))[9] ; my $callers_bitmask = @callers_bitmask ? $callers_bitmask[0] // $DEFAULT : 0 ; length($callers_bitmask) > ($offset >> 3) or $offset = $Offsets{all}; my @results; foreach my $type (FATAL, NORMAL) { next unless $wanted & $type; push @results, vec($callers_bitmask, $offset + $type - 1, 1); } # &enabled and &fatal_enabled return $results[0] unless $has_message; # &warnif, and the category is neither enabled as warning nor as fatal return if ($wanted & (NORMAL | FATAL | MESSAGE)) == (NORMAL | FATAL | MESSAGE) && !($results[0] || $results[1]); # If we have an explicit level, bypass Carp. if ($has_level and @callers_bitmask) { # logic copied from util.c:mess_sv my $stuff = " at " . join " line ", (caller $i)[1,2]; $stuff .= sprintf ", <%s> %s %d", *${^LAST_FH}{NAME}, ($/ eq "\n" ? "line" : "chunk"), $. if $. && ${^LAST_FH}; die "$message$stuff.\n" if $results[0]; return warn "$message$stuff.\n"; } require Carp; Carp::croak($message) if $results[0]; # will always get here for &warn. will only get here for &warnif if the # category is enabled Carp::carp($message); } sub _mkMask { my ($bit) = @_; my $mask = ""; vec($mask, $bit, 1) = 1; return $mask; } sub register_categories { my @names = @_; for my $name (@names) { if (! defined $Bits{$name}) { $Offsets{$name} = $LAST_BIT; $Bits{$name} = _mkMask($LAST_BIT++); $DeadBits{$name} = _mkMask($LAST_BIT++); if (length($Bits{$name}) > length($Bits{all})) { $Bits{all} .= "\x55"; $DeadBits{all} .= "\xaa"; } } } } sub _error_loc { require Carp; goto &Carp::short_error_loc; # don't introduce another stack frame } sub enabled { return __chk(NORMAL, @_); } sub fatal_enabled { return __chk(FATAL, @_); } sub warn { return __chk(FATAL | MESSAGE, @_); } sub warnif { return __chk(NORMAL | FATAL | MESSAGE, @_); } sub enabled_at_level { return __chk(NORMAL | LEVEL, @_); } sub fatal_enabled_at_level { return __chk(FATAL | LEVEL, @_); } sub warn_at_level { return __chk(FATAL | MESSAGE | LEVEL, @_); } sub warnif_at_level { return __chk(NORMAL | FATAL | MESSAGE | LEVEL, @_); } # These are not part of any public interface, so we can delete them to save # space. delete @warnings::{qw(NORMAL FATAL MESSAGE LEVEL)}; 1; __END__ =head1 NAME warnings - Perl pragma to control optional warnings =head1 SYNOPSIS use warnings; no warnings; # Standard warnings are enabled by use v5.35 or above use v5.35; use warnings "all"; no warnings "uninitialized"; # or equivalent to those last two ... use warnings qw(all -uninitialized); use warnings::register; if (warnings::enabled()) { warnings::warn("some warning"); } if (warnings::enabled("void")) { warnings::warn("void", "some warning"); } if (warnings::enabled($object)) { warnings::warn($object, "some warning"); } warnings::warnif("some warning"); warnings::warnif("void", "some warning"); warnings::warnif($object, "some warning"); =head1 DESCRIPTION The C pragma gives control over which warnings are enabled in which parts of a Perl program. It's a more flexible alternative for both the command line flag B<-w> and the equivalent Perl variable, C<$^W>. This pragma works just like the C pragma. This means that the scope of the warning pragma is limited to the enclosing block. It also means that the pragma setting will not leak across files (via C, C or C). This allows authors to independently define the degree of warning checks that will be applied to their module. By default, optional warnings are disabled, so any legacy code that doesn't attempt to control the warnings will work unchanged. All warnings are enabled in a block by either of these: use warnings; use warnings 'all'; Similarly all warnings are disabled in a block by either of these: no warnings; no warnings 'all'; For example, consider the code below: use warnings; my @x; { no warnings; my $y = @x[0]; } my $z = @x[0]; The code in the enclosing block has warnings enabled, but the inner block has them disabled. In this case that means the assignment to the scalar C<$z> will trip the C<"Scalar value @x[0] better written as $x[0]"> warning, but the assignment to the scalar C<$y> will not. All warnings are enabled automatically within the scope of a C> (or higher) declaration. =head2 Default Warnings and Optional Warnings Before the introduction of lexical warnings, Perl had two classes of warnings: mandatory and optional. As its name suggests, if your code tripped a mandatory warning, you would get a warning whether you wanted it or not. For example, the code below would always produce an C<"isn't numeric"> warning about the "2:". my $x = "2:" + 3; With the introduction of lexical warnings, mandatory warnings now become I warnings. The difference is that although the previously mandatory warnings are still enabled by default, they can then be subsequently enabled or disabled with the lexical warning pragma. For example, in the code below, an C<"isn't numeric"> warning will only be reported for the C<$x> variable. my $x = "2:" + 3; no warnings; my $y = "2:" + 3; Note that neither the B<-w> flag or the C<$^W> can be used to disable/enable default warnings. They are still mandatory in this case. =head2 "Negative warnings" As a convenience, you can (as of Perl 5.34) pass arguments to the C method both positively and negatively. Negative warnings are those with a C<-> sign prepended to their names; positive warnings are anything else. This lets you turn on some warnings and turn off others in one command. So, assuming that you've already turned on a bunch of warnings but want to tweak them a bit in some block, you can do this: { use warnings qw(uninitialized -redefine); ... } which is equivalent to: { use warnings qw(uninitialized); no warnings qw(redefine); ... } The argument list is processed in the order you specify. So, for example, if you don't want to be warned about use of experimental features, except for C that you really dislike, you can say this: use warnings qw(all -experimental experimental::somefeature); which is equivalent to: use warnings 'all'; no warnings 'experimental'; use warnings 'experimental::somefeature'; As experimental features become regular features of Perl, the corresponding warnings are not printed anymore. They also stop being listed in the L below. It is still possible to request turning on or off these warnings, but doing so has no effect. =head2 What's wrong with B<-w> and C<$^W> Although very useful, the big problem with using B<-w> on the command line to enable warnings is that it is all or nothing. Take the typical scenario when you are writing a Perl program. Parts of the code you will write yourself, but it's very likely that you will make use of pre-written Perl modules. If you use the B<-w> flag in this case, you end up enabling warnings in pieces of code that you haven't written. Similarly, using C<$^W> to either disable or enable blocks of code is fundamentally flawed. For a start, say you want to disable warnings in a block of code. You might expect this to be enough to do the trick: { local ($^W) = 0; my $x =+ 2; my $y; chop $y; } When this code is run with the B<-w> flag, a warning will be produced for the C<$x> line: C<"Reversed += operator">. The problem is that Perl has both compile-time and run-time warnings. To disable compile-time warnings you need to rewrite the code like this: { BEGIN { $^W = 0 } my $x =+ 2; my $y; chop $y; } And note that unlike the first example, this will permanently set C<$^W> since it cannot both run during compile-time and be localized to a run-time block. The other big problem with C<$^W> is the way you can inadvertently change the warning setting in unexpected places in your code. For example, when the code below is run (without the B<-w> flag), the second call to C will trip a C<"Use of uninitialized value"> warning, whereas the first will not. sub doit { my $y; chop $y; } doit(); { local ($^W) = 1; doit() } This is a side-effect of C<$^W> being dynamically scoped. Lexical warnings get around these limitations by allowing finer control over where warnings can or can't be tripped. =head2 Controlling Warnings from the Command Line There are three Command Line flags that can be used to control when warnings are (or aren't) produced: =over 5 =item B<-w> X<-w> This is the existing flag. If the lexical warnings pragma is B used in any of your code, or any of the modules that you use, this flag will enable warnings everywhere. See L for details of how this flag interacts with lexical warnings. =item B<-W> X<-W> If the B<-W> flag is used on the command line, it will enable all warnings throughout the program regardless of whether warnings were disabled locally using C or C<$^W =0>. This includes all files that get included via C, C or C. Think of it as the Perl equivalent of the "lint" command. =item B<-X> X<-X> Does the exact opposite to the B<-W> flag, i.e. it disables all warnings. =back =head2 Backward Compatibility If you are used to working with a version of Perl prior to the introduction of lexically scoped warnings, or have code that uses both lexical warnings and C<$^W>, this section will describe how they interact. How Lexical Warnings interact with B<-w>/C<$^W>: =over 5 =item 1. If none of the three command line flags (B<-w>, B<-W> or B<-X>) that control warnings is used and neither C<$^W> nor the C pragma are used, then default warnings will be enabled and optional warnings disabled. This means that legacy code that doesn't attempt to control the warnings will work unchanged. =item 2. The B<-w> flag just sets the global C<$^W> variable as in 5.005. This means that any legacy code that currently relies on manipulating C<$^W> to control warning behavior will still work as is. =item 3. Apart from now being a boolean, the C<$^W> variable operates in exactly the same horrible uncontrolled global way, except that it cannot disable/enable default warnings. =item 4. If a piece of code is under the control of the C pragma, both the C<$^W> variable and the B<-w> flag will be ignored for the scope of the lexical warning. =item 5. The only way to override a lexical warnings setting is with the B<-W> or B<-X> command line flags. =back The combined effect of 3 & 4 is that it will allow code which uses the C pragma to control the warning behavior of $^W-type code (using a C) if it really wants to, but not vice-versa. =head2 Category Hierarchy X A hierarchy of "categories" have been defined to allow groups of warnings to be enabled/disabled in isolation. The current hierarchy is: all -+ | +- closure | +- deprecated ----+ | | | +- deprecated::delimiter_will_be_paired | | | +- deprecated::dot_in_inc | | | +- deprecated::goto_construct | | | +- deprecated::missing_import_called_with_args | | | +- deprecated::subsequent_use_version | | | +- deprecated::unicode_property_name | | | +- deprecated::version_downgrade | +- exiting | +- experimental --+ | | | +- experimental::args_array_with_signatures | | | +- experimental::builtin | | | +- experimental::class | | | +- experimental::declared_refs | | | +- experimental::defer | | | +- experimental::extra_paired_delimiters | | | +- experimental::keyword_all | | | +- experimental::keyword_any | | | +- experimental::private_use | | | +- experimental::re_strict | | | +- experimental::refaliasing | | | +- experimental::regex_sets | | | +- experimental::try | | | +- experimental::uniprop_wildcards | | | +- experimental::vlb | +- glob | +- imprecision | +- io ------------+ | | | +- closed | | | +- exec | | | +- layer | | | +- newline | | | +- pipe | | | +- syscalls | | | +- unopened | +- locale | +- misc | +- missing | +- numeric | +- once | +- overflow | +- pack | +- portable | +- recursion | +- redefine | +- redundant | +- regexp | +- scalar | +- severe --------+ | | | +- debugging | | | +- inplace | | | +- internal | | | +- malloc | +- shadow | +- signal | +- substr | +- syntax --------+ | | | +- ambiguous | | | +- bareword | | | +- digit | | | +- illegalproto | | | +- parenthesis | | | +- precedence | | | +- printf | | | +- prototype | | | +- qw | | | +- reserved | | | +- semicolon | +- taint | +- threads | +- uninitialized | +- unpack | +- untie | +- utf8 ----------+ | | | +- non_unicode | | | +- nonchar | | | +- surrogate | +- void Just like the "strict" pragma any of these categories can be combined use warnings qw(void redefine); no warnings qw(io syntax untie); Also like the "strict" pragma, if there is more than one instance of the C pragma in a given scope the cumulative effect is additive. use warnings qw(void); # only "void" warnings enabled ... use warnings qw(io); # only "void" & "io" warnings enabled ... no warnings qw(void); # only "io" warnings enabled To determine which category a specific warning has been assigned to see L. Note: Before Perl 5.8.0, the lexical warnings category "deprecated" was a sub-category of the "syntax" category. It is now a top-level category in its own right. Note: Before 5.21.0, the "missing" lexical warnings category was internally defined to be the same as the "uninitialized" category. It is now a top-level category in its own right. =head2 Fatal Warnings X The presence of the word "FATAL" in the category list will escalate warnings in those categories into fatal errors in that lexical scope. B FATAL warnings should be used with care, particularly C<< FATAL => 'all' >>. Libraries using L for custom warning categories generally don't expect L to be fatal and can wind up in an unexpected state as a result. For XS modules issuing categorized warnings, such unanticipated exceptions could also expose memory leak bugs. Moreover, the Perl interpreter itself has had serious bugs involving fatalized warnings. For a summary of resolved and unresolved problems as of January 2015, please see L. While some developers find fatalizing some warnings to be a useful defensive programming technique, using C<< FATAL => 'all' >> to fatalize all possible warning categories -- including custom ones -- is particularly risky. Therefore, the use of C<< FATAL => 'all' >> is L. The L module on CPAN offers one example of a warnings subset that the module's authors believe is relatively safe to fatalize. B Users of FATAL warnings, especially those using C<< FATAL => 'all' >>, should be fully aware that they are risking future portability of their programs by doing so. Perl makes absolutely no commitments to not introduce new warnings or warnings categories in the future; indeed, we explicitly reserve the right to do so. Code that may not warn now may warn in a future release of Perl if the Perl5 development team deems it in the best interests of the community to do so. Should code using FATAL warnings break due to the introduction of a new warning we will NOT consider it an incompatible change. Users of FATAL warnings should take special caution during upgrades to check to see if their code triggers any new warnings and should pay particular attention to the fine print of the documentation of the features they use to ensure they do not exploit features that are documented as risky, deprecated, or unspecified, or where the documentation says "so don't do that", or anything with the same sense and spirit. Use of such features in combination with FATAL warnings is ENTIRELY AT THE USER'S RISK. The following documentation describes how to use FATAL warnings but the perl5 porters strongly recommend that you understand the risks before doing so, especially for library code intended for use by others, as there is no way for downstream users to change the choice of fatal categories. In the code below, the use of C