V= CUJ:JUJ: S9:N 􁊩bOU[:UV=&@r`9:r`9:r`9:ADJ:`9:̕6:A0`9:`9:r9X8     A!9:9:9:̖.1X8`9:qu6̖{E1X8`9:lC7& ̖ !9:`9:`9:/proc/mounts̖P1X8`9:K3'̖ 1X8`9:cu6(̖1X8`9:ΈK3)̖01X8`9:ӈK3 *+,-.̖c9:c9:c9:̖1X8`9:QH80̖K1X8`9:X81̖9:9:9:̖d8:`9:d8:4̖AhU9:`9:[75̖`9:`9:`9:/usr/X11R6/bin/Xpmac̖AhU9:`9:c[76̖1X8`9:f&7789̖N1X8`9:c[7:;̖1X8`9:[7<=̖1X8`9:O/7>̖*1X8`9:%.7?̖Q8`9:jC7@̖$B1X8`9:jC7 ABCDEF̖1X8`9:jC7xGHIJKLMNOPQRS̖AhU9:`9:7:̖57:`9:h[7̖AhU9:`9:TN7̖a'7:`9:7:̖ M7:`9:7:̖!9:`9:`9:X11/XF86Config̖yqD8`9:qD8̖ !9:`9:`9:/sbin/sash̖Y 1X8`9:37̖AhU9:`9:hH8̖P1X8`9:Rb/7̖P1X8`9:Rb/7̖1X8`9:#7̖~1X8`9:)7̖1X8`9:S)7̖1X8`9:Rb/7̖1X8`9:G&7̖1X8`9:TH8͖1X8`9:S)7͖1X8`9: /7͖1X8`9:S)7͖1X8`9:S)7͖K1X8`9:J$7͖F1X8`9:7͖1X8`9:֛/7͖F1X8`9:`/7͖1X8`9:֛/7 ͖1X8`9:X8j ͖!9:`9:`9:/mnt/cdrom/live/etc/termcap ͖: 8`9:8 ͖38`9:38 ͖b9:b9:b9:͖/Vv7:`9:v7:.͖ ~7:`9:~7:͖A hU9:`9:7:͖!^8`9:J 78͖!^8`9:J 7 ͖!^8`9:ZwO5 ͖!^8`9:ZwO5͖!^8`9:ZwO5͖a^8`9:ZwO5͖a^8`9:\wO5)͖a^8`9:[wO5͖a^8`9:ZwO5͖a^8`9:ZwO5 ͖!^8`9:E7͖!^8`9:ZwO5@͖!^8`9:ZwO5A͖!^8`9:ZwO5B͖!^8`9:ZwO5C ͖!^8`9:ZwO5!͖!^8`9:ZwO5"͖`9:`9:`9:fb0#͖!^8`9:I 7$͖!^8`9:I 7 %͖!^8`9:I 7@&͖!^8`9:I 7`'͖!^8`9:I 7(͖!^8`9:I 7)͖!^8`9:I 7*͖!^8`9:I 7+͖`9:`9:`9:../proc/self/fd,͖a^8`9:ZwO5-͖a^8`9:ZwO5 .͖a^8`9:ZwO5/͖a^8`9:ZwO50͖a^8`9:ZwO5 1͖a^8`9:ZwO52͖a^8`9:ZwO53͖a^8`9:ZwO54͖a^8`9:ZwO55͖a^8`9:ZwO56͖a^8`9:ZwO57͖a^8`9:ZwO5 8͖a^8`9:ZwO59͖a^8`9:ZwO5:͖a^8`9:ZwO5 ;͖a^8`9:ZwO5<͖a^8`9:ZwO5=͖a^8`9:ZwO5 >͖a^8`9:ZwO5?͖a^8`9:ZwO5@͖`9:`9:`9:rft0A͖!^8`9:ZwO5B͖a^8`9:ZwO5C͖a^8`9:ZwO5D͖a^8`9:ZwO5E͖a^8`9:ZwO5 F͖a^8`9:ZwO5 G͖a^8`9:ZwO5 H͖a^8`9:ZwO5 I͖a^8`9:ZwO5J͖a^8`9:ZwO5K͖a^8`9:[wO5L͖a^8`9:ZwO5M͖a^8`9:ZwO5N͖a^8`9:ZwO5O͖a^8`9:ZwO5P͖a^8`9:ZwO5Q͖a^8`9:ZwO5R͖a^8`9:ZwO5S͖a^8`9:ZwO5 T͖a^8`9:ZwO5@U͖a^8`9:ZwO5AV͖a^8`9:ZwO5JW͖a^8`9:ZwO5KX͖a^8`9:ZwO5LY͖a^8`9:ZwO5MZ͖a^8`9:ZwO5N[͖a^8`9:ZwO5O\͖a^8`9:[wO5P]͖a^8`9:ZwO5B^͖a^8`9:ZwO5C_͖a^8`9:ZwO5D`͖a^8`9:ZwO5Ea͖a^8`9:ZwO5Fb͖a^8`9:ZwO5Gc͖a^8`9:ZwO5Hd͖a^8`9:ZwO5Ie͖a^8`9:ZwO5f͖a^8`9:ZwO5g͖a^8`9:ZwO5 h͖a^8`9:ZwO5 i͖a^8`9:ZwO5 j͖a^8`9:ZwO5 k͖a^8`9:ZwO5l͖a^8`9:ZwO5m͖a^8`9:ZwO5n͖a^8`9:ZwO5o͖a^8`9:ZwO5p͖a^8`9:ZwO5q͖a^8`9:ZwO5r͖a^8`9:ZwO5s͖a^8`9:ZwO5t͖a^8`9:ZwO5u͖a^8`9:ZwO5 v͖a^8`9:ZwO5@w͖a^8`9:ZwO5Ax͖a^8`9:ZwO5Jy͖a^8`9:ZwO5Kz͖a^8`9:ZwO5L{͖a^8`9:ZwO5M|͖a^8`9:ZwO5N}͖a^8`9:ZwO5O~͖a^8`9:ZwO5P͖a^8`9:ZwO5B͖a^8`9:ZwO5C͖a^8`9:ZwO5D͖a^8`9:ZwO5E͖a^8`9:ZwO5F͖a^8`9:ZwO5G͖a^8`9:ZwO5H͖a^8`9:ZwO5I͖a^8`9:[wO5!͖a^8`9:[wO5!͖a^8`9:[wO5 !͖a^8`9:[wO5 !͖a^8`9:[wO5 !͖a^8`9:[wO5 !͖a^8`9:[wO5!͖a^8`9:[wO5!͖a^8`9:[wO5!͖a^8`9:[wO5!͖a^8`9:[wO5!͖a^8`9:[wO5!͖a^8`9:[wO5!͖a^8`9:[wO5!͖a^8`9:[wO5!͖a^8`9:[wO5!͖a^8`9:[wO5 !͖a^8`9:[wO5@!͖a^8`9:[wO5A!͖a^8`9:[wO5J!͖a^8`9:[wO5K!͖a^8`9:[wO5L!͖a^8`9:[wO5M!͖a^8`9:[wO5N!͖a^8`9:[wO5O!͖a^8`9:[wO5P!͖a^8`9:[wO5B!͖a^8`9:[wO5C!͖a^8`9:[wO5D!͖a^8`9:[wO5E!͖a^8`9:[wO5F!͖a^8`9:[wO5G!͖a^8`9:[wO5H!͖a^8`9:[wO5I!͖a^8`9:[wO5"͖a^8`9:[wO5"͖a^8`9:[wO5 "͖a^8`9:[wO5 "͖a^8`9:[wO5 "͖a^8`9:[wO5 "͖a^8`9:[wO5"͖a^8`9:[wO5"͖a^8`9:[wO5"͖a^8`9:[wO5"͖a^8`9:[wO5"͖a^8`9:[wO5"͖a^8`9:[wO5"͖a^8`9:[wO5"͖a^8`9:[wO5"͖a^8`9:[wO5"͖a^8`9:[wO5 "͖a^8`9:[wO5@"͖a^8`9:[wO5A"͖a^8`9:[wO5J"͖a^8`9:[wO5K"͖a^8`9:[wO5L"͖a^8`9:[wO5M"͖a^8`9:[wO5N"͖a^8`9:[wO5O"͖a^8`9:[wO5P"͖a^8`9:[wO5B"͖a^8`9:[wO5C"͖a^8`9:[wO5D"͖a^8`9:[wO5E"͖a^8`9:[wO5F"͖a^8`9:[wO5G"͖a^8`9:[wO5H"͖a^8`9:[wO5I"͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5͖!^8`9:[wO5 ͖!^8`9:[wO5%͖AhU9:`9: 7͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6 H͖a^8`9:=b6 H͖a^8`9:=b6 H͖a^8`9:=b6 H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6 H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6H͖a^8`9:=b6HΖa^8`9:=b6HΖ!^8`9:ZwO5 Ζ!^8`9:[wO5-Ζ `9:`9:`9:isdnctrl0Ζ!^8`9:[wO5@-Ζ!^8`9:[wO5A-Ζ!^8`9:[wO5J-Ζ!^8`9:\wO5K-Ζ!^8`9:\wO5L- Ζ!^8`9:\wO5M- Ζ!^8`9:\wO5N- Ζ!^8`9:\wO5O- Ζ!^8`9:\wO5P- Ζ!^8`9:\wO5Q-Ζ!^8`9:\wO5R-Ζ!^8`9:\wO5S-Ζ!^8`9:ZwO5 Ζ$!^8`9:\wO5-Ζ!^8`9:ZwO5 Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζ!^8`9:ZwO5Ζ!^8`9:ZwO5Ζ!^8`9:ZwO5Ζa^8`9:ZwO5Ζ!^8`9:ZwO5  Ζ!^8`9:[wO5 !Ζ!^8`9:[wO5 "Ζ!^8`9:[wO5 "#Ζ!^8`9:[wO5 2$Ζ!^8`9:[wO5 %Ζ!^8`9:[wO5 &Ζ`9:`9:`9:nrft0'Ζ!^8`9:[wO5%(Ζ!^8`9:\wO5)Ζ!^8`9:\wO5*Ζ!^8`9:\wO5+Ζ!^8`9:\wO5,Ζ!^8`9:[wO5 -Ζ!^8`9:[wO5 .Ζ!^8`9:[wO5 /Ζ!^8`9:[wO5 0Ζ!^8`9:[wO5 1Ζ!^8`9:[wO5 2Ζ!^8`9:[wO5 3Ζ!^8`9:[wO5 4Ζ!^8`9:[wO55Ζ!^8`9:J 7 6Ζa^8`9:[wO57Ζ!^8`9:[wO58Ζ!^8`9:[wO59Ζ!^8`9:[wO5:Ζa^8`9:Mn6.;Ζa^8`9:Mn6.<Ζa^8`9:Mn6.=Ζa^8`9:Nn6.>Ζa^8`9:Ln6-?Ζa^8`9:Ln6-@Ζa^8`9:Ln6-AΖa^8`9:Ln6-BΖa^8`9:Ln6-CΖa^8`9:Ln6-DΖa^8`9:Ln6-EΖa^8`9:Mn6-FΖa^8`9:Mn6-GΖa^8`9:Mn6-HΖa^8`9:Mn6 -IΖa^8`9:Mn6!-JΖa^8`9:Mn6"-KΖa^8`9:Mn6#-LΖa^8`9:Mn6$-MΖa^8`9:Mn60-NΖa^8`9:Mn61-OΖa^8`9:Mn62-PΖa^8`9:Mn63-QΖa^8`9:Mn64-RΖa^8`9:Nn6/SΖa^8`9:Nn6/TΖa^8`9:Nn6/UΖa^8`9:Nn6/VΖ!^8`9:[wO5 WΖ^8`9:\E7XΖ!^8`9:Nn6`YΖ!^8`9:[wO5 ZΖ!^8`9:Nn6`[Ζ!^8`9:Nn6`\Ζ!^8`9:Nn6`]Ζ!^8`9:7^ΖAhU9:`9:_7_Ζ!^8`9:7`Ζ!^8`9:[wO5aΖ!^8`9:[wO5bΖ!^8`9:[wO5cΖ!^8`9:[wO5dΖ!^8`9:[wO5eΖ!^8`9:[wO5fΖ!^8`9:[wO5gΖ!^8`9:[wO5hΖ!^8`9:[wO5iΖ!^8`9:[wO5jΖ!^8`9:[wO5kΖ!^8`9:[wO5lΖ!^8`9:[wO5mΖ!^8`9:[wO5nΖ!^8`9:[wO5oΖ!^8`9:[wO5pΖa^8`9:[wO5qΖa^8`9:\wO5rΖa^8`9:[wO5sΖa^8`9:\wO5 tΖa^8`9:\wO5 uΖa^8`9:\wO5 vΖa^8`9:\wO5wΖa^8`9:\wO5xΖa^8`9:\wO5yΖa^8`9:[wO5zΖa^8`9:[wO5{Ζa^8`9:[wO5|Ζa^8`9:[wO5}Ζa^8`9:[wO5~Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:\wO5 Ζ`9:`9:`9:ram0Ζ!^8`9:[wO5ΖAhU9:`9:< 7Ζa^8`9: 60Ζa^8`9: 60Ζa^8`9: 60Ζa^8`9: 60Ζa^8`9: 60Ζa^8`9: 60Ζa^8`9: 60Ζa^8`9: 60Ζa^8`9: 60Ζa^8`9: 6 0Ζa^8`9: 6 0Ζa^8`9: 6 0Ζa^8`9: 6 0Ζa^8`9: 6 0Ζa^8`9: 60Ζa^8`9: 60Ζa^8`9: 61Ζa^8`9: 61Ζa^8`9: 61Ζa^8`9: 61Ζa^8`9: 61Ζa^8`9: 61Ζa^8`9: 61Ζa^8`9: 61Ζa^8`9: 61Ζa^8`9: 6 1Ζa^8`9: 6 1Ζa^8`9: 6 1Ζa^8`9: 6 1Ζa^8`9: 6 1Ζa^8`9: 61Ζa^8`9: 61Ζ!^8`9:\wO5Ζ!^8`9:\wO5Ζ!^8`9:\wO5Ζ!^8`9:\wO5Ζ!^8`9:[wO5 Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5 Ζa^8`9:[wO5 Ζa^8`9:[wO5 Ζa^8`9:[wO5 Ζa^8`9:[wO5 Ζa^8`9:[wO5 Ζa^8`9:[wO5 Ζa^8`9:[wO5 Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5 Ζa^8`9:[wO5 Ζa^8`9:[wO5 Ζa^8`9:[wO5 Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5 Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5Ζa^8`9:[wO5 Ζa^8`9:[wO5!Ζa^8`9:[wO5*Ζa^8`9:[wO5+Ζa^8`9:[wO5,Ζa^8`9:[wO5-Ζa^8`9:[wO5.Ζa^8`9:[wO5/Ζa^8`9:[wO5"Ζa^8`9:[wO5#Ζa^8`9:[wO5$Ζa^8`9:[wO5%Ζa^8`9:[wO5&Ζa^8`9:[wO5'Ζa^8`9:[wO5(Ζa^8`9:[wO5)Ζa^8`9:[wO50Ζa^8`9:[wO51Ζa^8`9:[wO5:Ζa^8`9:[wO5;Ζa^8`9:[wO5<Ζa^8`9:[wO5=Ζa^8`9:[wO5>Ζa^8`9:[wO5?Ζa^8`9:[wO52Ζa^8`9:[wO53Ζa^8`9:[wO54Ζa^8`9:[wO55Ζa^8`9:[wO56Ζa^8`9:[wO57Ζa^8`9:[wO58Ζa^8`9:[wO59Ζa^8`9:[wO5@Ζa^8`9:[wO5AΖa^8`9:[wO5BΖa^8`9:[wO5CΖa^8`9:[wO5DΖa^8`9:[wO5EΖa^8`9:[wO5FΖa^8`9:[wO5GΖa^8`9:[wO5HΖa^8`9:[wO5Pϖa^8`9:[wO5Qϖa^8`9:[wO5Rϖa^8`9:[wO5Sϖa^8`9:[wO5Tϖa^8`9:[wO5Uϖa^8`9:[wO5Vϖa^8`9:[wO5Wϖa^8`9:[wO5Xϖa^8`9:[wO5` ϖa^8`9:[wO5a ϖa^8`9:[wO5b ϖa^8`9:[wO5c ϖa^8`9:[wO5d ϖa^8`9:[wO5eϖa^8`9:[wO5fϖa^8`9:[wO5gϖa^8`9:[wO5hϖ`9:`9:`9:sgaϖ!^8`9:[wO5ϖ`9:`9:`9:sgbϖ`9:`9:`9:sgcϖ`9:`9:`9:sgdϖ`9:`9:`9:sgeϖ`9:`9:`9:sgfϖ`9:`9:`9:sggϖ`9:`9:`9:sghϖ!^8`9:[wO5ϖ!^8`9:[wO5ϖ!^8`9:[wO5ϖ!^8`9:[wO5ϖ!^8`9:[wO5ϖ!^8`9:[wO5 ϖ!^8`9:[wO5!ϖ!^8`9:[wO5"ϖa^8`9:[wO5#ϖ!^8`9:[wO5$ϖa^8`9:[wO5%ϖ!^8`9:[wO5 &ϖ!^8`9:[wO5 'ϖ!^8`9:[wO5 (ϖ!^8`9:[wO5 )ϖ!^8`9:[wO5 *ϖ!^8`9:[wO5 +ϖ!^8`9:[wO5 ,ϖ!^8`9:[wO5 -ϖ`9:`9:`9:../proc/self/fd/2.ϖ`9:`9:`9:../proc/self/fd/0/ϖ`9:`9:`9:../proc/self/fd/10ϖ!^8`9:[wO5 1ϖ!^8`9:ZwO52ϖ!^8`9:73ϖ!^8`9:[wO54ϖ!^8`9:E75ϖ!^8`9:Kn6 6ϖ!^8`9:Kn6 7ϖ!^8`9:Kn6 8ϖ!^8`9:E79ϖ!^8`9:E7:ϖ!^8`9:E7;ϖ!^8`9:E7<ϖ!^8`9:E7=ϖ!^8`9:@7>ϖ!^8`9:[wO5?ϖ!^8`9:Kn6 @ϖ!^8`9:\wO5+Aϖ!^8`9:\wO5+Bϖ!^8`9:\wO5 +Cϖ!^8`9:\wO5+Dϖ!^8`9:\wO5+Eϖ!^8`9:\wO5+Fϖ!^8`9:\wO5+Gϖ!^8`9:\wO5+Hϖ!^8`9:\wO5(+Iϖ!^8`9:\wO5+Jϖ!^8`9:\wO52+Kϖ!^8`9:\wO5+Lϖ!^8`9:\wO5<+Mϖ!^8`9:\wO5+Nϖ!^8`9:\wO5+Oϖ!^8`9:\wO5 +Pϖ!^8`9:[wO5@Qϖ!^8`9:[wO5ARϖ!^8`9:[wO5BSϖ!^8`9:[wO5CTϖ!^8`9:\E7 UϖAhU9:`9:|9Vϖ!#9`9:#9@ Wϖ!#9`9:#9A Xϖ!#9`9:#9J Yϖ!#9`9:#9K Zϖ!#9`9:#9L [ϖ!#9`9:#9M \ϖ!#9`9:#9N ]ϖ!#9`9:#9O ^ϖ!#9`9:#9P _ϖ!#9`9:#9Q `ϖ!#9`9:#9R aϖ!#9`9:#9S bϖ!#9`9:#9B cϖ!#9`9:#9T dϖ!#9`9:#9U eϖ!#9`9:#9V fϖ!#9`9:#9W gϖ!#9`9:#9X hϖ!#9`9:#9Y iϖ!#9`9:#9Z jϖ!#9`9:#9[ kϖ!#9`9:#9\ lϖ!#9`9:#9] mϖ!#9`9:#9C nϖ!#9`9:#9^ oϖ!#9`9:#9_ pϖ!#9`9:#9D qϖ!#9`9:#9E rϖ!#9`9:#9F sϖ!#9`9:#9G tϖ!#9`9:#9H uϖ!#9`9:#9I vϖ!"9`9:"9 wϖ!"9`9:"9 xϖ!"9`9:"9 yϖ!"9`9:"9 zϖ!"9`9:"9 {ϖ!"9`9:"9 |ϖ!"9`9:"9 }ϖ!"9`9:"9 ~ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!"9`9:"9 ϖ!#9`9:#9? ϖ!"9`9:"9 ϖ!"9`9:"9! ϖ!"9`9:"9* ϖ!"9`9:"9+ ϖ!"9`9:"9, ϖ!"9`9:"9- ϖ!"9`9:"9. ϖ!"9`9:"9/ ϖ!"9`9:"90 ϖ!"9`9:"91 ϖ!"9`9:"92 ϖ!"9`9:"93 ϖ!"9`9:"9" ϖ!"9`9:"94 ϖ!"9`9:"95 ϖ!#9`9:#96 ϖ!#9`9:#97 ϖ!#9`9:#98 ϖ!#9`9:#99 ϖ!#9`9:#9: ϖ!#9`9:#9; ϖ!#9`9:#9< ϖ!#9`9:#9= ϖ!"9`9:"9# ϖ!#9`9:#9> ϖ!"9`9:"9$ ϖ!"9`9:"9% ϖ!"9`9:"9& ϖ!"9`9:"9' ϖ!"9`9:"9( ϖ!"9`9:"9) ϖ!^8`9:[wO5ϖB1X8`9:E 7$     ϖ^8`9:B7ϖ `9:`9:`9:input/miceϖ`9:`9:`9:scd0ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7 ϖ!E)7`9:E)7! ϖ!E)7`9:E)7* ϖ!E)7`9:E)7+ ϖ!E)7`9:E)7, ϖ!F)7`9:F)7- ϖ!F)7`9:F)7. ϖ!F)7`9:F)7/ ϖ!E)7`9:E)7" ϖ!E)7`9:E)7# ϖ!E)7`9:E)7$ ϖ!E)7`9:E)7% ϖ!E)7`9:E)7& ϖ!E)7`9:E)7' ϖ!E)7`9:E)7( ϖ!E)7`9:E)7) ϖaTN8`9:TN8ϖaTN8`9:TN8ϖaTN8`9:TN8ϖaTN8`9:TN8ϖ `9:`9:`9:input/miceϖA#9:`9:w6:ϖAchU9:`9:.7cϖAchU9:`9:]7cϖc1X8`9:-7cϖc 1X8`9:]7cϖc1X8`9:F.7cϖc&1X8`9:-7c ϖca1X8`9:-7c!ϖc%1X8`9:-7c"ϖAK9:E9:E9:#ϖQFUJ:GUJ:FUJ:,$%&'()*+,-./0ϖ|FUJ:GUJ:GUJ:B:;<=>?@ABCDEFϖEUJ:GUJ:FUJ:n[\]^_`abcdefgϖ}DUJ:GUJ:EUJ:BϖJ9:`9:jG9: ϖ5>H9:`9:%a7ϖ_ WM9:`9:WM9:ϖ-9:`9:-Y9:ϖt:}U9:`9:'7: ϖph>H9:`9:'7:8ϖ>H9:`9:8ϖ>H9:`9:*~8 ϖ>H9:`9:\=8ϖ6>H9:`9:3~8   ϖS>H9:`9:~7 ϖ]X9:`9:0=9: ϖI>H9:`9:37: ϖ>H9:`9:=8ϖ.Y9:`9:X9:ϖ1X8`9:u6ϖ1X8`9:e$.ϖ1X8`9:G5Ж1X8`9:ں]7Ж1X8`9: 7Жw6:`9:w6:ЖAhU9:`9:~8ЖAhU9:`9:w9X8 ЖAhU9:`9:]e27!Ж1X8`9:]e27 "#$%&'Ж^1X8`9:]e27 ()*+,-ЖAhU9:`9:w9X8. ЖF"1X8`9:WW8/01234567 Ж1X8`9:UW889:;<=> Ж;1X8`9:VW8 ?@ABC ЖUH1X8`9:VW8(DEFGHIJKLMNOP ЖAhU9:`9:)Q7XЖAhU9:`9:]e27YЖAhU9:`9:]e27ZЖ$1X8`9:]e27[\Ж$1X8`9:]e27]^Ж`9:`9:`9:X11Ж`9:`9:`9:/liveЖAoU9:`9:7:_Ж,{y9X8`9:y9X8@`abcdefghijklЖZy9X8`9:y9X80Жy9X8`9:y9X8rЖ8By9X8`9:y9X8$ЖDy9X8`9:y9X8\Ж`9:`9:`9:bashЖH(y9X8`9:y9X8Жy9X8`9:y9X8~ !"#$%&'(Жyy9X8`9:y9X8@[\]^_`abcdefgЖmy9X8`9:y9X8{|}~Жhcy9X8`9:y9X84 Ж0y9X8`9:y9X8!Жty9X8`9:y9X8>"Жܡy9X8`9:y9X8T     #Жy9X8`9:y9X823456789:;<=>$Ж y9X8`9:y9X89:;<=>?@ABCDEF %Ж8`9:8J &Ж /y9X8`9:y9X8 'Жy9X8`9:y9X8 (ЖDy9X8`9:y9X8 )ЖXy9X8`9:y9X8 *ЖPhy9X8`9:y9X88   +Ж@y9X8`9:y9X8L             ,Жy9X8`9:y9X8N8 9 : ; < = > ? @ A B C D -Ж$) y9X8`9:y9X8_ ` a b c d e f g h i j k l.Жy9X8`9:y9X8/Ж(y9X8`9:y9X80Жy9X8`9:y9X81Ж4,y9X8`9:y9X82ЖXy9X8`9:y9X8.3ЖtԄ8`9:1N8 4Ж `9:`9:`9:/sbin/halt5Ж`9:`9:`9:../root/bin/install6Ж`9:`9:`9:../root/bin/runinstall7Ж`9:`9:`9:../root/bin/install8Ж`9:`9:`9:../root/bin/install9Ж!h8`9:!h8 :Ж#rh8`9:rh8;Жm*m^8`9:m^8 <Ж? ˘8`9:˘8"    =Жmt7:`9:7: !">Ж7:`9:7:t#$%&'()*+,-./?ЖP7:`9:7:]^_`abcdefghi@ЖDJ:`9:`9:/sbinAЖAhU9:`9:8mBЖ@t9X8`9:9X8CЖ `9:`9:`9:ld-2.1.1.soDЖ9X8`9:9X8 EЖ `9:`9:`9:libc-2.1.1.soFЖ`9:`9:`9:libcom_err.so.2.0GЖ6%8`9:8     HЖ`U9X8`9:9X8.IЖ`9:`9:`9:libcrypt-2.1.1.soJЖ o9X8`9:9X8>%&'()*+,-./012KЖ`9:`9:`9:libdb1-2.1.1.soLЖ`9:`9:`9:libdb-2.1.1.soMЖ9X8`9:9X8vDEFGHIJKLMNOPNЖ`9:`9:`9:libdb1-2.1.1.soOЖ*9X8`9:9X8PЖ`9:`9:`9:libdl-2.1.1.soQЖ`9:`9:`9:libext2fs.so.2.4RЖe8`9:8SЖ|9X8`9:9X8B  TЖ`9:`9:`9:libgdbm.so.2.0.0UЖ`9:`9:`9:libgdbm.so.2.0.0VЖb9X8`9:9X84 !"#$%&'()*+WЖ9X8`9:9X89:;<=>?@ABCDEXЖ `9:`9:`9:libm-2.1.1.soYЖh9X8`9:9X8ZЖ`9:`9:`9:libnsl-2.1.1.so[Ж9X8`9:9X8`WXYZ[\]^_`abc\Ж`9:`9:`9:libnss_compat-2.1.1.so]Ж,d9X8`9:9X86^Ж`9:`9:`9:libnss_db-2.1.1.so_Ж.9X8`9:9X8`Ж`9:`9:`9:libnss_dns-2.1.1.soaЖ9X8`9:9X8PbЖ`9:`9:`9:libnss_files-2.1.1.socЖH>9X8`9:9X8"dЖ`9:`9:`9:libnss_hesiod-2.1.1.soeЖd9X8`9:9X8VfЖ`9:`9:`9:libnss_nis-2.1.1.sogЖ9X8`9:9X8fhЖ`9:`9:`9:libnss_nisplus-2.1.1.soiЖ9X8`9:9X8PEFGHIJKLMNOPQjЖ`9:`9:`9:libpthread-0.8.sokЖt9X8`9:9X8nopqrstuvwxyzlЖ,9X8`9:9X8nmЖ`9:`9:`9:libresolv-2.1.1.sonЖ59X8`9:9X8oЖ`9:`9:`9:librt-2.1.1.sopЖ`9:`9:`9:libtermcap.so.2.0.8qЖ49X8`9:9X8rЖ$9X8`9:9X8    sЖ`9:`9:`9:libutil-2.1.1.sotЖ`9:`9:`9:libuuid.so.1.2uЖʀ8`9:8DvЖ`9:`9:`9:libcom_err.so.2.0wЖ `9:`9:`9:libe2p.so.2.3xЖ `9:`9:`9:libe2p.so.2.3yЖY8`9:80456789:;<=>?@zЖ`9:`9:`9:libext2fs.so.2.4{Ж `9:`9:`9:libss.so.2.0|Ж `9:`9:`9:libss.so.2.0}Жik8`9:88LMNOPQRSTUVWX~Ж`9:`9:`9:libuuid.so.1.2Ж8`9:8JhijklmnopqrstЖ98`9:8 ЖAhU9:`9:9X8ЖAhU9:`9:9X8Ж9X8`9:9X8ЖAhU9:`9:8ЖAhU9:`9:9X8ЖAhU9:`9:8ЖAlU9:`9:9X8ЖAhU9:`9:9X8ЖAhU9:`9:9X8ЖAhU9:`9:9X8ЖAhU9:`9:9X8ЖAhU9:`9:9X8ЖAsU9:`9:9X8Ж<9:E9:<9:E9:Җ<9:<9:<9:<9:Җ . ..  lost+found etcF dev root9 usrJ sbinv binw lib tmp mnt home proc var live8test ... . .. group keymaps.gz mtab nsswitch.confpasswd protocolsservicesfstabinittab ld.so.conf rc.sysinitbashrc X11 resolv.conf hosts! conf.modules" fonts.cgz# install1.tr$ sysconfig) XF86Config* rc.reboot+ bash,XF86Config.PReP-pam.d? ld.so.cache@termcapA inetd.confB inittab_5C sysctl.confDfb.modesE full_timings.rc.sysinit.swp rc.sysinit~.swxxroot::0:root bin::1:root,bin,daemon daemon::2:root,bin,daemon sys::3:root,bin,adm adm::4:root,adm,daemon tty::5: disk::6:root lp::7:daemon,lp mem::8: kmem::9: wheel::10:root mail::12:mail news::13:news uucp::14:uucp floppy::19: man::15: games::20: gopher::30: dip::40: ftp::50: nobody::99: users::100:  ,7keymaps pu_b"$I Hn)$.R A@@й従J%("WJ*qRSq"'%Td)=N|{=Sp39'@c71;>tKk:N> N^ݹNHfB>uGGiսߣcG<m v80xb,ps609cgCcxPACZ{a᮵4_ýښ /| 2{_;c{caX4;F_LJF@;n)]ܽյV9<1k#zc}hGu4_{pLX'zp| ѣ]! 1wCz%cQc_7W~_CcDZsu!e;6JSR/M 84D#tر`%1t | Dct^C6% v]ԆVTpDDԈ@ZhvF۵v]c¶lɪ/E ;Jj]Dm+"klFXD'[ f@翷nh4򟵀v.XE6p lVw.ni'AMt*jstϲt'E2 S׉z E#抳Ĺboy~TzMQ!j$l}p햷w|OjM|5PcGDMf.2C.n=tn;mvgnQ,ԋHݴ~걁Կ sZaM|,a԰`Z z;Q{-l7?KRL/vBj?kY#:(W?[jwYo_iWͿ}`/N 88#<}x8!u:8؇""bEDj"FF]tYn;R!7rfV5G8  lflyb#&s,tXu?q>Zb(jǟ/@j 3_(?/gE0iX?~p 33 cibt6(][ֻ F-w^Ζ 9΅Ep*ARX;'TI8ߚ?2/cnR?,ų x x1^q-@7SH ,8X+r3@Ie̯=VXZ鿅i6#J;2Iy$s7Vؖudrp8c/&=H_zGI D/+_!zN(=FӋ*g5z ['3'JOooo/үѯ*_ߤߡߥ__eU~~~~~E3[?ϋ?#bm"-Hziq3'ҟ L~Hɦ; |/CxOI:AkaJ|(p30cy r"~X 9G{ǽ((;@KS16?'Y QX*@%NÃ<3,Ɉ?rx)ݬdjym#buˇ8ʎp XNd@3 ǿFtW,[?Y)J[)/A(fՁ'R@KS{Ձv\|z~n;Joǝx^7x k:8.?xnƭy^1[|`"6}ct q=.&0cz H/=}HKQ71d:JS}m&{N,g/(v2<஄GN#Iv P]Wu)xz>oc&3?oO_:Bvybgoy3iG"&,rV92/9p~% ҟs-9i ܦc֜u@:ԯf: o_.X:HtEO0{:`P%kAߣu@~iu뿌_zHp&3B'3_/׿?{f`e_`_9P9U*ry2!rmr U EB!!  3f:wݷҏ`O?=aKLV?=/ҷ-xRc!) < xg؞wYG=W}# /\x?DOX=Au!t{I@zaaJ?*9~H:s瀰~H<\.{.N\+o=~9*'l{z@퍸@LVv}*s2 n5Zд*2(R K x@30=:б:`<t@h<h<fQۿ<Y\_]@*r=`8{=OVn1~ky@z*x@k$NUO0=j}OMT|( Ho;Oa2zaYIx?w0O|?1cK7f'^a{c,RO姿XÅz6joLB'TY 9`s~UJ3=@:6 \ k 3%t2̱/d*3 20n`Vޢ΁=LA@LDb2g6  1/(YrF4h1Vh4"Vb`iUtsux;130\|[xoìւn˙ogxbV}1a 3w2_ W1YA ,(*DX_LE;ML3P)* eiLψ9a>B$m@1 !e-<P1QcoB?^aܟ)O(H~~qfA&T@1 g +W_@׎1^9Kp33PGR'ML3Xg eɈ?s a"J?3Pԟd~;fL00P"H2 NE:ЈbLC})@%43 4,O#@a-54 tYh-{uL@70 I:zJ7)i24@Uo5AW0] V]eYjXR gZ&z&s lT 4iȚ>|`A yρ,ffh33d:bLC}qghY9 tYh_3?Z&z&#cJ?1DlL?.OY(Z djfajZd I}dͫIh iK6#+dXdHǎSs2(GI0 #k3 } iuz󏬐^(F-@2$weUvD~ gf-4J93݉sWPKZh|$ Q N5ϑ$XfjB( l`J\._WV@-4jI f`cyLu)F_Y!u7`Jq.@ZRp[a\ MPf1[8{#0jj@h[#Z!z@=w#pߋ{&u=ҲX_S8RqZ>HT(z9^ {$ ?_z@X92zL_^ !T_=WquF_ɾCg_Kq 1BlƭmZ~p_稙q(oN(Ož_//B3 3*c5QU&

DU:&@@*㚰@!{U W*i_0c6yvx#D>(r_x1?~ȱ|ǁX׊&ĴXyn'sy~#hoOsP@GP,3BY:f̚@>u~k`Sk ^V*൐;~g[V\Z ΁T^|SMPfQGiuЇ>J]4Тedҧzi4Mt)66E F].h=mHk)Z-{ʮYk:ߒUΧXL .N:EY#XgYvx~ K[wO| 6َ)@'Ӯ=A7 |?wT < oex"< ë(< &|~Zltc4YrƜԋH]j_0&<u | ?7mW???崳;-%<7^WY"g 1gLgGr_0'^yjfQ?{g'Euu8C"*r 85x$G sf㭉df7{(xkx/$TNAE^UWWw׫7Tugfz}l*D-d\80.\ bϥf/`?Ȯ sa e ] 0byydf2@6b24;j!¥~RpY\46q?̧ڱ.f͹Ȯ yWR^ L d f?5x ~OIdlq&C l.RkD.@@ e Zk \8ng@k`F;X}5piV@4\BSUh~=40 ]\O<'›6=li؝B >c- _)+QKB7oefj ߃lp*o–Xy^] ~8{13+X. \~ ?~(5+Pf }#@ ­\&B+*Y?3>jQ?T[P=?'{>_- j'O ^2O|'btrkiI'y٨)@! $LDt~#*=a֞Q'Y%>o,y~JyRd?q ~ݎ Y<\.>cƳIla}d?6]v &}3f2`u恘~0H}Q@1n ` O ] 0  \@0ѿ*Y Q K"Y~ ` <Y>uÂgȭ.@)3@:h:FN Y6$I2Z8}Z8-"@Cg 1pxjYp\<|n I1d~s Es3}>A"Ėvqg:z"/rs*` Z*ŤȋҪ/6~ OJ`x@7x l.^Z0?Ǿ( @>A3>T{?L#l1lfI?BA)`q!@9܍`#4yT:{[ؿfQ V؊f"T4;e12hW 8TLEasekvIEL#LvgWY[tv;Nav;}Îedz؉ <͎bg# 7H4裏>'~c0kO&)l,I84^nZ'Lkߕ,p, 9k 8,^=L`DMfS،\uf zKCTl*`@W|Trb G3>d{ṗBlp%߁ " Z8s2p|9ppG78D3g{a6 Gp$ `9t@.>__Rߢf.Ve f.υWjf#+ T f#G@tD4!Q,6d u 4lXy8,# <FP7E*-~hC4 ' AGi&aeP^g?@VPy 1j`t$l.TyngOx$ ~_ $R ]O :GizLg\xߐPz@|eǹlQ#Ƴ1ߐ>#A1@+s,{c?v&B3LIM0<z8ˡ EN /Ih^'OڿO6hόo*N/^V2!4H0$y+Q8|x.) 50(I> RĖsʗ)裏8888pyXǁGXk`ֵ z?>Th%P$ oFU0]\rsDGh Ҟn>e.xsR}n # {d?P+*DKfW~ ?k.|#g=`Ws?Pd6z3QJvð s6蝬7% =3]Έf.x|#vƄR#ؑO-3P340i`׋3PC碹F1> /cox6zC8 6 ,X 7/!7>~B_&#_ }X`^!l @!ȴY X ?=O߀5|'Ȥ# #_[W ]/|梅_΀sg:Pc+`k.T >mbB1`sтEs\K(Нۉlƈ!܎\s\4Ϲh0J6Bb2+=MEsJnu> TRkGI 0DD tb"`:U! ׺hD:HwL@@g@tGzHGX}Xs%6rWZtp`8C*x8]I=s]h :::\kq`3!ѧ4pLFIā]4pk]D2 CQ6b.aיK3!6;ݡ{ 1a|כPh`e3!4 W9 /v'ކPxRL=cgB$psp{<3nb?~\U(}~\bfBZ}' ˤ lB3!V2/< e HqX`Ty l. $\LAy T p(_A-LkaETu{k`)l@kaX}hi O\kDj>n 5ka:YqPXkdkJ] >&ֵ0`^kaGe?[PRakop3GB;!"#$%& w~xjJ~@ Č2ÔFe]YBFUguK폴+/>T#$0`.ɀL$ǀ{A\VbOp'npC5;6`1n-?ݸa_|~k*~N6r_Uŧ2aU?>3[ >dħ |_G!ߗߓ2,3~O e  eq%@c1#6_!*33 w{C(?>=G@V':B~1"H?G:Y!^x  $տI"9)aftN$3Gw6}>'"}&^܍V=Ď[!?$r$RCXl51PS@U:t@yu0ǣ`{q@] >/qHmZhOQHյЕBّe-pPY 7׵裏΃F9 *jl_Z ݪ"Ƀ 0 Y/nS@^ Zhuy?4[ЕAāl-tZWTMP~yڶ_GU`5J.śv\i:+6 x=މk\7D#b^-Ŀ[p,#Fwvw즤Rt _ƐX mm+BLMCpe+jh|kBM#(Q *X_BB[E-wf̽Lfv;3ݳνy}(~/~?O-w+4~㷛Hs&T1򠭉4~p ?us c/^89 wBgHz &ϩbB-Y =7jhIBs 1Dֱ>?/^Xazَu xq < f`5P?rX% |X^&1`'?9  ?9qV߳?n8 ?n_q߼aaq f|_?nu4pa3LmE x1(`Ԡjy#:ð# c `|t#m@+F <K5y\@o'bH& 2v(˿< $L1@613"1` ?LHxPi R3a4?HLG`H 0~Ь ` =u( 6kodgŋ eؑvfqa4L Vz|S|wA\L``2@<33/^0Lzׂ}M`6~ xG-P< 8e,e˞@@x qnxj7(f ` @m_ ?4<t}?HfO0036y,?eЀxqoLyLa`~Aυl\HL +ff"fR pb ̽ ̽ ̽ ̽ ̽lȋv10E CN{ /Rvc}Gu1 VǀA|n!P}&& ?*w-p']0ӾKجEDXn'X7;5"^ ;PH/>B?94P3<}â/ܾ+u1:e @F //@iu'fU"{{[L@x% %^R'ER M|5)kH!7M1' 1a"p?ibӲ__.thd A8%\L$vKI=Gk$ZG 4{a1ѣD@.bBbs=F2}O{5[WW*U̯0]9>RK;~WൟxeTypU U_yχA0/1(^Q~r{7&:ke) ^ouV= yVkO`̀xEg2vh`ZpZ=3ZQ oPpn=sLGc@OϛQ_@ H T̓›`&M TOǝ,7!8'ZpO&Gey0c$<z~!`a@;f_ ;@^ob~`>q?0,ifd?xbjߙ @ w bu tLگѿxiUбWvW?aWbj̈́k > 8 b2s2  [̀v(PˀˀW0 V3 j5ZHi3 ǀsa&T g[ƀݝ0=Ȁτ$"L΅I6>ZD hg6h,mYP4 j8?BADYP4 `~fAt龡x q>gt  $z 8>BD?}og.}Evtfa=fakfa1T(9!]I ^% |{: Vu>'/[='gaq4}}}}}}}}u\u\u\u\}}ЬXaAs?Xa>5xx] əG= S_3OG6_n>h5j;L}fkk?dX8K o?Lju58e 0{: F2L hO;"bw^,wEg PhǮJ03/^@N 7 勁B  >Ty0,h[*e@>xjwru&RWѣ]M{;v3iX1w ୤#]{=IRS4K$E =-Դd# wY'љ{uZh Dg4 eo{=tn.sϋY9gks릛8uѽ8ޱYNY{K01kV.Goqw:b12ˉ f ׫c(%&%9$D> r/;m x{wǭqbRV]Ru[Y Vwȡ$W t[oMZJ*rT-3@:xR']HvT$5dE-0GJG?>ZdIdT0,Bw2Bσxceu{Q2BOH=/ ׮2"w6rOe) Ӯ/<6A `T+=^ q$C<@cs5p6^'˃N Vzǿ^e-ٟI!.ŗ\\?(Ay7I/ xO_!W =6k:ٍ'.a} &hosts: files dns group: files passwd: files protocols: files services: files root::0:0:root:/home/root:/bin/bash bin:*:1:1:bin:/bin: daemon:*:2:2:daemon:/sbin: adm:*:3:4:adm:/var/adm: lp:*:4:7:lp:/var/spool/lpd: sync:*:5:0:sync:/sbin:/bin/sync shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown halt:*:7:0:halt:/sbin:/sbin/halt mail:*:8:12:mail:/var/spool/mail: news:*:9:13:news:/var/spool/news: uucp:*:10:14:uucp:/var/spool/uucp: operator:*:11:0:operator:/root: games:*:12:100:games:/usr/games: gopher:*:13:30:gopher:/usr/lib/gopher-data: ftp:*:14:50:FTP User:/home/ftp:/bin/bash nobody:*:99:99:Nobody:/: # # protocols This file describes the various protocols that are # available from the TCP/IP subsystem. It should be # consulted instead of using the numbers in the ARPA # include files, or, worse, just guessing them. # # Version: @(#)/etc/protocols 2.00 04/30/93 # # Author: Fred N. van Kempen, # ip 0 IP # internet protocol, pseudo protocol number icmp 1 ICMP # internet control message protocol igmp 2 IGMP # internet group multicast protocol ggp 3 GGP # gateway-gateway protocol tcp 6 TCP # transmission control protocol pup 12 PUP # PARC universal packet protocol udp 17 UDP # user datagram protocol idp 22 IDP # WhatsThis? raw 255 RAW # RAW IP interface # End of protocols. # # services This file describes the various services that are # available from the TCP/IP subsystem. It should be # consulted instead of using the numbers in the ARPA # include files, or, worse, just guessing them. # # Version: @(#)/etc/services 2.00 04/30/93 # # Author: Fred N. van Kempen, # tcpmux 1/tcp # rfc-1078 echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp telnet 23/tcp smtp 25/tcp mail time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location name 42/udp nameserver whois 43/tcp nicname # usually to sri-nic domain 53/tcp domain 53/udp mtp 57/tcp # deprecated bootps 67/udp # bootp server bootpc 68/udp # bootp client tftp 69/udp gopher 70/tcp # gopher server rje 77/tcp finger 79/tcp link 87/tcp ttylink kerberos 88/udp kdc # Kerberos authentication--udp kerberos 88/tcp kdc # Kerberos authentication--tcp supdup 95/tcp # BSD supdupd(8) hostnames 101/tcp hostname # usually to sri-nic iso-tsap 102/tcp x400 103/tcp # ISO Mail x400-snd 104/tcp csnet-ns 105/tcp pop-2 109/tcp # PostOffice V.2 pop-3 110/tcp # PostOffice V.3 pop 110/tcp # PostOffice V.3 sunrpc 111/tcp sunrpc 111/tcp portmapper # RPC 4.0 portmapper UDP sunrpc 111/udp sunrpc 111/udp portmapper # RPC 4.0 portmapper TCP auth 113/tcp ident # User Verification sftp 115/tcp uucp-path 117/tcp nntp 119/tcp usenet # Network News Transfer ntp 123/tcp # Network Time Protocol ntp 123/udp # Network Time Protocol netbios-ns 137/tcp nbns netbios-ns 137/udp nbns netbios-dgm 138/tcp nbdgm netbios-dgm 138/udp nbdgm netbios-ssn 139/tcp nbssn imap 143/tcp # imap network mail protocol NeWS 144/tcp news # Window System snmp 161/udp snmp-trap 162/udp exec 512/tcp # BSD rexecd(8) biff 512/udp comsat login 513/tcp # BSD rlogind(8) who 513/udp whod # BSD rwhod(8) shell 514/tcp cmd # BSD rshd(8) syslog 514/udp # BSD syslogd(8) printer 515/tcp spooler # BSD lpd(8) talk 517/udp # BSD talkd(8) ntalk 518/udp # SunOS talkd(8) efs 520/tcp # for LucasFilm route 520/udp router routed # 521/udp too timed 525/udp timeserver tempo 526/tcp newdate courier 530/tcp rpc # experimental conference 531/tcp chat netnews 532/tcp readnews netwall 533/udp # -for emergency broadcasts uucp 540/tcp uucpd # BSD uucpd(8) UUCP service klogin 543/tcp # Kerberos authenticated rlogin kshell 544/tcp cmd # and remote shell new-rwho 550/udp new-who # experimental remotefs 556/tcp rfs_server rfs # Brunhoff remote filesystem rmonitor 560/udp rmonitord # experimental monitor 561/udp # experimental pcserver 600/tcp # ECD Integrated PC board srvr mount 635/udp # NFS Mount Service pcnfs 640/udp # PC-NFS DOS Authentication bwnfs 650/udp # BW-NFS DOS Authentication kerberos-adm 749/tcp # Kerberos 5 admin/changepw kerberos-adm 749/udp # Kerberos 5 admin/changepw kerberos-sec 750/udp # Kerberos authentication--udp kerberos-sec 750/tcp # Kerberos authentication--tcp kerberos_master 751/udp # Kerberos authentication kerberos_master 751/tcp # Kerberos authentication krb5_prop 754/tcp # Kerberos slave propagation listen 1025/tcp listener RFS remote_file_sharing nterm 1026/tcp remote_login network_terminal kpop 1109/tcp # Pop with Kerberos ingreslock 1524/tcp tnet 1600/tcp # transputer net daemon cfinger 2003/tcp # GNU finger nfs 2049/udp # NFS File Service eklogin 2105/tcp # Kerberos encrypted rlogin krb524 4444/tcp # Kerberos 5 to 4 ticket xlator irc 6667/tcp # Internet Relay Chat dos 7000/tcp msdos # End of services. /dev/ram / ext2 defaults 0 0 /dev/fd0 /mnt/floppy ext2 noauto 0 0 /dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0 none /proc proc defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 none /proc/bus/usb usbdevfs defaults 0 0 # # inittab This file describes how the INIT process should set up # the system in a certain run-level. # # Original Authors: Miquel van Smoorenburg, # And: Modified for RHS Linux by Marc Ewing and Donnie Barnes # # # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault: # System initialization. # jc::sysinit:/root/bin/test.pl si::sysinit:/etc/rc.sysinit # in::wait:/bin/install.script # dn::wait:/sbin/shutdown -r now l6:6:wait:/etc/rc.reboot /lib /usr/lib /usr/local/lib /usr/X11R6/lib /live/lib/ /mnt/cdrom/live/lib #!/bin/sh # # /etc/rc.d/rc.sysinit - run once at boot time # # Taken in part from Miquel van Smoorenburg's bcheckrc. # # Redone for LinuxPPC by Jeff Carr # Set the path PATH=/bin:/sbin:/usr/bin:/usr/sbin:/tmp/rhimage/bin:/tmp/rhimage/sbin:/mnt/bin:/mnt/sbin:/usr/X11R6/bin:/usr/local/bin:/root/bin USER=root HOME=/root export PATH USER HOME mount -t proc /proc /proc mount /dev/pts mount -o remount,rw / rm /etc/mtab cp /proc/mounts /etc/mtab echo echo "Welcome to the LinuxPPC Installer." echo echo "Partition and format your drives, then mount them at /mnt" echo "Then run the script install.pl to do a basic install." echo ifconfig lo 127.0.0.1 ifconfig lo up . /etc/bashrc echo "About to run boot_live.pl" boot_live.pl if [ ! -f /old_input_layer ]; then sysctl -p /etc/sysctl.conf loadkeys us fi if [ -f /tmp/text_install ]; then /bin/bash fi start_installer if [ ! -f /install.run ]; then rm -f /etc/X11/X start_installer fi /bin/bash echo echo echo echo "All Done. Rebooting your machine now." echo echo echo init 6 # /etc/bashrc # System wide functions and aliases # Environment stuff goes in /etc/profile # For some unknown reason bash refuses to inherit # PS1 in some circumstances that I can't figure out. # Putting PS1 here ensures that it gets loaded every time. PS1="[\u@\h \w]\\$ " alias which="type -path" alias mv="mv -i" alias rm="rm -i" alias cp="cp -i" alias lf="ls -aCF --color=yes" alias ll="ls -alF --color=yes" alias pa="ps axuw" alias reboot="init 6" PATH=/bin:/sbin:/usr/bin:/usr/sbin:/root/bin:/live/bin:/live/sbin:/live/usr/sbin:/live/usr/bin:/usr/X11R6/bin:/live/usr/X11R6/bin:/live/live_sbin:/mnt/cdrom/live/bin:/mnt/cdrom/live/sbin:. cd /root HOSTNAME="localhost.localdomain" TERM=linux export HOSTNAME PATH TERM  . .. XxinitXsession . ..Xclientsxinitrc#!/bin/bash # (c) 1999 Red Hat Software, Inc. # check to see if the user has a preferred desktop PREFERRED= if [ -f /etc/sysconfig/desktop ]; then if [ -n "`grep -i GNOME /etc/sysconfig/desktop`" ]; then PREFERRED=gnome-session elif [ -n "`grep -i KDE /etc/sysconfig/desktop`" ]; then PREFERRED=startkde elif [ -n "`grep -i AnotherLevel /etc/sysconfig/desktop`" ]; then PREFERRED=AnotherLevel fi fi if [ -n "$PREFERRED" -a "$PREFERRED" != "AnotherLevel" ] && \ which $PREFERRED >/dev/null 2>&1; then PREFERRED=`which $PREFERRED` exec $PREFERRED fi # now if we can reach here, either they want AnotherLevel or there was # no desktop file present and the PREFERRED variable is not set. if [ -z "$PREFERRED" ]; then GSESSION=gnome-session STARTKDE=startkde # by default, we run GNOME. if which $GSESSION >/dev/null 2>&1; then exec `which $GSESSION` fi # if GNOME isn't installed, try KDE. if which $STARTKDE >/dev/null 2>&1; then exec `which $STARTKDE` fi fi # Last, try AnotherLevel # these files are left sitting around by TheNextLevel. rm -f $HOME/Xrootenv.0 rm -f /tmp/fvwmrc* 2>/dev/null # First thing - check the user preferences if [ -f $HOME/.wm_style ] ; then WMSTYLE=`cat $HOME/.wm_style` case "$WMSTYLE" in Afterstep | AfterStep) exec /usr/X11R6/bin/RunWM --AfterStep ;; WindowMaker | Windowmaker | WMaker | wmaker) exec /usr/X11R6/bin/RunWM --WindowMaker ;; Fvwm95 | fvwm95) exec /usr/X11R6/bin/RunWM --Fvwm95 ;; Mwm | MWM | Lesstif) exec /usr/X11R6/bin/RunWM --FvwmMWM ;; esac fi # Argh! Nothing good is isntalled. Fall back to fvwm2 (win95-style) or twm /usr/X11R6/bin/RunWM --Fvwm95 || { # gosh, neither fvwm95 nor fvwm2 is available; # fall back to failsafe settings xclock -geometry 100x100-5+5 & xterm -geometry 80x50-50+150 & if [ -f /usr/bin/netscape -a -f /usr/doc/HTML/index.html ]; then netscape /usr/doc/HTML/index.html & fi if [ -f /usr/X11R6/bin/fvwm ]; then exec fvwm else exec twm fi } #!/bin/sh # (c) 1999 Red Hat Software, Inc. userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap # merge in defaults and keymaps if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi if [ -f $userresources ]; then xrdb -merge $userresources fi if [ -f $usermodmap ]; then xmodmap $usermodmap fi xhost + localhost if [ -z "$BROWSER" ] ; then # we need to find a browser on this system BROWSER=`which netscape` if [ -z "$BROWSER" ] || [ ! -e "$BROWSER" ] ; then # not found yet BROWSER= fi fi if [ -z "$BROWSER" ] ; then # we need to find a browser on this system BROWSER=`which lynx` if [ -z "$BROWSER" ] || [ ! -e "$BROWSER" ] ; then # not found yet BROWSER= else BROWSER="xterm -font 9x15 -e lynx" fi fi export BROWSER # The user may have their own clients they want to run. If they don't, # fall back to system defaults. if [ -f $HOME/.Xclients ]; then exec $HOME/.Xclients elif [ -f /etc/X11/xinit/Xclients ]; then exec /etc/X11/xinit/Xclients else # failsafe settings. Although we should never get here # (we provide fallbacks in Xclients as well) it can't hurt. xclock -geometry 100x100-5+5 & xterm -geometry 80x50-50+150 & if [ -f /usr/bin/netscape -a -f /usr/doc/HTML/index.html ]; then netscape /usr/doc/HTML/index.html & fi if [ -f /usr/X11R6/bin/fvwm ]; then exec fvwm else exec twm fi fi #!/bin/bash -login # (c) 1999 Red Hat Software, Inc. xsetroot -solid #356390 # redirect errors to a file in user's home directory if we can for errfile in "$HOME/.xsession-errors" "${TMPDIR-/tmp}/xses-$USER" "/tmp/xses-$USER" do if ( cp /dev/null "$errfile" 2> /dev/null ) then chmod 600 "$errfile" exec > "$errfile" 2>&1 break fi done # clean up after xbanner if [ -f /usr/X11R6/bin/freetemp ]; then freetemp fi userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap # merge in defaults and keymaps if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi if [ -f $userresources ]; then xrdb -merge $userresources fi if [ -f $usermodmap ]; then xmodmap $usermodmap fi xhost + localhost # now, we see if xdm/gdm/kdm has asked for a specific environment case $# in 1) case $1 in failsafe) exec xterm -geometry 80x24-0-0 ;; gnome) exec gnome-session ;; kde) exec startkde ;; anotherlevel) # we assume that switchdesk is installed. exec /usr/share/apps/switchdesk/Xclients.anotherlevel ;; esac esac # otherwise, take default action if [ -x "$HOME/.xsession" ]; then exec "$HOME/.xsession" elif [ -x "$HOME/.Xclients" ]; then exec "$HOME/.Xclients" elif [ -x /etc/X11/xinit/Xclients ]; then exec /etc/X11/xinit/Xclients else exec xsm fi nameserver 127.0.0.1 127.0.0.1 localhost localhost.localdomain # This file was generated by: modprobe -c (2.1.121) path=/modules path[misc]=/modules path[pcmcia]=/modules path[video]=/modules path[fc4]=/modules path[sound]=/modules path[ipv6]=/modules path[ipv4]=/modules path[cdrom]=/modules path[block]=/modules path[scsi]=/modules path[net]=/modules path[fs]=/modules depfile=/modules/modules.dep ,7 xE_gpt1pL/u [DG0(">Ecسz&!b1,UN񦪫^] Cri̚6-3uLUs&Rl pON3H9$ݜgk2NhRPC؈jւū)āIB$Hp<\]6x G57U2E#uLS++҂|k`0 lLN﭂:T R &摿W3Gv (d.!UVVڂz˶=D¶$ay;e>T,ʽs[7ZX\ ,Lhj6lY)Կ>٣ 0 8!`,$s3݅zbWc7U[zn8tl)#~뾁>&0E&GImQT!%hyszzQ+S N\444W&х o F6n~[H5X@NV+SII-QߐJvv׫9cMQDEǩMz:-_jm K5 5iBv//!g:lbG?{dPѾ)79WZޢ1aq˺g|tr_S*}X*ȅ;}7yh]^B/=d>M%WQX?P-.-o %Z_Qҥ[{???9#@~v(uWugj`?O]k_!@ k8j;%k~Ş?c_z=UԷlh6mQ~Md~w-~v'x+ fV^=Vx_L/~~CE K7<$2osh_^x՟G.o_9gqlW_l2k~ k7_+0 ˹Z0Sgl/uKNJoihhaxXmR /5XOuuU]#.CkDgv:{tB_OJj̮ 1|yM"#f;u[EO"; CЏ&; qs[ ?c^_b?,"b+nv=;8 Kp(q`wR8=q/H'Q8X<ƒ<<a˰1< 'x 'qX x"'<x*c$Sqg9x.N|/ċb/rgL«gux=ހ7Mx3ނmx;ށN {^>>\$>O|\XBLዸ_—W_ |·Ř%.a=.\6a3~rWg?) WW57؊w{1cdϕ'@bdmI#ٞdIFw@A$IDRB2$L2dg]H"$ 'ٍdw${I?H&هd$?I%ُ_$&$"M2d,Ɂ$Lrɡ$Nrɑ$H$e$$I&L$E2hcH%HK28 IN 9$IB'94I$g$InVnvfÍplq/ 0l!h x`+x'^OÃ0b,RJdZHW]å\)/TXD~ .+tU_zr&-ަja,rcXB~::XJ^A#K?ol!t Q 8 )\+."*%\:_LlW7>-\CV55f;Zw;|>}Cx| +}W #Kg`~C3]pSa1,/-.+z^Ыp&l]x%*زnsmQ/X]T+Bm}2 h"|?__ϛyw͞TAXb*sԙRrh091oۜ2s4k>5+a yR|~gas lZ3Ż@^q6/ #Q'8=͊0.rKBٸa]dD6n:(8l{9t@q|4ǝh>Nq|_q|i>Nq|~58i>۝|48|޲W%_y~;wŞV.j]TY)/ƣO~[c48i>Nq|zʺǕD>8y]958i.Nsq4j.Nsq\k.Nsq\\wi.Nsq\4\48Cei.Nsq\4\\Ou+wS|UvRhOڸɭt}:nNꖥ&m0L¹Vf*EUeҋl>| e$Mq<\1Thxihib5aq|qܯSᯝZ'>*X>e8É8fr8Sq >:2qիSdrk3Mk UW~?Q-/݈0㕨*7KJT1jx^/Sk4<^v,J}?/ ';?]YJG vy|ڗׇbT#թ HкW옾){Ϲoq4~w[;LT/ŗGE%_pp;eJ#{#ZU^RkJi/ihMz/\]DvvDJ[җJ~|Tu8 4jxǟ/O÷q˒q>"=H듘?DC5<go%S5j)Oʣ~R^#KdW}Z.~Vx<$т>n7\?K@*aY4JKt|W52OΞ?l=^PkW00I 4mٸ_wt;N0r_NQ_'^= {V縹y}r!}4?qs)x^Wu77鯷r;~.αsiFX>9vCh`43?3ttb薯}JZ68Qh0(ldFgH&c7V.h2'8ƭuSx7Ź)MqmgplaSZgnMwS+rjC~6qHUvҠΜWqӜ495aCsjS}LͩiNMsjL|ͩiNMsjS[OZb;d0TvH>W46 詬RJNxshY9[E!}0xNӣV%ߕsZ?X1ܫ!f7i]չ9ǗBu,\ 9[|M_?X¨Z;pMރd5Q)E%kR,1~{?H?0UI@P@"[`~8 cz/`8L.p80g?dqˤ S/cJ,N;9ypJkguV R5?#r )CZyqϡPs*d_9=s9?z<<I }o N9XJ9TaPE}쟸o'ͩ9-fYU w9pwλKrk+ 6>[a!ܖ{"̾{˽~T{ز`{ކw`1̾ނe}},;!4|B)g$+IV|E}Z  ߑ|yp00p14 >6Acs s-h ½ְsް#cW8(lc4yƞ7X~!| wɓ$%D9RZ'sYaيMUFI(x<ӦmlX$pP (VA,A"I&cwL26jJ"$&AiHJN# eDͷQ`<ݾ uέ'F6fN'x7Zv1Srgw] MѪ}5Fzن:fJh,2Ng\7L=LeJY%Tw_ p?8DɧUb5w[=ruV\JU_B/LMƪ.o/6PZ6,i?DL,TClZ>ENӵhcb.8O WjhGP߇0 nN^MFPq%/kB@X)Xy<6/SV%ݜsEzMWQԢ=ĩ K-սg;``Y!=8_N6=IYܸ5@maPatJ/We7LavT|y^Wx! kyۣgosJfҳz{]TLи2`6xxsa x ޸^Cd8^DٌeçM W0,Ur+|rЌENH+HR" rip4\*xf"€]:M$aj2e_9ۄbKgCbц.o]{<[Nw %>'Q[)41hqWplK(׶-yOmGfx8cKu:Ut"ǥmL}D&v⳧P9L`Li:A>ãijp*u$ݓBۊdm~Tg^yC]a0Uf1)I'AD nkF7r)<0"siôgP0}OJ4WSͨM20ZM1YpjV,|!WxeAV)k@rk)ݐ2D9Le : . D:6\,ś}KG.QÌ?\:QPU,#aq^,ʊJAf j_٘XSmL,ۋ^2X{; @4pһj"Q. ~:t+)D:va}5q.P k LQ@yGOAl o@&42d6%*X`F|B,H uuD҄ie x;+vOp/\ҫ@Enf8 ? ͦ)Chjf08Ir&ˠ?.| k0ͦXFy/ei氦IRi0biJel݁U3+fws$1;t|Hl`pfKhfl[z \Pf,OPgރ4/ap'T7j~2XZQ[Ye +(.B,Kvd^Q)Q69F@K:,IYP8y(L:9HV33Pa4*b,Rla?z8"]9Tk_v'$8(_lE] \#1\6Y:aIDj~t#(N-e-yE*H5# e?1rHZ/#u?q`*ZtaW_z;3)' r:xN(ֻ΢">D/2%i, |c5^VF&׌ fճ`P MŬ ^T6P2$d]7h+Bt c }UKQVO^f?6tq+)ddO/^.6xRHېO0!⮆hX8̅=:2)FQxsٜi*Kn=Y@0N N_D-`PѺކZ!2S0Z G;4@cyqdU/Ԡ"(E~@X4TwQn1Y'tƶ3~w5H)ȮE ZZYH-@|~K@3(>oq ֒F\u􃴪 (H-:hVl㯶o]}lR @Vklfb;'#}`_C_Rx)Ka#{P\ )X7TX]*cu T"vQK{vK(RG{Yw2C?_=ԾA~{KcՅ=f{_#j1 @ :~w ]LP09$2b״E{ὃn`I=GM/9׷b҃Lm~wd߫[rOߟxeK*+:d}ܴn,@-4SNқ2P+2rWXt$gn*oʪAmin=jz |;Ћ*:+ ffs툙T4@لwX cBaz[޾'!At$aא<Լ&8jxB #a+(6YW7f2AU^RBqR.s6eg:)yTQ )*CǏ;LØ9i-@g1;ĤN`0;RpmaKa y.`Pk ),vL bb3ЁXMڔMɀ^ w N(HLoc`)`1ING#;wH&C$_.XL7T 3P36 S9al!2bj)l; ;Ƕk9`W5ŅW(^8dv)ְ.xA)mf1Ua헖`uJ?9ݗdt|z7b G.v| iᶽ2=NBcH#Vٻfn:л}Bf1tFTO;+ R˴ڋN>ٕ[šK-Q /<1v3|Ӱ.\aע|SLjzDۏLo@@s ,)1 ~E7٫o0t[FD/*Pn1h{JW&wppq6e`VJ$8*{_jA6*m~Q/$vElwaK%LM$U0_!jʶ$K~~}ssY~n MG-hjPTpG٦?݇N-.11nVαK%ޚtIs=;q;C CU)NIr*r.)@Bڥ[]V/ 08G폥nzzޏyzt콓Dva^nPmgμO[j޴[*O[њy˟@,q膞 H !PjfQ U<:q;[\5,ÅB'YmGyQgKL+U)p`DSĚ~5 kQ_6 PAB4ֲ߿z-5FSLV53䔚!| 5!xcS3xp(_R'lRI&jzJH*x#Dy؅A4`}+Lʆ'_ϻE7KrQ;QinRl${}&kPCC04$SqhA~%iD'd.U0 0D@H)Ԇ 8w:$-(@Qz(#_7%( u#a NpPwz?yF>sq "Pw 5Jj+ mG3 ^E)9W*m~$Mz#^ F`4§DH<=./ꢃdq"ғ1dQZO2O%x>th#! țBn>08 v@+$c,Wd<*ޗyP"TTvzqf1csAk̢x/ gqO`rzQbLz! t 6T#exFˊUլ^Queb&wh̚Ya@ZеyZ4&Ami@څB%5Oɺң@V c4Ȫ_-e(K{e$N9o$i7 k)!Q2u fjT0pKVS+EQY+ SYl-P+cz@9Ɋ=&'f"_w8ZeAZjLu' L}-&rL'4r-N*&dD~APyd w*E~WOGDƻL_ !v 'uψKRM#Hw-2%FAsQnKY#)q-%:F2k6ut,B2GL2;yc] YAWe&pt8zV,SPlUXu,'`%~S;@:AYF:J2BLE,h[ *xsdIu[ZdwrrfJ+S2>cA_Aw tEZ̏YD|Q /Ӵ &CCϚBGu:S熧eB M $f40`:;g' GׇZgYV9f~ IQ-]C2FԆjBQ~\%A eHhKא\%tX'^l9BEoF ~09{`8%N#Ipeq r-kJ`W.j cHatP,w0;pxdĮayksZtʆo7x㍆6KWkvӳjAc3]Qz(X1hcNI7$Us'z>c.*[h,U"$njuI>sy+NcZ~U緝AgQg *lypRmWQ '2=K33t1R^)}:qV5Zg:yq٪> KD{rT ulσW|k&؜ZI}-w΅>Ťǿd Y軪/G= }pj7z?(40-3~-ZF?PBO{q4v:OTY9sЃo "^ gxALa&ܮD4u(%Utz4&Jɔc Wgr|d9~!mxq'QEKP z `< ;$sY` U-mzCD:hS-Ad&t!4yڞ!|ܜYpzղY5gm: 6h߬V>H=u&; r? WM+/Ny))3e">Nޗ3im*jI]WgHs`PuB$ﯭOFVLU%!e5s(^VLݰ!Դ҉:q^uHAf%o'kMBfkQj>@׈ݼsfiҠΰ“VOq>B%tbkQL ؗȜP|58zϟ{(8,cq XzaZg A4N7%*Akԥ<ѭmJ. esA%fk.r`TZÐI {-jy制q7@Oh8+nh%hfGmfNGhk3kEZOEl #phqϝ7oX6hS=Dϭ}pHډ3 #usR7u?UhD#z{isbM<ݖXt2=eLj cm짜ΓrhARt:heCh| ]+gPn1RXj8%I@Y[Qױ_q>&tlr6LS"1_rSz~V)[ҵ| 3ySg&$󐘇)?ץsI)z^b#l|1c [rZnR=24WWSM@g-"+i=4yjE)/!#ɎuXq0@+P-?WŞ/^ݱY(VVau04KRyMTH]SO#[ґ悑TP^Sڼ2mrY Ut4_IZЌ@+4!<!B@ N# ĢnP߭(nEXNYl?m w4ǀ\]/#ZR\\{M)t_xЭ%74`1xR}-NU4ۧ]"._}zq~ّC3~oX4 C)gf @\ABfWRKm7(_t'"X$v7-עE"$%nmDȡ+J$U1r.V 1/N=㆐+h1tW?5ȵH G/M۝F"S]8r5z?yf&~tT}-n~hw`jhvI3aRD߶%V,;:zKn ^&p!>3o!B|&Kp̔A&IE*\q3F;4ė'xYMݩnDgYgnËs-:V/`.A5bx#d]^*%?QrUrZ4QuTmƦ6Sa8uO[Z[N Lh!0䅺J%Mp{hZIw57$W}ILA7)--`, 6nRH޲K͈8.9LF>?2@:ɐ R@S{qiOsm`ӉP\#c|5]Xg:`feiv/ 'SA`^^YV7J45C0Jg(*PA2Y )G5C$[V 7Q5LNmԖ;m3閑\VK`O_٭Rh fiș_1^k38 E)@{]k?}zvNGl,Y]XffkiNQZDF7~Sl|W"S&iĽh]-敝ip8Le]%7~hIѭ ]͘Ҡ6N,g<*σ>ۙ<ԃZv6+԰KotX/ip3!Qs~<<'MY NӳzA|BjJu&!_WiGM*?5WTl ,F@ߖ9?]. Vr[c]|,/O9va UZ`ԿØt[ѪLʂbVT `ulQDyգENpTyUUym$W;~Pa9jW{^iD~Rۧv &,Zw ױVa_3VU-A$T:dhELm҈5}lŤ$u7j)ڭnŷwC)>S>y-:hՓ:(cփ􌆠ԝz~Q E\؃8=jՐN+r-ZZ` LG~RſtַM7CXP-6|1ԄXd$)?B/ٛ5d! tu3:KT-WcwRHtYur]7;偅EƌPp^7gՉQe t5,@`+6^2Emɺk#մ\+iYIC_ow)vsT9Hݤ h'TvsLbf7GU5;z سMg??`bD+νVAą"i, 5(} p`6}Jlg] ^2G5֙;qgJ7Wi ϛg.o n'g;ԒNf̡͘)ў.^l}dE{=y4T95 ɚvZU{}ΜU׷_N k"| E̼̱ڞ4I$iBFu-rwjs\%\AUay+j1S )JHvdȘTCKI=wSʖrjɣwz PO hyσ{)9 I 2]nѫaG%Z ;vR _ڨv܍wxB,PzU%:w4$ lU'p+rtGgf#LCq&V=nǧsJGn*3%|zՌ_?X=v\QAdzy TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^ד+2F1}!}w^ t-tάYW2\i)̔nOm{5ywM|ElvU c@Iusq/ʪKc^YWu!~bv#yI=.=9z*/)GMS6^"cBռCu7pzóH[;,\%t6eed-˛?帼Gu$k6d7TM*'Ąu wr_c ]Wu$d؉3QG̤Ԓc& ]H{b83x 2\4oFn x_Xb*rDIbcMNrX;T)9{^Ŧ Bw?n֋DZgR(ṷ0h2Qb-] ZA?øۍKj#>ȉ*1,#X?1:le?\ % hF {4+vx.ظ(UU|$D!/<4atQ*NO<+wlBHNdI/,ޅIJ .LaP'H;f DD/RݑjC- .)tUzDmX^iVz TRf7M/׭B&Nv\zsfIHۥ~ܘ ?|jM+NOlJ vYުvdE¦E*l>79!3*%1 |al)J,izt"ɯٓvJXFz0O#T50J?=/n2^Ob| Id~eB{QYPIr +sa6L ]/^hE4xU;: f CKwMI,S:9+نmeP׃-몐@!e#*xXVoT*Vw^5 e^dK]M2PR#n=~2\g1a%IcR1UAp  >uQ߁Ž^lIy6 d=~E~D!V#*bLaRXOx++EALbj؆Fj H_ݧ67fmYjCRWwBW4*(4';|y"}Ц祊l<E_=9sPfLɩ{Fz\⨹$&cq)zkI F}URG%PuE&xЛƑwy ]pwQu*azmՌ>bu+rY>#ECm-ފWciXS_ .Bŏ𷩂NK[/ ŧXYS 1R\)d$".RBTFcXgaL=B JhN/,&KM=dcn%@} th`lQi]r/B|irgi 5t+bzdęB{ S2LWMAi^*%`1s/tRZJyKsŠ;(%/#tC9H+m3!Ή+={?(!WgUzrnB;=tهFB^R2pjϙ(ҽ4nRo5JUeI*O]!& *iB ~[]=\" E_ʛI5b]u2@3' |)$󥼙fnTk:1h¸o ֥5;B4MGޒ&㔆u:^T7RB1_ir ͦٔ(2MHcg09v"WYv)~qRE'Uh!~<=3Kj 2 wZ%URcekej61;ؘbv130F B"nvАaf;mD!;թ"*N&/¦z%KEoff;EN#p۝'0VC(L(ChY]4~!m\^Ylx98W3X͵]XY?,kn  EUQ`[1}E [ H&h\5d.#Q~9 ୷ުkLE(AZBd[9k!yhNd?!!v(xW]buqBwS6űc w3FvJY9$,C5ls[jdim=8b0ckd35BV7:MD`o/:kGZaM<;3sBBMH*VQ„C$^>mzS3Ya:,bL4#9.dG\D)!0fD͑$Rȿ F ur$"XE_xV$b Q[FA9<6 ] }8EtGA/ϫ#fvSX@r yN{Q O_b^]vLJ$_KrkuLT`.B۱ӪoIhtuS27,VN4^Zc1D&$<{ciP$VVG|B tj yu_>aoÊh_F# :ecd0/{LH)b)ED7+28_=zY hA lATD8iڌN6 ;()=BH#3/& N7C*8G.̑̐DQ@6E:sb,HvI e;^ sF_e!^v; %<<qrMKK#s^j\9wKZ\`$s*&ә::t,`6pVUʆ_ N>(qr@E-b ;xr;~/P5fFLFn3\n tçm #$(%ނْţN!"0g/jjar%6b#apI\$_ӡ%[y{X8t H$Hpzd.MӴȔ<6) $drwc5BwXYdQ^~ f-QZ$3hi2'&Pn%ZBюrJn;GnCF^oڭf)g vv&zD0>Zi&vMMWIЊ ,uX֩g˳ .:=z<7k<6gTpV}(8I/K)^ϝ/45V&1Z%m+Ǹ}ޮTRxGɂ*De(2zI69$ʪHy6XcԙjGe|@"%QxWz6ΘF0ek6 찋k䥻'ܳ\W=#l4g2,S ݼ>+1T+*dq}*H)B7ߘYؙDDAJ^ҩ4Rs7, 9Ԭ08 '91%:JkSÖ΍ieq^GyRݗmo>L:^=^kA*9rR'~pl C+*^j M|0*scyԋm>U!RC!k+ةc8mFYLEFjh`nL(9q2|lŕ*WՖQ:Yv(o)qTYFcZFf:u\Ϡ+PCI;!`&0Ƃ%z&ָe!<^A ĥՇ38F+~ 3̗8#ݤu7(VE_LGU33f/s_#tY|CfD wŪBH;}μ$fN c̖H#.3^+qGd0/VypyE^Zz:yҴ"|Խ~yz2"i7=;f Qi$۴xLz۸wikL}2Nm*wN+h"4nTym!u09,^a:$[_5j!zLTj ֋գz`*\vuL֦]Nk 6QM{,γw "?7mS7 K#˛Ǯ^3rڞeɪS-D+q"H(n*"ۂ3V 6Dn @2+6S 끁w!u)76RͷZNV4plr =⩞JLiݿr)y1Uܷ>a.֎B:05h:zؔCIzWP'xMYb@F9o]A)8f,ݿ4V=+b}J}:m.`whpsIFVIݙm|~5&|WLga?(46PN}ׯۑ񙙃/N¸HUhhDֱףRAfZ^:5x] &U2f`p>~;"[hD+Q>NQy; Oevy{=Jj؋[7&!BL4L{qաGxrW֨wOY"8yo?ijGekaprz6[7wfcOFc)7n6 e֟ !ZQNgoj%7G|檲'=CGo̢>o {X¾Tϲ 90+,MA;M/7{K'bS?7(2)Ov^6T y1׻|v*~}Z6‘ܤS^CH8L`Ʈ%8 c&km^/"1WO&+2j$o[w|ԨޭY}~2\ݛnTxN҄K}V PMr7I{UT IHI>oʾJ`K[uSI%>]wVcI5GQDH9U“oBLn4pKw/RRjrǩL |N^- g/+Yo|Ӱ1mV7~Jf~-IMJ ȼY+Oy`7$ ] zKɟ5~?5j٧p0"`$]kI)τGkTjN1M%%{hIgV箭&M6*3aJO7^L阤#Xmf , Zli# zJR+e``tA<2gQ3+ 0u/4uߔ8ujZĩ{ @兞jmzNm \Ạt{mk1;0giA7 U ~fY%;%#T&HNQ3_ַbnԨP8h&/#i,\=k׭68I2ׇjWW,O#OvϳpUm7YG6Tdž&+]$hz4Nީ~\F:: c^gZҘי8u%{ЬdYw0e^'"\z\s_Z\*TcRa]Say-]1ĊKhq?Zfԅ /$d4^(YiE9f B&6<t/IPl,v65IR.>,?ZFҊiKR^^+mǽ Jd%$$,F DP~2`i>)6k1q-I-Jo Ķ .4: ɽ&/;IW~т 9N%&},G]B;F|qѵ!ZJҡXRypbkC6I<~c=n]ϾBfWih#_Դ?'3Qn=B붑}ed܎@ DDz!6\Opv=!wޔ\ GN_aO n71ޒY$g;T&p,OD߉ީSI ]82 $bm7v rٟ6%CI\ڗi8ON ElXʕGJCN4!Fi,}R9}IanP\g$bs^A .Z)E?ʍH/`ue/חKչעB;Z[XDP 빈R)sڋ:PjtZ>5L[. 4|$Z/CB_6If6}_[H  tkK SjL/r$vdw١^Чeȃ߻{^Dvi3&B2|Y/bIiR:.F(/'WB|BuuynA8~Ժl=E~BJoˡnה d/A*joB1f2.!Y4$iDVӀ8d(^K벽HDTI4ٞJz{{ErOťLz?^upkV]2H@&]y{)- -S3PT('󨔁[a+:&9Įzֳi=6:54(YV*bu(=+ڨ׋1']^ɺ7ؙS2; G eZvOudW7V<:MU(B/'>ćpɹqSo@x?)8O.^#.y9NcoWJ|] QٍF UZJhʫwk =5&6Kk&l3w3r y#Fpc\ܽJyD^\~ɺPZ-#y,D7gi\痲;q\Zؤ9{y,uwƾuv_&ؐWo]ty!U#]'piiWE 4M͘.BFWN[6XKu1" vҚLNeHa6 ( 4aX}hU2ne&bHm?w(Xܸ&U׈AH&Dߕ&׈KJY}ǵ8SHlyNw#66/'3N(%VK/TE'e)#}30᭾3ul^ HY{0|T(>nFl|&϶w3mUR3ASlw31C!!`N|R7Ef:զ0]$ϒAX9 2': '1/duIF6zpL5rShgTorŴ0AP1B{xT/vAYJgwgT&yX e>g7ʝݫ┟G=a!tvДvDTey'}ͦZM;Dzb t2{z* ]َsv4C9q 17zϮ)5>ĶT&sBO ^W'l-Jk3B1@LJjknxh$Z!+fs)3˾L`l;Jp;*I146D.dOa>S "XV^,)h8G" XU[XYBk۝D)01tz =4Qra7ɲR8?թkC OF^x *m\-!7.a^;PW-nxA`ȃ3[XCD+b~Iiy$SD4^+ôM?-P^ l-yw"i ˟ ^y00z"d/6׎Se^8'KJ#-M֠޲4te^*ze0ޠ؄ W-4$WkՉ^QZدb gmzƺ)el|m>4͉50W2W[l^m @cnkhyf VӶfUg,f+fT4)w{1PLjNM{@^ ?5"BAT%kT1 HQ|X#Ĥ^Z4'iWUe>ofQOjKxfa̍7Ȩ:~roDMvxjъX6'iTÿnW@n:^H&ᢂ0@g%^w )(E_Jwab/T|T>׻h2>J>bebYʒ'eXuzMjkl2ݮ7^cub u&NC|;X^A[Bxy \UO &YlrAً6gfDdJnw炵/Gl\VB9aJڮ!\)FϕvY+ԻP.|=o}ui9#Å֏^;)'&-/UT4E7K/ggՊI(%O+Q'L|>u awߖ5eIJB+IYu² " $I~̈́qv0N.,dΫϽz [ul%HJ7B4',.ʀpY*S̖xq/␘z * ALnV&zq&Pfg.<·= 4h_R*e=et>Ja%@M$:-CSF*+Q&1i'~0!z~VI)m; Wk;z(]ِj;FXik81JIwBܮdz\\Atq9*9kyLɅVVeh"Lˆ^ 2a*k!PavX'."B\u ɦvh) LU $^6׽(2FyC>#Mӏ&i<>4>,m,nLOmi´oz5t'^2mLKZ+"MdYS3gu *s:թ"{F!@~otph$DR!fFpPR֓اT(I/$Dt|!,<2_+51gCVߪݬȰ!~7'{tXf\|ߓ@GŽZcON{|УiHA5hU Kx|SeF7L~* > JeU}Li +8x*F+|җ46$|?$5 P'Q]-nXfyiQGfNFa0ɏ`{^Ґk ,I&3p/]P`fB\]+38~ΪLJ"bPk"?͜Ž@DAMCb䟞D OL.'U4t?vEȧKZJsOPF%2$kc:sA1M2r[&2<tCh' T]TYRa-E,1uI !:[:vx]qjbDa%9+] :fܑgÐg4%^u;ZaK]h6Biڜ P%X/x p,+XXb;t]WQ \KZd$ /d3m_6뙾V tR<ֹM;IiQ"|+h:pn=59驱ehb\.'3W:L/SI7Jt^ęOSi/]'.~PW&:tv-*LYLoN)%62pz~h.tynz( jI.؇i.&M}亊x<׃%m,K(ӓZBrtK;{R̢.j[ݓ{~P``Z=)@Vu OM3A0]J,_U g8mU [eI查Aq1YH.l ;rvM-ʳDcIXnh@= 6T.߷LajyYjr$ʬɨZiDzr^M_"~/0mN\8П1sc7Fk!{Ȟlhh oB!W|GKIkt4vR3]@L4a9%=sncQFs֕ }ci5eאHn6MS@P/|gs5ϜyW8sb%R 4'ffP'\aw;QX<4I OS_g_H=k2%s|2eR&v7iUqRǩnlEztZo8Wf5|kl|uv3o6ɚ23yO'cIgfNDg1QUS_vmon :*V|E+,tzyʼ2˵ `㲽8L Li 9D+;W2I<:k"#CR4R0xǔչ6 eL=5ݬ}3 _GqB4;4Z's3wNd`h 0gyФaЄ$b9{WJ:5f 3̰!A7Ky_ [Oۉwd]!E|QgC gȋ 3<@ t'^_evey@k.Xy^Dav.˫g=q`o1'0$WQ&I"/5J+65'KX3)>jAw+2{Y8TRzXy̿>8w^g؉/Ɖj s\tReV)_Ol٪#ɲgQE;oxeYX4KɄ=Bz T , c?ɯG:Vl>u]dVǵnk&ԌU{ҒWZܺ3hMn3aNpKp.>eKkxiԄ/ԩBxJu堇g'ٺEYuMX3>)ֵ+Lt+{onԋ)FHds|)$mv3:y#bPfg *sn6YHa?r`:ؖXf!8u=pwkp#T'´C`rc%N/Lwg;Qiiw4NP|y s5PE7 [yv:"Lf9ٗO^yGftøɻ|]E7^zŸl.O/lc܁u tZ1(>4ZA]73ȍ~U22a\W|-[gc&(CDgKĴ tOϡ B%",qp"<+Iq9CTc(<ʎƹ,,ogUӉ8{P{QƋBV *X"O"OdoEbX }UIGvF5e@-#ҹ,|k+@J :AH_G0'g'cS?{W.Iio8֟6;NpJjj:4l<6IiqdiΤ=veRL1Иs*7(JWj1Z 5ZPBni ? LvH6WÛ GHz$ /<iS;qx1aݽyog,]jhnUSO|[d!6W H׽6I׵Hv5eGAq/RMmpc"(]0&ߐufv/4*\鵼 H_)`su1:֌Sl\m4?kU<5.xwKN#PR;v |Y2剓q-=3"Ց,E5Ѭ:S%y#;=dѻM*l0Q/SI?J =O`/S[#M\%5I[wU(X̓nz7FQ6ӠS:M<UXl*)C1ɢ<_wn#׾zW%+/woye0t9I$uI Bzab;},}qѝgH~t0]Ǖyg|,݋瞛@;*vM5HokʃN$8ɎlERC񳛜ܱaZq5.a0я\r%pnd#1#w'JB j)'^TAхYkPd bIՅH م -201`F!8qa"?5?EУLKANݯ1X{,=0qP^?΋(4c 9/b`9%>*Vqy+5JףҡjueI:J^d$^;U!7B-lh 5f 9ub5Oݕ)Sa.{̽_v *IJWI/d4./w*mzy4ˑR6\Yb"p3+m%"eFʗm[r-S[[ $C߭Ҏ1OjsS&>G ;ֳ; MƧ< ,56r+<ΈkI_BŨ2髧EZ`?nnn-\K&+"]Or~e:v)PLib!.rb) sҍW&VĿ^鋅$ѥEkD$㤬:2+npr'Eo$Uc D5b]*$(ɮi+ut^:ғzx +7ki[c#LX7I[ q]ՈwQjJge#zkY )4$^R73@ܣs=*%ck]V Y[!vc8*Ƶ; Y)بĄUN6bm<Ҟ;RX&yg.hWCkl}t%tO,Zl[NlA% %!"uXbe~-‡?싵u5~ڽN--~-4]ʹ \wKVBznMƹż zVO6c'V!1DU=pL7XnVKLCj{VP㧚?2㪖yuOWj~2ejEBpB,-SSHx0tP+ z:wwAHżtMj+u.9c}DNA+d {JШN`*= h5Ltwp=LtI(Ha@2ޫ_i(ZjVݨr+UXYŢNCKkՁb(AnTTxzthjvӪv1'Y_JY FiB&2ǵvS;m2)95/B*`ԬK dGwZbRZ$SLKsot7/{[53áJ8RW tEkC׉Pw 28!u˂C廝K)nPSO3|9G/2RFiWBrehp&,51o0/J*܁_&!_DIИE?;]j'O7CEB=RKA^ BP7C D %u%@R^%RxFg"'^WD}᨟a8GDK|r1&i$$*B0f}BR70uiJzj+LS["alZz^֦q) LJ?E4yL=z”KԎ71]Jlja@)tU'^Ə_UBad~OOEbZ-3eH YTZ&OƦ ͧ ?+}̕84eh1EUI6 >Ɠ$c2Moy> ;q-JXg=U#"1`QRbc%=k&zk4 `,ton|/YG54;W޳\f`LOw|#@g{C[ٓjzbG`_)#} %<ĵ{MIYBTzfU>ǃD|~.ѳpm-$= Ԝ&NAh+TDo j)KnP0:<3 .RgЂʸ#q0W)x}J;:04΍/9eRD5l]$BD'!|X{ҟ5CD0JdkkCt<(=XOv >sdY"֎O`C|hs١ێqk8f9pXw{Dp>y./] %`>Ȃӛ̯}T>ok+CkIh%ࢭ}Ch[4FrEqUOgᱴ=EdUq g(9di &F F|N?[CcU/m;^L$v:6`į&eD@uLVwčnumi]~qFw7PQ#DeњDZs5zF(Kjeop7 !LbhƜȍgLׁDGՊ.k۠DAIFYc aC!za6t'a?BX!"#&ϪJ0ѪbGcLk4 nsMk ~m>5JI Fa7ڣᏂ"Y0 Z?Y'xG/[0VAy>{_c| %l?GȿҥF8WJSY'ܨψ@'PZZ1gc)QyaH`C(PzviVJ,W{K8s͠ϝUɤ_},w^* <e0m9;Tq^Rg}vNNۭ<%,<SU#}~& ϛOn6? p|;|$jG\&yԇUMGIt_GyLȐJJ9֡'>>$qAHNHxsiؒQ<\o ᏸ ~db=L>XviUhHj=/U>(Bvh2\!\uL|.^qk={fRy>RjOE#fV',fq}trT\Z! 6d|JgwCpA^9E(it%s^Kc>Qݘf -ϔ9prt]dI-GD*Q1R®{|3u~r!=RGcD3 9M՗(&~=pZF8b"߳kf(P'A+sbP 7۲d'w1jb?;qf7N!Z>$q>nz6G-t@֕ $g^w0TNSJS a| "bSPJj"Q1Df3qeF(Oo]B La?tC,mסpJV%o?ڨ (Vvm_2w'\@Cv޽n0r!GuFD?MG"o~!ײ649#Mp=! e~ʞ O:Dи3<&sُ~F\oQf w44?==m8ˇ,W?W(3+yw0; (8c=ӐP*F?iHjRúTvb $s`yנ':9L'h&dj'?y #ɲQgȉW2q]W:/lrS`I [M!(G('$RO*:}vbX5:iTDu:C٦t36m}Y"&S(6gvA P+Z$_Eٍ#\pG2kX `Y+pc[bzFP:^M/!ʹt,l.3V-E؈Zˆ9zP\vnv>BƎԺC";/,aAQ=@n4=sQ孎5Uo&s#h܊"9 "UحH,hJiưpAלXo: ߼s*; {e]Dc/+衷UgP:ˡQ\Pgt~Ν}lED!~uґE##g5!W&H?o$F؆h+oL٭o E d Q] PzY /,F?3;w$nZ~Z,B]6ރl`>iŢus2$s";hΡAvo֫Ύ76bH|t&hw~dyiY"sdDv&asy`*:Ei5;I@sdr&ZG*rO#9ߜ %m#;q^ϙ; ćjHMu ܌L{"=H."D4` :#JUӣa ?&o|'MEsl ڵ$_NK|?qk0,w/ge, >?Dpn @6vUr7Zr*_h?2kb%!D- ȍ\@FsYѫ&yŚV]Į1ˋ@P!% USi5qkf9O?jS|Dxo]מIs&XmcTm* 6ZΎz\7vw0 w ފ˰qaU 2BJ1j~3O "] M qZO& wݰ>Op b#=|Z^bôY{!G?[?/Ϣ8 ;a$ⓖ̷Gem TWfώL؞J0-9gg9:,Zofy}oZl[*០ĸ$+Qc̳/Xi&3>kz20k08u\(Aޥjn!Wpس>iUZw!;F##eVGEľ 3zHzf=4#JxW4rH\I"1Gޢ8GY?g^N\j lޤt4cH%͙d=zYg CO11QV;YjitDBX|vu}A)ӡ%ո_[D2mڕViH+)¿N'F\ߥ-ˢ MV,2V]#NnreLvuzBδ$3-iLˠ"cmА"~ݣ /<{C1E^n}X2"h7X;I/W - Q6 Ѫx@Šw%<>?* nщqO+89>èO1afQK9ITaKW4T IrߔvvWmŻvʹV.i4,|iT'm2*}v>nK4:{gXtka v'2?ECl9NCF>6(gyBe1 mfG E$ |w|PmB URO|Vy]>G'ۮTB x)?)w|1QY<JM BU51 J^Y-С whCw+p0TTn \Y3uq u 3#g~B GI4ğE;[l@YUScL$*ߝl&g 4厭٬ZXbm.U]D! C̸]BQ=TD CxeDPv2,I ݮrwB(iͩ4 уQj.#C] j^HA]r*2!~tuB#몭/ٔGRodiSPm3N;є!}N"\$Qe^ʋ7-;( xf.Ϛ_K ViWlȢ+V 'dJ~/u~+!clK1淬?k1tR0j38USuj<|f77V]i7a]& sM|S(fvNG։6;ɦ=5ͦچam"NPNuZh?QFA34&i0z`,̿.VWbh|8zv(5;Mk@eПsW7iSf#ە4[g9v^?@nol4 ;Y.YEKlnX(l>g^R75ri1P!|%LCXIBʼя,anLf;Q4z^^?N7 G#L7ݜ}T6f WZ!cܪ`F4@|$q?B)m?o#KYu?Bw4U/.FSi֪y$\ptU0w5$ =x:RTJ[8;B;[-zt l> l;bX?>;+^-'aw&k~SyKg/%(̓BfHG)#tS՘xі5&tSM RM7U D5 PO2ApPs 7|,>s O'!uOmie2F=5i9S2ZuqژX9_bRW=Gi͡Q߼ aQOXA,pS)J#@wS՘7&.x$ wBM :thTy~pՎ64]sD7ޭ RwSzS]ƃ?|[[8%@#!}:{l^NE;9~4`ߡ E=^[cX$يX=Cj<#YmojP7\%TwieE yGl3 ξQƸtBe"Ɏ, *ԣL̨'|8:I7~J?O^|jԮ6̃M.dx+/6=E+zFUO؁}&Cb ț⑘䔋GJnF<@9R) 16̊Z\C lժ.5ܓ[od-8Mtp-x}3DTcdvv/4~;LuF])Or&5^mel)1sm|@tþq*yl7kj.lC 6$86qd03~eDzvJ1d:ii=o-]N=Hv-_2nQxÂVF5cAЙ>mt \ǵV,49G(MK7ڋMkH257*c,;#[_ ː׍?dO IM'u%qxiVO:GGSz6#Gye7ע3J hqmsѪ[]lC9Z L^UύmB&$6FurO_mĝIqa“%?DsӅ:? rVN&lun|`t4'=ǃL%by-VJDZHS^+ɇHC`&u2/| 0_}"j0y1a/%2c+/.#<2B罋%[ahs#X-Y&O2 ~\>lwzJ/^!r͕""'LBwO1<DtY h]Uc, m=!YԬ=XG0J?~P@hgSLa.Yu`ﻐR>?2]NbkL1E g(AR""[]!O-/OzW%gFx2{qE/A Umx;: 3GWimb4_%f6VnKraA0Re^KK+4o^eB/ݯDv!g".v أ+Ҽ,^)ɰk%"⩅#Kh U\[ ;50z~rOLHs# vJ`OC mb=w~ ע~D~W"7B*fPn}LؑFjl֡iYX@l/v4Dӯ ״(*Cͽ3/ZtvTL7g$ϚTSY B1'II-[;Rb{N+|Q^O b2c[UŶl4H55;x4_WRx>Yzͩrs4q4_73<03Q>1=Q\+bu"e'ѯ+Sv^[NDJVo]E 63lY[OOL#2*z8cUQp6Yk%"͵MGW'r\nhwzkZY۱bN v*'%{U<*Uj1?rP3x Sn;8bė۪' Hg6Q}*3?%ݮg$U>nǛf~j_i 0?l8;1on?$86xYyL..-0Tڝ<뙳 +Q{RFj)1>M;o9|R둩LV,ܜxMdБ+%z1$9~7?Ԁ F2műF s&:,I7 >I&=;jgLr+U tR,(+iێ],!ٶ'T9S !o\`{7p_0h]%K-]CB[lk!">%\a9%82 9mdyم"^L=?'U(U)zPqMliWXRLn=+QfWR7`<.m(Mh"Bd y!vv]z}u>y|6ZfsZVp {HJϸGih/q Mo}ԡג=P^I`JNzN`v4`Qj-{ljkDALƝL U$i4q^rk$t۔qxnPЇ6Ԫv]p:q.$^Q)++(Ͻ[I FDS<4ϙ9ʼ4ϿxbCyQhE/Cϱh[\gfLQ wtV!br|-qqg7pv>iV;%Ͼzkl[zC&G%6sU<6Wj}Yi|l8-ZW5o˙Y^r\NMPSعDw8=ϊqU񙝗D@gZ7ϿXtΎF g|X$wA\H m<B_J߹˅1+ sS)C(~ mI\GdILoH:uTHKΟ3 4R/iv\D[/3ׄDNJ001h!]"1ߓ^ nh05*T11xT:ݰҰOA~L!y*!斑6v8 b}s!O.>/s~h#WZ֏I|i6xf2b;L)ĵTt VZC{viw/=?TJW}Tj' hm@^>BOu̥eL(r,t?@M}$M䀾vDr$4å^eT~6F!@aCG.nǦ:LCb7xB / ڡxu,$N. F^İ?˙dDWa'+~}=&ʔmYa9r-SOZw~[du,#b2S 3:&P En *4:\h<3DPW>!DDFN‰~;^!6BR oגcJQ/S96~{1"WPtQc**:WǤJ.4HdVDᢻ]12d(oS3ݐ? l вf1&\aƜ#[>x#]60nEϜ̺FzGs(+ ]Ċ}f1#2FKc[wG\D2Eb K3oznfZ:^LPCE|Ӯ^B9B9L)8aiQġS|a*#e"Mw~R&k^2#lٲ gZ\a@@4;TC*s_T_K2@vՀ6RfZz%hpq$ + :=ZE~ JcN|S ۅ$ XˡYxk2PfG= :Y}Ax ގм 60?23^%WP55S]4q k9ėN{Bgn|u@wdu!R/G|Is (>R˪{ڱO<#鈛 FX^P13=<ɧ14nM,ϖ"*!Sdrz'H3PO!%5MY&PIjUi镆zt4J/PCZCM7E6ma!û ua+y7Wef>kA&@JH 0<6>J5KJIq\$:7{^^! t̍jcl6SRGfRվDr5P9L?P)zWڵ}[3co/F^)C)4SGٰql[I;zDŽ}UJ4:>+Q7Mm , xh[-Wae"MlVHyBֆغ}9Â*572( *oDPCSי |c6%Lak3*Z~t:QmPIC^%Q}HSdj==퀫H]K-R~NOdU]!C0GĄ+i4($4Su]꩐lXw#?.GlWSGN aoRjXjOoM[G(pUf59Uqh+ =NBjKԄ4bxcdÁE"kyqHjK4Ӗ !kLAN;W>YX_?oΉڦņ^wA'?d3ұmȾX6~(=y$FjUuGd6{uRN[fdĸk 5f -9Ęd3{0Q݃2Mك0CNC`r)SdrV}M\j *mJ nAER]4-J)kM9{2JH(=$62CG))ѥtRҔ9@8f\L̲U_QԹimNs ^$ݛX!;c˿dvxAAĐBiKL$:\7143s:66L&|:Y8BFvC9Qw+ϡ۰+咾9]G6do~8m# {yȤMo uF"EпC1FwNɯQ~7Fi;&J 9(MH/3}UpK1G\P:cRW6\o?k@=r-02*Go&=pD T,I6_3W==TzNR]C}l|9bKOl%%cVi+I7gw`r#'743 }bUdiwRV=290:G\d~X|8`=W,=ْ"؞MBKKh/#G ܘ^XT$KWwd#t}d3!葒 K`CEvgÑoTߟW?Wh_Dnt2>^(5wQPe*$(D#"9@_]zc·NKJDYNܐK7 ^RuP]rjYW:c,m'jEP"'5 y7(oPQ~zPw+HC9&NMKF}ڶa} v~̱O'SKJP '<n`9jjN*́ ᅦj69q ҤWL 3Yw-f"FoG$ Zƿm2i W]ۥvVY#ԯ$~mzl62̶gPc)I2nE~\ mDJi^f=H4|}2J9Sf1I=eE?,E厭qֳPty"U^O) SڇoQ z+b[ys7*뺉y, 6bWsSp j%TBK*OFV'#ɫϓֱֽy?iMz[7`=(*u^I_=rF_Ǝ~oGa0Wp_>]zs9Do\DO#m܆)(Vbq%5BYܢM{ёX)nuTĽJ/D` -bdߨx } ! x"ǮFd;|n^|iomVm?GNE7TAi{Dgi:%a+lu5wG[ߥ (L FELdWF,Kmc w+B㠇W_z;[9>~쒽ڗdo#g+6J˗u;vճH@dĤ [fLGn{MYWY6긾ƐM7yDxDVq+xs(m 09RNcQJD],u`4d(NA+)uω e81_/ԍ;cWeeO!+sѮ$5]?aZ"nq}(TDnv}O7^5z{%3  G*u:WUe7­-H|bPjBIA[75}y>m?%'$lIזbO;zi'3B2ONOnO:P2A-2ղN`kI<[).Z ɓ 8FaNBԿ?s,U T9G'(D"TJ1Q U^TVNF)R0ude8蚯q_f}i% {q /d%5YbGWܱRP[m{Ln@ {7;H;Gaﷶ|,W C20>="\0KSN n<b FdeByU" R#7lh+!@sC- ^B]O/n0-揉B=h51rMRt{ 􀁝<'t<2yݐ7͓dh͍)}y:L2[8a?yԜY!t3X2) m|EV!k( uzt'ƂA^ڧ~\qP:1JMMx(Fxgƀ/LX*v?mmބ$T~!Խ6cPءd"0D $V?rPw.:EN"ӿӴctWIQl5`H9fq&[݊ULR28:l!Dv,2MArOhɘ2>Tytw&"fHoD\OVy#YA-VvK69&$7Yϛ6SꨟFH8Ny)bĝ۬C`LO%3yjl2yRtK4X)a~%Eyj YW+ Yf9hS؄UB'd$%x֪ƞM0FlQģ1FQ[RP׭}0*FX16۔sBRw׶RM3}<,JnBS8)DZӣt ؜zȜSIq8NNvj̃$fך6dގxdb!t]훙*X<8e0mTp\yY'եTI;l-=ʊ'np']4.?$$\Qͩ:L ɆtP7|o%4WM 3di+%b6!~1Cl,[o%cF@v4hom_8*݅v.oT&DH!<gT*ELUm "+G_ҢڨD9 ^E2 G :,d6S*d⩥`rU#{3Q?ZIpэ.w{~x>ɸ\][L;UTV- en L*ZkMFiD)fVQ@_Kl 4MoBSBWzq5,GgNH`7@#1?9r(7EEƲ=,Nn, yNs(P- g9y\m?{y9,̩K;W7sѲΕ,5r r9ۅR'."Fd\ JtLƣ|r>Εy^Vɮ]WLz ["=e(O5?EH_0̓0^ ȥ|a8Ud&ܬnmRdWe|JdZ/CW7 Lb_<eI0W>,"ɣxɃ-tesikC6=Q=b+Z 5R&,bί]52 <\ C,lDK DCԂ!8lzD&~LO YujO8j.^]46k?iqTf(zʜW> ,]DGWz6߈īf1G\"k(~UQЪ0|M䩤jO.ϺxEj nA5(>+I/Ȼ}FES%*`N ?iiω@@YiB F}YCܿ}(tXfْ^H/=טJ[U-UwW.AT/19?v]CUj𑓪M Nl @qsaK']lΧh+prK!'\ kKYɉ@B|fQsA$K+*;{-r eiIdeMZgȡ&Oe CS/"kXAiiSSV&We5ɝ=F7yMWH&e]\!8wƧe\0a85Dz`*݉a"ݦJrL{S$rX.'ء>WC3=pi>`*_tR)@%}<[x$Wv;֫pc?*-YH=cXS)FJ'Mԭ2B(,MB]ȣb5˩<QDcMSiOq]diSLuE$Dn6RK:[)#2Lȝ

?!aDqM"'tՍYhrӳVO]́g&3FtKX^yI/=^֑ ?N?GGEe=0~zy)HLz8^ӟ04=l:NOz$4dG|<҅|7GMo"hRJ~$<}F3 {U(!{?asa_^}9̳xOw$>z{h}Xwo,P۷lξu[;#F F_Fߦ 'uX&vINd'PoB?HotumpXs9sYC`YYboU T;NoPwu:mWoB/Yo^}Y,|K6 }p$PD7{;CwXg%K5H{jT9g U3k"IcD4^ԭlXsW-&73E\dq҅*赴1C:sO]#̍HA # Modified for RHS Linux by Damien Neil # # Set the path. PATH=/sbin:/bin:/usr/bin:/usr/sbin message="Please stand by while rebooting the system..." command="reboot" # Kill all processes. [ "${BASH+bash}" = bash ] && enable kill sleep 1 umount -a killall -15 X xterm perl blackbox sleep 2 killall -9 X xterm perl blackbox sleep 1 echo "Sending all processes the TERM signal..." kill -15 -1 sleep 2 echo "Sending all processes the KILL signal.." kill -9 -1 sleep 2 # Write to wtmp file before unmounting /var halt -w mount -n -o remount,rw /dev/root mount -n -o remount,rw /dev/root umount -n /dev/cdrom umount -f /dev/cdrom /sbin/eject /dev/cdrom umount -a sleep 3 # Turn off swap, then unmount file systems. echo "Turning off swap and accounting" swapoff -a [ -x /sbin/accton ] && /sbin/accton echo "Unmounting file systems" umount -a -f mount -n -o remount,ro / # Now halt or reboot. echo "$message" if [ -f /fastboot ]; then echo "On the next boot fsck will be skipped." elif [ -f /forcefsck ]; then echo "On the next boot fsck will be forced." fi reboot -i -d -p Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "unix/:-1" EndSection Section "ServerFlags" # Uncomment this to cause a core dump at the spot where a signal is # received. This may leave the console in an unusable state, but may # provide a better stack trace in the core dump to aid in debugging #NoTrapSignals # Uncomment this to disable the server abort sequence # This allows clients to receive this key event. #DontZap # Uncomment this to disable the / mode switching # sequences. This allows clients to receive these key events. #DontZoom EndSection Section "Keyboard" Protocol "Standard" # when using XQUEUE, comment out the above line, and uncomment the # following line # Protocol "Xqueue" AutoRepeat 500 5 #To set the LeftAlt to Meta, RightAlt key to ModeShift, #RightCtl key to Compose, and ScrollLock key to ModeLock: # LeftAlt Meta # RightAlt Meta # ScrollLock Compose # RightCtl Control XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc101)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc101" EndSection Section "Pointer" Protocol "PS/2" Device "/dev/psaux" EndSection Section "Monitor" Identifier "(null)" VendorName "(null)" ModelName "(null)" HorizSync (null) VertRefresh (null) Modeline "640x400" 25.175 640 664 760 800 400 409 411 450 Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 ModeLine "800x600" 36 800 824 896 1024 600 601 603 625 Modeline "1024x768" 44.9 1024 1048 1208 1264 768 776 784 817 Interlace Modeline "640x400" 31.5 640 672 736 832 400 401 404 445 -HSync +VSync Modeline "640x480" 31.5 640 680 720 864 480 488 491 521 ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -HSync -VSync Modeline "800x600" 40 800 840 968 1056 600 601 605 628 +hsync +vsync Modeline "640x480" 36 640 696 752 832 480 481 484 509 -HSync -VSync Modeline "800x600" 50 800 856 976 1040 600 637 643 666 +hsync +vsync Modeline "1024x768" 65 1024 1032 1176 1344 768 771 777 806 -hsync -vsync Modeline "640x480" 45.8 640 672 768 864 480 488 494 530 -HSync -VSync Modeline "800x600" 60.75 800 864 928 1088 600 616 621 657 -HSync -VSync Modeline "1024x768" 75 1024 1048 1184 1328 768 771 777 806 -hsync -vsync Modeline "800x600" 69.65 800 864 928 1088 600 604 610 640 -HSync -VSync Modeline "1024x768" 85 1024 1032 1152 1360 768 784 787 823 Modeline "1024x768" 98.9 1024 1056 1216 1408 768 782 788 822 -HSync -VSync EndSection Section "Device" Identifier "Generic VGA" VendorName "IBM" BoardName "Unknown" Chipset "wd90c30" EndSection Section "Device" Identifier "(null)" VendorName "(null)" BoardName "(null)" #VideoRam 0 # Insert Clocks lines here if appropriate EndSection Section "Screen" Driver "vga" Device "Generic SVGA" Monitor "(null)" Subsection "Display" Depth 8 Modes "640x480" ViewPort 0 0 Virtual 800 600 EndSubsection EndSection - . ... chfn/ chsh0 ftp1 gdm2 halt3login4other5passwd6poweroff7 ppp8reboot9shutdown: su;vlock< xdm= xscreensaver>xserver#%PAM-1.0 auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_pwdb.so shadow nullok account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so shadow nullok use_authtok session required /lib/security/pam_pwdb.so #%PAM-1.0 auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_pwdb.so shadow nullok account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so shadow nullok use_authtok session required /lib/security/pam_pwdb.so #%PAM-1.0 auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed auth required /lib/security/pam_pwdb.so shadow nullok # This is disabled because anonymous logins will fail otherwise, # unless you give the 'ftp' user a valid shell, or /bin/false and add # /bin/false to /etc/shells. #auth required /lib/security/pam_shells.so account required /lib/security/pam_pwdb.so session required /lib/security/pam_pwdb.so #%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow nullok auth required /lib/security/pam_nologin.so account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so shadow nullok use_authtok session required /lib/security/pam_pwdb.so session optional /lib/security/pam_console.so #%PAM-1.0 auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_console.so auth required /lib/security/pam_pwdb.so account required /lib/security/pam_permit.so #%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_pwdb.so shadow nullok auth required /lib/security/pam_nologin.so account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so shadow nullok use_authtok session required /lib/security/pam_pwdb.so session optional /lib/security/pam_console.so #%PAM-1.0 auth required /lib/security/pam_deny.so account required /lib/security/pam_deny.so password required /lib/security/pam_deny.so session required /lib/security/pam_deny.so #%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow nullok account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so retry=3 password required /lib/security/pam_pwdb.so use_authtok nullok md5 shadow #%PAM-1.0 auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_console.so auth required /lib/security/pam_pwdb.so account required /lib/security/pam_permit.so #%PAM-1.0 auth required pam_nologin.so auth required pam_pwdb.so shadow nullok account required pam_pwdb.so session required pam_pwdb.so #%PAM-1.0 auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_console.so auth required /lib/security/pam_pwdb.so account required /lib/security/pam_permit.so #%PAM-1.0 auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_console.so auth required /lib/security/pam_pwdb.so account required /lib/security/pam_permit.so #%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow nullok account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so shadow use_authtok nullok session required /lib/security/pam_pwdb.so session optional /lib/security/pam_xauth.so #%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow nullok #%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow nullok auth required /lib/security/pam_nologin.so account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so shadow nullok use_authtok session required /lib/security/pam_pwdb.so session optional /lib/security/pam_console.so #%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow nullok #%PAM-1.0 auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_console.so account required /lib/security/pam_permit.so ld.so-1.7.0)9Xh!-DPp~/9R\u=Lfs,MZly4E_p0Re%EVr )8Rd  " 9 G d r     % F X y     # 1 J X z      , 8 M Y t       * 4 M W l {   #9Fbo#FZ}-=\l2Tg#?Pu2b 3Nx.;S^r}4Fgy'DRky*@Kjy$=Ml|5AXd (7Q`/M`|(BSs0@_o.;S`  0 @ Y i   !!(!C!U!v!!!!!!""*";"["l""""""##(#G#W#v#######$$$3$?$_$o$$$$$$%%%2%>%Y%e%%%%%%%&&/&A&b&t&&&&&&'' '#'/'O'_'x'''''(( ("(.(I(U(p(|(((((())')F)V)q)}))))))***/*?*X*h******+++1+?+\+j++++++,,/,R,f,,,,,,--#-?-P-u------.....F.U.s.......///8/D/[/g////////0 0060J0g0{0000111D1\1}11112262F2[2k2222223 33A3U3r3333344&4>4Q4m44444555B5Y5y55556 6,6>6U6g66666677)7O7e777778818A8V8f888888999<9P9m99999:::1:@:X:g::::::; ; ;<;O;q;;;;;<<<1 >>.>:>U>a>|>>>>>>??#?3?R?b?}?????@@@/@?@c@u@@@@@AA%A5ANA^A}AAAAAB BB2BAB_BnBBBBBBCCC*C7COC\C}CCCCCCCCDDD"D@DNDeDsDDDDDDEE!EBETEuEEEEEEFFF-FFFTFvFFFFFFG G(G8G\GmGGGGGGHH'HLH[HsHHHHHHII(I8IQIaIIIIIIJJJ7JGJfJvJJJJJKKK0KPKaKKKKKKL LL<LLLkL{LLLLLMM"M2MQMaM|MMMMMNN"NCNUNrNNNNNNO O$O4OXOnOOOOPPP:PLPgPyPPPPPQQ4QHQeQyQQQQRRR/R?R^RnRRRRRSS%S=SdS|SSSSTT#TFTZT}TTTTUU!U7U\UrUUUUUV V.V@VaVsVVVVVW W0WDWgW{WWWWWXX!X1XLX\XXXXXYY%Y:YZYkYYYYYYZZ%ZJZcZZZZ[[ [D[Y[w[[[[[\\3\\\o\\\\\]]&]5]M]\]z]]]]]^^^;^S^z^^^^__%_9_\_p____```5`J`n`````aaa8aIaiazaaaaabb$b4bSbcb~bbbbbbbcc c9cIchcxccccccd dd1d=dTdjdddddee6eHeceueeeeef f0fDfafuffffggg+g;gZgjgggggghh$hDhUhuhhhhhhhi ii6iCi[ihiiiiiiijj%j4jNj[jqj~jjjjjjkk&k?kOknk~kkkkkklll7lClZlfllllllmmm(m4mImUmpm|mmmmmmnn"nBnSnsnnnnnnnoo&oDoSomo|ooooppp>pRpqppppppqqq*qMqZqpq}qqqqqqrr#rCrTrtrrrrrrrsss3s?s_sis|ssssssssttt&t@tKtetpttttttuuu1u@uZufuwuuuuuuuv vv2vBvavqvvvvvvvwww%w?wJw`wkwwwwwwwwxxx/x:xYxhxxxxxxyyy4yHykyyyyyyzz-z=z\zlzzzzzz{ {{6{D{]{k{~{{{{{{|| |.|P|b|}|||||}}&}C}W}z}}}}}~ ~~<~L~k~{~~~~~~(ESl~.>Sc|9Kfx  .KYv!<H_ix#9Zl.Ti.?Yj,CQn|/;R^~(5KXt <Ier>Met 0<Wcz(@K_j'DRo}(4Taw 2=Wbx#2LYo|$=Ml|$AOhv!:F[g+HVs ,8Xg4AWd7BXc'<\m'L[s,JYw":Ghz *8O]z !/LZw 0<\q6Kt 1Jnv"libzvt.so.2.2.3/usr/lib/libzvt.so.2.2.3libzvt.so.2.2.3/usr/local/lib/libzvt.so.2.2.3libzvt.so.2.2.3/usr/X11R6/lib/libzvt.so.2.2.3libzvt.so.2.2.3/live/lib//libzvt.so.2.2.3libzvt.so.2/usr/lib/libzvt.so.2libzvt.so.2/usr/local/lib/libzvt.so.2libzvt.so.2/usr/X11R6/lib/libzvt.so.2libzvt.so.2/live/lib//libzvt.so.2libzvt.so.2/mnt/cdrom/live/lib/libzvt.so.2libz.so.1.1.3/usr/lib/libz.so.1.1.3libz.so.1.1.3/usr/local/lib/libz.so.1.1.3libz.so.1.1.3/usr/X11R6/lib/libz.so.1.1.3libz.so.1.1.3/live/lib//libz.so.1.1.3libz.so.1/usr/lib/libz.so.1libz.so.1/usr/local/lib/libz.so.1libz.so.1/usr/X11R6/lib/libz.so.1libz.so.1/live/lib//libz.so.1libz.so.1/mnt/cdrom/live/lib/libz.so.1libuuid.so.1.2/usr/lib/libuuid.so.1.2libuuid.so.1.2/usr/local/lib/libuuid.so.1.2libuuid.so.1.2/usr/X11R6/lib/libuuid.so.1.2libuuid.so.1.2/live/lib//libuuid.so.1.2libuuid.so.1/lib/libuuid.so.1libuuid.so.1/usr/lib/libuuid.so.1libuuid.so.1/usr/local/lib/libuuid.so.1libuuid.so.1/usr/X11R6/lib/libuuid.so.1libuuid.so.1/live/lib//libuuid.so.1libuuid.so.1/mnt/cdrom/live/lib/libuuid.so.1libutil.so.1/lib/libutil.so.1libutil.so.1/usr/lib/libutil.so.1libutil.so.1/usr/local/lib/libutil.so.1libutil.so.1/usr/X11R6/lib/libutil.so.1libutil.so.1/live/lib//libutil.so.1libutil.so.1/mnt/cdrom/live/lib/libutil.so.1libutil-2.1.1.so/usr/lib/libutil-2.1.1.solibutil-2.1.1.so/usr/local/lib/libutil-2.1.1.solibutil-2.1.1.so/usr/X11R6/lib/libutil-2.1.1.solibutil-2.1.1.so/live/lib//libutil-2.1.1.solibutempter.so.0.5/usr/lib/libutempter.so.0.5libutempter.so.0.5/usr/local/lib/libutempter.so.0.5libutempter.so.0.5/usr/X11R6/lib/libutempter.so.0.5libutempter.so.0.5/live/lib//libutempter.so.0.5libutempter.so.0/usr/lib/libutempter.so.0libutempter.so.0/usr/local/lib/libutempter.so.0libutempter.so.0/usr/X11R6/lib/libutempter.so.0libutempter.so.0/live/lib//libutempter.so.0libutempter.so.0/mnt/cdrom/live/lib/libutempter.so.0libutempter.so/usr/lib/libutempter.solibutempter.so/usr/local/lib/libutempter.solibutempter.so/usr/X11R6/lib/libutempter.solibutempter.so/live/lib//libutempter.solibungif.so.4.1.0/usr/lib/libungif.so.4.1.0libungif.so.4.1.0/usr/local/lib/libungif.so.4.1.0libungif.so.4.1.0/usr/X11R6/lib/libungif.so.4.1.0libungif.so.4.1.0/live/lib//libungif.so.4.1.0libungif.so.4/usr/lib/libungif.so.4libungif.so.4/usr/local/lib/libungif.so.4libungif.so.4/usr/X11R6/lib/libungif.so.4libungif.so.4/live/lib//libungif.so.4libungif.so.4/mnt/cdrom/live/lib/libungif.so.4libungif.so.3.1.0/usr/lib/libungif.so.3.1.0libungif.so.3.1.0/usr/local/lib/libungif.so.3.1.0libungif.so.3.1.0/usr/X11R6/lib/libungif.so.3.1.0libungif.so.3.1.0/live/lib//libungif.so.3.1.0libungif.so.3/usr/lib/libungif.so.3libungif.so.3/usr/local/lib/libungif.so.3libungif.so.3/usr/X11R6/lib/libungif.so.3libungif.so.3/live/lib//libungif.so.3libungif.so.3/mnt/cdrom/live/lib/libungif.so.3libttf.so.2.1.0/usr/lib/libttf.so.2.1.0libttf.so.2.1.0/usr/local/lib/libttf.so.2.1.0libttf.so.2.1.0/usr/X11R6/lib/libttf.so.2.1.0libttf.so.2.1.0/live/lib//libttf.so.2.1.0libttf.so.2/usr/lib/libttf.so.2libttf.so.2/usr/local/lib/libttf.so.2libttf.so.2/usr/X11R6/lib/libttf.so.2libttf.so.2/live/lib//libttf.so.2libttf.so.2/mnt/cdrom/live/lib/libttf.so.2libttf.so/usr/lib/libttf.solibttf.so/usr/local/lib/libttf.solibttf.so/usr/X11R6/lib/libttf.solibttf.so/live/lib//libttf.solibtiff.so.3.4/usr/lib/libtiff.so.3.4libtiff.so.3.4/usr/local/lib/libtiff.so.3.4libtiff.so.3.4/usr/X11R6/lib/libtiff.so.3.4libtiff.so.3.4/live/lib//libtiff.so.3.4libtiff.so.3/usr/lib/libtiff.so.3libtiff.so.3/usr/local/lib/libtiff.so.3libtiff.so.3/usr/X11R6/lib/libtiff.so.3libtiff.so.3/live/lib//libtiff.so.3libtiff.so.3/mnt/cdrom/live/lib/libtiff.so.3libtermcap.so.2.0.8/usr/lib/libtermcap.so.2.0.8libtermcap.so.2.0.8/usr/local/lib/libtermcap.so.2.0.8libtermcap.so.2.0.8/usr/X11R6/lib/libtermcap.so.2.0.8libtermcap.so.2.0.8/live/lib//libtermcap.so.2.0.8libtermcap.so.2/lib/libtermcap.so.2libtermcap.so.2/usr/lib/libtermcap.so.2libtermcap.so.2/usr/local/lib/libtermcap.so.2libtermcap.so.2/usr/X11R6/lib/libtermcap.so.2libtermcap.so.2/live/lib//libtermcap.so.2libtermcap.so.2/mnt/cdrom/live/lib/libtermcap.so.2libstdc++.so.2.8.0/usr/lib/libstdc++.so.2.8.0libstdc++.so.2.8.0/usr/local/lib/libstdc++.so.2.8.0libstdc++.so.2.8.0/usr/X11R6/lib/libstdc++.so.2.8.0libstdc++.so.2.8.0/live/lib//libstdc++.so.2.8.0libstdc++.so.2.8/usr/lib/libstdc++.so.2.8libstdc++.so.2.8/usr/local/lib/libstdc++.so.2.8libstdc++.so.2.8/usr/X11R6/lib/libstdc++.so.2.8libstdc++.so.2.8/live/lib//libstdc++.so.2.8libstdc++.so.2.8/mnt/cdrom/live/lib/libstdc++.so.2.8libstdc++-2-libc6.1-1.1-2.9.0.so/usr/lib/libstdc++-2-libc6.1-1.1-2.9.0.solibstdc++-2-libc6.1-1.1-2.9.0.so/usr/local/lib/libstdc++-2-libc6.1-1.1-2.9.0.solibstdc++-2-libc6.1-1.1-2.9.0.so/usr/X11R6/lib/libstdc++-2-libc6.1-1.1-2.9.0.solibstdc++-2-libc6.1-1.1-2.9.0.so/live/lib//libstdc++-2-libc6.1-1.1-2.9.0.solibstdc++-libc6.1-1.1.so.2/usr/lib/libstdc++-libc6.1-1.1.so.2libstdc++-libc6.1-1.1.so.2/usr/local/lib/libstdc++-libc6.1-1.1.so.2libstdc++-libc6.1-1.1.so.2/usr/X11R6/lib/libstdc++-libc6.1-1.1.so.2libstdc++-libc6.1-1.1.so.2/live/lib//libstdc++-libc6.1-1.1.so.2libss.so.2.0/usr/lib/libss.so.2.0libss.so.2.0/usr/local/lib/libss.so.2.0libss.so.2.0/usr/X11R6/lib/libss.so.2.0libss.so.2.0/live/lib//libss.so.2.0libss.so.2/usr/lib/libss.so.2libss.so.2/usr/local/lib/libss.so.2libss.so.2/usr/X11R6/lib/libss.so.2libss.so.2/live/lib//libss.so.2libss.so.2/mnt/cdrom/live/lib/libss.so.2libslang.so.1.2.2/usr/lib/libslang.so.1.2.2libslang.so.1.2.2/usr/local/lib/libslang.so.1.2.2libslang.so.1.2.2/usr/X11R6/lib/libslang.so.1.2.2libslang.so.1.2.2/live/lib//libslang.so.1.2.2libslang.so.1/usr/lib/libslang.so.1libslang.so.1/usr/local/lib/libslang.so.1libslang.so.1/usr/X11R6/lib/libslang.so.1libslang.so.1/live/lib//libslang.so.1libslang.so.1/mnt/cdrom/live/lib/libslang.so.1librt.so.1/lib/librt.so.1librt.so.1/usr/lib/librt.so.1librt.so.1/usr/local/lib/librt.so.1librt.so.1/usr/X11R6/lib/librt.so.1librt.so.1/live/lib//librt.so.1librt.so.1/mnt/cdrom/live/lib/librt.so.1librt-2.1.1.so/usr/lib/librt-2.1.1.solibrt-2.1.1.so/usr/local/lib/librt-2.1.1.solibrt-2.1.1.so/usr/X11R6/lib/librt-2.1.1.solibrt-2.1.1.so/live/lib//librt-2.1.1.solibrle.so.1.0.0/usr/lib/librle.so.1.0.0librle.so.1.0.0/usr/local/lib/librle.so.1.0.0librle.so.1.0.0/usr/X11R6/lib/librle.so.1.0.0librle.so.1.0.0/live/lib//librle.so.1.0.0librle.so.1/usr/lib/librle.so.1librle.so.1/usr/local/lib/librle.so.1librle.so.1/usr/X11R6/lib/librle.so.1librle.so.1/live/lib//librle.so.1librle.so.1/mnt/cdrom/live/lib/librle.so.1libresolv.so.2/lib/libresolv.so.2libresolv.so.2/usr/lib/libresolv.so.2libresolv.so.2/usr/local/lib/libresolv.so.2libresolv.so.2/usr/X11R6/lib/libresolv.so.2libresolv.so.2/live/lib//libresolv.so.2libresolv.so.2/mnt/cdrom/live/lib/libresolv.so.2libresolv-2.1.1.so/usr/lib/libresolv-2.1.1.solibresolv-2.1.1.so/usr/local/lib/libresolv-2.1.1.solibresolv-2.1.1.so/usr/X11R6/lib/libresolv-2.1.1.solibresolv-2.1.1.so/live/lib//libresolv-2.1.1.solibreadline.so.3.0/usr/lib/libreadline.so.3.0libreadline.so.3.0/usr/local/lib/libreadline.so.3.0libreadline.so.3.0/usr/X11R6/lib/libreadline.so.3.0libreadline.so.3.0/live/lib//libreadline.so.3.0libreadline.so.3/usr/lib/libreadline.so.3libreadline.so.3/usr/local/lib/libreadline.so.3libreadline.so.3/usr/X11R6/lib/libreadline.so.3libreadline.so.3/live/lib//libreadline.so.3libreadline.so.3/mnt/cdrom/live/lib/libreadline.so.3libpwdb.so.0.57/usr/lib/libpwdb.so.0.57libpwdb.so.0.57/usr/local/lib/libpwdb.so.0.57libpwdb.so.0.57/usr/X11R6/lib/libpwdb.so.0.57libpwdb.so.0.57/live/lib//libpwdb.so.0.57libpwdb.so.0/usr/lib/libpwdb.so.0libpwdb.so.0/usr/local/lib/libpwdb.so.0libpwdb.so.0/usr/X11R6/lib/libpwdb.so.0libpwdb.so.0/live/lib//libpwdb.so.0libpwdb.so.0/mnt/cdrom/live/lib/libpwdb.so.0libpwdb.so/usr/lib/libpwdb.solibpwdb.so/usr/local/lib/libpwdb.solibpwdb.so/usr/X11R6/lib/libpwdb.solibpwdb.so/live/lib//libpwdb.solibpthread.so.0/lib/libpthread.so.0libpthread.so.0/usr/lib/libpthread.so.0libpthread.so.0/usr/local/lib/libpthread.so.0libpthread.so.0/usr/X11R6/lib/libpthread.so.0libpthread.so.0/live/lib//libpthread.so.0libpthread.so.0/mnt/cdrom/live/lib/libpthread.so.0libpthread-0.8.so/usr/lib/libpthread-0.8.solibpthread-0.8.so/usr/local/lib/libpthread-0.8.solibpthread-0.8.so/usr/X11R6/lib/libpthread-0.8.solibpthread-0.8.so/live/lib//libpthread-0.8.solibproc.so.2.0.0/lib/libproc.so.2.0.0libproc.so.2.0.0/usr/lib/libproc.so.2.0.0libproc.so.2.0.0/usr/local/lib/libproc.so.2.0.0libproc.so.2.0.0/usr/X11R6/lib/libproc.so.2.0.0libproc.so.2.0.0/live/lib//libproc.so.2.0.0libproc.so.2.0.0/mnt/cdrom/live/lib/libproc.so.2.0.0libppm.so.1.0.0/usr/lib/libppm.so.1.0.0libppm.so.1.0.0/usr/local/lib/libppm.so.1.0.0libppm.so.1.0.0/usr/X11R6/lib/libppm.so.1.0.0libppm.so.1.0.0/live/lib//libppm.so.1.0.0libppm.so.1/usr/lib/libppm.so.1libppm.so.1/usr/local/lib/libppm.so.1libppm.so.1/usr/X11R6/lib/libppm.so.1libppm.so.1/live/lib//libppm.so.1libppm.so.1/mnt/cdrom/live/lib/libppm.so.1libpnm.so.1.0.0/usr/lib/libpnm.so.1.0.0libpnm.so.1.0.0/usr/local/lib/libpnm.so.1.0.0libpnm.so.1.0.0/usr/X11R6/lib/libpnm.so.1.0.0libpnm.so.1.0.0/live/lib//libpnm.so.1.0.0libpnm.so.1/usr/lib/libpnm.so.1libpnm.so.1/usr/local/lib/libpnm.so.1libpnm.so.1/usr/X11R6/lib/libpnm.so.1libpnm.so.1/live/lib//libpnm.so.1libpnm.so.1/mnt/cdrom/live/lib/libpnm.so.1libpng.so.2.1.0.3/usr/lib/libpng.so.2.1.0.3libpng.so.2.1.0.3/usr/local/lib/libpng.so.2.1.0.3libpng.so.2.1.0.3/usr/X11R6/lib/libpng.so.2.1.0.3libpng.so.2.1.0.3/live/lib//libpng.so.2.1.0.3libpng.so.2/usr/lib/libpng.so.2libpng.so.2/usr/local/lib/libpng.so.2libpng.so.2/usr/X11R6/lib/libpng.so.2libpng.so.2/live/lib//libpng.so.2libpng.so.2/mnt/cdrom/live/lib/libpng.so.2libpgm.so.1.0.0/usr/lib/libpgm.so.1.0.0libpgm.so.1.0.0/usr/local/lib/libpgm.so.1.0.0libpgm.so.1.0.0/usr/X11R6/lib/libpgm.so.1.0.0libpgm.so.1.0.0/live/lib//libpgm.so.1.0.0libpgm.so.1/usr/lib/libpgm.so.1libpgm.so.1/usr/local/lib/libpgm.so.1libpgm.so.1/usr/X11R6/lib/libpgm.so.1libpgm.so.1/live/lib//libpgm.so.1libpgm.so.1/mnt/cdrom/live/lib/libpgm.so.1libpbm.so.1.0.0/usr/lib/libpbm.so.1.0.0libpbm.so.1.0.0/usr/local/lib/libpbm.so.1.0.0libpbm.so.1.0.0/usr/X11R6/lib/libpbm.so.1.0.0libpbm.so.1.0.0/live/lib//libpbm.so.1.0.0libpbm.so.1/usr/lib/libpbm.so.1libpbm.so.1/usr/local/lib/libpbm.so.1libpbm.so.1/usr/X11R6/lib/libpbm.so.1libpbm.so.1/live/lib//libpbm.so.1libpbm.so.1/mnt/cdrom/live/lib/libpbm.so.1libpanel.so.4.2/usr/lib/libpanel.so.4.2libpanel.so.4.2/usr/local/lib/libpanel.so.4.2libpanel.so.4.2/usr/X11R6/lib/libpanel.so.4.2libpanel.so.4.2/live/lib//libpanel.so.4.2libpanel.so.4/usr/lib/libpanel.so.4libpanel.so.4/usr/local/lib/libpanel.so.4libpanel.so.4/usr/X11R6/lib/libpanel.so.4libpanel.so.4/live/lib//libpanel.so.4libpanel.so.4/mnt/cdrom/live/lib/libpanel.so.4libpam_misc.so.0.66/usr/lib/libpam_misc.so.0.66libpam_misc.so.0.66/usr/local/lib/libpam_misc.so.0.66libpam_misc.so.0.66/usr/X11R6/lib/libpam_misc.so.0.66libpam_misc.so.0.66/live/lib//libpam_misc.so.0.66libpam_misc.so.0/usr/lib/libpam_misc.so.0libpam_misc.so.0/usr/local/lib/libpam_misc.so.0libpam_misc.so.0/usr/X11R6/lib/libpam_misc.so.0libpam_misc.so.0/live/lib//libpam_misc.so.0libpam_misc.so.0/mnt/cdrom/live/lib/libpam_misc.so.0libpam_misc.so/usr/lib/libpam_misc.solibpam_misc.so/usr/local/lib/libpam_misc.solibpam_misc.so/usr/X11R6/lib/libpam_misc.solibpam_misc.so/live/lib//libpam_misc.solibpam.so.0.66/usr/lib/libpam.so.0.66libpam.so.0.66/usr/local/lib/libpam.so.0.66libpam.so.0.66/usr/X11R6/lib/libpam.so.0.66libpam.so.0.66/live/lib//libpam.so.0.66libpam.so.0/usr/lib/libpam.so.0libpam.so.0/usr/local/lib/libpam.so.0libpam.so.0/usr/X11R6/lib/libpam.so.0libpam.so.0/live/lib//libpam.so.0libpam.so.0/mnt/cdrom/live/lib/libpam.so.0libpam.so/usr/lib/libpam.solibpam.so/usr/local/lib/libpam.solibpam.so/usr/X11R6/lib/libpam.solibpam.so/live/lib//libpam.solibnss_nisplus.so.2/lib/libnss_nisplus.so.2libnss_nisplus.so.2/usr/lib/libnss_nisplus.so.2libnss_nisplus.so.2/usr/local/lib/libnss_nisplus.so.2libnss_nisplus.so.2/usr/X11R6/lib/libnss_nisplus.so.2libnss_nisplus.so.2/live/lib//libnss_nisplus.so.2libnss_nisplus.so.2/mnt/cdrom/live/lib/libnss_nisplus.so.2libnss_nisplus-2.1.1.so/usr/lib/libnss_nisplus-2.1.1.solibnss_nisplus-2.1.1.so/usr/local/lib/libnss_nisplus-2.1.1.solibnss_nisplus-2.1.1.so/usr/X11R6/lib/libnss_nisplus-2.1.1.solibnss_nisplus-2.1.1.so/live/lib//libnss_nisplus-2.1.1.solibnss_nis.so.2/lib/libnss_nis.so.2libnss_nis.so.2/usr/lib/libnss_nis.so.2libnss_nis.so.2/usr/local/lib/libnss_nis.so.2libnss_nis.so.2/usr/X11R6/lib/libnss_nis.so.2libnss_nis.so.2/live/lib//libnss_nis.so.2libnss_nis.so.2/mnt/cdrom/live/lib/libnss_nis.so.2libnss_nis-2.1.1.so/usr/lib/libnss_nis-2.1.1.solibnss_nis-2.1.1.so/usr/local/lib/libnss_nis-2.1.1.solibnss_nis-2.1.1.so/usr/X11R6/lib/libnss_nis-2.1.1.solibnss_nis-2.1.1.so/live/lib//libnss_nis-2.1.1.solibnss_hesiod.so.2/lib/libnss_hesiod.so.2libnss_hesiod.so.2/usr/lib/libnss_hesiod.so.2libnss_hesiod.so.2/usr/local/lib/libnss_hesiod.so.2libnss_hesiod.so.2/usr/X11R6/lib/libnss_hesiod.so.2libnss_hesiod.so.2/live/lib//libnss_hesiod.so.2libnss_hesiod.so.2/mnt/cdrom/live/lib/libnss_hesiod.so.2libnss_hesiod-2.1.1.so/usr/lib/libnss_hesiod-2.1.1.solibnss_hesiod-2.1.1.so/usr/local/lib/libnss_hesiod-2.1.1.solibnss_hesiod-2.1.1.so/usr/X11R6/lib/libnss_hesiod-2.1.1.solibnss_hesiod-2.1.1.so/live/lib//libnss_hesiod-2.1.1.solibnss_files.so.2/lib/libnss_files.so.2libnss_files.so.2/usr/lib/libnss_files.so.2libnss_files.so.2/usr/local/lib/libnss_files.so.2libnss_files.so.2/usr/X11R6/lib/libnss_files.so.2libnss_files.so.2/live/lib//libnss_files.so.2libnss_files.so.2/mnt/cdrom/live/lib/libnss_files.so.2libnss_files-2.1.1.so/usr/lib/libnss_files-2.1.1.solibnss_files-2.1.1.so/usr/local/lib/libnss_files-2.1.1.solibnss_files-2.1.1.so/usr/X11R6/lib/libnss_files-2.1.1.solibnss_files-2.1.1.so/live/lib//libnss_files-2.1.1.solibnss_dns.so.2/lib/libnss_dns.so.2libnss_dns.so.2/usr/lib/libnss_dns.so.2libnss_dns.so.2/usr/local/lib/libnss_dns.so.2libnss_dns.so.2/usr/X11R6/lib/libnss_dns.so.2libnss_dns.so.2/live/lib//libnss_dns.so.2libnss_dns.so.2/mnt/cdrom/live/lib/libnss_dns.so.2libnss_dns-2.1.1.so/usr/lib/libnss_dns-2.1.1.solibnss_dns-2.1.1.so/usr/local/lib/libnss_dns-2.1.1.solibnss_dns-2.1.1.so/usr/X11R6/lib/libnss_dns-2.1.1.solibnss_dns-2.1.1.so/live/lib//libnss_dns-2.1.1.solibnss_db.so.2/lib/libnss_db.so.2libnss_db.so.2/usr/lib/libnss_db.so.2libnss_db.so.2/usr/local/lib/libnss_db.so.2libnss_db.so.2/usr/X11R6/lib/libnss_db.so.2libnss_db.so.2/live/lib//libnss_db.so.2libnss_db.so.2/mnt/cdrom/live/lib/libnss_db.so.2libnss_db-2.1.1.so/usr/lib/libnss_db-2.1.1.solibnss_db-2.1.1.so/usr/local/lib/libnss_db-2.1.1.solibnss_db-2.1.1.so/usr/X11R6/lib/libnss_db-2.1.1.solibnss_db-2.1.1.so/live/lib//libnss_db-2.1.1.solibnss_compat.so.2/lib/libnss_compat.so.2libnss_compat.so.2/usr/lib/libnss_compat.so.2libnss_compat.so.2/usr/local/lib/libnss_compat.so.2libnss_compat.so.2/usr/X11R6/lib/libnss_compat.so.2libnss_compat.so.2/live/lib//libnss_compat.so.2libnss_compat.so.2/mnt/cdrom/live/lib/libnss_compat.so.2libnss_compat-2.1.1.so/usr/lib/libnss_compat-2.1.1.solibnss_compat-2.1.1.so/usr/local/lib/libnss_compat-2.1.1.solibnss_compat-2.1.1.so/usr/X11R6/lib/libnss_compat-2.1.1.solibnss_compat-2.1.1.so/live/lib//libnss_compat-2.1.1.solibnsl.so.1/lib/libnsl.so.1libnsl.so.1/usr/lib/libnsl.so.1libnsl.so.1/usr/local/lib/libnsl.so.1libnsl.so.1/usr/X11R6/lib/libnsl.so.1libnsl.so.1/live/lib//libnsl.so.1libnsl.so.1/mnt/cdrom/live/lib/libnsl.so.1libnsl-2.1.1.so/usr/lib/libnsl-2.1.1.solibnsl-2.1.1.so/usr/local/lib/libnsl-2.1.1.solibnsl-2.1.1.so/usr/X11R6/lib/libnsl-2.1.1.solibnsl-2.1.1.so/live/lib//libnsl-2.1.1.solibnewt.so.0.40/usr/lib/libnewt.so.0.40libnewt.so.0.40/usr/local/lib/libnewt.so.0.40libnewt.so.0.40/usr/X11R6/lib/libnewt.so.0.40libnewt.so.0.40/live/lib//libnewt.so.0.40libnewt.so.0.40/mnt/cdrom/live/lib/libnewt.so.0.40libncurses.so.4.2/usr/lib/libncurses.so.4.2libncurses.so.4.2/usr/local/lib/libncurses.so.4.2libncurses.so.4.2/usr/X11R6/lib/libncurses.so.4.2libncurses.so.4.2/live/lib//libncurses.so.4.2libncurses.so.4/usr/lib/libncurses.so.4libncurses.so.4/usr/local/lib/libncurses.so.4libncurses.so.4/usr/X11R6/lib/libncurses.so.4libncurses.so.4/live/lib//libncurses.so.4libncurses.so.4/mnt/cdrom/live/lib/libncurses.so.4libmenu.so.4.2/usr/lib/libmenu.so.4.2libmenu.so.4.2/usr/local/lib/libmenu.so.4.2libmenu.so.4.2/usr/X11R6/lib/libmenu.so.4.2libmenu.so.4.2/live/lib//libmenu.so.4.2libmenu.so.4/usr/lib/libmenu.so.4libmenu.so.4/usr/local/lib/libmenu.so.4libmenu.so.4/usr/X11R6/lib/libmenu.so.4libmenu.so.4/live/lib//libmenu.so.4libmenu.so.4/mnt/cdrom/live/lib/libmenu.so.4libm.so.6/lib/libm.so.6libm.so.6/usr/lib/libm.so.6libm.so.6/usr/local/lib/libm.so.6libm.so.6/usr/X11R6/lib/libm.so.6libm.so.6/live/lib//libm.so.6libm.so.6/mnt/cdrom/live/lib/libm.so.6libm-2.1.1.so/usr/lib/libm-2.1.1.solibm-2.1.1.so/usr/local/lib/libm-2.1.1.solibm-2.1.1.so/usr/X11R6/lib/libm-2.1.1.solibm-2.1.1.so/live/lib//libm-2.1.1.solibjpeg.so.62.0.0/usr/lib/libjpeg.so.62.0.0libjpeg.so.62.0.0/usr/local/lib/libjpeg.so.62.0.0libjpeg.so.62.0.0/usr/X11R6/lib/libjpeg.so.62.0.0libjpeg.so.62.0.0/live/lib//libjpeg.so.62.0.0libjpeg.so.62/usr/lib/libjpeg.so.62libjpeg.so.62/usr/local/lib/libjpeg.so.62libjpeg.so.62/usr/X11R6/lib/libjpeg.so.62libjpeg.so.62/live/lib//libjpeg.so.62libjpeg.so.62/mnt/cdrom/live/lib/libjpeg.so.62libimlib-xpm.so/usr/lib/libimlib-xpm.solibimlib-xpm.so/usr/local/lib/libimlib-xpm.solibimlib-xpm.so/usr/X11R6/lib/libimlib-xpm.solibimlib-xpm.so/live/lib//libimlib-xpm.solibimlib-xpm.so/mnt/cdrom/live/lib/libimlib-xpm.solibimlib-tiff.so/usr/lib/libimlib-tiff.solibimlib-tiff.so/usr/local/lib/libimlib-tiff.solibimlib-tiff.so/usr/X11R6/lib/libimlib-tiff.solibimlib-tiff.so/live/lib//libimlib-tiff.solibimlib-tiff.so/mnt/cdrom/live/lib/libimlib-tiff.solibimlib-ps.so/usr/lib/libimlib-ps.solibimlib-ps.so/usr/local/lib/libimlib-ps.solibimlib-ps.so/usr/X11R6/lib/libimlib-ps.solibimlib-ps.so/live/lib//libimlib-ps.solibimlib-ps.so/mnt/cdrom/live/lib/libimlib-ps.solibimlib-ppm.so/usr/lib/libimlib-ppm.solibimlib-ppm.so/usr/local/lib/libimlib-ppm.solibimlib-ppm.so/usr/X11R6/lib/libimlib-ppm.solibimlib-ppm.so/live/lib//libimlib-ppm.solibimlib-ppm.so/mnt/cdrom/live/lib/libimlib-ppm.solibimlib-png.so/usr/lib/libimlib-png.solibimlib-png.so/usr/local/lib/libimlib-png.solibimlib-png.so/usr/X11R6/lib/libimlib-png.solibimlib-png.so/live/lib//libimlib-png.solibimlib-png.so/mnt/cdrom/live/lib/libimlib-png.solibimlib-jpeg.so/usr/lib/libimlib-jpeg.solibimlib-jpeg.so/usr/local/lib/libimlib-jpeg.solibimlib-jpeg.so/usr/X11R6/lib/libimlib-jpeg.solibimlib-jpeg.so/live/lib//libimlib-jpeg.solibimlib-jpeg.so/mnt/cdrom/live/lib/libimlib-jpeg.solibimlib-gif.so/usr/lib/libimlib-gif.solibimlib-gif.so/usr/local/lib/libimlib-gif.solibimlib-gif.so/usr/X11R6/lib/libimlib-gif.solibimlib-gif.so/live/lib//libimlib-gif.solibimlib-gif.so/mnt/cdrom/live/lib/libimlib-gif.solibimlib-bmp.so/usr/lib/libimlib-bmp.solibimlib-bmp.so/usr/local/lib/libimlib-bmp.solibimlib-bmp.so/usr/X11R6/lib/libimlib-bmp.solibimlib-bmp.so/live/lib//libimlib-bmp.solibimlib-bmp.so/mnt/cdrom/live/lib/libimlib-bmp.solibhistory.so.3.0/usr/lib/libhistory.so.3.0libhistory.so.3.0/usr/local/lib/libhistory.so.3.0libhistory.so.3.0/usr/X11R6/lib/libhistory.so.3.0libhistory.so.3.0/live/lib//libhistory.so.3.0libhistory.so.3/usr/lib/libhistory.so.3libhistory.so.3/usr/local/lib/libhistory.so.3libhistory.so.3/usr/X11R6/lib/libhistory.so.3libhistory.so.3/live/lib//libhistory.so.3libhistory.so.3/mnt/cdrom/live/lib/libhistory.so.3libgtkxmhtml.so.1.0.1/usr/lib/libgtkxmhtml.so.1.0.1libgtkxmhtml.so.1.0.1/usr/local/lib/libgtkxmhtml.so.1.0.1libgtkxmhtml.so.1.0.1/usr/X11R6/lib/libgtkxmhtml.so.1.0.1libgtkxmhtml.so.1.0.1/live/lib//libgtkxmhtml.so.1.0.1libgtkxmhtml.so.1/usr/lib/libgtkxmhtml.so.1libgtkxmhtml.so.1/usr/local/lib/libgtkxmhtml.so.1libgtkxmhtml.so.1/usr/X11R6/lib/libgtkxmhtml.so.1libgtkxmhtml.so.1/live/lib//libgtkxmhtml.so.1libgtkxmhtml.so.1/mnt/cdrom/live/lib/libgtkxmhtml.so.1libgtk-1.2.so.0.2.0/usr/lib/libgtk-1.2.so.0.2.0libgtk-1.2.so.0.2.0/usr/local/lib/libgtk-1.2.so.0.2.0libgtk-1.2.so.0.2.0/usr/X11R6/lib/libgtk-1.2.so.0.2.0libgtk-1.2.so.0.2.0/live/lib//libgtk-1.2.so.0.2.0libgtk-1.2.so.0/usr/lib/libgtk-1.2.so.0libgtk-1.2.so.0/usr/local/lib/libgtk-1.2.so.0libgtk-1.2.so.0/usr/X11R6/lib/libgtk-1.2.so.0libgtk-1.2.so.0/live/lib//libgtk-1.2.so.0libgtk-1.2.so.0/mnt/cdrom/live/lib/libgtk-1.2.so.0libgthread-1.2.so.0.0.2/usr/lib/libgthread-1.2.so.0.0.2libgthread-1.2.so.0.0.2/usr/local/lib/libgthread-1.2.so.0.0.2libgthread-1.2.so.0.0.2/usr/X11R6/lib/libgthread-1.2.so.0.0.2libgthread-1.2.so.0.0.2/live/lib//libgthread-1.2.so.0.0.2libgthread-1.2.so.0/usr/lib/libgthread-1.2.so.0libgthread-1.2.so.0/usr/local/lib/libgthread-1.2.so.0libgthread-1.2.so.0/usr/X11R6/lib/libgthread-1.2.so.0libgthread-1.2.so.0/live/lib//libgthread-1.2.so.0libgthread-1.2.so.0/mnt/cdrom/live/lib/libgthread-1.2.so.0libgnorbagtk.so.0.0.0/usr/lib/libgnorbagtk.so.0.0.0libgnorbagtk.so.0.0.0/usr/local/lib/libgnorbagtk.so.0.0.0libgnorbagtk.so.0.0.0/usr/X11R6/lib/libgnorbagtk.so.0.0.0libgnorbagtk.so.0.0.0/live/lib//libgnorbagtk.so.0.0.0libgnorbagtk.so.0/usr/lib/libgnorbagtk.so.0libgnorbagtk.so.0/usr/local/lib/libgnorbagtk.so.0libgnorbagtk.so.0/usr/X11R6/lib/libgnorbagtk.so.0libgnorbagtk.so.0/live/lib//libgnorbagtk.so.0libgnorbagtk.so.0/mnt/cdrom/live/lib/libgnorbagtk.so.0libgnorba.so.27.1.5/usr/lib/libgnorba.so.27.1.5libgnorba.so.27.1.5/usr/local/lib/libgnorba.so.27.1.5libgnorba.so.27.1.5/usr/X11R6/lib/libgnorba.so.27.1.5libgnorba.so.27.1.5/live/lib//libgnorba.so.27.1.5libgnorba.so.27/usr/lib/libgnorba.so.27libgnorba.so.27/usr/local/lib/libgnorba.so.27libgnorba.so.27/usr/X11R6/lib/libgnorba.so.27libgnorba.so.27/live/lib//libgnorba.so.27libgnorba.so.27/mnt/cdrom/live/lib/libgnorba.so.27libgnomeui.so.32.9.1/usr/lib/libgnomeui.so.32.9.1libgnomeui.so.32.9.1/usr/local/lib/libgnomeui.so.32.9.1libgnomeui.so.32.9.1/usr/X11R6/lib/libgnomeui.so.32.9.1libgnomeui.so.32.9.1/live/lib//libgnomeui.so.32.9.1libgnomeui.so.32/usr/lib/libgnomeui.so.32libgnomeui.so.32/usr/local/lib/libgnomeui.so.32libgnomeui.so.32/usr/X11R6/lib/libgnomeui.so.32libgnomeui.so.32/live/lib//libgnomeui.so.32libgnomeui.so.32/mnt/cdrom/live/lib/libgnomeui.so.32libgnomesupport.so.0.0.0/usr/lib/libgnomesupport.so.0.0.0libgnomesupport.so.0.0.0/usr/local/lib/libgnomesupport.so.0.0.0libgnomesupport.so.0.0.0/usr/X11R6/lib/libgnomesupport.so.0.0.0libgnomesupport.so.0.0.0/live/lib//libgnomesupport.so.0.0.0libgnomesupport.so.0/usr/lib/libgnomesupport.so.0libgnomesupport.so.0/usr/local/lib/libgnomesupport.so.0libgnomesupport.so.0/usr/X11R6/lib/libgnomesupport.so.0libgnomesupport.so.0/live/lib//libgnomesupport.so.0libgnomesupport.so.0/mnt/cdrom/live/lib/libgnomesupport.so.0libgnome.so.32.3.3/usr/lib/libgnome.so.32.3.3libgnome.so.32.3.3/usr/local/lib/libgnome.so.32.3.3libgnome.so.32.3.3/usr/X11R6/lib/libgnome.so.32.3.3libgnome.so.32.3.3/live/lib//libgnome.so.32.3.3libgnome.so.32/usr/lib/libgnome.so.32libgnome.so.32/usr/local/lib/libgnome.so.32libgnome.so.32/usr/X11R6/lib/libgnome.so.32libgnome.so.32/live/lib//libgnome.so.32libgnome.so.32/mnt/cdrom/live/lib/libgnome.so.32libgmodule-1.2.so.0.0.2/usr/lib/libgmodule-1.2.so.0.0.2libgmodule-1.2.so.0.0.2/usr/local/lib/libgmodule-1.2.so.0.0.2libgmodule-1.2.so.0.0.2/usr/X11R6/lib/libgmodule-1.2.so.0.0.2libgmodule-1.2.so.0.0.2/live/lib//libgmodule-1.2.so.0.0.2libgmodule-1.2.so.0/usr/lib/libgmodule-1.2.so.0libgmodule-1.2.so.0/usr/local/lib/libgmodule-1.2.so.0libgmodule-1.2.so.0/usr/X11R6/lib/libgmodule-1.2.so.0libgmodule-1.2.so.0/live/lib//libgmodule-1.2.so.0libgmodule-1.2.so.0/mnt/cdrom/live/lib/libgmodule-1.2.so.0libglib-1.2.so.0.0.2/usr/lib/libglib-1.2.so.0.0.2libglib-1.2.so.0.0.2/usr/local/lib/libglib-1.2.so.0.0.2libglib-1.2.so.0.0.2/usr/X11R6/lib/libglib-1.2.so.0.0.2libglib-1.2.so.0.0.2/live/lib//libglib-1.2.so.0.0.2libglib-1.2.so.0/usr/lib/libglib-1.2.so.0libglib-1.2.so.0/usr/local/lib/libglib-1.2.so.0libglib-1.2.so.0/usr/X11R6/lib/libglib-1.2.so.0libglib-1.2.so.0/live/lib//libglib-1.2.so.0libglib-1.2.so.0/mnt/cdrom/live/lib/libglib-1.2.so.0libgif.so.4.1.0/usr/lib/libgif.so.4.1.0libgif.so.4.1.0/usr/local/lib/libgif.so.4.1.0libgif.so.4.1.0/usr/X11R6/lib/libgif.so.4.1.0libgif.so.4.1.0/live/lib//libgif.so.4.1.0libgif.so.4/usr/lib/libgif.so.4libgif.so.4/usr/local/lib/libgif.so.4libgif.so.4/usr/X11R6/lib/libgif.so.4libgif.so.4/live/lib//libgif.so.4libgif.so.3.1.0/usr/lib/libgif.so.3.1.0libgif.so.3.1.0/usr/local/lib/libgif.so.3.1.0libgif.so.3.1.0/usr/X11R6/lib/libgif.so.3.1.0libgif.so.3.1.0/live/lib//libgif.so.3.1.0libgif.so.3/usr/lib/libgif.so.3libgif.so.3/usr/local/lib/libgif.so.3libgif.so.3/usr/X11R6/lib/libgif.so.3libgif.so.3/live/lib//libgif.so.3libgdk_imlib.so.1.9.5/usr/lib/libgdk_imlib.so.1.9.5libgdk_imlib.so.1.9.5/usr/local/lib/libgdk_imlib.so.1.9.5libgdk_imlib.so.1.9.5/usr/X11R6/lib/libgdk_imlib.so.1.9.5libgdk_imlib.so.1.9.5/live/lib//libgdk_imlib.so.1.9.5libgdk_imlib.so.1/usr/lib/libgdk_imlib.so.1libgdk_imlib.so.1/usr/local/lib/libgdk_imlib.so.1libgdk_imlib.so.1/usr/X11R6/lib/libgdk_imlib.so.1libgdk_imlib.so.1/live/lib//libgdk_imlib.so.1libgdk_imlib.so.1/mnt/cdrom/live/lib/libgdk_imlib.so.1libgdk-1.2.so.0.2.0/usr/lib/libgdk-1.2.so.0.2.0libgdk-1.2.so.0.2.0/usr/local/lib/libgdk-1.2.so.0.2.0libgdk-1.2.so.0.2.0/usr/X11R6/lib/libgdk-1.2.so.0.2.0libgdk-1.2.so.0.2.0/live/lib//libgdk-1.2.so.0.2.0libgdk-1.2.so.0/usr/lib/libgdk-1.2.so.0libgdk-1.2.so.0/usr/local/lib/libgdk-1.2.so.0libgdk-1.2.so.0/usr/X11R6/lib/libgdk-1.2.so.0libgdk-1.2.so.0/live/lib//libgdk-1.2.so.0libgdk-1.2.so.0/mnt/cdrom/live/lib/libgdk-1.2.so.0libgdbm.so.2.0.0/usr/lib/libgdbm.so.2.0.0libgdbm.so.2.0.0/usr/local/lib/libgdbm.so.2.0.0libgdbm.so.2.0.0/usr/X11R6/lib/libgdbm.so.2.0.0libgdbm.so.2.0.0/live/lib//libgdbm.so.2.0.0libgdbm.so.2/lib/libgdbm.so.2libgdbm.so.2/usr/lib/libgdbm.so.2libgdbm.so.2/usr/local/lib/libgdbm.so.2libgdbm.so.2/usr/X11R6/lib/libgdbm.so.2libgdbm.so.2/live/lib//libgdbm.so.2libgdbm.so.2/mnt/cdrom/live/lib/libgdbm.so.2libgdbm.so/lib/libgdbm.solibform.so.4.2/usr/lib/libform.so.4.2libform.so.4.2/usr/local/lib/libform.so.4.2libform.so.4.2/usr/X11R6/lib/libform.so.4.2libform.so.4.2/live/lib//libform.so.4.2libform.so.4/usr/lib/libform.so.4libform.so.4/usr/local/lib/libform.so.4libform.so.4/usr/X11R6/lib/libform.so.4libform.so.4/live/lib//libform.so.4libform.so.4/mnt/cdrom/live/lib/libform.so.4libfbm.so.1.0.0/usr/lib/libfbm.so.1.0.0libfbm.so.1.0.0/usr/local/lib/libfbm.so.1.0.0libfbm.so.1.0.0/usr/X11R6/lib/libfbm.so.1.0.0libfbm.so.1.0.0/live/lib//libfbm.so.1.0.0libfbm.so.1/usr/lib/libfbm.so.1libfbm.so.1/usr/local/lib/libfbm.so.1libfbm.so.1/usr/X11R6/lib/libfbm.so.1libfbm.so.1/live/lib//libfbm.so.1libfbm.so.1/mnt/cdrom/live/lib/libfbm.so.1libe2p.so.2.3/usr/lib/libe2p.so.2.3libe2p.so.2.3/usr/local/lib/libe2p.so.2.3libe2p.so.2.3/usr/X11R6/lib/libe2p.so.2.3libe2p.so.2.3/live/lib//libe2p.so.2.3libe2p.so.2/usr/lib/libe2p.so.2libe2p.so.2/usr/local/lib/libe2p.so.2libe2p.so.2/usr/X11R6/lib/libe2p.so.2libe2p.so.2/live/lib//libe2p.so.2libe2p.so.2/mnt/cdrom/live/lib/libe2p.so.2libext2fs.so.2.4/usr/lib/libext2fs.so.2.4libext2fs.so.2.4/usr/local/lib/libext2fs.so.2.4libext2fs.so.2.4/usr/X11R6/lib/libext2fs.so.2.4libext2fs.so.2.4/live/lib//libext2fs.so.2.4libext2fs.so.2/lib/libext2fs.so.2libext2fs.so.2/usr/lib/libext2fs.so.2libext2fs.so.2/usr/local/lib/libext2fs.so.2libext2fs.so.2/usr/X11R6/lib/libext2fs.so.2libext2fs.so.2/live/lib//libext2fs.so.2libext2fs.so.2/mnt/cdrom/live/lib/libext2fs.so.2libesddsp.so.0.2.10/usr/lib/libesddsp.so.0.2.10libesddsp.so.0.2.10/usr/local/lib/libesddsp.so.0.2.10libesddsp.so.0.2.10/usr/X11R6/lib/libesddsp.so.0.2.10libesddsp.so.0.2.10/live/lib//libesddsp.so.0.2.10libesddsp.so.0/usr/lib/libesddsp.so.0libesddsp.so.0/usr/local/lib/libesddsp.so.0libesddsp.so.0/usr/X11R6/lib/libesddsp.so.0libesddsp.so.0/live/lib//libesddsp.so.0libesddsp.so.0/mnt/cdrom/live/lib/libesddsp.so.0libesddsp.so/usr/lib/libesddsp.solibesddsp.so/usr/local/lib/libesddsp.solibesddsp.so/usr/X11R6/lib/libesddsp.solibesddsp.so/live/lib//libesddsp.solibesd.so.0.2.10/usr/lib/libesd.so.0.2.10libesd.so.0.2.10/usr/local/lib/libesd.so.0.2.10libesd.so.0.2.10/usr/X11R6/lib/libesd.so.0.2.10libesd.so.0.2.10/live/lib//libesd.so.0.2.10libesd.so.0/usr/lib/libesd.so.0libesd.so.0/usr/local/lib/libesd.so.0libesd.so.0/usr/X11R6/lib/libesd.so.0libesd.so.0/live/lib//libesd.so.0libesd.so.0/mnt/cdrom/live/lib/libesd.so.0libesd.so/usr/lib/libesd.solibesd.so/usr/local/lib/libesd.solibesd.so/usr/X11R6/lib/libesd.solibesd.so/live/lib//libesd.solibdl.so.2/lib/libdl.so.2libdl.so.2/usr/lib/libdl.so.2libdl.so.2/usr/local/lib/libdl.so.2libdl.so.2/usr/X11R6/lib/libdl.so.2libdl.so.2/live/lib//libdl.so.2libdl.so.2/mnt/cdrom/live/lib/libdl.so.2libdl-2.1.1.so/usr/lib/libdl-2.1.1.solibdl-2.1.1.so/usr/local/lib/libdl-2.1.1.solibdl-2.1.1.so/usr/X11R6/lib/libdl-2.1.1.solibdl-2.1.1.so/live/lib//libdl-2.1.1.solibdb1.so.2/lib/libdb1.so.2libdb1.so.2/usr/lib/libdb1.so.2libdb1.so.2/usr/local/lib/libdb1.so.2libdb1.so.2/usr/X11R6/lib/libdb1.so.2libdb1.so.2/live/lib//libdb1.so.2libdb1-2.1.1.so/usr/lib/libdb1-2.1.1.solibdb1-2.1.1.so/usr/local/lib/libdb1-2.1.1.solibdb1-2.1.1.so/usr/X11R6/lib/libdb1-2.1.1.solibdb1-2.1.1.so/live/lib//libdb1-2.1.1.solibdb.so.3/lib/libdb.so.3libdb.so.3/usr/lib/libdb.so.3libdb.so.3/usr/local/lib/libdb.so.3libdb.so.3/usr/X11R6/lib/libdb.so.3libdb.so.3/live/lib//libdb.so.3libdb.so.3/mnt/cdrom/live/lib/libdb.so.3libdb.so.2/lib/libdb.so.2libdb.so.2/usr/lib/libdb.so.2libdb.so.2/usr/local/lib/libdb.so.2libdb.so.2/usr/X11R6/lib/libdb.so.2libdb.so.2/live/lib//libdb.so.2libdb.so.2/mnt/cdrom/live/lib/libdb.so.2libdb-2.1.1.so/usr/lib/libdb-2.1.1.solibdb-2.1.1.so/usr/local/lib/libdb-2.1.1.solibdb-2.1.1.so/usr/X11R6/lib/libdb-2.1.1.solibdb-2.1.1.so/live/lib//libdb-2.1.1.solibctutils.so.0.0.0/usr/lib/libctutils.so.0.0.0libctutils.so.0.0.0/usr/local/lib/libctutils.so.0.0.0libctutils.so.0.0.0/usr/X11R6/lib/libctutils.so.0.0.0libctutils.so.0.0.0/live/lib//libctutils.so.0.0.0libctutils.so.0/usr/lib/libctutils.so.0libctutils.so.0/usr/local/lib/libctutils.so.0libctutils.so.0/usr/X11R6/lib/libctutils.so.0libctutils.so.0/live/lib//libctutils.so.0libctutils.so.0/mnt/cdrom/live/lib/libctutils.so.0libctutils.so/usr/lib/libctutils.solibctutils.so/usr/local/lib/libctutils.solibctutils.so/usr/X11R6/lib/libctutils.solibctutils.so/live/lib//libctutils.solibcrypt.so.1/lib/libcrypt.so.1libcrypt.so.1/usr/lib/libcrypt.so.1libcrypt.so.1/usr/local/lib/libcrypt.so.1libcrypt.so.1/usr/X11R6/lib/libcrypt.so.1libcrypt.so.1/live/lib//libcrypt.so.1libcrypt.so.1/mnt/cdrom/live/lib/libcrypt.so.1libcrypt-2.1.1.so/usr/lib/libcrypt-2.1.1.solibcrypt-2.1.1.so/usr/local/lib/libcrypt-2.1.1.solibcrypt-2.1.1.so/usr/X11R6/lib/libcrypt-2.1.1.solibcrypt-2.1.1.so/live/lib//libcrypt-2.1.1.solibconsole.so.0.0.0/usr/lib/libconsole.so.0.0.0libconsole.so.0.0.0/usr/local/lib/libconsole.so.0.0.0libconsole.so.0.0.0/usr/X11R6/lib/libconsole.so.0.0.0libconsole.so.0.0.0/live/lib//libconsole.so.0.0.0libconsole.so.0/usr/lib/libconsole.so.0libconsole.so.0/usr/local/lib/libconsole.so.0libconsole.so.0/usr/X11R6/lib/libconsole.so.0libconsole.so.0/live/lib//libconsole.so.0libconsole.so.0/mnt/cdrom/live/lib/libconsole.so.0libconsole.so/usr/lib/libconsole.solibconsole.so/usr/local/lib/libconsole.solibconsole.so/usr/X11R6/lib/libconsole.solibconsole.so/live/lib//libconsole.solibcom_err.so.2.0/usr/lib/libcom_err.so.2.0libcom_err.so.2.0/usr/local/lib/libcom_err.so.2.0libcom_err.so.2.0/usr/X11R6/lib/libcom_err.so.2.0libcom_err.so.2.0/live/lib//libcom_err.so.2.0libcom_err.so.2/lib/libcom_err.so.2libcom_err.so.2/usr/lib/libcom_err.so.2libcom_err.so.2/usr/local/lib/libcom_err.so.2libcom_err.so.2/usr/X11R6/lib/libcom_err.so.2libcom_err.so.2/live/lib//libcom_err.so.2libcom_err.so.2/mnt/cdrom/live/lib/libcom_err.so.2libcfont.so.0.0.0/usr/lib/libcfont.so.0.0.0libcfont.so.0.0.0/usr/local/lib/libcfont.so.0.0.0libcfont.so.0.0.0/usr/X11R6/lib/libcfont.so.0.0.0libcfont.so.0.0.0/live/lib//libcfont.so.0.0.0libcfont.so.0/usr/lib/libcfont.so.0libcfont.so.0/usr/local/lib/libcfont.so.0libcfont.so.0/usr/X11R6/lib/libcfont.so.0libcfont.so.0/live/lib//libcfont.so.0libcfont.so.0/mnt/cdrom/live/lib/libcfont.so.0libcfont.so/usr/lib/libcfont.solibcfont.so/usr/local/lib/libcfont.solibcfont.so/usr/X11R6/lib/libcfont.solibcfont.so/live/lib//libcfont.solibc.so.6/lib/libc.so.6libaudiofile.so.0.0.0/usr/lib/libaudiofile.so.0.0.0libaudiofile.so.0.0.0/usr/local/lib/libaudiofile.so.0.0.0libaudiofile.so.0.0.0/usr/X11R6/lib/libaudiofile.so.0.0.0libaudiofile.so.0.0.0/live/lib//libaudiofile.so.0.0.0libaudiofile.so.0/usr/lib/libaudiofile.so.0libaudiofile.so.0/usr/local/lib/libaudiofile.so.0libaudiofile.so.0/usr/X11R6/lib/libaudiofile.so.0libaudiofile.so.0/live/lib//libaudiofile.so.0libaudiofile.so.0/mnt/cdrom/live/lib/libaudiofile.so.0libart_lgpl.so.2.0.0/usr/lib/libart_lgpl.so.2.0.0libart_lgpl.so.2.0.0/usr/local/lib/libart_lgpl.so.2.0.0libart_lgpl.so.2.0.0/usr/X11R6/lib/libart_lgpl.so.2.0.0libart_lgpl.so.2.0.0/live/lib//libart_lgpl.so.2.0.0libart_lgpl.so.2/usr/lib/libart_lgpl.so.2libart_lgpl.so.2/usr/local/lib/libart_lgpl.so.2libart_lgpl.so.2/usr/X11R6/lib/libart_lgpl.so.2libart_lgpl.so.2/live/lib//libart_lgpl.so.2libart_lgpl.so.2/mnt/cdrom/live/lib/libart_lgpl.so.2libX11.so.6.1/usr/lib/libX11.so.6.1libX11.so.6.1/usr/local/lib/libX11.so.6.1libX11.so.6.1/usr/X11R6/lib/libX11.so.6.1libX11.so.6.1/live/lib//libX11.so.6.1libX11.so.6/usr/lib/libX11.so.6libX11.so.6/usr/local/lib/libX11.so.6libX11.so.6/usr/X11R6/lib/libX11.so.6libX11.so.6/live/lib//libX11.so.6libX11.so.6/mnt/cdrom/live/lib/libX11.so.6libXtst.so.6.1/usr/lib/libXtst.so.6.1libXtst.so.6.1/usr/local/lib/libXtst.so.6.1libXtst.so.6.1/usr/X11R6/lib/libXtst.so.6.1libXtst.so.6.1/live/lib//libXtst.so.6.1libXtst.so.6/usr/lib/libXtst.so.6libXtst.so.6/usr/local/lib/libXtst.so.6libXtst.so.6/usr/X11R6/lib/libXtst.so.6libXtst.so.6/live/lib//libXtst.so.6libXtst.so.6/mnt/cdrom/live/lib/libXtst.so.6libXt.so.6.0/usr/lib/libXt.so.6.0libXt.so.6.0/usr/local/lib/libXt.so.6.0libXt.so.6.0/usr/X11R6/lib/libXt.so.6.0libXt.so.6.0/live/lib//libXt.so.6.0libXt.so.6/usr/lib/libXt.so.6libXt.so.6/usr/local/lib/libXt.so.6libXt.so.6/usr/X11R6/lib/libXt.so.6libXt.so.6/live/lib//libXt.so.6libXt.so.6/mnt/cdrom/live/lib/libXt.so.6libXpm.so.4.10/usr/lib/libXpm.so.4.10libXpm.so.4.10/usr/local/lib/libXpm.so.4.10libXpm.so.4.10/usr/X11R6/lib/libXpm.so.4.10libXpm.so.4.10/live/lib//libXpm.so.4.10libXpm.so.4/usr/lib/libXpm.so.4libXpm.so.4/usr/local/lib/libXpm.so.4libXpm.so.4/usr/X11R6/lib/libXpm.so.4libXpm.so.4/live/lib//libXpm.so.4libXpm.so.4/mnt/cdrom/live/lib/libXpm.so.4libXp.so.6.2/usr/lib/libXp.so.6.2libXp.so.6.2/usr/local/lib/libXp.so.6.2libXp.so.6.2/usr/X11R6/lib/libXp.so.6.2libXp.so.6.2/live/lib//libXp.so.6.2libXp.so.6/usr/lib/libXp.so.6libXp.so.6/usr/local/lib/libXp.so.6libXp.so.6/usr/X11R6/lib/libXp.so.6libXp.so.6/live/lib//libXp.so.6libXp.so.6/mnt/cdrom/live/lib/libXp.so.6libXmu.so.6.0/usr/lib/libXmu.so.6.0libXmu.so.6.0/usr/local/lib/libXmu.so.6.0libXmu.so.6.0/usr/X11R6/lib/libXmu.so.6.0libXmu.so.6.0/live/lib//libXmu.so.6.0libXmu.so.6/usr/lib/libXmu.so.6libXmu.so.6/usr/local/lib/libXmu.so.6libXmu.so.6/usr/X11R6/lib/libXmu.so.6libXmu.so.6/live/lib//libXmu.so.6libXmu.so.6/mnt/cdrom/live/lib/libXmu.so.6libXi.so.6.0/usr/lib/libXi.so.6.0libXi.so.6.0/usr/local/lib/libXi.so.6.0libXi.so.6.0/usr/X11R6/lib/libXi.so.6.0libXi.so.6.0/live/lib//libXi.so.6.0libXi.so.6/usr/lib/libXi.so.6libXi.so.6/usr/local/lib/libXi.so.6libXi.so.6/usr/X11R6/lib/libXi.so.6libXi.so.6/live/lib//libXi.so.6libXi.so.6/mnt/cdrom/live/lib/libXi.so.6libXext.so.6.3/usr/lib/libXext.so.6.3libXext.so.6.3/usr/local/lib/libXext.so.6.3libXext.so.6.3/usr/X11R6/lib/libXext.so.6.3libXext.so.6.3/live/lib//libXext.so.6.3libXext.so.6/usr/lib/libXext.so.6libXext.so.6/usr/local/lib/libXext.so.6libXext.so.6/usr/X11R6/lib/libXext.so.6libXext.so.6/live/lib//libXext.so.6libXext.so.6/mnt/cdrom/live/lib/libXext.so.6libXaw3d.so.6.1/usr/lib/libXaw3d.so.6.1libXaw3d.so.6.1/usr/local/lib/libXaw3d.so.6.1libXaw3d.so.6.1/usr/X11R6/lib/libXaw3d.so.6.1libXaw3d.so.6.1/live/lib//libXaw3d.so.6.1libXaw3d.so.6/usr/lib/libXaw3d.so.6libXaw3d.so.6/usr/local/lib/libXaw3d.so.6libXaw3d.so.6/usr/X11R6/lib/libXaw3d.so.6libXaw3d.so.6/live/lib//libXaw3d.so.6libXaw3d.so.6/mnt/cdrom/live/lib/libXaw3d.so.6libXaw.so.6.1/usr/lib/libXaw.so.6.1libXaw.so.6.1/usr/local/lib/libXaw.so.6.1libXaw.so.6.1/usr/X11R6/lib/libXaw.so.6.1libXaw.so.6.1/live/lib//libXaw.so.6.1libXaw.so.6/usr/lib/libXaw.so.6libXaw.so.6/usr/local/lib/libXaw.so.6libXaw.so.6/usr/X11R6/lib/libXaw.so.6libXaw.so.6/live/lib//libXaw.so.6libXaw.so.6/mnt/cdrom/live/lib/libXaw.so.6libXIE.so.6.0/usr/lib/libXIE.so.6.0libXIE.so.6.0/usr/local/lib/libXIE.so.6.0libXIE.so.6.0/usr/X11R6/lib/libXIE.so.6.0libXIE.so.6.0/live/lib//libXIE.so.6.0libXIE.so.6/usr/lib/libXIE.so.6libXIE.so.6/usr/local/lib/libXIE.so.6libXIE.so.6/usr/X11R6/lib/libXIE.so.6libXIE.so.6/live/lib//libXIE.so.6libXIE.so.6/mnt/cdrom/live/lib/libXIE.so.6libSegFault.so/usr/lib/libSegFault.solibSegFault.so/usr/local/lib/libSegFault.solibSegFault.so/usr/X11R6/lib/libSegFault.solibSegFault.so/live/lib//libSegFault.solibSegFault.so/mnt/cdrom/live/lib/libSegFault.solibSM.so.6.0/usr/lib/libSM.so.6.0libSM.so.6.0/usr/local/lib/libSM.so.6.0libSM.so.6.0/usr/X11R6/lib/libSM.so.6.0libSM.so.6.0/live/lib//libSM.so.6.0libSM.so.6/usr/lib/libSM.so.6libSM.so.6/usr/local/lib/libSM.so.6libSM.so.6/usr/X11R6/lib/libSM.so.6libSM.so.6/live/lib//libSM.so.6libSM.so.6/mnt/cdrom/live/lib/libSM.so.6libPropList.so.0.1.1/usr/lib/libPropList.so.0.1.1libPropList.so.0.1.1/usr/local/lib/libPropList.so.0.1.1libPropList.so.0.1.1/usr/X11R6/lib/libPropList.so.0.1.1libPropList.so.0.1.1/live/lib//libPropList.so.0.1.1libPropList.so.0/usr/lib/libPropList.so.0libPropList.so.0/usr/local/lib/libPropList.so.0libPropList.so.0/usr/X11R6/lib/libPropList.so.0libPropList.so.0/live/lib//libPropList.so.0libPropList.so.0/mnt/cdrom/live/lib/libPropList.so.0libPropList.so/usr/lib/libPropList.solibPropList.so/usr/local/lib/libPropList.solibPropList.so/usr/X11R6/lib/libPropList.solibPropList.so/live/lib//libPropList.solibPEX5.so.6.0/usr/lib/libPEX5.so.6.0libPEX5.so.6.0/usr/local/lib/libPEX5.so.6.0libPEX5.so.6.0/usr/X11R6/lib/libPEX5.so.6.0libPEX5.so.6.0/live/lib//libPEX5.so.6.0libPEX5.so.6/usr/lib/libPEX5.so.6libPEX5.so.6/usr/local/lib/libPEX5.so.6libPEX5.so.6/usr/X11R6/lib/libPEX5.so.6libPEX5.so.6/live/lib//libPEX5.so.6libPEX5.so.6/mnt/cdrom/live/lib/libPEX5.so.6libImlib.so.1.9.5/usr/lib/libImlib.so.1.9.5libImlib.so.1.9.5/usr/local/lib/libImlib.so.1.9.5libImlib.so.1.9.5/usr/X11R6/lib/libImlib.so.1.9.5libImlib.so.1.9.5/live/lib//libImlib.so.1.9.5libImlib.so.1/usr/lib/libImlib.so.1libImlib.so.1/usr/local/lib/libImlib.so.1libImlib.so.1/usr/X11R6/lib/libImlib.so.1libImlib.so.1/live/lib//libImlib.so.1libImlib.so.1/mnt/cdrom/live/lib/libImlib.so.1libICE.so.6.3/usr/lib/libICE.so.6.3libICE.so.6.3/usr/local/lib/libICE.so.6.3libICE.so.6.3/usr/X11R6/lib/libICE.so.6.3libICE.so.6.3/live/lib//libICE.so.6.3libICE.so.6/usr/lib/libICE.so.6libICE.so.6/usr/local/lib/libICE.so.6libICE.so.6/usr/X11R6/lib/libICE.so.6libICE.so.6/live/lib//libICE.so.6libICE.so.6/mnt/cdrom/live/lib/libICE.so.6libBrokenLocale.so.1/usr/lib/libBrokenLocale.so.1libBrokenLocale.so.1/usr/local/lib/libBrokenLocale.so.1libBrokenLocale.so.1/usr/X11R6/lib/libBrokenLocale.so.1libBrokenLocale.so.1/live/lib//libBrokenLocale.so.1libBrokenLocale.so.1/mnt/cdrom/live/lib/libBrokenLocale.so.1libBrokenLocale-2.1.1.so/usr/lib/libBrokenLocale-2.1.1.solibBrokenLocale-2.1.1.so/usr/local/lib/libBrokenLocale-2.1.1.solibBrokenLocale-2.1.1.so/usr/X11R6/lib/libBrokenLocale-2.1.1.solibBrokenLocale-2.1.1.so/live/lib//libBrokenLocale-2.1.1.sold.so.1/lib/ld.so.1ld.so.1/mnt/cdrom/live/lib/ld.so.1ld-2.1.1.so/usr/lib/ld-2.1.1.sold-2.1.1.so/usr/local/lib/ld-2.1.1.sold-2.1.1.so/usr/X11R6/lib/ld-2.1.1.sold-2.1.1.so/live/lib//ld-2.1.1.so# # inetd.conf This file describes the services that will be available # through the INETD TCP/IP super server. To re-configure # the running INETD process, edit this file, then send the # INETD process a SIGHUP signal. # # Version: @(#)/etc/inetd.conf 3.10 05/27/93 # # Authors: Original taken from BSD UNIX 4.3/TAHOE. # Fred N. van Kempen, # # Modified for Debian Linux by Ian A. Murdock # # Modified for RHS Linux by Marc Ewing # # # # Echo, discard, daytime, and chargen are used primarily for testing. # # To re-read this file after changes, just do a 'killall -HUP inetd' # #echo stream tcp nowait root internal #echo dgram udp wait root internal #discard stream tcp nowait root internal #discard dgram udp wait root internal #daytime stream tcp nowait root internal #daytime dgram udp wait root internal #chargen stream tcp nowait root internal #chargen dgram udp wait root internal #time stream tcp nowait root internal #time dgram udp wait root internal # # These are standard services. # # ftp stream tcp nowait root /usr/sbin/tcpd in.proftpd # telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd # # Shell, login, exec, comsat and talk are BSD protocols. # # shell stream tcp nowait root /usr/sbin/tcpd in.rshd # login stream tcp nowait root /usr/sbin/tcpd in.rlogind #exec stream tcp nowait root /usr/sbin/tcpd in.rexecd #comsat dgram udp wait root /usr/sbin/tcpd in.comsat # talk dgram udp wait nobody.tty /usr/sbin/tcpd in.talkd # ntalk dgram udp wait nobody.tty /usr/sbin/tcpd in.ntalkd #dtalk stream tcp wait nobody.tty /usr/sbin/tcpd in.dtalkd # # Pop and imap mail services et al # #pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d #pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d #imap stream tcp nowait root /usr/sbin/tcpd imapd # # The Internet UUCP service. # #uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico -l # # Tftp service is provided primarily for booting. Most sites # run this only on machines acting as "boot servers." Do not uncomment # this unless you *need* it. # #tftp dgram udp wait root /usr/sbin/tcpd in.tftpd #bootps dgram udp wait root /usr/sbin/tcpd bootpd # # Finger, systat and netstat give out user information which may be # valuable to potential "system crackers." Many sites choose to disable # some or all of these services to improve security. # # finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd #cfinger stream tcp nowait root /usr/sbin/tcpd in.cfingerd #systat stream tcp nowait guest /usr/sbin/tcpd /bin/ps -auwwx #netstat stream tcp nowait guest /usr/sbin/tcpd /bin/netstat -f inet # # Authentication # # auth stream tcp wait root /usr/sbin/in.identd in.identd -e -o # # End of inetd.conf # # inittab This file describes how the INIT process should set up # the system in a certain run-level. # # Author: Miquel van Smoorenburg, # Modified for RHS Linux by Marc Ewing and Donnie Barnes # # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 # Things to run in every runlevel. ud::once:/sbin/update # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now # When our UPS tells us power has failed, assume we have a few minutes # of power left. Schedule a shutdown for 2 minutes from now. # This does, of course, assume you have powerd installed and your # UPS connected and working correctly. pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" # If power was restored before the shutdown kicked in, cancel it. pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 # Run xdm in runlevel 5 # xdm is now a separate service x:5:respawn:/etc/X11/prefdm -nodaemon # Disables packet forwarding net.ipv4.ip_forward = 0 # Enables source route verification net.ipv4.conf.all.rp_filter = 1 # Disables automatic defragmentation (needed for masquerading, LVS) net.ipv4.ip_always_defrag = 0 # Disables the magic-sysrq key kernel.sysrq = 0 # Enables new keycodes on PPC dev.mac_hid.keyboard_sends_linux_keycodes = 1 # Enables 3-button mouse emulation on PPC dev.mac_hid.mouse_button_emulation = 1 # # Sample video modes # # These data are based on the CRTC parameters in # # Mach64 Programmer's Guide, Appendix C # (C) 1998 ATI Technologies Inc. # # # 640x480, 60 Hz, Non-Interlaced (25.175 MHz dotclock) # # Horizontal Vertical # Resolution 640 480 # Scan Frequency 31.469 kHz 59.94 Hz # Sync Width 3.813 us 0.064 ms # 12 chars 2 lines # Front Porch 0.636 us 0.318 ms # 2 chars 10 lines # Back Porch 1.907 us 1.048 ms # 6 chars 33 lines # Active Time 25.422 us 15.253 ms # 80 chars 480 lines # Blank Time 6.356 us 1.430 ms # 20 chars 45 lines # Polarity negative negative # mode "640x480-60" # D: 25.175 MHz, H: 31.469 kHz, V: 59.94 Hz geometry 640 480 640 480 8 timings 39722 48 16 33 10 96 2 endmode # # 640x480, 72 Hz, Non-Interlaced (31.20 MHz dotclock) # # Horizontal Vertical # Resolution 640 480 # Scan Frequency 37.500 kHz 72.12 Hz # Sync Width 1.282 us 0.080 ms # 5 chars 3 lines # Front Porch 0.769 us 0.240 ms # 3 chars 9 lines # Back Porch 4.103 us 0.747 ms # 16 chars 28 lines # Active Time 20.513 us 12.800 ms # 80 chars 480 lines # Blank Time 6.154 us 1.067 ms # 24 chars 40 lines # Polarity negative negative # mode "640x480-72" # D: 31.20 MHz, H: 37.500 kHz, V: 72.12 Hz geometry 640 480 640 480 8 timings 32052 128 24 28 9 40 3 endmode # # 640x480, 75 Hz, Non-Interlaced (31.50 MHz dotclock) # # Horizontal Vertical # Resolution 640 480 # Scan Frequency 37.500 kHz 75.00 Hz # Sync Width 2.032 us 0.080 ms # 8 chars 3 lines # Front Porch 0.508 us 0.027 ms # 2 chars 1 lines # Back Porch 3.810 us 0.427 ms # 15 chars 16 lines # Active Time 20.317 us 12.800 ms # 80 chars 480 lines # Blank Time 6.349 us 0.533 ms # 25 chars 20 lines # Polarity negative negative # mode "640x480-75" # D: 31.50 MHz, H: 37.500 kHz, V: 75.00 Hz geometry 640 480 640 480 8 timings 31747 120 16 16 1 64 3 endmode # # 640x480, 90 Hz, Non-Interlaced (39.91 MHz dotclock) # # Horizontal Vertical # Resolution 640 480 # Scan Frequency 47.969 kHz 90.00 Hz # Sync Width 1.002 us 0.292 ms # 5 chars 14 lines # Front Porch 0.902 us 0.521 ms # 4 chars 25 lines # Back Porch 2.907 us 0.292 ms # 15 chars 14 lines # Active Time 16.036 us 10.007 ms # 80 chars 480 lines # Blank Time 4.811 us 1.105 ms # 24 chars 53 lines # Polarity negative negative # mode "640x480-90" # D: 39.91 MHz, H: 47.969 kHz, V: 90.00 Hz geometry 640 480 640 480 8 timings 25057 120 32 14 25 40 14 endmode # # 640x480, 100 Hz, Non-Interlaced (44.90 MHz dotclock) # # Horizontal Vertical # Resolution 640 480 # Scan Frequency 52.948 kHz 99.71 Hz # Sync Width 2.851 us 0.227 ms # 16 chars 12 lines # Front Porch 0.801 us 0.416 ms # 4 chars 22 lines # Back Porch 0.981 us 0.322 ms # 6 chars 17 lines # Active Time 14.254 us 9.065 ms # 80 chars 480 lines # Blank Time 4.633 us 0.963 ms # 26 chars 51 lines # Polarity negative negative # mode "640x480-100" # D: 44.90 MHz, H: 52.948 kHz, V: 99.71 Hz geometry 640 480 640 480 8 timings 22272 48 32 17 22 128 12 endmode # # 800x600, 48 Hz, Interlaced (36.00 MHz dotclock) # # Horizontal Vertical # Resolution 800 600 # Scan Frequency 33.835 kHz 96.39 Hz # Sync Width 3.556 us 0.177 ms # 16 chars 12 lines # Front Porch 2.222 us 0.163 ms # 10 chars 11 lines # Back Porch 1.555 us 1.167 ms # 7 chars 79 lines # Active Time 22.222 us 8.867 ms # 100 chars 600 lines # Blank Time 7.333 us 1.507 ms # 33 chars 102 lines # Polarity positive positive # mode "800x600-48-lace" # D: 36.00 MHz, H: 33.835 kHz, V: 96.39 Hz geometry 800 600 800 600 8 timings 27778 56 80 79 11 128 12 laced true hsync high vsync high endmode # # 800x600, 56 Hz, Non-Interlaced (36.00 MHz dotclock) # # Horizontal Vertical # Resolution 800 600 # Scan Frequency 35.156 kHz 56.25 Hz # Sync Width 2.000 us 0.057 ms # 9 chars 2 lines # Front Porch 0.667 us 0.028 ms # 3 chars 1 lines # Back Porch 3.555 us 0.626 ms # 16 chars 22 lines # Active Time 22.222 us 17.067 ms # 100 chars 600 lines # Blank Time 6.222 us 0.711 ms # 28 chars 25 lines # Polarity positive positive # mode "800x600-56" # D: 36.00 MHz, H: 35.156 kHz, V: 56.25 Hz geometry 800 600 800 600 8 timings 27778 128 24 22 1 72 2 hsync high vsync high endmode # # 800x600, 60 Hz, Non-Interlaced (40.00 MHz dotclock) # # Horizontal Vertical # Resolution 800 600 # Scan Frequency 37.879 kHz 60.32 Hz # Sync Width 3.200 us 0.106 ms # 16 chars 4 lines # Front Porch 1.000 us 0.026 ms # 5 chars 1 lines # Back Porch 2.200 us 0.607 ms # 11 chars 23 lines # Active Time 20.000 us 15.840 ms # 100 chars 600 lines # Blank Time 6.400 us 0.739 ms # 32 chars 28 lines # Polarity positive positive # mode "800x600-60" # D: 40.00 MHz, H: 37.879 kHz, V: 60.32 Hz geometry 800 600 800 600 8 timings 25000 88 40 23 1 128 4 hsync high vsync high endmode # # 800x600, 70 Hz, Non-Interlaced (44.90 MHz dotclock) # # Horizontal Vertical # Resolution 800 600 # Scan Frequency 44.544 kHz 70.04 Hz # Sync Width 3.207 us 0.269 ms # 18 chars 12 lines # Front Porch 0.535 us 0.202 ms # 3 chars 9 lines # Back Porch 0.891 us 0.337 ms # 5 chars 15 lines # Active Time 17.817 us 13.470 ms # 100 chars 600 lines # Blank Time 4.633 us 0.808 ms # 26 chars 36 lines # Polarity positive negative # mode "800x600-70" # D: 44.90 MHz, H: 44.544 kHz, V: 70.04 Hz geometry 800 600 800 600 8 timings 22272 40 24 15 9 144 12 hsync high endmode # # 800x600, 72 Hz, Non-Interlaced (50.00 MHz dotclock) # # Horizontal Vertical # Resolution 800 600 # Scan Frequency 48.090 kHz 72.19 Hz # Sync Width 2.400 us 0.125 ms # 15 chars 6 lines # Front Porch 1.120 us 0.769 ms # 7 chars 37 lines # Back Porch 1.280 us 0.478 ms # 8 chars 23 lines # Active Time 16.000 us 12.477 ms # 100 chars 600 lines # Blank Time 4.800 us 1.372 ms # 30 chars 66 lines # Polarity positive positive # mode "800x600-72" # D: 50.00 MHz, H: 48.090 kHz, V: 72.19 Hz geometry 800 600 800 600 8 timings 20000 64 56 23 37 120 6 hsync high vsync high endmode # # 800x600, 75 Hz, Non-Interlaced (49.50 MHz dotclock) # # Horizontal Vertical # Resolution 800 600 # Scan Frequency 46.875 kHz 75.00 Hz # Sync Width 1.616 us 0.064 ms # 10 chars 3 lines # Front Porch 0.323 us 0.021 ms # 2 chars 1 lines # Back Porch 3.232 us 0.448 ms # 20 chars 21 lines # Active Time 16.162 us 12.800 ms # 100 chars 600 lines # Blank Time 5.172 us 0.533 ms # 32 chars 25 lines # Polarity positive positive # mode "800x600-75" # D: 49.50 MHz, H: 46.875 kHz, V: 75.00 Hz geometry 800 600 800 600 8 timings 20203 160 16 21 1 80 3 hsync high vsync high endmode # # 800x600, 90 Hz, Non-Interlaced (56.64 MHz dotclock) # # Horizontal Vertical # Resolution 800 600 # Scan Frequency 57.097 kHz 89.92 Hz # Sync Width 1.130 us 0.193 ms # 8 chars 11 lines # Front Porch 0.071 us 0.140 ms # 1 chars 8 lines # Back Porch 2.189 us 0.280 ms # 15 chars 16 lines # Active Time 14.124 us 10.508 ms # 100 chars 600 lines # Blank Time 3.390 us 0.613 ms # 24 chars 35 lines # Polarity positive positive # mode "800x600-90" # D: 56.64 MHz, H: 57.097 kHz, V: 89.92 Hz geometry 800 600 800 600 8 timings 17656 120 8 16 8 64 11 hsync high vsync high endmode # # 800x600, 100 Hz, Non-Interlaced (67.50 MHz dotclock) # # Horizontal Vertical # Resolution 800 600 # Scan Frequency 62.500 kHz 100.00 Hz # Sync Width 0.948 us 0.064 ms # 8 chars 4 lines # Front Porch 0.000 us 0.112 ms # 0 chars 7 lines # Back Porch 3.200 us 0.224 ms # 27 chars 14 lines # Active Time 11.852 us 9.600 ms # 100 chars 600 lines # Blank Time 4.148 us 0.400 ms # 35 chars 25 lines # Polarity positive positive # mode "800x600-100" # D: 67.50 MHz, H: 62.500 kHz, V: 100.00 Hz geometry 800 600 800 600 8 timings 14815 216 0 14 7 64 4 hsync high vsync high endmode # # 1024x768, 43 Hz, Interlaced (44.90 MHz dotclock) # # Horizontal Vertical # Resolution 1024 768 # Scan Frequency 35.522 kHz 86.96 Hz # Sync Width 3.920 us 0.113 ms # 22 chars 8 lines # Front Porch 0.178 us 0.014 ms # 1 chars 1 lines # Back Porch 1.247 us 0.563 ms # 7 chars 40 lines # Active Time 22.806 us 10.810 ms # 128 chars 768 lines # Blank Time 5.345 us 0.690 ms # 30 chars 49 lines # Polarity positive positive # mode "1024x768-43-lace" # D: 44.90 MHz, H: 35.522 kHz, V: 86.96 Hz geometry 1024 768 1024 768 8 timings 22272 56 8 40 1 176 8 laced true hsync high vsync high endmode # # 1024x768, 60 Hz, Non-Interlaced (65.00 MHz dotclock) # # Horizontal Vertical # Resolution 1024 768 # Scan Frequency 48.363 kHz 60.00 Hz # Sync Width 2.092 us 0.124 ms # 17 chars 6 lines # Front Porch 0.369 us 0.062 ms # 3 chars 3 lines # Back Porch 2.462 us 0.601 ms # 20 chars 29 lines # Active Time 15.754 us 15.880 ms # 128 chars 768 lines # Blank Time 4.923 us 0.786 ms # 40 chars 38 lines # Polarity negative negative # mode "1024x768-60" # D: 65.00 MHz, H: 48.363 kHz, V: 60.00 Hz geometry 1024 768 1024 768 8 timings 15385 160 24 29 3 136 6 endmode # # 1024x768, 70 Hz, Non-Interlaced (75.00 MHz dotclock) # # Horizontal Vertical # Resolution 1024 768 # Scan Frequency 56.476 kHz 70.07 Hz # Sync Width 1.813 us 0.106 ms # 17 chars 6 lines # Front Porch 0.320 us 0.053 ms # 3 chars 3 lines # Back Porch 1.921 us 0.514 ms # 18 chars 29 lines # Active Time 13.653 us 13.599 ms # 128 chars 768 lines # Blank Time 4.053 us 0.673 ms # 38 chars 38 lines # Polarity negative negative # mode "1024x768-70" # D: 75.00 MHz, H: 56.476 kHz, V: 70.07 Hz geometry 1024 768 1024 768 8 timings 13334 144 24 29 3 136 6 endmode # # 1024x768, 72 Hz, Non-Interlaced (75.00 MHz dotclock) # # Horizontal Vertical # Resolution 10224 768 # Scan Frequency 58.230 kHz 72.245 Hz # Sync Width 1.813 us 0.103 ms # 17 chars 6 lines # Front Porch 0.320 us 0.052 ms # 3 chars 3 lines # Back Porch 1.387 us 0.498 ms # 13 chars 29 lines # Active Time 13.653 us 13.189 ms # 128 chars 768 lines # Blank Time 3.520 us 0.653 ms # 33 chars 38 lines # Polarity negative negative # mode "1024x768-72" # D: 75.00 MHz, H: 58.230 kHz, V: 72.245 Hz geometry 10224 768 10224 768 8 timings 13334 104 24 29 3 136 6 endmode # # 1024x768, 75 Hz, Non-Interlaced (78.75 MHz dotclock) # # Horizontal Vertical # Resolution 1024 768 # Scan Frequency 60.023 kHz 75.03 Hz # Sync Width 1.219 us 0.050 ms # 12 chars 3 lines # Front Porch 0.203 us 0.017 ms # 2 chars 1 lines # Back Porch 2.235 us 0.466 ms # 22 chars 28 lines # Active Time 13.003 us 12.795 ms # 128 chars 768 lines # Blank Time 3.657 us 0.533 ms # 36 chars 32 lines # Polarity positive positive # mode "1024x768-75" # D: 78.75 MHz, H: 60.023 kHz, V: 75.03 Hz geometry 1024 768 1024 768 8 timings 12699 176 16 28 1 96 3 hsync high vsync high endmode # # 1024x768, 90 Hz, Non-Interlaced (100.0 MHz dotclock) # # Horizontal Vertical # Resolution 1024 768 # Scan Frequency 76.220 kHz 90.20 Hz # Sync Width 0.960 us 0.197 ms # 12 chars 15 lines # Front Porch 0.000 us 0.276 ms # 0 chars 21 lines # Back Porch 1.920 us 0.537 ms # 24 chars 41 lines # Active Time 10.240 us 10.076 ms # 128 chars 768 lines # Blank Time 2.880 us 1.010 ms # 36 chars 77 lines # Polarity negative negative # mode "1024x768-90" # D: 100.0 MHz, H: 76.220 kHz, V: 90.20 Hz geometry 1024 768 1024 768 8 timings 10000 192 0 41 21 96 15 endmode # # 1024x768, 100 Hz, Non-Interlaced (110.0 MHz dotclock) # # Horizontal Vertical # Resolution 1024 768 # Scan Frequency 79.023 kHz 99.78 Hz # Sync Width 0.800 us 0.101 ms # 11 chars 8 lines # Front Porch 0.000 us 0.000 ms # 0 chars 0 lines # Back Porch 2.545 us 0.202 ms # 35 chars 16 lines # Active Time 9.309 us 9.719 ms # 128 chars 768 lines # Blank Time 3.345 us 0.304 ms # 46 chars 24 lines # Polarity negative negative # mode "1024x768-100" # D: 110.0 MHz, H: 79.023 kHz, V: 99.78 Hz geometry 1024 768 1024 768 8 timings 9091 280 0 16 0 88 8 endmode # # 1152x864, 43 Hz, Interlaced (65.0 MHz dotclock) # # Horizontal Vertical # Resolution 1152 864 # Scan Frequency 45.904 kHz 87.02 Hz # Sync Width 1.969 us 0.098 ms # 16 chars 9 lines # Front Porch 1.062 us 0.850 ms # 9 chars 78 lines # Back Porch 1.031 us 1.133 ms # 8 chars 104 lines # Active Time 17.723 us 9.411 ms # 144 chars 864 lines # Blank Time 4.062 us 2.080 ms # 33 chars 191 lines # Polarity positive positive # mode "1152x864-43-lace" # D: 65.0 MHz, H: 45.904 kHz, V: 87.02 Hz geometry 1152 864 1152 864 8 timings 15385 64 72 104 78 128 9 laced true hsync high vsync high endmode # # 1152x864, 47 Hz, Interlaced (65.0 MHz dotclock) # # Horizontal Vertical # Resolution 1152 864 # Scan Frequency 44.890 kHz 94.80 Hz # Sync Width 1.969 us 0.100 ms # 16 chars 9 lines # Front Porch 1.415 us 0.334 ms # 11 chars 30 lines # Back Porch 1.170 us 0.490 ms # 10 chars 44 lines # Active Time 17.723 us 9.624 ms # 144 chars 864 lines # Blank Time 4.554 us 0.924 ms # 37 chars 83 lines # Polarity positive positive # mode "1152x864-47-lace" # D: 65.0 MHz, H: 44.890 kHz, V: 94.80 Hz geometry 1152 864 1152 864 8 timings 15385 80 88 44 30 128 9 laced true hsync high vsync high endmode # # 1152x864, 60 Hz, Non-Interlaced (80.0 MHz dotclock) # # Horizontal Vertical # Resolution 1152 864 # Scan Frequency 54.945 kHz 59.98 Hz # Sync Width 1.400 us 0.091 ms # 14 chars 5 lines # Front Porch 0.800 us 0.109 ms # 8 chars 6 lines # Back Porch 1.600 us 0.746 ms # 16 chars 41 lines # Active Time 14.400 us 15.725 ms # 144 chars 864 lines # Blank Time 3.800 us 0.946 ms # 38 chars 52 lines # Polarity positive positive # mode "1152x864-60" # D: 80.0 MHz, H: 54.945 kHz, V: 59.98 Hz geometry 1152 864 1152 864 8 timings 12500 128 64 41 6 112 5 hsync high vsync high endmode # # 1152x864, 70 Hz, Non-Interlaced (100.0 MHz dotclock) # # Horizontal Vertical # Resolution 1152 864 # Scan Frequency 66.138 kHz 69.99 Hz # Sync Width 1.520 us 0.166 ms # 19 chars 11 lines # Front Porch 0.390 us 0.197 ms # 5 chars 13 lines # Back Porch 1.690 us 0.862 ms # 21 chars 57 lines # Active Time 11.520 us 13.064 ms # 144 chars 864 lines # Blank Time 3.600 us 1.225 ms # 45 chars 81 lines # Polarity positive positive # mode "1152x864-70" # D: 100.0 MHz, H: 66.138 kHz, V: 69.99 Hz geometry 1152 864 1152 864 8 timings 10000 168 40 57 13 152 11 hsync high vsync high endmode # # 1152x864, 75 Hz, Non-Interlaced (110.0 MHz dotclock) # # Horizontal Vertical # Resolution 1152 864 # Scan Frequency 75.137 kHz 74.99 Hz # Sync Width 1.309 us 0.106 ms # 18 chars 8 lines # Front Porch 0.245 us 0.599 ms # 3 chars 45 lines # Back Porch 1.282 us 1.132 ms # 18 chars 85 lines # Active Time 10.473 us 11.499 ms # 144 chars 864 lines # Blank Time 2.836 us 1.837 ms # 39 chars 138 lines # Polarity positive positive # mode "1152x864-75" # D: 110.0 MHz, H: 75.137 kHz, V: 74.99 Hz geometry 1152 864 1152 864 8 timings 9091 144 24 85 45 144 8 hsync high vsync high endmode # # 1152x864, 80 Hz, Non-Interlaced (110.0 MHz dotclock) # # Horizontal Vertical # Resolution 1152 864 # Scan Frequency 76.389 kHz 79.74 Hz # Sync Width 1.018 us 0.092 ms # 14 chars 7 lines # Front Porch 0.127 us 0.393 ms # 2 chars 30 lines # Back Porch 1.473 us 0.747 ms # 20 chars 57 lines # Active Time 10.473 us 11.311 ms # 144 chars 864 lines # Blank Time 2.618 us 1.231 ms # 36 chars 94 lines # Polarity positive positive # mode "1152x864-80" # D: 110.0 MHz, H: 76.389 kHz, V: 79.74 Hz geometry 1152 864 1152 864 8 timings 9091 160 16 57 30 112 7 hsync high vsync high endmode # # 1280x1024, 43 Hz, Interlaced (80.00 MHz dotclock) # # Horizontal Vertical # Resolution 1024 1024 # Scan Frequency 50.000 kHz 87.03 Hz # Sync Width 1.000 us 0.100 ms # 10 chars 10 lines # Front Porch 1.000 us 0.500 ms # 10 chars 50 lines # Back Porch 2.000 us 0.650 ms # 20 chars 65 lines # Active Time 16.000 us 10.240 ms # 160 chars 1024 lines # Blank Time 4.000 us 1.250 ms # 40 chars 125 lines # Polarity positive positive # mode "1280x1024-43-lace" # D: 80.00 MHz, H: 50.000 kHz, V: 87.03 Hz geometry 1024 1024 1024 1024 8 timings 12500 160 80 65 50 80 10 laced true hsync high vsync high endmode # # 1280x1024, 47 Hz, Interlaced (80.00 MHz dotclock) # # Horizontal Vertical # Resolution 1280 1024 # Scan Frequency 50.000 kHz 94.97 Hz # Sync Width 1.000 us 0.100 ms # 10 chars 10 lines # Front Porch 1.000 us 0.010 ms # 10 chars 1 lines # Back Porch 2.000 us 0.180 ms # 20 chars 18 lines # Active Time 16.000 us 10.240 ms # 160 chars 1024 lines # Blank Time 4.000 us 0.290 ms # 40 chars 29 lines # Polarity positive positive # mode "1280x1024-47-lace" # D: 80.00 MHz, H: 50.000 kHz, V: 94.97 Hz geometry 1280 1024 1280 1024 8 timings 12500 160 80 18 1 80 10 laced true hsync high vsync high endmode # # 1280x1024, 60 Hz, Non-Interlaced (108.00 MHz dotclock) # # Horizontal Vertical # Resolution 1280 1024 # Scan Frequency 63.981 kHz 60.02 Hz # Sync Width 1.037 us 0.047 ms # 14 chars 3 lines # Front Porch 0.444 us 0.015 ms # 6 chars 1 lines # Back Porch 2.297 us 0.594 ms # 31 chars 38 lines # Active Time 11.852 us 16.005 ms # 160 chars 1024 lines # Blank Time 3.778 us 0.656 ms # 51 chars 42 lines # Polarity positive positive # mode "1280x1024-60" # D: 108.00 MHz, H: 63.981 kHz, V: 60.02 Hz geometry 1280 1024 1280 1024 8 timings 9260 248 48 38 1 112 3 hsync high vsync high endmode # # 1280x1024, 70 Hz, Non-Interlaced (126.00 MHz dotclock) # # Horizontal Vertical # Resolution 1280 1024 # Scan Frequency 74.645 kHz 70.02 Hz # Sync Width 0.889 us 0.067 ms # 14 chars 5 lines # Front Porch 0.635 us 0.013 ms # 10 chars 1 lines # Back Porch 1.714 us 0.483 ms # 27 chars 36 lines # Active Time 10.159 us 13.718 ms # 160 chars 1024 lines # Blank Time 3.238 us 0.563 ms # 51 chars 42 lines # Polarity positive positive # mode "1280x1024-70" # D: 126.00 MHz, H: 74.645 kHz, V: 70.02 Hz geometry 1280 1024 1280 1024 8 timings 7937 216 80 36 1 112 5 hsync high vsync high endmode # # 1280x1024, 74 Hz, Non-Interlaced (135.00 MHz dotclock) # # Horizontal Vertical # Resolution 1280 1024 # Scan Frequency 78.855 kHz 74.11 Hz # Sync Width 1.067 us 0.380 ms # 18 chars 30 lines # Front Porch 0.237 us 0.000 ms # 4 chars 0 lines # Back Porch 1.896 us 0.127 ms # 32 chars 10 lines # Active Time 9.481 us 12.986 ms # 160 chars 1024 lines # Blank Time 3.200 us 0.507 ms # 54 chars 40 lines # Polarity positive positive # mode "1280x1024-74" # D: 135.00 MHz, H: 78.855 kHz, V: 74.11 Hz geometry 1280 1024 1280 1024 8 timings 7408 256 32 10 0 144 30 hsync high vsync high endmode # # 1280x1024, 75 Hz, Non-Interlaced (135.00 MHz dotclock) # # Horizontal Vertical # Resolution 1280 1024 # Scan Frequency 79.976 kHz 75.02 Hz # Sync Width 1.067 us 0.038 ms # 18 chars 3 lines # Front Porch 0.119 us 0.012 ms # 2 chars 1 lines # Back Porch 1.837 us 0.475 ms # 31 chars 38 lines # Active Time 9.481 us 12.804 ms # 160 chars 1024 lines # Blank Time 3.022 us 0.525 ms # 51 chars 42 lines # Polarity positive positive # mode "1280x1024-75" # D: 135.00 MHz, H: 79.976 kHz, V: 75.02 Hz geometry 1280 1024 1280 1024 8 timings 7408 248 16 38 1 144 3 hsync high vsync high endmode # # 1600x1200, 60 Hz, Non-Interlaced (156.00 MHz dotclock) # # Horizontal Vertical # Resolution 1600 1200 # Scan Frequency 76.200 kHz 60.00 Hz # Sync Width 1.026 us 0.105 ms # 20 chars 8 lines # Front Porch 0.205 us 0.131 ms # 4 chars 10 lines # Back Porch 1.636 us 0.682 ms # 32 chars 52 lines # Active Time 10.256 us 15.748 ms # 200 chars 1200 lines # Blank Time 2.872 us 0.866 ms # 56 chars 66 lines # Polarity negative negative # mode "1600x1200-60" # D: 156.00 MHz, H: 76.200 kHz, V: 60.00 Hz geometry 1600 1200 1600 1200 8 timings 6411 256 32 52 10 160 8 endmode # # 1600x1200, 66 Hz, Non-Interlaced (172.00 MHz dotclock) # # Horizontal Vertical # Resolution 1600 1200 # Scan Frequency 82.700 kHz 66.00 Hz # Sync Width 0.791 us 0.036 ms # 17 chars 3 lines # Front Porch 0.233 us 0.036 ms # 5 chars 3 lines # Back Porch 1.767 us 0.567 ms # 38 chars 47 lines # Active Time 9.302 us 14.512 ms # 200 chars 1200 lines # Blank Time 2.791 us 0.532 ms # 60 chars 44 lines # Polarity negative negative # mode "1600x1200-66" # D: 172.00 MHz, H: 82.700 kHz, V: 66.00 Hz geometry 1600 1200 1600 1200 8 timings 5814 304 40 47 3 136 3 endmode # # 1600x1200, 76 Hz, Non-Interlaced (198.00 MHz dotclock) # # Horizontal Vertical # Resolution 1600 1200 # Scan Frequency 95.200 kHz 76.00 Hz # Sync Width 0.687 us 0.052 ms # 17 chars 5 lines # Front Porch 0.202 us 0.032 ms # 5 chars 3 lines # Back Porch 1.535 us 0.441 ms # 38 chars 42 lines # Active Time 8.081 us 12.606 ms # 200 chars 1200 lines # Blank Time 2.424 us 0.525 ms # 60 chars 50 lines # Polarity negative negative # mode "1600x1200-76" # D: 198.00 MHz, H: 95.200 kHz, V: 76.00 Hz geometry 1600 1200 1600 1200 8 timings 5051 304 40 42 3 136 5 endmode ModeLine "512x384@70" 21.16 512 528 608 672 384 405 407 449 +vsync ModeLine "640x480@60" 25.18 640 656 752 800 480 490 492 525 ModeLine "640x480@72" 31.20 640 664 704 832 480 489 492 520 ModeLine "640x480@75" 31.50 640 656 720 840 480 481 484 500 ModeLine "640x480@85" 36.00 640 696 752 832 480 481 484 509 ModeLine "640x480@90f" 39.91 640 672 712 832 480 497 500 533 ModeLine "640x480@100f" 44.90 640 656 691 848 480 487 498 530 ModeLine "640x480@120f" 55.00 640 672 732 864 480 488 494 530 ModeLine "640x870@75" 57.28 640 672 752 832 870 873 876 918 ModeLine "800x600@56" 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync ModeLine "800x600@60" 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync ModeLine "800x600@72" 50.00 800 856 976 1040 600 637 643 666 +hsync +vsync ModeLine "800x600@75" 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync ModeLine "800x600@85" 56.25 800 832 896 1048 600 601 604 631 +hsync +vsync ModeLine "800x600@90f" 56.64 800 816 880 1000 600 600 603 632 +hsync +vsync ModeLine "800x600@100f" 67.50 800 840 920 1056 600 603 607 639 +hsync +vsync ModeLine "800x600@120f" 81.00 800 816 904 1064 600 602 605 635 ModeLine "832x624@75" 57.28 832 864 928 1152 624 625 628 667 ModeLine "1024x768@60" 65.00 1024 1048 1184 1344 768 771 777 806 ModeLine "1024x768@70" 75.00 1024 1048 1184 1328 768 771 777 806 ModeLine "1024x768@75" 78.75 1024 1040 1136 1312 768 769 772 800 +hsync +vsync ModeLine "1024x768@75.1" 80.00 1024 1056 1152 1328 768 771 774 804 ModeLine "1024x768@85" 94.50 1024 1072 1168 1376 768 769 772 808 +hsync +vsync ModeLine "1024x768@90f" 100.00 1024 1056 1168 1376 768 769 773 810 ModeLine "1024x768@100f" 110.00 1024 1032 1152 1368 768 768 771 807 ModeLine "1024x768@120f" 130.00 1024 1056 1184 1344 768 771 777 807 ModeLine "1152x870@75" 100.00 1152 1184 1312 1456 870 873 876 915 ModeLine "1280x960@75" 126.00 1280 1296 1440 1680 960 961 964 1000 +hsync +vsync ModeLine "1280x1024@60" 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync ModeLine "1280x1024@75" 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync ModeLine "1280x1024@85f" 157.50 1280 1328 1488 1728 1024 1025 1028 1072 +hsync +vsync ModeLine "1600x1200@60x" 162.00 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync ModeLine "1600x1200@65x" 175.50 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync ModeLine "1600x1200@70x" 189.00 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync ModeLine "1600x1200@75x" 202.50 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync ModeLine "1600x1200@85x" 229.50 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync ModeLine "1920x1080@60X" 159.84 1920 1952 2096 2368 1080 1083 1086 1125 ModeLine "1920x1080@72X" 216.00 1920 1968 2184 2560 1080 1083 1086 1172 ModeLine "1920x1200@76X" 245.48 1920 1984 2240 2584 1200 1203 1206 1250 ModeLine "1600x1024@76s" 170.45 1600 1632 1792 2096 1024 1027 1030 1070 ModeLine "1792x1344@60v" 204.75 1792 1920 2120 2448 1344 1345 1348 1394 +vsync ModeLine "1792x1344@75v" 261.00 1792 1888 2104 2456 1344 1345 1348 1417 +vsync ModeLine "1856x1392@60v" 218.25 1856 1952 2176 2528 1392 1393 1396 1439 +vsync ModeLine "1856x1392@75v" 288.00 1856 1984 2208 2560 1392 1393 1396 1500 +vsync ModeLine "1920x1440@60v" 234.00 1920 2048 2256 2600 1440 1441 1444 1500 +vsync ModeLine "1920x1440@75v" 297.00 1920 2064 2288 2640 1440 1441 1444 1500 +vsync F . ..G adbHadbmouseIatibmJaudioKaudio1LaztcdM bpcdNcdu31aOcdu535Pcm206cdQconsoleR cua0S cua1T cua2U cua3V dspW dsp1X fbY fb0Z fb1[ fb2\ fb3] fb4^ fb5_ fb6` fb7a fdb fd0cfd0D360dfd0D720efd0H1440ffd0H360gfd0H720hfd0d360ifd0h1200jfd0h360kfd0h720l fd1mfd1D360nfd1D720ofd1H1440pfd1H360qfd1H720rfd1d360sfd1h1200tfd1h360ufd1h720vftapew fullx gscdy hdaz hda1{hda10|hda11}hda12~hda13hda14hda15hda16 hda2 hda3 hda4 hda5 hda6 hda7 hda8 hda9 hdb hdb1hdb10hdb11hdb12hdb13hdb14hdb15hdb16 hdb2 hdb3 hdb4 hdb5 hdb6 hdb7 hdb8 hdb9 hdc hdc1hdc10hdc11hdc12hdc13hdc14hdc15hdc16 hdc2 hdc3 hdc4 hdc5 hdc6 hdc7 hdc8 hdc9 hdd hdd1hdd10hdd11hdd12hdd13hdd14hdd15hdd16 hdd2 hdd3 hdd4 hdd5 hdd6 hdd7 hdd8 hdd9 hde hde1hde10hde11hde12hde13hde14hde15hde16 hde2 hde3 hde4 hde5 hde6 hde7 hde8 hde9 hdf hdf1hdf10hdf11hdf12hdf13hdf14hdf15hdf16hdf2 hdf3 hdf4 hdf5 hdf6 hdf7 hdf8 hdf9 hdg hdg1hdg10hdg11hdg12hdg13hdg14hdg15hdg16 hdg2 hdg3 hdg4 hdg5 hdg6 hdg7 hdg8 hdg9 hdh hdh1hdh10hdh11hdh12hdh13hdh14hdh15hdh16 hdh2 hdh3 hdh4 hdh5 hdh6 hdh7 hdh8 hdh9vcsa0vcsa1vcsa2vcsa3vcsa4vcsa5vcsa6vcsa7 vcsa8 vcsa9  vcs0  vcs1  vcs2 vcs3 vcs4 vcs5 vcs6 vcs7 vcs8 vcs9 ht0 ida7inportbm8ippp09isdnctrl: isdnctrl0; isdnctrl1< isdnctrl10= isdnctrl11> isdnctrl12? isdnctrl13 .F .. c0d0c0d0p1c0d0p10c0d0p11c0d0p12c0d0p13c0d0p14c0d0p15c0d0p2 c0d0p3!c0d0p4"c0d0p5#c0d0p6$c0d0p7%c0d0p8&c0d0p9' c0d1(c0d1p1)c0d1p10*c0d1p11+c0d1p12,c0d1p13-c0d1p14.c0d1p15/c0d1p20c0d1p31c0d1p42c0d1p53c0d1p64c0d1p75c0d1p86c0d1p9@ isdnctrl14A isdnctrl15B isdnctrl16C isdnctrl17D isdnctrl18E isdnctrl19F kmemGisdninfoHlogibmIloop0Jloop1Kloop2Lloop3Mloop4Nloop5Oloop6Ploop7Q lp0R lp1S lp2T mcdU memVmidi00Wmidi01Xmidi02Ymidi03Zmixer[mixer1\nftape] nht0^nrft0_nrft1`nrft2anrft3b nst0c nst1d nst2e nst3f nst4g nst5h nst6i nst7j nullknvramloptcdm par0n par1o par2p pcd0q pcd1r pcd2s pcd3t pdau pda1v pda2w pda3x pda4y pdbz pdb1{ pdb2| pdb3} pdb4~ pdc pdc1 pdc2 pdc3 pdc4 pdd pdd1 pdd2 pdd3 pdd4pf0 pf1 pf2 pf3 port log pt0psaux pt1 pt2 pt3 ptmx ptsptya0ptya1ptya2ptya3ptya4ptya5ptya6ptya7ptya8ptya9ptyaaptyabptyacptyadptyaeptyaf ram ram0 ram1ram11ram12ram13ram14ram15ram19 ram2 ram3 ram4 ram5 ram6 ram7 ram8 ram9ramdiskrandom rd rft0 rft1 rft2 rft3 rtcsbpcdsbpcd0sbpcd1sbpcd2sbpcd3 scd0 scd1 scd2 scd3 scd4 scd5 scd6 scd7 sda sda1sda10sda11sda12sda13sda14 .F ..0 .F .. c0d0c0d0p1c0d0p2c0d0p3c0d0p4c0d0p5c0d0p6c0d0p7 c0d1c0d1p1c0d1p2c0d1p3c0d1p4c0d1p5c0d1p6c0d1p7 c1d0c1d0p1c1d0p2c1d0p3c1d0p4c1d0p5c1d0p6c1d0p7 c1d1c1d1p1c1d1p2c1d1p3c1d1p4c1d1p5c1d1p6c1d1p7sda15 sda2 sda3 sda4 sda5 sda6 sda7 sda8 sda9 sdb sdb1sdb10sdb11sdb12sdb13sdb14sdb15 sdb2 sdb3 sdb4 sdb5 sdb6  sdb7  sdb8  sdb9  sdc  sdc1sdc10sdc11sdc12sdc13sdc14sdc15 sdc2 sdc3 sdc4 sdc5 sdc6 sdc7 sdc8 sdc9 sdd sdd1sdd10sdd11 sdd12!sdd13"sdd14#sdd15$ sdd2% sdd3& sdd4' sdd5( sdd6) sdd7* sdd8+ sdd9, sde- sde1. sde2/ sde30 sde41 sde52 sde63 sde74 sde85 sdf6 sdf17 sdf28 sdf39 sdf4: sdf5; sdf6< sdf7= sdf8> sdg? sdg1@ sdg2A sdg3B sdg4C sdg5D sdg6E sdg7F sdg8G sg0H sequencerI sg1J sg2K sg3L sg4M sg5N sg6O sg7P sgaQ sgbR sgcS sgdT sgeU sgfV sggW sghX sjcdYsndstatZsonycd[ st0\ st1] st2^ st3_ st4` st5a st6b st7cstderrdstdinestdoutfsunmousegsysttyh ttyi tty0j tty1ktty10ltty11mtty12n tty2o tty3p tty4q tty5r tty6s tty7t tty8u tty9vttyI0wttyI1xttyI10yttyI2zttyI20{ttyI3|ttyI30}ttyI4~ttyI40ttyI5ttyI50ttyI6ttyI60ttyI7ttyI8ttyI9ttyS0ttyS1ttyS2ttyS3urandominput .F ..event0event1event10event11event12event13event14event15event16event17event18event19event2event20event21event22event23event24event25event26event27event28event29event3event30event31event4event5event6event7event8event9 js0 js1 js10 js11 js12 js13 js14 js15 js16 js17 js18 js19 js2 js20 js21 js22 js23 js24 js25 js26 js27 js28 js29 js3 js30 js31 js4 js5 js6 js7 js8 js9 micemouse0mouse1mouse10mouse11mouse12mouse13mouse14mouse15mouse16mouse17mouse18mouse19mouse2mouse20mouse21mouse22mouse23mouse24mouse25mouse26mouse27mouse28mouse29mouse3mouse30mouse4mouse5mouse6mouse7mouse8pmouse9 zeroMAKEDEVinitctlmousecdrom hidbp-kbd-0 hidbp-kbd-1 hidbp-kbd-10 hidbp-kbd-11 hidbp-kbd-12 hidbp-kbd-13 hidbp-kbd-14 hidbp-kbd-15 hidbp-kbd-2 hidbp-kbd-3 hidbp-kbd-4 hidbp-kbd-5 hidbp-kbd-6 hidbp-kbd-7 hidbp-kbd-8 hidbp-kbd-9 hidbp-mse-0 hidbp-mse-1 hidbp-mse-10 hidbp-mse-11 hidbp-mse-12 hidbp-mse-13 hidbp-mse-14 hidbp-mse-15  hidbp-mse-2  hidbp-mse-3  hidbp-mse-4  hidbp-mse-5  hidbp-mse-6 hidbp-mse-7 hidbp-mse-8 hidbp-mse-9hda17hda18hda19hda20usbmouse#!/bin/bash - RCSID='$Id: MAKEDEV 2.3 1997/09/29 19:03:13 johnsonm Exp $' #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# # Customisation: # The devices fall into various classes. This section contains the mapping # from a class name into a group name and permission. # You will almost certainly need to edit the group name to match your # system, and you may change the permissions to suit your preference. These # lines _must_ be of the format "user group perm". public=" root sys 666" system=" root sys 660" kmem=" root kmem 660" tty=" root tty 666" cons=" root tty 622" # 622 for console? vcs=" root sys 600" dialout=" root uucp 660" mouse=" root sys 666" printer=" root daemon 660" floppy=" root floppy 660" disk=" root disk 660" scsi=" root sys 600" cdrom=" root disk 660" tape=" root disk 660" ndb=" root disk 660" audio=" root sys 666" ibcs2=" root sys 666" scanner=" root sys 666" MAXVT=8 #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# procfs=/proc opt_v= opt_d= opt_n= while [ $# -ge 1 ] do case $1 in --) shift; break ;; -v) shift; opt_v=1 ;; -d) shift; opt_d=1 ;; -n) shift; opt_n=1; opt_v=1 ;; -V) shift; opt_V=1 ;; -*) echo "$0: unknown flag \"$1\"" >&2; exit 1 ;; *) break ;; esac done if [ "$opt_V" ] then echo "$RCSID" exit 0 fi opts="${opt_n:+-n} ${opt_v:+-v} ${opt_d:+-d}" #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# makedev () { # usage: makedev name [bcu] major minor owner group mode if [ "$opt_v" ] then if [ "$opt_d" ] then echo "delete $1" else echo "create $1 $2 $3 $4 $5:$6 $7" fi fi if [ ! "$opt_n" ] then if [ "$opt_d" ] then rm -f $1 else rm -f $1- mknod $1- $2 $3 $4 && chown $5:$6 $1- && chmod $7 $1- && mv $1- $1 fi fi } symlink () { # usage: symlink name target if [ "$opt_v" ] then if [ "$opt_d" ] then echo "delete $1" else echo "create $1 -> $2" fi fi [ ! "$opt_n" ] && rm -f $1 && [ ! "$opt_d" ] && ln -s $2 $1 } #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# # For bash and ksh, we can use faster builtin routines to do manipulation, # otherwise (ash) fall back to slower method using `expr'. # The extra level of indirection using `eval' is necessary a) for ksh, and # b) to get past ash. if [ "$RANDOM" != "$RANDOM" ] then math () { eval echo "\$(($*))" } index () { # index string c eval "I=\${1%$2*}" eval echo "\${#I}" } suffix () { eval echo "\${1#$2}" } strip () { eval echo "\${1% $2 *} \${1#* $2 }" } first () { eval echo "\${1:0:1}" } second () { eval echo "\${1:1:1}" } else math () { expr "$@" } index () { # index string c expr $1 : ".*$2" - 1 } suffix () { expr "$1" : "$2\(.*\)" } strip () { echo "[$1][$2]" >&2 echo "`expr \"$1\" : \"\(.*\) $2 \"` `expr \"$1\" : \".* $2 \(.*\)\"`" } first () { expr "$1" : "\(.\)" } second () { expr "$1" : ".\(.\)" } fi #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---# devices= if [ ! -f $procfs/devices ] then echo "$0: warning: can't read $procfs/devices" >&2 else exec 3<$procfs/devices while read major device <&3 do case "$major" in Character|Block|'') ;; *) eval "major_$device=$major" devices="$devices $device" ;; esac done exec 3<&- fi Major () { device=$2 if [ "$opt_d" ] then echo -1 # don't care else eval echo \${major_$1:-\${device:?\"unknown major number for $1\"}} fi } cvt () { while [ $# -ne 0 ] do case "$1" in mem|tty|ttyp|cua|cub) ;; hd) (for d in a b c d e f g h ; do echo -n hd$d " " done) ; echo ;; ide0) echo hda hdb ;; ide1) echo hdc hdd ;; ide2) echo hde hdf ;; ide3) echo hdg hdh ;; sd) echo sda sdb ;; sr) echo scd0 ;; st) echo st0 ;; xd) echo xda xdb ;; fd) echo fd0 fd1 ;; lp) echo lp ;; mt) echo ftape ;; loop) echo loop ;; md) echo md ;; ibcs2) echo ibcs2 ;; tpqic02) echo qic ;; sound) echo audio ;; logiscan) echo logiscan ;; ac4096) echo ac4096 ;; hw) echo helloworld ;; sbpcd | sbpcd[123]) echo $1 ;; Joystick) echo js ;; apm_bios) echo apm ;; dcf) echo dcf ;; aztcd) echo aztcd ;; pcmcia) ;; # taken care of by its own driver ttyC) echo cyclades ;; vcs) ;; *) echo "$0: don't know what \"$1\" is" >&2 ;; esac shift done } for arg do case $arg in generic) $0 $opts std $0 $opts fd $0 $opts fd0 fd1 $0 $opts hda hdb $0 $opts xda xdb $0 $opts sda sdb $0 $opts pty $0 $opts console $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 $0 $opts busmice $0 $opts lp $0 $opts par ;; local) $0.local $opts ;; std) makedev mem c 1 1 $kmem makedev kmem c 1 2 $kmem makedev null c 1 3 $public makedev port c 1 4 $kmem makedev zero c 1 5 $public symlink core $procfs/kcore makedev full c 1 7 $public $0 ram makedev tty c 5 0 $tty ;; ram) for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do makedev ram$i b 1 $i $disk done ln -sf ram1 ram ;; console) major=`Major vcs` # not fatal # console makedev tty0 c 4 0 $cons makedev console c 5 1 $cons [ "$major" ] && makedev vcs0 c $major 0 $vcs [ "$major" ] && makedev vcsa c $major 128 $vcs # individual vts line=1 while [ $line -le $MAXVT -a $line -le 63 ] do makedev tty$line c 4 $line $tty [ "$major" ] && makedev vcs$line c $major $line $vcs [ "$major" ] && makedev vcsa$line c $major `math $line + 128` $vcs line=`math $line + 1` done ;; tty[1-9]|tty[1-5][0-9]|tty[6][0-3]) line=`suffix $arg tty` makedev tty$line c 4 $line $tty ;; ttyS[0-9]|ttyS[1-5][0-9]|ttyS[6][0-3]) line=`suffix $arg ttyS` minor=`math 64 + $line` makedev ttyS$line c 4 $minor $tty makedev cua$line c 5 $minor $dialout ;; pty[a-ep-z]) bank=`suffix $arg pty` base=`index pqrstuvwxyzabcde $bank` base=`math $base \* 16` for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f do j=`index 0123456789abcdef $i` makedev pty$bank$i c 2 `math $base + $j` $tty makedev tty$bank$i c 3 `math $base + $j` $tty done ;; pty) ptysufs="" for i in p q r s t u v w x y z a b c d e do ptysufs="$ptysufs pty$i" done $0 $opts $ptysufs ;; cyclades) major1=`Major ttyC` || continue major2=`Major cub` || continue for i in 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 32 do makedev ttyC$i c $major1 $i $tty makedev cub$i c $major2 $i $dialout done ;; lp) major=`Major lp` || continue makedev ${arg}0 c $major 0 $printer makedev ${arg}1 c $major 1 $printer makedev ${arg}2 c $major 2 $printer ;; par) major=`Major lp` || continue makedev ${arg}0 c $major 0 $printer makedev ${arg}1 c $major 1 $printer makedev ${arg}2 c $major 2 $printer ;; busmice) major=`Major mouse 10` || continue makedev logimouse c $major 0 $mouse makedev psmouse c $major 1 $mouse makedev msmouse c $major 2 $mouse makedev atimouse c $major 3 $mouse makedev jmouse c $major 4 $mouse ;; js) major=`Major Joystick` || continue makedev js0 c $major 0 $mouse makedev js1 c $major 1 $mouse ;; fd[0-7]) major=`Major fd 2` || continue base=`suffix $arg fd` if [ $base -ge 4 ] then base=`math $base + 124` fi makedev ${arg} b $major $base $floppy makedev ${arg}d360 b $major `math $base + 4` $floppy makedev ${arg}h1200 b $major `math $base + 8` $floppy makedev ${arg}D360 b $major `math $base + 12` $floppy makedev ${arg}D720 b $major `math $base + 16` $floppy makedev ${arg}h360 b $major `math $base + 20` $floppy makedev ${arg}h720 b $major `math $base + 24` $floppy makedev ${arg}H1440 b $major `math $base + 28` $floppy makedev ${arg}E2880 b $major `math $base + 32` $floppy makedev ${arg}CompaQ b $major `math $base + 36` $floppy symlink ${arg}H360 ${arg}D360 symlink ${arg}H720 ${arg}D720 makedev ${arg}h1440 b $major `math $base + 40` $floppy makedev ${arg}H1680 b $major `math $base + 44` $floppy makedev ${arg}h410 b $major `math $base + 48` $floppy makedev ${arg}H820 b $major `math $base + 52` $floppy makedev ${arg}h1476 b $major `math $base + 56` $floppy makedev ${arg}H1722 b $major `math $base + 60` $floppy makedev ${arg}h420 b $major `math $base + 64` $floppy makedev ${arg}H830 b $major `math $base + 68` $floppy makedev ${arg}h1494 b $major `math $base + 72` $floppy makedev ${arg}H1743 b $major `math $base + 76` $floppy makedev ${arg}h880 b $major `math $base + 80` $floppy makedev ${arg}D1040 b $major `math $base + 84` $floppy makedev ${arg}D1120 b $major `math $base + 88` $floppy makedev ${arg}h1600 b $major `math $base + 92` $floppy makedev ${arg}H1760 b $major `math $base + 96` $floppy makedev ${arg}H1920 b $major `math $base + 100` $floppy makedev ${arg}E3200 b $major `math $base + 104` $floppy makedev ${arg}E3520 b $major `math $base + 108` $floppy makedev ${arg}E3840 b $major `math $base + 112` $floppy makedev ${arg}H1840 b $major `math $base + 116` $floppy makedev ${arg}D800 b $major `math $base + 120` $floppy makedev ${arg}H1600 b $major `math $base + 124` $floppy ;; hd[a-b]) major=`Major ide0` || major=`Major hd 3` || continue unit=`suffix $arg hd` base=`index ab $unit` base=`math $base \* 64` makedev hd$unit b $major $base $disk for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 do makedev hd$unit$part b $major `math $base + $part` $disk done ;; hd[c-d]) major=`Major ide1 22` || continue unit=`suffix $arg hd` base=`index cd $unit` base=`math $base \* 64` makedev hd$unit b $major $base $disk for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 do makedev hd$unit$part b $major `expr $base + $part` $disk done ;; hd[e-f]) major=`Major ide2 33` || continue unit=`suffix $arg hd` base=`index ef $unit` base=`math $base \* 64` makedev hd$unit b $major $base $disk for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 do makedev hd$unit$part b $major `expr $base + $part` $disk done ;; hd[g-h]) major=`Major ide3 34` || continue unit=`suffix $arg hd` base=`index gh $unit` base=`math $base \* 64` makedev hd$unit b $major $base $disk for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 do makedev hd$unit$part b $major `expr $base + $part` $disk done ;; ht) major=`Major ht0 37` || continue # Only one IDE tape drive is currently supported; ht0. makedev ht0 c $major 0 $tape makedev ht0 c $major 0 $tape makedev nht0 c $major 128 $tape ;; xd[a-d]) major=`Major xd 13` || continue unit=`suffix $arg xd` base=`index abcd $unit` base=`math $base \* 64` makedev xd$unit b $major $base $disk for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20 do makedev xd$unit$part b $major `expr $base + $part` $disk done ;; sd[a-z]) unit=`suffix $arg sd` base=`index abcdefghijklmnopqrstuvwxyz $unit` base=`math $base \* 16` if [ $base -lt 256 ]; then major=8 else major=65 base=`math $base \- 256` fi makedev sd$unit b $major $base $disk for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 do minor=`expr $base + $part` makedev sd$unit$part b $major $minor $disk done ;; sd[a-d][a-z]) unit=`suffix $arg sd` unitmaj=`first $unit` unitmin=`second $unit` basemaj=`index Xabcd $unitmaj` basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin` basemaj=`math $basemaj \* 416` basemin=`math $basemin \* 16` base=`math $basemaj + $basemin` basemaj=`math $base / 256` base=`math $base % 256` major=`math basemaj \+ 64` if [ $major -gt 71 ]; then echo "$0: don't know how to make device \"$arg\"" >&2 exit 0 fi makedev sd$unit b $major $base $disk for part in 1 2 3 # 4 5 6 7 8 9 10 11 12 13 14 15 do minor=`expr $base + $part` makedev sd$unit$part b $major $minor $disk done ;; ndb|nb) major=`Major ndb 43` || continue minor=0 while [ $minor -lt 128 ] ; do makedev nb$minor b $major $minor minor=$(($minor+1)) done loop) major=`Major loop` || continue for part in 0 1 2 3 4 5 6 7 do makedev loop$part b $major $part $disk done ;; md) major=`Major md` || continue for part in 0 1 2 3 # 4 5 6 7 8 9 10 11 12 13 14 15 do makedev md$part b $major $part $disk done ;; st[0-7]) major=`Major st 9` unit=`suffix $arg st` makedev st$unit c $major $unit $tape makedev nst$unit c $major `math 128 + $unit` $tape ;; qic) major=`Major tpqic02 12` makedev rmt8 c $major 6 $tape makedev rmt16 c $major 8 $tape makedev tape-d c $major 136 $tape makedev tape-reset c $major 255 $tape ;; ftape) major=`Major mt 27` || continue for unit in 0 1 2 3 do makedev rft$unit c $major $unit $tape makedev nrft$unit c $major `math $unit + 4` $tape done symlink ftape rft0 symlink nftape nrft0 ;; scd[0-7]) major=`Major sr 11` || continue unit=`suffix $arg scd` makedev scd$unit b $major $unit $cdrom ;; sonycd) major=`Major cdu31a` || continue makedev $arg b $major 0 $cdrom ;; mcd) major=`Major mcd 23` || continue makedev $arg b $major 0 $cdrom ;; mcdx) major=`Major mcdx 20` || continue makedev $arg b $major 0 $cdrom ;; cdu535) makedev $arg b 24 0 $cdrom ;; lmscd) makedev $arg b 24 0 $cdrom ;; sbpcd|sbpcd[123]) major=`Major $arg` || continue base=`suffix ${arg}0 sbpcd` # base=`expr ${arg}0 : "sbpcd\(.\)"` for minor in 0 1 2 3 do # XXX unit=`expr substr 0123456789abcdef \( $base \* 4 + $minor + 1 \) 1` makedev sbpcd$unit b $major $minor $cdrom done [ $arg = sbpcd ] && symlink $arg ${arg}0 ;; aztcd) major=`Major $arg` || continue makedev ${arg}0 b $major 0 $cdrom ;; bpcd) makedev $arg b 41 0 $cdrom ;; logiscan) major=`Major logiscan` || continue makedev $arg c $major 0 $scanner ;; m105scan) major=`Major m105` || continue makedev $arg c $major 0 $scanner ;; ac4096) major=`Major ac4096` || continue makedev $arg c $major 0 $scanner ;; audio) major=`Major sound 14` makedev mixer c $major 0 $audio makedev sequencer c $major 1 $audio makedev midi00 c $major 2 $audio makedev dsp c $major 3 $audio makedev audio c $major 4 $audio makedev sndstat c $major 6 $audio # makedev sequencer2 c $major 8 $audio makedev mixer1 c $major 16 $audio # makedev patmgr0 c $major 17 $audio makedev midi01 c $major 18 $audio makedev dsp1 c $major 19 $audio makedev audio1 c $major 20 $audio # makedev patmgr1 c $major 33 $audio makedev midi02 c $major 34 $audio makedev midi03 c $major 50 $audio ;; pcaudio) major=`Major pcsp` || continue makedev pcmixer c $major 0 $audio makedev pcsp c $major 3 $audio makedev pcaudio c $major 4 $audio ;; sg) major=`Major sg 21` for unit in a b c d e f g h do minor=`index abcdefgh $unit` # minor=`expr abcdefgh : ".*$unit" - 1` makedev $arg$unit c $major $minor $scsi # we symlink to keep the permissions the same # it would be bad to have to change permissions # twice; devices would be left open when people # changed configuration. symlink $arg$minor $arg$unit done ;; fd) # not really devices, we use the /proc filesystem symlink fd $procfs/self/fd symlink stdin fd/0 symlink stdout fd/1 symlink stderr fd/2 ;; ibcs2) major=`Major ibcs2` || continue makedev socksys c $major 0 $ibcs2 symlink nfsd socksys makedev spx c $major 1 $ibcs2 symlink X0R null ;; apm) major=`Major apm_bios` || continue makedev $arg c $major 0 $system ;; dcf) major=`Major dcf` || continue makedev $arg c $major 0 $system ;; helloworld) major=`Major hw` || continue makedev helloworld c $major 0 $public ;; update) if [ ! "$devices" ] then echo "$0: don't appear to have any devices" >&2 continue fi if [ "$opt_d" ] then echo "$0: can't delete an update" >&2 continue fi create= delete= devs="$devices" if [ -f DEVICES ] then exec 3 DEVICES ;; *) echo "$0: don't know how to make device \"$arg\"" >&2 ;; esac done exit 0  . ..GNUstep bin3 .Xdefaults4 .bash_logout5 .bash_profile6.bashrc7.inputrc8l.xinitrc . ..Defaults . ..WMGLOBAL WMRootMenuWMStateWMWindowAttributes WindowMakerWPrefs{ SystemFont = "-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*"; BoldSystemFont = "-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*"; DoubleClickTime = 250; } ("Applications", ("Linux Installer", EXEC, "xterm -iconic -T \"output\" -e \"xli.pl\" "), ("XTerm", EXEC, "xterm -sb"), ("Programs", OPEN_MENU, "| wmconfig --output wmaker 2>/dev/null"), ("Workspaces", WORKSPACE_MENU), ("Selection", ("Copy", EXEC, "echo '%s' | wxcopy"), ("Mail To", EXEC, "xterm -name mail -T Pine -e pine %s"), ("Navigate", EXEC, "netscape %s"), ("Search in Manual", EXEC, "MANUAL_SEARCH(%s)") ), ("Workspace", ("Hide Others", HIDE_OTHERS), ("Show All", SHOW_ALL), ("Arrange Icons", ARRANGE_ICONS), ("Refresh", REFRESH), ("Lock", EXEC, "xlock -allowroot -usefirst"), ("Save Session", SAVE_SESSION), ("Clear Saved Session", CLEAR_SESSION) ), ("Appearance", ("Themes", OPEN_MENU, "-noext /usr/share/WindowMaker/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle"), ("Styles", OPEN_MENU, "-noext /usr/share/WindowMaker/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle"), ("Icon Sets", OPEN_MENU, "-noext /usr/share/WindowMaker/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons"), ("Background", ("Solid", ("Black", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), ("Blue", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'"), ("Indigo", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'"), ("Deep Blue", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#180090\")'"), ("Purple", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'"), ("Wheat", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'"), ("Dark Gray", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'"), ("Wine", EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'") ), ("Gradient", ("Sunset", EXEC, "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'"), ("Sky", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'"), ("Blue Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'"), ("Indigo Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'"), ("Purple Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'"), ("Wheat Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'"), ("Grey Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'"), ("Wine Shades", EXEC, "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'") ), ("Images", OPEN_MENU, "-noext /usr/share/WindowMaker/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t") ), ("Save Theme", EXEC, "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\""), ("Save IconSet", EXEC, "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\"") ), ("Exit", ("Restart", RESTART), ("Switch to...", ("AfterStep", RESTART, "/usr/X11R6/bin/RunWM.AfterStep"), ("Fvwm2 (Fvwm95 look)", RESTART, "/usr/X11R6/bin/RunWM.Fvwm95"), ("Fvwm2 (MWM look)", RESTART, "/usr/X11R6/bin/RunWM.MWM") ), ("Exit...", EXIT), ("Kill session...", SHUTDOWN) ) ) { Dock = { Applications = ( { Command = "-"; Name = Logo.WMDock; AutoLaunch = No; Forced = No; BuggyApplication = No; Position = "0,0"; }, { Command = "wmclock -shape"; Name = asclock.ASClock; AutoLaunch = Yes; Forced = No; BuggyApplication = No; Position = "0,1"; }, { Command = xterm; Name = xterm.XTerm; AutoLaunch = No; Forced = No; BuggyApplication = No; Position = "0,2"; }, { Command = "/usr/X11R6/lib/GNUstep/Apps/WPrefs.app/WPrefs"; Name = groupLeader.WPrefs; AutoLaunch = No; Forced = No; BuggyApplication = No; Position = "0,3"; } ); Position = "-64,0"; Lowered = No; }; Clip = { Command = "-"; Name = Logo.WMClip; AutoLaunch = No; Forced = No; BuggyApplication = No; Position = "0,0"; DropCommand = "wmsetbg -u -t %d"; }; Workspaces = ( { Name = Main; Clip = { Applications = (); Lowered = Yes; Collapsed = No; AutoCollapse = No; AutoRaiseLower = No; AutoAttractIcons = No; KeepAttracted = No; }; } ); } { Logo.WMDock = {Icon = GNUstep3D.tiff;}; Logo.WMPanel = {Icon = GNUstep3D.tiff;}; Logo.WMClip = {Icon = clip.tiff;}; Dockit = {Icon = GNUstep3D.tiff;}; WMSoundServer = {Icon = sound.tiff;}; XTerm = {Icon = GNUterm.tiff;}; NXTerm = {Icon = GNUterm.tiff;}; ScilabGraphic0.Xscilab = {KeepInsideScreen = YES;}; ScilabGraphic1.Xscilab = {KeepInsideScreen = YES;}; ScilabGraphic2.Xscilab = {KeepInsideScreen = YES;}; ScilabGraphic3.Xscilab = {KeepInsideScreen = YES;}; ScilabGraphic4.Xscilab = {KeepInsideScreen = YES;}; ScilabGraphic5.Xscilab = {KeepInsideScreen = YES;}; ScilabGraphic6.Xscilab = {KeepInsideScreen = YES;}; bookmarks.Netscape = {NoAppIcon = YES;}; xcalc = {AlwaysUserIcon = Yes;Icon = "HP-16C-48.xpm";}; Netscape = {Icon = Netscape.xpm;}; Emacs = {Icon = ColorGNU.xpm;}; Ghostview = {Icon = Ghost.xpm;}; AcroRead = {AlwaysUserIcon = Yes;Icon = pdf.tiff;}; Gimp = {AlwaysUserIcon = Yes;Icon = wilber.tiff;}; xv = {AlwaysUserIcon = Yes;Icon = xv.tiff;}; lyX.XForm = {AlwaysUserIcon = Yes;Icon = write.tiff;}; XPaint = {AlwaysUserIcon = Yes;Icon = Paint.xpm;}; Fig = {AlwaysUserIcon = Yes;Icon = draw.tiff;}; XLess = {AlwaysUserIcon = YES;Icon = Reference.xpm;}; manualBrowser.Xman = {AlwaysUserIcon = Yes;Icon = Book.xpm;}; Xman = {AlwaysUserIcon = Yes;Icon = Bookshelf.xpm;}; Stepman = {Icon = Bookshelf.xpm;}; Xmag = {Icon = inspect.xpm;}; Xmessage = {Icon = Reference.xpm;}; XConsole = {Icon = inspect.xpm;Omnipresent = Yes;}; Fte = {Icon = Clipboard.xpm;}; xjed = {Icon = Clipboard.xpm;}; xedit = {Icon = notepad.tiff;}; xmixer = {Icon = mixer.tiff;}; xmcd = {Icon = Radio.xpm;}; xplaycd = {Icon = Radio.xpm;}; "*" = {Icon = defaultAppIcon.tiff;}; groupLeader.WPrefs = {Icon = "/usr/X11R6/lib/GNUstep/Apps/WPrefs.app/WPrefs.tiff";}; } { IconPath = ( "/root/GNUstep/Library/Icons", "/usr/share/WindowMaker/Icons", "/usr/share/WindowMaker/Pixmaps", "/usr/X11R6/include/X11/pixmaps", "/root/GNUstep/Library/WindowMaker/Pixmaps", "/usr/share/pixmaps" ); PixmapPath = ( "/root/GNUstep/Library/WindowMaker/Pixmaps", "/root/GNUstep/Library/WindowMaker/Backgrounds", "/usr/share/WindowMaker/Pixmaps", "/usr/share/WindowMaker/Backgrounds", "/usr/X11R6/include/X11/pixmaps", "/usr/share/pixmaps" ); ApplicationMenuMouseButton = left; SelectWindowsMouseButton = right; DisableBlinking = NO; } {NoXSetStuff = NO;TextureList = ();}  . .. install_helper! fstab_editor"xupgrade#upgrade$ boot_live.pl%xmessage& find_live.pl'start_installer( Xautoconfig3) Xautoconfig4* mk_boot.pl+Deutsch,English-Italiano. Portugues/ root_startx0Xautoconfig_wrapper1Japanese2 watch_xpid.plt.boot_live.pl.swpX.boot_live.pl.swx#!/usr/bin/perl -w # install_helper # Copylefted under the GPL by Jeff Carr # Much of this code was derived by Brian Bresen's xinstaller # # This program walks the user through the steps of installing use Gtk; use Gtk::Atoms; use Gtk::Gdk; use strict 'vars'; init Gtk; my $VERSION = "4.4.2"; my $VERSION_DATE = "Wed Dec 27 20:47:00 2000"; # This version was actually tested on my portable # In testing: # Implement --proxy # A graphical version # # Still todo: # Allow user to select which packages to upgrade # Add an option to override the interactive parts # Add recursive function to check requirements my %OPTIONS; $OPTIONS{ RPMARGS } = ""; my @values; while ( ) { my $arg = shift @ARGV; if( ! defined $arg ) { last; } if( $arg eq "" ) { last; } if( $arg eq "--help" ) { print_help(); } if( $arg eq "--fullnames" ) { $OPTIONS{ FULLNAME } = "TRUE"; next; } #This isn't implemented yet if( $arg eq "--duplicates" ) { $OPTIONS{ SHOWDUPLICATES } = "TRUE"; next; } if( $arg eq "--upgrade" ) { $OPTIONS{ UPGRADE } = "TRUE"; next; } if( $arg eq "--install" ) { $OPTIONS{ UPGRADE } = "TRUE"; next; } if( $arg eq "--ignore-kernel" ) { $OPTIONS{ IGNORE_KERNEL } = "TRUE"; next; } if( $arg eq "--obsolete" ) { $OPTIONS{ OBSOLETE } = "TRUE"; next; } if( $arg eq "--nodeps" ) { $OPTIONS{ RPMARGS } .= "--nodeps "; next; } if( $arg eq "--force" ) { $OPTIONS{ RPMARGS } .= "--force "; next; } if( $arg eq "--quiet" ) { $OPTIONS{ QUIET } = "TRUE"; next; } if( $arg eq "--debug" ) { $OPTIONS{ DEBUG } = "TRUE"; next; } if( $arg eq "--fixes" ) { $OPTIONS{ FIXES } = "TRUE"; next; } if( $arg eq "--proxy" ) { $OPTIONS{ PROXY } = shift @ARGV; next; } if( $arg eq "--proxy-port" ) { $OPTIONS{ PROXY_PORT } = shift @ARGV; next; } if( $arg eq "--save" ) { $OPTIONS{ SAVE } = "TRUE"; next; } if( $arg eq "--parent" ) { $OPTIONS{ PARENT } = shift @ARGV; next; } if( $arg eq "--path_to_root" ) { $OPTIONS{ PATH_TO_ROOT } = shift @ARGV; next; } if( $arg eq "--location" ) { $OPTIONS{ LOCATION } = shift @ARGV; next; } if( $arg eq "--paranoid" ) { $OPTIONS{ PARANOID } = "TRUE"; next; } if( $arg eq "--version" ) { print "upgrade.pl version: $VERSION from $VERSION_DATE\n"; exit; } if( substr( $arg, 0, 2 ) eq "--" ) { print_help(); } if( substr( $arg, 0, 1 ) eq "-" ) { print_help(); } push @values, $arg; } sub print_help { print "upgrade.pl version = $VERSION from $VERSION_DATE Usage: [Options] Options are: --path_to_root # directory to install into --location # path to the install files --install # Actually perform the upgrade --paranoid # Stop on every rpm script that exits abnormally --fullnames # prints the full filename of each new rpm --duplicates # will show you which packages you have more # than one installed version --obsolete # Will install all replacements for obsolete rpms # regardless of the obsolete rpms are installed --save # Save the location you selected --parent # this is the parent process... --proxy # --proxy our.firewall.host --proxy-port # --proxy-port 1342 --fixes # Run the various fixes and checks for a new install # or a system that has been upgraded # See the perform_final_upgrade_checks() function --ignore-kernel # Do not upgrade kernel rpms --quiet # Do not show any output --debug # Show lots of output For example: upgrade --install upgrade --debug upgrade --install --location http://ftp.linuxppc.org/linuxppc-stable/ xupgrade --path_to_root /mnt/new_install "; exit; } ###### end of subroutine print_help my $find_arch; my $cngrat_window; my %words; my $CurrentWindow; my $main_window; my $out_dir; my $wget; my $mount_window; my $in_dir; my $in_method; my $MethodButton; my $PackagesButton; my $PasswordButton; my $LinuxConfButton; my $CurrentFont; my $language_window; my $ChangeLanguage; my $fstab_editor; my $location; my $path_to_root; my $process_id; my $please_wait_window; my $please_wait_done; $ENV{PATH} = "$ENV{PATH}:/sbin:/usr/sbin"; #regular users dont have pdisk $find_arch = find_arch(); if ($find_arch eq "prep" ) { print "Looks like a PReP install\n"; } else { print "Not a PReP install\n"; } make_word_hash( "English" ); $path_to_root = "/"; if( -e "/live/lib/" ) { system( "killall -9 xmessage >/dev/null 2>&1" ); $path_to_root = "/mnt/install"; } if( defined $OPTIONS{ PATH_TO_ROOT } ) { $path_to_root = $OPTIONS{ PATH_TO_ROOT }; } $location = find_location(); $process_id = $$; my_print( "path_to_root is set to $path_to_root\n" ); my_print( "location is set to $location\n" ); unlink "/tmp/fstab_editor_finished"; unlink "/tmp/install_finished"; change_font(); show_install_helper_window(); $SIG{ USR1 } = \&got_user1; main Gtk; exit; sub got_user1 { print "Successfully recieved USR1 signal!\n"; if( -e "/tmp/install_finished" ) { system "sync"; $OPTIONS{ FINISHED_WINDOW } = "TRUE"; if( defined $main_window ) { $main_window->destroy(); } delete $OPTIONS{ FINISHED_WINDOW }; create_finished_window(); return; } if( -e "/tmp/fstab_editor_finished" ) { if( ! defined $please_wait_done ) { please_wait_window( "Please Wait", "Please wait while the software is examined..." ); $PackagesButton->set_sensitive(1); choose_packages_button(); $please_wait_done = "TRUE"; return; } if( defined $please_wait_window ) { $please_wait_window->destroy(); } } # select( undef, undef, undef, 0.5 ); } sub do_exit { print "Done!\n"; if( defined $ChangeLanguage ) { return; } if( defined $OPTIONS{ FINISHED_WINDOW } ) { return; } if( -e "/live/lib/" ) { system( "sync" ); sleep 1; system( "mount -a" ); sleep 1; system( "init 6 &" ); } Gtk->exit(0); } sub find_arch { # Try to determine which kernel version to use( pmac, prep, chrp ) if( -e "/proc/device-tree/AAPL,ROM" ) { return "pmac"; } if( -e "/proc/device-tree/aliases/" ) { return "pmac"; } if( -e "/proc/cpuinfo" ) { my @cpuinfo = split "PREP ", uc `cat /proc/cpuinfo |grep machine`; if( $#cpuinfo > 0 ) { return "prep"; } } my_print( "Could not determine arch. Using pmac.\n" ); return "pmac"; } sub my_system { # system wrapper to show what system is calling print "RUNNING @_ \n"; system "@_"; } sub my_print { # printf wrapper which you can turn off with --quiet if( defined $OPTIONS{ QUIET } ) { return; } print @_; } sub debug_print { # printf wrapper for debugging. turn on with --debug if( ! defined $OPTIONS{ DEBUG } ) { return; } print @_; } sub find_location { foreach my $path ( "/mnt/cdrom/", "/tmp/install" ) { if( find_location_package_info( $path ) ) { return $path; } } foreach my $path ( "/home/linuxppc-devel/", "/home/linuxppc-halloween" ) { if( find_location_package_info( $path ) ) { return $path; } } return ""; } sub find_location_package_info { my $path = $_[0]; my $TRUE = 1; my $FALSE = 0; if( -e "$path/maps/package_info.gz" ) { return $TRUE; } if( -e "$path/software/package_info.gz" ) { return $TRUE; } if( -e "$path/software/maps/package_info.gz" ) { return $TRUE; } if( -e "$path/package_info.gz" ) { return $TRUE; } my_print( "Did not find package_info at $path\n" ); return $FALSE; } sub find_root_device { my $length = length $path_to_root; open MOUNTS, "/proc/mounts"; while( ) { chop( $_ ); if( $_ eq "" ) { next; } my( $path, $mount_point, $type) = split( " " , $_ ); my @parts = split( /\// , $path ); my $device = pop @parts; if( $device eq "" ) { $device = pop @parts; } $mount_point = clean_path( $mount_point ); if( $path_to_root eq substr( $mount_point, 0, $length ) ) { $mount_point = clean_path( substr( $mount_point, $length ) ); if( ! -e "/dev/$device" ) { next; } if( $mount_point eq "/" ) { close MOUNTS; return $device; } } } close MOUNTS; foreach my $line ( split "\n", `mount` ) { my( $string, $junk ) = split " type " , $line; my( $path, $mount_point ) = split " on " , $string; my @parts = split( /\// , $path ); my $device = pop @parts; if( $device eq "" ) { $device = pop @parts; } $mount_point = clean_path( $mount_point ); if( $path_to_root eq substr( $mount_point, 0, $length ) ) { $mount_point = clean_path( substr( $mount_point, $length ) ); if( ! -e "/dev/$device" ) { next; } if( $mount_point eq "/" ) { return $device; } } } } sub clean_path { my $name = $_[0]; my @path = split /\//, $name; $name = ""; foreach my $piece ( @path ) { if( $piece eq "" ) { next; } $name .= "/$piece"; } if( substr( $name, 0, 1 ) ne "/" ) { $name = "/" . $name; } return $name; } sub create_finished_window { my $type = shift @_; my $device = shift @_; my $finished_window; create_standard_window( $finished_window, 250, 40, 450, 120, "Format window" ); $finished_window->signal_connect("destroy" => \&do_exit); my $box1 = create_standard_vbox( 0 ); my $box2 = create_standard_hbox( 5, $box1, 1, 1, 0 ); create_standard_label( "You have successfully installed LinuxPPC!!!!!" , $box2 ); my $root_device = find_root_device(); $box2 = create_standard_hbox( 5, $box1, 1, 1, 0 ); if( defined $root_device ) { my_print( "/ has been defined\n" ); create_standard_label( "Your root device is /dev/$root_device" , $box2 ); } else { my_print( "You have not defined /\n" ); create_standard_label( "I could not determine your root device" , $box2 ); } $box2 = create_standard_hbox( 5, $box1, 1, 1, 0 ); create_standard_label( "You can now reboot or do additional post-installation setup" , $box2 ); $box2 = create_standard_hbox( 10, $box1, 1, 1, 0 ); create_standard_button( "Reboot" , $box2, 1, 1, 0, sub { $finished_window->destroy(); do_exit(); }); create_standard_button( "Additional Options" , $box2, 1, 1, 0, sub { print "Should run the Linux Configuration things here.\n"; my $tmp = ""; if( -e "/live/lib/" ) { $tmp = "/live/setroot.sh"; } system "$tmp /usr/X11R6/lib/xinstaller/post_install_options.pl &"; }); } sub please_wait_window { my( $exit, $size, $length); my $message = "Please wait while the software is being examined...."; $length = 8 * (length $message) + 30; if( $length < 100 ) { $length = 100; } create_standard_window( $please_wait_window, 250, 40, $length, 40, "Please Wait" ); my $box1 = create_standard_vbox( 0 ); my $box2 = create_standard_hbox( 10, $box1, 1, 1, 0 ); create_standard_label( $message , $box2 ); create_standard_button( "OK" , $box2, 1, 1, 0, sub { $please_wait_window->destroy(); }); $please_wait_window->set_modal(1); } sub create_standard_vbox { my( $item ); $item = new Gtk::VBox(0,0); $item->border_width( $_[0] ); if( defined $_[1] ) { if( defined $_[2] ) { $_[1]->pack_start($item, $_[2], $_[3], $_[4] ); } else { # $_[1]->add($item); } } else { $CurrentWindow->add($item); } $item->show; return $item; } sub create_standard_hbox { my( $item ); $item = new Gtk::HBox(0,10); $item->border_width( $_[0] ); if( ! defined $_[1] ) { $CurrentWindow->add($item); } elsif ( ! defined $_[2] ) { $_[1]->add($item); } else { $_[1]->pack_start($item, $_[2], $_[3], $_[4] ); } $item->show; return $item; } sub create_standard_button { my( $button ) = new Gtk::Button( $_[0] ); # $_[0]->can_default(1); if( ! defined $_[1] ) { $button->show; return $button; } if( ! defined $_[2] ) { $_[1]->add($button); } else { $_[1]->pack_start($button, $_[2], $_[3], $_[4] ); } if( defined $_[5] ) { $button->signal_connect('clicked', $_[5] ); } $button->show; return $button; } sub create_standard_checkbutton { my( $button ) = new Gtk::CheckButton( $_[0] ); $button->set_state(1); # $_[0]->can_default(1); if( ! defined $_[1] ) { $button->show; return $button; } if( ! defined $_[2] ) { $_[1]->add($button); } else { $_[1]->pack_start($button, $_[2], $_[3], $_[4] ); } if( defined $_[5] ) { $button->signal_connect('clicked', $_[5] ); } $button->show; return $button; } sub create_standard_label { my($label) = new Gtk::Label $_[0]; # 123456789$label->set_alignment(0.0,0.5); if( ! defined $_[2] ) { $_[1]->add($label); } else { $_[1]->pack_start($label, $_[2], $_[3], $_[4] ); } $label->show; return $label; } sub create_standard_window { if ( defined $_[0] ) { $_[0]->destroy; return; } $_[0] = new Gtk::Window "toplevel"; $_[0]->set_uposition($_[1],$_[2]); if ( ! ( $_[3] == -1 )) { # print "Setting window size to $_[3], $_[4]\n"; # $_[0]->set_usize($_[3],$_[4]); $_[0]->set_default_size( $_[3], $_[4] ); } $_[0]->signal_connect("destroy", \&destroy_window, \$_[0]); $_[0]->signal_connect("delete_event", \&destroy_window, \$_[0]); $_[0]->set_title( "$_[5]" ); $_[0]->border_width(0); $_[0]->grab_focus; $_[0]->show; $CurrentWindow = $_[0]; } sub my_separator { my($box1) = @_; my($separator) = new Gtk::HSeparator; $box1->pack_start($separator, 0, 1, 0); $separator->show; my($box2) = create_standard_hbox( 10 , $box1, 0, 1, 0 ); return $box2; } sub destroy_window { my($widget, $windowref, $w2) = @_; $$windowref = undef; $w2 = undef if defined $w2; 0; } sub create_text_window { my($box1,$box2,$button,$separator,$table,$hscrollbar,$vscrollbar,$text); create_standard_window( $cngrat_window, $_[0], $_[1], $_[2], $_[3], $_[4] ) || return; $box1 = create_standard_vbox( 0 ); $box2 = create_standard_vbox( 10, $box1, 1, 1, 0 ); $table = new Gtk::Table(2,2,0); $table->set_row_spacing(0,2); $table->set_col_spacing(0,2); $box2->pack_start($table,1,1,0); $table->show; $text = new Gtk::Text(undef,undef); $table->attach_defaults($text, 0,1,0,1); show $text; $hscrollbar = new Gtk::HScrollbar($text->hadj); $table->attach($hscrollbar, 0, 1,1,2,[-expand,-fill],[-fill],0,0); $hscrollbar->show; $vscrollbar = new Gtk::VScrollbar($text->vadj); $table->attach($vscrollbar, 1, 2,0,1,[-fill],[-expand,-fill],0,0); $vscrollbar->show; $text->freeze; $text->realize; $text->insert(undef,$text->style->black,undef, $_[6] ); $text->thaw; $box2 = my_separator($box1); create_standard_button( $_[5] , $box2, 1, 1, 0, sub { $cngrat_window->destroy; }); } sub show_install_helper_window { my( @buttons, $box1, $scw, $box2, $button, $hbox, $separator, $buffer, $label, $i); create_standard_window( $main_window, 20, 20, 200, 350, "X Linux Installer" ) || return; $main_window->signal_connect("destroy" => \&do_exit); $box1 = create_standard_vbox( 0 ); $hbox = create_standard_hbox( 0 , $box1, 0, 0, 0 ); $label = create_standard_label( "$words{Version} $VERSION" , $hbox, 1, 1, 0 ); my( $menubar, $menu, $submenu, $menuitem, $name ); $menubar = new Gtk::MenuBar; $hbox->pack_start($menubar, 1, 1, 0); $menubar->show; $menu = new Gtk::Menu; $submenu = undef; $menuitem = undef; $menuitem = new Gtk::MenuItem( $words{Credits} ); $menu->append($menuitem); $menuitem->signal_connect("activate", sub { &create_text_window( 230, 20, 375, 200, $words{ Credits }, $words{Close}, $words{Credits_Text} ) } ); $menuitem->show; $menuitem = new Gtk::MenuItem( $words{Launch_xterm} ); $menu->append($menuitem); $menuitem->signal_connect("activate", sub { system "xterm &"; } ); $menuitem->show; $menuitem = new Gtk::MenuItem( $words{Configure_Keys} ); $menu->append($menuitem); $menuitem->signal_connect("activate", sub { system "xmodmap.pl &"; } ); $menuitem->show; $menuitem = new Gtk::MenuItem( $words{Network_Config} ); $menu->append($menuitem); $menuitem->signal_connect("activate", sub { system "netcfg &"; } ); $menuitem->show; $menuitem = new Gtk::MenuItem( $words{ Options_Menu } ); $menuitem->set_submenu($menu); $menubar->append($menuitem); show $menuitem; $menuitem = new Gtk::MenuItem( $words{Partition_Drives} ); $menu->append($menuitem); $menuitem->signal_connect("activate", sub{ system "perldisk /dev/hda &"; } ); $menuitem->show; $scw = new Gtk::ScrolledWindow(undef, undef); $scw->set_policy('automatic', 'automatic'); $scw->show; $scw->border_width(10); #gtk 1.0 doesnt have this $box1->pack_start($scw, 1, 1, 0); $box2 = create_standard_vbox( 10, $main_window ); $scw->add_with_viewport($box2); #for x86/ppc with new gtk create_standard_button( $words{Instructions} , $box2, 1, 1, 0, sub { create_text_window( 230, 20, 420, 300, $words{welcome_title}, $words{Close}, $words{welcome_text}); } ); $button = create_standard_button( $words{Language}, $box2, 1, 1, 0, \&choose_language ); # create_standard_button( $words{Partition_Drives} , $box2, 1, 1, 0, sub { # print "Starting perldisk\n"; # system "perldisk &"; # select( undef, undef, undef, 0.55 ); # $fstab_editor->set_sensitive(1); # }); $fstab_editor = create_standard_button( "$words{Select_Partitions}" , $box2, 1, 1, 0, sub { print "Starting fstab_editor\n"; system "fstab_editor --parent $process_id --path_to_root $path_to_root &"; select( undef, undef, undef, 0.55 ); }); $PackagesButton = create_standard_button( "$words{Choose_Packages}" , $box2, 1, 1, 0, \&choose_packages_button ); # $PasswordButton = create_standard_button( "$words{Enter_Password}" , $box2, # 1, 1, 0, \&create_passwd ); # # $LinuxConfButton = create_standard_button( "$words{Post_Install}" , $box2, 1, 1, 0, sub { # print "Should run the Linux Configuration things here.\n"; # my $tmp = ""; # if( -e "/live/lib/" ) { $tmp = "/live/setroot.sh"; } # system "$tmp /usr/X11R6/lib/xinstaller/post_install_options.pl &"; # } ); print "hide buttons\n"; # $fstab_editor->set_sensitive(0); $PackagesButton->set_sensitive(0); # $PasswordButton->set_sensitive(0); # $LinuxConfButton->set_sensitive(0); $box2 = my_separator($box1); if( -e "/live/lib/" ) { $button = create_standard_button( $words{Reboot} , $box2, 1, 1, 0, \&do_exit ); } else { $button = create_standard_button( $words{Quit}, $box2, 1, 1, 0, \&do_exit ); } $menuitem = new Gtk::MenuItem( $words{Quit} ); $menu->append($menuitem); $menuitem->signal_connect("activate", sub { Gtk->exit(0); } ); $menuitem->show; } sub choose_packages_button { print "Starting xupgrade\n"; system "xupgrade --path_to_root $path_to_root --location $location --parent $process_id &"; # select( undef, undef, undef, 5 ); } sub change_font { my( $StandardText, $FontSelector ); $StandardText = new Gtk::Text(undef,undef); $FontSelector = new Gtk::FontSelectionDialog "Font Selection Dialog"; my $newFont = $_[0]; if( ! defined $newFont ) { print "Setting font to lucida medium\n"; # $FontSelector->set_font_name( "-misc-fixed-medium-r-semicondensed-*-13-*-*-*-c-*-iso8859-8" ); # $FontSelector->set_font_name( "-b&h-lucida-medium-r-normal-sans-12-*-72-72-p-*-*-1" ); $FontSelector->set_font_name( "-b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-1" ); } else { print "Setting font to $newFont\n"; $FontSelector->set_font_name( $newFont ); } $CurrentFont = $FontSelector->get_font; # print "got font $CurrentFont\n"; $StandardText->style->font($CurrentFont); # print "set font to $CurrentFont\n"; } sub choose_language { my( $box1, $label, $language); create_standard_window( $language_window, 230, 20, -1, -1, $words{Choose_Language} ); $box1 = create_standard_vbox( 0 ); $label = create_standard_label( $words{Choose_Language} , $box1, 0, 0, 0 ); foreach $language ( "English" , "Italiano" , "Deutsch", "Portugues" ) { create_standard_button( $language , $box1, 1, 1, 0, sub { if( $language eq "Japanese" ) { change_font "-jis-fixed-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-0"; } else { change_font(); } print "Choose $language\n"; $ChangeLanguage = "TRUE"; make_word_hash( $language ); show_install_helper_window(); show_install_helper_window(); $language_window->destroy; undef $ChangeLanguage; } ); } create_standard_button( "Request for help" , $box1, 1, 1, 0, sub { create_text_window( 150, 20, 375, 200, "Request for Help", $words{Close}, $words{Request_for_Help}); } ); } sub make_word_hash { # Makes a hash of all the strings for a certain language my( $entry, $key, @stuff ); print "start make_word_hash\n"; if( -e "/usr/X11R6/lib/xinstaller/$_[0]" ) { open( WORDS , "/usr/X11R6/lib/xinstaller/$_[0]" ); } elsif ( -e "/root/bin/$_[0]" ) { open( WORDS , "/root/bin/$_[0]" ); } while( ) { chop $_; if( $_ eq "" ) { next; }; @stuff = split( / / , $_ ); if( defined $stuff[1] ) { $words{ $stuff[0] } = pop( @stuff ); next; } $entry = $_; undef $words{ $entry }; while( ) { chop $_; if( $_ eq "end" ) { chop $words{ $entry }; last; } $words{ $entry } .= "$_\n"; # print "$_\n"; } } close( WORDS ); # foreach $key ( keys( %words ) ) { print "$key\n"; } } #!/usr/bin/perl -w # fstab_editor # Copylefted under the GPL by Jeff Carr # Much of this code was derived by Brian Bresen's xinstaller # # This program will let you select where you want to mount # your partitions.... # use Gtk; use Gtk::Atoms; use Gtk::Gdk; use strict 'vars'; init Gtk; my $VERSION = "4.4.2"; my $VERSION_DATE = "Wed Dec 27 20:47:00 2000"; # This version was actually tested on my portable # In testing: # Implement --proxy # A graphical version # # Still todo: # Allow user to select which packages to upgrade # Add an option to override the interactive parts # Add recursive function to check requirements my %OPTIONS; $OPTIONS{ RPMARGS } = ""; my @values; while ( ) { my $arg = shift @ARGV; if( ! defined $arg ) { last; } if( $arg eq "" ) { last; } if( $arg eq "--help" ) { print_help(); } if( $arg eq "--fullnames" ) { $OPTIONS{ FULLNAME } = "TRUE"; next; } #This isn't implemented yet if( $arg eq "--duplicates" ) { $OPTIONS{ SHOWDUPLICATES } = "TRUE"; next; } if( $arg eq "--upgrade" ) { $OPTIONS{ UPGRADE } = "TRUE"; next; } if( $arg eq "--install" ) { $OPTIONS{ UPGRADE } = "TRUE"; next; } if( $arg eq "--ignore-kernel" ) { $OPTIONS{ IGNORE_KERNEL } = "TRUE"; next; } if( $arg eq "--obsolete" ) { $OPTIONS{ OBSOLETE } = "TRUE"; next; } if( $arg eq "--nodeps" ) { $OPTIONS{ RPMARGS } .= "--nodeps "; next; } if( $arg eq "--force" ) { $OPTIONS{ RPMARGS } .= "--force "; next; } if( $arg eq "--quiet" ) { $OPTIONS{ QUIET } = "TRUE"; next; } if( $arg eq "--debug" ) { $OPTIONS{ DEBUG } = "TRUE"; next; } if( $arg eq "--fixes" ) { $OPTIONS{ FIXES } = "TRUE"; next; } if( $arg eq "--proxy" ) { $OPTIONS{ PROXY } = shift @ARGV; next; } if( $arg eq "--proxy-port" ) { $OPTIONS{ PROXY_PORT } = shift @ARGV; next; } if( $arg eq "--save" ) { $OPTIONS{ SAVE } = "TRUE"; next; } if( $arg eq "--parent" ) { $OPTIONS{ PARENT } = shift @ARGV; next; } if( $arg eq "--path_to_root" ) { $OPTIONS{ PATH_TO_ROOT } = shift @ARGV; next; } if( $arg eq "--location" ) { $OPTIONS{ LOCATION } = shift @ARGV; next; } if( $arg eq "--paranoid" ) { $OPTIONS{ PARANOID } = "TRUE"; next; } if( $arg eq "--version" ) { print "upgrade.pl version: $VERSION from $VERSION_DATE\n"; exit; } if( substr( $arg, 0, 2 ) eq "--" ) { print_help(); } if( substr( $arg, 0, 1 ) eq "-" ) { print_help(); } push @values, $arg; } sub print_help { print "upgrade.pl version = $VERSION from $VERSION_DATE Usage: [Options] Options are: --path_to_root # directory to install into --location # path to the install files --install # Actually perform the upgrade --paranoid # Stop on every rpm script that exits abnormally --fullnames # prints the full filename of each new rpm --duplicates # will show you which packages you have more # than one installed version --obsolete # Will install all replacements for obsolete rpms # regardless of the obsolete rpms are installed --save # Save the location you selected --parent # this is the parent process... --proxy # --proxy our.firewall.host --proxy-port # --proxy-port 1342 --fixes # Run the various fixes and checks for a new install # or a system that has been upgraded # See the perform_final_upgrade_checks() function --ignore-kernel # Do not upgrade kernel rpms --quiet # Do not show any output --debug # Show lots of output For example: upgrade --install upgrade --debug upgrade --install --location http://ftp.linuxppc.org/linuxppc-stable/ xupgrade --path_to_root /mnt/new_install "; exit; } ###### end of subroutine print_help my $find_arch; my $cngrat_window; my %words; my $CurrentWindow; my $main_window; my $out_dir; my $wget; my $mount_window; my $in_dir; my $in_method; my $MethodButton; my $PackagesButton; my $PasswordButton; my $LinuxConfButton; my $CurrentFont; my $language_window; my $ChangeLanguage; my $fstab_editor; my $path_to_root; my $location; my %device_hash; my %device_mountpoints; my @device_order; my %device_format_widgets; my %device_mount_widgets; my %device_umount_widgets; my %device_mountpoint_widgets; $ENV{PATH} = "$ENV{PATH}:/sbin:/usr/sbin"; #regular users dont have pdisk make_word_hash( "English" ); change_font(); $path_to_root = "/"; if( defined $OPTIONS{ PATH_TO_ROOT } ) { $path_to_root = $OPTIONS{ PATH_TO_ROOT }; } $path_to_root = clean_path( $path_to_root ); get_pinfo(); make_mount_hash(); create_mounts_window(); main Gtk; exit; sub do_exit { print "Done!\n"; if( defined $OPTIONS{ PARENT } ) { print "Parent process is $OPTIONS{ PARENT }\n"; system "kill -s USR1 $OPTIONS{ PARENT }"; } Gtk->exit(0); } sub my_system { # system wrapper to show what system is calling print "RUNNING @_ \n"; system "@_"; } sub my_print { # printf wrapper which you can turn off with --quiet if( defined $OPTIONS{ QUIET } ) { return; } print @_; } sub debug_print { # printf wrapper for debugging. turn on with --debug if( ! defined $OPTIONS{ DEBUG } ) { return; } print @_; } #get_dinfo gets the info for the drives from pdisk -l sub get_pinfo { my(@tmp_input); my($pnum,$type,$name,$length,$base,$size); my($dev_name) = ""; # ok here we take pdisk output and create known drive hash # sounds fun, eh? # after that we create visual to modify drives allow it to change # then update the drive tables needed #system pdisk here open( PART , "/proc/partitions" ); unlink "/tmp/pdisk.out"; #system pdisk here -- this hangs if audio or hybrid cd is in drive #print "Running * pdisk -l\n"; #system "pdisk -l > /tmp/pdisk.out 2> /tmp/pdisk.err"; while( ) { chop( $_ ); if( $_ eq "" ) { next; } @tmp_input = split( " " , $_ ); if( $dev_name eq substr( $tmp_input[3] , 0 , 3 ) ) { print "running pdisk on /dev/$dev_name\n"; system( "pdisk -l /dev/$dev_name >> /tmp/pdisk.out" ); } $dev_name = $tmp_input[3]; } close( PART ); open(DISKF,'/tmp/pdisk.out'); while ( ) { chop(); #if partition map line store dev entry var if (/^Partition map/) { # @tmp_input = split(/\'/); $_ = $tmp_input[1]; @tmp_input = split(/\//); $dev_name = $tmp_input[2]; #print "Found drive :/dev/$dev_name\n"; next; } # if #: store info for dev part # but not if #: @ next if (/[0-9]: @/); # ^---- $name = ''; $type = ''; $size = ''; if (/[0-9]:/) { #make pdisk line useful #other stuff too @tmp_input = split(/:/); $pnum = $tmp_input[0]; while ($pnum =~ /\s+/) { $pnum=substr($pnum,1) } #$pnum = join ("p",$tmp_input[0]); #print "/dev/$dev_name :part # $tmp_input[0] - "; $_ = $tmp_input[1]; @tmp_input = split(/\s+/); while ( ! ($tmp_input[0]) ) { shift(@tmp_input); } if ($tmp_input[$#tmp_input] =~ /\)/) { if (!($tmp_input[$#tmp_input] =~ /[GM]/)) { $tmp_input[$#tmp_input-1] .= pop(@tmp_input); } if (!($tmp_input[$#tmp_input] =~ /\(/)) { $tmp_input[$#tmp_input-1] .= pop(@tmp_input); } $size = pop(@tmp_input); } $base = pop(@tmp_input); pop(@tmp_input); $length = pop(@tmp_input); if ( $tmp_input[0] =~ /\*/ ) { my(@tmpa) = split(/\*/, shift(@tmp_input) ); $type = shift(@tmpa); $name .= shift(@tmpa) . " "; } else { $type = shift(@tmp_input); } while ( scalar(@tmp_input) ) { $name .= shift(@tmp_input) . " "; } chop $name; # print "$dev_name $pnum\n"; if( ! defined $device_hash{ "$dev_name$pnum" } ) { $device_hash{ "$dev_name$pnum" } = "$type\t$name\t$length"; push @device_order, "$dev_name$pnum"; } } else { if (/Number of Blocks/) { @tmp_input = split(/=/); $_ = $tmp_input[2]; @tmp_input = split(/ /); # print "/dev/$dev_name: $tmp_input[0] blocks $tmp_input[1]\n"; } } } close (DISKF); } sub make_mount_hash { my $length = length $path_to_root; foreach my $device ( keys %device_mountpoints ) { delete $device_mountpoints{ $device }; } open MOUNTS, "/proc/mounts"; while( ) { chop( $_ ); if( $_ eq "" ) { next; } my( $path, $mount_point, $type) = split( " " , $_ ); my @parts = split( /\// , $path ); my $device = pop @parts; if( $device eq "" ) { $device = pop @parts; } if( ! defined $device_hash{ $device } ) { next; } $mount_point = clean_path( $mount_point ); if( $path_to_root eq substr( $mount_point, 0, $length ) ) { $mount_point = clean_path( substr( $mount_point, $length ) ); $device_mountpoints{ "$device" } = $mount_point; print "ADDING $device at $mount_point\n"; } else { print "DELETING already mounted $device outside of $path_to_root\n"; if( defined $device_hash{ $device } ) { delete $device_hash{ $device }; } } } close MOUNTS; foreach my $line ( split "\n", `mount` ) { my( $string, $junk ) = split " type " , $line; my( $path, $mount_point ) = split " on " , $string; # print "$path, $mount_point\n"; my @parts = split( /\// , $path ); my $device = pop @parts; if( $device eq "" ) { $device = pop @parts; } if( ! defined $device_hash{ $device } ) { next; } $mount_point = clean_path( $mount_point ); if( $path_to_root eq substr( $mount_point, 0, $length ) ) { $mount_point = clean_path( substr( $mount_point, $length ) ); $device_mountpoints{ "$device" } = $mount_point; print "ADDING $device at $mount_point\n"; } else { print "DELETING already mounted $device outside of $path_to_root\n"; if( defined $device_hash{ $device } ) { delete $device_hash{ $device }; } } } open SWAPS, "/proc/swaps"; while( ) { chop( $_ ); if( $_ eq "" ) { next; } my( $path ) = split( " " , $_ ); my @parts = split( /\// , $path ); my $device = pop @parts; if( $device eq "" ) { $device = pop @parts; } if( ! defined $device_hash{ $device } ) { next; } $device_mountpoints{ "$device" } = "swap"; } close SWAPS; } sub make_fstab { # Write out fstab( this might be safe to call everytime ) my ($path_to_root ) = clean_path( @_ ); my $length; my($file_name) = "$path_to_root/etc/fstab"; if( -e $file_name ) { return; } open (FSTAB,">$file_name"); my $counter = 1; foreach my $line ( `mount` ) { chomp $line; my ( $device, $junk, $path, $junk1, $type, @fields ) = split " ", $line; if( $type eq "proc" ) { next; } if( $type eq "devpts" ) { next; } $length = length $path_to_root; if( $path_to_root ne substr( $path, 0, $length ) ) { next; } $path = substr( $path, $length ); $path =~ s/\/$//g ; if( substr( $path, 0, 1 ) ne "\/" ) { $path = "/" . $path; } $length = 25 - length $device; for my $count ( 1 ... $length ) { $device .= " "; } $length = 20 - length $path; for my $count ( 1 ... $length ) { $path .= " "; } $length = 6 - length $type; for my $count ( 1 ... $length ) { $type .= " "; } print FSTAB "$device $path $type defaults 1 $counter\n"; ++$counter; } foreach my $line ( `cat /proc/swaps` ) { chomp $line; my ( $device, @fields ) = split " ", $line; if( $device eq "Filename" ) { next; } my $swapline = pack "A25", "$device"; print FSTAB "$swapline swap swap defaults 0 0\n"; } print FSTAB "/dev/fd0 /mnt/floppy auto noauto 0 0\n"; print FSTAB "/dev/cdrom /mnt/cdrom auto noauto 0 0\n"; print FSTAB "none /proc proc defaults 0 0\n"; print FSTAB "none /dev/pts devpts gid=5\,mode=620 0 0\n"; close(FSTAB); } sub find_arch { # Try to determine which kernel version to use( pmac, prep, chrp ) if( -e "/proc/device-tree/AAPL,ROM" ) { return "pmac"; } if( -e "/proc/device-tree/aliases/" ) { return "pmac"; } if( -e "/proc/cpuinfo" ) { my @cpuinfo = split "PREP ", uc `cat /proc/cpuinfo |grep machine`; if( $#cpuinfo > 0 ) { return "prep"; } } my_print( "Could not determine arch. Using pmac.\n" ); return "pmac"; } sub clean_path { myGHIJKLMNOPQRSTUVWXYZ $name = $_[0]; my @path = split /\//, $name; $name = ""; foreach my $piece ( @path ) { if( $piece eq "" ) { next; } $name .= "/$piece"; } if( substr( $name, 0, 1 ) ne "/" ) { $name = "/" . $name; } return $name; } sub create_standard_vbox { my( $item ); $item = new Gtk::VBox(0,0); $item->border_width( $_[0] ); if( defined $_[1] ) { if( defined $_[2] ) { $_[1]->pack_start($item, $_[2], $_[3], $_[4] ); } else { # $_[1]->add($item); } } else { $CurrentWindow->add($item); } $item->show; return $item; } sub create_standard_hbox { my( $item ); $item = new Gtk::HBox(0,10); $item->border_width( $_[0] ); if( ! defined $_[1] ) { $CurrentWindow->add($item); } elsif ( ! defined $_[2] ) { $_[1]->add($item); } else { $_[1]->pack_start($item, $_[2], $_[3], $_[4] ); } $item->show; return $item; } sub create_standard_button { my( $button ) = new Gtk::Button( $_[0] ); # $_[0]->can_default(1); if( ! defined $_[1] ) { $button->show; return $button; } if( ! defined $_[2] ) { $_[1]->add($button); } else { $_[1]->pack_start($button, $_[2], $_[3], $_[4] ); } if( defined $_[5] ) { $button->signal_connect('clicked', $_[5] ); } $button->show; return $button; } sub create_standard_checkbutton { my( $button ) = new Gtk::CheckButton( $_[0] ); $button->set_state(1); # $_[0]->can_default(1); if( ! defined $_[1] ) { $button->show; return $button; } if( ! defined $_[2] ) { $_[1]->add($button); } else { $_[1]->pack_start($button, $_[2], $_[3], $_[4] ); } if( defined $_[5] ) { $button->signal_connect('clicked', $_[5] ); } $button->show; return $button; } sub create_standard_entry { my($hbox) = create_standard_hbox( 10 , $_[2]); my($label) = new Gtk::Label $_[0]; $label->set_alignment(0.0,0.5); $hbox->pack_start($label, 0, 1, 0); $label->show; my($entry) = new Gtk::Entry; $entry->set_usize(0, 20); $entry->set_text("$_[1]"); $hbox->pack_start($entry, 1, 1, 0); $entry->show; return $entry; } sub create_standard_label { my($label) = new Gtk::Label $_[0]; # $label->set_alignment(0.0,0.5); if( ! defined $_[2] ) { $_[1]->add($label); } else { $_[1]->pack_start($label, $_[2], $_[3], $_[4] ); } $label->show; return $label; } sub create_standard_window { if ( defined $_[0] ) { $_[0]->destroy; return; } $_[0] = new Gtk::Window "toplevel"; $_[0]->set_uposition($_[1],$_[2]); if ( ! ( $_[3] == -1 )) { # print "Setting window size to $_[3], $_[4]\n"; # $_[0]->set_usize($_[3],$_[4]); $_[0]->set_default_size( $_[3], $_[4] ); } $_[0]->signal_connect("destroy", \&destroy_window, \$_[0]); $_[0]->signal_connect("delete_event", \&destroy_window, \$_[0]); $_[0]->set_title( "$_[5]" ); $_[0]->border_width(0); $_[0]->grab_focus; $_[0]->show; $CurrentWindow = $_[0]; } sub my_separator { my($box1) = @_; my($separator) = new Gtk::HSeparator; $box1->pack_start($separator, 0, 1, 0); $separator->show; my($box2) = create_standard_hbox( 10 , $box1, 0, 1, 0 ); return $box2; } sub create_mounts_window { my ( @titles, @title_sizes ); my ($box1, $box2, $scw, $table, $text1, $entry, $crow, $i); my $size_string; my ( $button, $button_text ); my $find_arch = find_arch(); if ($find_arch eq "pmac" ) { print "Looks like a pmac install\n"; print "Looking for pmac partition maps on the drives\n"; &get_pinfo(); } else { print "Looks like a PReP install\n"; &get_finfo(); } foreach my $device ( keys %device_hash ) { my( $type, $name, $size ) = split "\t", $device_hash{ $device }; if( ! -e "/dev/$device" ) { mknod( $device, "/dev" ); } if( ! -e "/dev/$device" ) { delete $device_hash{ $device }; } if( "APPLE_DRIVER" eq uc substr( $type, 0, 12 ) ) { delete $device_hash{ $device }; } if( "APPLE_PA" eq uc substr( $type, 0, 8 ) ) { delete $device_hash{ $device }; } } make_mount_hash(); # delete $device_hash{ "hda7" }; # delete $device_hash{ "hda8" }; # delete $device_hash{ "hda9" }; # delete $device_hash{ "hda10" }; # delete $device_hash{ "hda11" }; my @total_rows = keys %device_hash; my $vertical = 110 + ($#total_rows + 1) * 28; print "there are $#total_rows + 1 total_rows to create in a $vertical high window.\n"; create_standard_window( $mount_window, 240, 20, 640, $vertical, $words{MountWindowName} ); $mount_window->signal_connect("destroy" => \&do_exit); #create main vert box for titles row followed by partition rows $box1 = create_standard_vbox( 0 ); $box2 = create_standard_vbox( 10, $box1, 1, 1, 0 ); $scw = new Gtk::ScrolledWindow(undef,undef); $scw->border_width(10); $scw->set_policy(-automatic, -automatic); $box2->pack_start($scw, 1, 1, 0); $scw->show; $table = new Gtk::Table( 2, 4, 0); $table->set_row_spacings(1); $table->set_col_spacings(1); $table->set_row_spacing(0,8); $scw->add_with_viewport($table); $table->show; if ($find_arch eq "pmac" ) { @titles = ( $words{Partition}, $words{Name}, $words{Size}, $words{Mount_Point}, $words{Format}, "Mount", "Unmount"); } else { @titles = ( $words{Partition}, $words{Type}, $words{Length}, $words{Mount_Point}, $words{Format}, "Mount", "Unmount"); } @title_sizes = ( 85, 115, 65, 105, 60, 50, 70 ); # setup title row for $i ( 0 .. (scalar(@titles) - 1) ) { $text1 = new Gtk::Text; $text1->set_usize( $title_sizes[$i], 20); $text1->can_focus(0); $text1->insert(undef,$text1->style->black,undef, $titles[$i]); $table->attach_defaults($text1, $i, $i+1, 0, 1); $text1->show; } $crow = 1; #current row is 2 #load up the info into the window foreach my $device ( @device_order ) { if( ! defined $device_hash{ $device } ) { next; } my( $type, $name, $size ) = split "\t", $device_hash{ $device }; print "adding row for $device, $type, $name, $size\n"; $text1 = new Gtk::Label "/dev/$device"; $text1->set_alignment(0.0,0.5); $text1->set_usize(15,22); $text1->can_focus(0); $text1->show; $table->attach_defaults($text1, 0, 1, $crow, $crow+1); $text1 = new Gtk::Label "$name"; $text1->set_alignment(0.0,0.2); $text1->set_usize(15,22); $text1->can_focus(0); $text1->show; $table->attach_defaults($text1, 1, 2, $crow, $crow+1); my $MB = $size / (2 * 1024); if( $MB > 1024 ) { $size_string = sprintf( "%3.2f GB", $MB / 1024 ); } else { $size_string = sprintf( "%3.2f MB", $MB ); } $text1 = new Gtk::Label "$size_string"; $text1->set_alignment(0.0,0.2); $text1->set_usize(15,22); $text1->can_focus(0); $text1->show; $table->attach_defaults($text1, 2, 3, $crow, $crow+1); if( $name eq "swap" ) { $entry = new Gtk::Label "swap"; $entry->set_usize(15,25); $entry->can_focus(0); $entry->show; } else { $entry = new Gtk::Entry; $entry->set_usize(15,25); $entry->can_focus(1); $entry->show; if( defined $device_mountpoints{ $device } ) { $entry->set_text( $device_mountpoints{ $device } ); $entry->can_focus(0); if( $device_mountpoints{ $device } eq "swap" ) { $entry->hide; } } else { $entry->set_text(""); } } $device_mountpoint_widgets{ $device } = $entry; $table->attach_defaults($entry, 3, 4, $crow, $crow+1); #This code will check to see what drives are currently mounted # $button_text = ""; if( uc $type eq "LINUX_PPC" ) { $button_text = "mke2fs"; } if( uc substr( $type, 0, 10 ) eq "APPLE_UNIX" ) { $button_text = "mke2fs"; } if( $name eq "swap" ) { $button_text = "mkswap"; } if( uc $type eq "APPLE_HFS" ) { $button_text = "hformat"; } $button = new Gtk::Button "Format"; if( defined $device_mountpoints{ $device } ) { $button->set_sensitive(0); } $button->signal_connect('clicked', [ \&format_device, $device, $button_text ] ); $button->show; $table->attach_defaults($button, 4, 5, $crow, $crow+1); $device_format_widgets{ $device } = $button; $button_text = "mount"; if( $name eq "swap" ) { $button_text = "swapon"; } $button = new Gtk::Button "$button_text"; $button->signal_connect('clicked', [ \&handle_mount_device, $device ] ); if( defined $device_mountpoints{ $device } ) { $button->hide; } else { $button->show; } $table->attach_defaults($button, 5, 6, $crow, $crow+1); $device_mount_widgets{ $device } = $button; $button_text = "umount"; if( $name eq "swap" ) { $button_text = "swapoff"; } $button = new Gtk::Button "$button_text"; $button->signal_connect('clicked', [ \&handle_umount_device, $device ] ); if( defined $device_mountpoints{ $device } ) { $button->show; } else { $button->hide; } $table->attach_defaults($button, 6, 7, $crow, $crow+1); $device_umount_widgets{ $device } = $button; $crow++; } $box2 = my_separator($box1); create_standard_button( $words{Help} , $box2, 1, 1, 0, sub { create_text_window(230,20,500,300, $words{Recommend}, $words{Close}, $words{Recommend_text}); }); create_standard_button( "Edit Partitions" , $box2, 1, 1, 0, sub { system "perldisk &"; exit; }); if( defined $OPTIONS{ PARENT } ) { $button_text = $words{Done}; } else { $button_text = $words{Quit}; } create_standard_button( $button_text , $box2, 1, 1, 0, sub { print "Code should be added here to see if you actually mounted a / partition\n"; my %mountpoints_reverse; foreach my $check ( keys %device_mountpoints ) { $mountpoints_reverse{ $device_mountpoints{ $check } } = $check; } if( defined $mountpoints_reverse{ "/" } ) { print "/ has been defined\n"; system "touch /tmp/fstab_editor_finished"; do_exit(); } else { print "You have not defined /\n"; mount_error_window( "Missing /", "You need to specify a partition to mount as / to continue." ); } }); } sub mount_drives { print "Should do mount drives here...\n"; system "touch /tmp/fstab_editor_finished"; } sub handle_mount_device { my $device = pop @_; my $mountpoint; my $output; my %mountpoints_reverse; foreach my $check ( keys %device_mountpoints ) { $mountpoints_reverse{ $device_mountpoints{ $check } } = $check; } if( defined $device_mountpoints{ $device } ) { print "Strange... device $device was already mounted.\n"; make_mount_hash(); return; } my( $type, $name, $size ) = split "\t", $device_hash{ $device }; if( $name eq "swap" ) { $device_umount_widgets{ $device }->show(); $device_mount_widgets{ $device }->hide(); $device_format_widgets{ $device }->set_sensitive(0); system "swapon /dev/$device"; make_mount_hash(); return; } if( $device_mountpoint_widgets{ $device }->get_text() eq "" ) { print "You have not specified a mountpoint\n"; mount_error_window( "Mountpoint Error", "You need to specify a mountpoint" ); return; } $mountpoint = clean_path( "$path_to_root/" . $device_mountpoint_widgets{ $device }->get_text() ); if( $mountpoint eq $path_to_root ) { print "/ has size = $size, type = $type\n"; if( $size < 400000 ) { mount_error_window( "/ is too small", "Your / partition is too small. You will not be able to install much." ); } elsif ( $size < 1000000 ) { mount_error_window( "/ is too small", "It is recommended you make / larger than 500 MB." ); } if( uc $type eq "APPLE_HFS" ) { print "Trying to mount ROOT DEVICE of wrong type\n"; mount_error_window( "/ device error", "You can not use a HFS partition as /" ); $device_mountpoint_widgets{ $device }->set_text( "" ); return; } } print "Should mount $device at $mountpoint.\n"; if( ! -e "$mountpoint" ) { system "mkdir -p $mountpoint"; } my $relative_mountpoint = clean_path ( $device_mountpoint_widgets{ $device }->get_text() ); if( defined $mountpoints_reverse{ $relative_mountpoint } ) { print "You already have something mounted at $relative_mountpoint\n"; $device_mountpoint_widgets{ $device }->set_text( "" ); $device_mountpoint_widgets{ $device }->can_focus(1); mount_error_window( "Mount Error", "You already have something mounted at $relative_mountpoint" ); make_mount_hash(); return; } foreach my $tmp_device ( keys %device_mountpoints ) { #### I should add code here to make sure that if you are mounting /home #### That /home/test is not already mounted #### A simple substr check is not enough since you could have both /test and /testing if( $device_mountpoints{ $tmp_device } eq "swap" ) { next; } if( $relative_mountpoint ne "/" ) { $relative_mountpoint = "$relative_mountpoint/"; } my $length = length $relative_mountpoint; if( $relative_mountpoint eq substr( $device_mountpoints{ $tmp_device }, 0, $length ) ) { print "\tWe have a problem with $tmp_device at $device_mountpoints{ $tmp_device }\n"; mount_error_window( "Mount Error", "You must unmount $device_mountpoints{ $tmp_device } first." ); make_mount_hash(); return; } } print "mount /dev/$device $mountpoint\n"; system "mount /dev/$device $mountpoint"; make_mount_hash(); if( defined $device_mountpoints{ $device } ) { $device_format_widgets{ $device }->set_sensitive(0); $device_umount_widgets{ $device }->show(); $device_umount_widgets{ $device }->set_sensitive(1); $device_mount_widgets{ $device }->hide(); $device_mount_widgets{ $device }->set_sensitive(1); $device_mountpoint_widgets{ $device }->set_text( $device_mountpoints{ $device } ); } else { mount_error_window( "Mount Error", "There was an error mounting $device" ); } } sub handle_umount_device { my $device = pop @_; if( ! defined $device_mountpoints{ $device } ) { print "Strange... device $device was not mounted.\n"; } else { if( $device_mountpoints{ $device } eq "swap" ) { system "swapoff /dev/$device"; } else { print "Should umount $device.\n"; system "umount /dev/$device"; my $mountpoint = clean_path( $device_mountpoints{ $device } ); $device_mountpoint_widgets{ $device }->set_text( $device_mountpoints{ $device } ); } } make_mount_hash(); if( defined $device_mountpoints{ $device } ) { print "I could not umount the $device\n"; print "device is still mounted at $device_mountpoints{ $device } \n"; mount_error_window( "unmount error", "I could not unmount /dev/$device" ); } else { $device_format_widgets{ $device }->set_sensitive(1); $device_umount_widgets{ $device }->hide(); $device_umount_widgets{ $device }->set_sensitive(1); $device_mount_widgets{ $device }->show(); $device_mount_widgets{ $device }->set_sensitive(1); } } sub mknod { my( $device, $path ); #### This routing should be made to do something print "I don't know how to make $path/$device\n"; } sub mount_error_window { my( $exit, $size, $length); if( $_[0] eq "EXIT" ) { $exit = shift @_; } my $message = pop @_; my $title = pop @_; if( $_[0] ) { $size = shift @_; } else { $length = 8 * (length $message) + 30; if( $length < 100 ) { $length = 100; } } my $error_window; create_standard_window( $error_window, 250, 40, $length, 40, "$title" ); my $box1 = create_standard_vbox( 0 ); my $box2 = create_standard_hbox( 10, $box1, 1, 1, 0 ); create_standard_label( "$message" , $box2 ); if( defined $exit ) { create_standard_button( "OK" , $box2, 1, 1, 0, \&do_exit ); } else { create_standard_button( "OK" , $box2, 1, 1, 0, sub { $error_window->destroy(); }); } } sub format_device { my $type = pop @_; my $device = pop @_; my $format_window; create_standard_window( $format_window, 250, 40, 450, 90, "Format window" ); my $box1 = create_standard_vbox( 0 ); my $box2 = create_standard_hbox( 10, $box1, 1, 1, 0 ); create_standard_label( "WARNING: This operation will erase everything on this partition!!!!!" , $box2 ); $box2 = create_standard_hbox( 10, $box1, 1, 1, 0 ); create_standard_label( "Are you sure you wish to format /dev/$device?" , $box2 ); create_standard_button( "Cancel" , $box2, 1, 1, 0, sub { $format_window->destroy(); }); create_standard_button( "Format" , $box2, 1, 1, 0, sub { print "Should format $device of type $type\n"; system "xterm -bg white -fg black -e $type /dev/$device "; $format_window->destroy(); }); } sub destroy_window { my($widget, $windowref, $w2) = @_; $$windowref = undef; $w2 = undef if defined $w2; 0; } sub create_text_window { my($box1,$box2,$button,$separator,$table,$hscrollbar,$vscrollbar,$text); create_standard_window( $cngrat_window, $_[0], $_[1], $_[2], $_[3], $_[4] ) || return; $box1 = create_standard_vbox( 0 ); $box2 = create_standard_vbox( 10, $box1, 1, 1, 0 ); $table = new Gtk::Table(2,2,0); $table->set_row_spacing(0,2); $table->set_col_spacing(0,2); $box2->pack_start($table,1,1,0); $table->show; $text = new Gtk::Text(undef,undef); $table->attach_defaults($text, 0,1,0,1); show $text; $hscrollbar = new Gtk::HScrollbar($text->hadj); $table->attach($hscrollbar, 0, 1,1,2,[-expand,-fill],[-fill],0,0); $hscrollbar->show; $vscrollbar = new Gtk::VScrollbar($text->vadj); $table->attach($vscrollbar, 1, 2,0,1,[-fill],[-expand,-fill],0,0); $vscrollbar->show; $text->freeze; $text->realize; $text->insert(undef,$text->style->black,undef, $_[6] ); $text->thaw; $box2 = my_separator($box1); create_standard_button( $_[5] , $box2, 1, 1, 0, sub { $cngrat_window->destroy; }); } sub change_font { my( $StandardText, $FontSelector ); $StandardText = new Gtk::Text(undef,undef); $FontSelector = new Gtk::FontSelectionDialog "Font Selection Dialog"; my $newFont = $_[0]; if( ! defined $newFont ) { print "Setting font to lucida medium\n"; # $FontSelector->set_font_name( "-misc-fixed-medium-r-semicondensed-*-13-*-*-*-c-*-iso8859-8" ); # $FontSelector->set_font_name( "-b&h-lucida-medium-r-normal-sans-12-*-72-72-p-*-*-1" ); $FontSelector->set_font_name( "-b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-1" ); } else { print "Setting font to $newFont\n"; $FontSelector->set_font_name( $newFont ); } $CurrentFont = $FontSelector->get_font; # print "got font $CurrentFont\n"; $StandardText->style->font($CurrentFont); # print "set font to $CurrentFont\n"; } sub choose_language { my( $box1, $label, $language); create_standard_window( $language_window, 230, 20, -1, -1, $words{Choose_Language} ); $box1 = create_standard_vbox( 0 ); $label = create_standard_label( $words{Choose_Language} , $box1, 0, 0, 0 ); foreach $language ( "English" , "Italiano" , "Deutsch", "Portugues" ) { create_standard_button( $language , $box1, 1, 1, 0, sub { if( $language eq "Japanese" ) { change_font "-jis-fixed-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-0"; } else { change_font(); } print "Choose $language\n"; $ChangeLanguage = "TRUE"; make_word_hash( $language ); show_install_helper_window(); show_install_helper_window(); $language_window->destroy; undef $ChangeLanguage; } ); } create_standard_button( "Request for help" , $box1, 1, 1, 0, sub { create_text_window( 150, 20, 375, 200, "Request for Help", $words{Close}, $words{Request_for_Help}); } ); } sub make_word_hash { # Makes a hash of all the strings for a certain language my( $entry, $key, @stuff ); print "start make_word_hash\n"; if( -e "/usr/X11R6/lib/xinstaller/$_[0]" ) { open( WORDS , "/usr/X11R6/lib/xinstaller/$_[0]" ); } elsif ( -e "/root/bin/$_[0]" ) { open( WORDS , "/root/bin/$_[0]" ); } while( ) { chop $_; if( $_ eq "" ) { next; }; @stuff = split( / / , $_ ); if( defined $stuff[1] ) { $words{ $stuff[0] } = pop( @stuff ); next; } $entry = $_; undef $words{ $entry }; while( ) { chop $_; if( $_ eq "end" ) { chop $words{ $entry }; last; } $words{ $entry } .= "$_\n"; # print "$_\n"; } } close( WORDS ); # foreach $key ( keys( %words ) ) { print "$key\n"; } } #!/usr/bin/perl -w # xupgrade # Copylefted under the GPL by Jeff Carr # Much of this code was derived by Brian Bresen's xinstaller use Gtk; use Gtk::Atoms; use Gtk::Gdk; use strict; init Gtk; my $VERSION = "4.4.2"; my $VERSION_DATE = "Wed Dec 27 20:47:00 2000"; # This version was actually tested on my portable # In testing: # Implement --proxy # A graphical version # # Still todo: # Allow user to select which packages to upgrade # Add an option to override the interactive parts # Add recursive function to check requirements my %OPTIONS; $OPTIONS{ RPMARGS } = ""; my @values; while ( ) { my $arg = shift @ARGV; if( ! defined $arg ) { last; } if( $arg eq "" ) { last; } if( $arg eq "--help" ) { print_help(); } if( $arg eq "--fullnames" ) { $OPTIONS{ FULLNAME } = "TRUE"; next; } #This isn't implemented yet if( $arg eq "--duplicates" ) { $OPTIONS{ SHOWDUPLICATES } = "TRUE"; next; } if( $arg eq "--upgrade" ) { $OPTIONS{ UPGRADE } = "TRUE"; next; } if( $arg eq "--install" ) { $OPTIONS{ UPGRADE } = "TRUE"; next; } if( $arg eq "--ignore-kernel" ) { $OPTIONS{ IGNORE_KERNEL } = "TRUE"; next; } if( $arg eq "--obsolete" ) { $OPTIONS{ OBSOLETE } = "TRUE"; next; } if( $arg eq "--nodeps" ) { $OPTIONS{ RPMARGS } .= "--nodeps "; next; } if( $arg eq "--force" ) { $OPTIONS{ RPMARGS } .= "--force "; next; } if( $arg eq "--quiet" ) { $OPTIONS{ QUIET } = "TRUE"; next; } if( $arg eq "--debug" ) { $OPTIONS{ DEBUG } = "TRUE"; next; } if( $arg eq "--fixes" ) { $OPTIONS{ FIXES } = "TRUE"; next; } if( $arg eq "--proxy" ) { $OPTIONS{ PROXY } = shift @ARGV; next; } if( $arg eq "--proxy-port" ) { $OPTIONS{ PROXY_PORT } = shift @ARGV; next; } if( $arg eq "--save" ) { $OPTIONS{ SAVE } = "TRUE"; next; } if( $arg eq "--parent" ) { $OPTIONS{ PARENT } = shift @ARGV; next; } if( $arg eq "--path_to_root" ) { $OPTIONS{ PATH_TO_ROOT } = shift @ARGV; next; } if( $arg eq "--location" ) { $OPTIONS{ LOCATION } = shift @ARGV; next; } if( $arg eq "--paranoid" ) { $OPTIONS{ PARANOID } = "TRUE"; next; } if( $arg eq "--version" ) { print "upgrade.pl version: $VERSION from $VERSION_DATE\n"; exit; } if( substr( $arg, 0, 2 ) eq "--" ) { print_help(); } if( substr( $arg, 0, 1 ) eq "-" ) { print_help(); } push @values, $arg; } sub print_help { print "upgrade.pl version = $VERSION from $VERSION_DATE Usage: [Options] Options are: --path_to_root # directory to install into --location # path to the install files --install # Actually perform the upgrade --paranoid # Stop on every rpm script that exits abnormally --fullnames # prints the full filename of each new rpm --duplicates # will show you which packages you have more # than one installed version --obsolete # Will install all replacements for obsolete rpms # regardless of the obsolete rpms are installed --save # Save the location you selected --parent # this is the parent process... --proxy # --proxy our.firewall.host --proxy-port # --proxy-port 1342 --fixes # Run the various fixes and checks for a new install # or a system that has been upgraded # See the perform_final_upgrade_checks() function --ignore-kernel # Do not upgrade kernel rpms --quiet # Do not show any output --debug # Show lots of output For example: upgrade --install upgrade --debug upgrade --install --location http://ftp.linuxppc.org/linuxppc-stable/ xupgrade --path_to_root /mnt/new_install "; exit; } ###### end of subroutine print_help my $path_to_root = "/"; if( defined $values[0] ) { $path_to_root = shift @values; } if( defined $OPTIONS{ PATH_TO_ROOT } ) { $path_to_root = $OPTIONS{ PATH_TO_ROOT }; } my $location = ""; if( defined $values[0] ) { $location = shift @values; } if( defined $OPTIONS{ LOCATION } ) { $location = $OPTIONS{ LOCATION }; } my @install_script; my $SIZE; my $DONT_COMPUTE; # This used to toggle the use of the compute_disk() routine for speed reasons my %filelist; my %installed_rpms; my %upgrade; my %install_master; my %upgrade_master; my %dependancies; my %rpmlisttreeshown; my $in_method = "local"; #The way we will install my $ftp_url; #url to RedHat dir on a ftp site my %map; #The Install Map my %rpmlist; #The RPM List my %rpmlisttree; #A hash of the rpm list treeitems my %rpmlisttreereverse; #A hash of the rpm list treeitems my @rpmlistcurrent; #A List of the currently installed rpms my %sets; #A hash of the treeitems my %hdlistinfo; #The hdlistinfo my($is_upgrade) = 0; #0 for install, 1 for upgrade my($net_set) = 0; #State if we need net setup for NFS or FTP my $in_dir = "/tmp/install/"; #the dir with the install files in it my $out_dir = "/mnt/install/"; #the dir we will install to my %mount_fstab; #list of drives selected to install my @list_bases = (""); #list of package sets to install my $menu_window; #menu to choose steps to do my $entry_window; #extra entry windows i will use my $package_list; #list of packages to install my $packages_window; #choose each rpm individually my %drive_hash; #my drives for hash, or um my... my %net_devs; #my network devices my %my_widgets; #network setup widgets my $root_passwd; #hmmmm my $rpm_label; #what package is installing my $find_arch = "pmac"; #type of arch - pmac,prep or chrp my $prepboot; # PReP boot partition my %mke2_mount; #widgets values my $wget = "wget -c -t 4 "; #The wget command - add -q for quiet mode my $root_dev; my $testing = 0; #for future testing purposes # # %drive_hash - # %dev - (e.g. %hda %sda) # %p_no - (e.g. %1 %2 %16) # ( $type $name $length $base $size ) ##Step window global vars my $main_window; # Take a guess my $method_window; #Install/upgrade from where my $update_window; #update the installer itself my $drives_window; #Choose which drive my $pdisk_window; #partition disk ala druid my $pswap_window; #choose swap my $mount_window; #choose root partition and other my $comps_window; #choose packages to install my $passwd_window; #choose a root passwd my $net_window; #add a network device my $bootx_window; #get info on using bootx to boot linux my $cngrat_window; #get a pat on the back you made it my $language_window; my $ButtonPressed; #Set to the name of the last button clicked my $CurrentWindow; # The window currently being drawn in my %words; # hash of words for internationalization my $CurrentRoot; # What device to use in BootX my $ProgressBar; # The progress bar to update my $ProgressEntry; # The progress entrybox to update my $MasterCounter; # A global counter for number of packages to install my $MasterCounterDone; # A global counter for number of packages installed my $CheckDisk = "FALSE"; # A flag for checking diskspace my $ChangeLanguage = "FALSE"; #A flag for if you are changing the language my $CurrentFont; my $InstallButton; my $error_window; my $package_info; if( ! -e "$path_to_root/tmp" ) { system "mkdir $path_to_root/tmp"; } open STDOUT, ">$path_to_root/tmp/xupgrade.log"; open STDERR, ">>$path_to_root/tmp/xupgrade.log"; $OPTIONS{ USE_X } = "TRUE"; if( defined $OPTIONS{ UPGRADE } ) { $OPTIONS{ FULLNAME } = "TRUE"; } wget_check(); # Checks to see if you have wget scan_logfile( $path_to_root ); populate_installed_rpms_hash(); if( defined $OPTIONS{ FIXES } ) { perform_final_upgrade_checks( $OPTIONS{ LATEST_RPM } ); exit; } if( defined $OPTIONS{ LOCATION } ) { $location = $OPTIONS{ LOCATION }; } if( -e "/mnt/cdrom/software/package_info.gz" ) { $location = "/mnt/cdrom"; } if( $location eq "" ) { if( ! -e "/etc/SoftwareLocation" ) { my_print( "Prompting the user for the package location\n" ); system "/usr/X11R6/lib/xinstaller/select_package_location"; } if( -e "/etc/SoftwareLocation" ) { $location = `cat /etc/SoftwareLocation`; chomp $location; } } $package_info = "$location/maps/package_info.gz"; if( ! -f "$package_info" ) { $package_info = "$location/software/package_info.gz"; } if( ! -f "$package_info" ) { chdir "/tmp"; $package_info = "/tmp/package_info.gz"; unlink $package_info; my_print ( "Connecting to $location.... \n" ); wget_wrapper( "$location/maps/package_info.gz" ); if( ! -e $package_info ) { print "Could not find packages_info file !\n"; standard_error_window( "Could not find package_info file!", "You need to connect to a network or mount your install CD.", "End" ); main Gtk; } } my( $tmp1, $tmp2, $tmp3, $tmp4 ) = parse_package_info( "$package_info" ); %filelist = %$tmp1; %install_master = %$tmp2; %upgrade_master = %$tmp3; %dependancies = %$tmp4; #### Look through the installed rpms for new versions and put them in %upgrade foreach my $type ( sort keys %installed_rpms ) { my $buildtime = $installed_rpms{ $type }; # print "FOUND $type BUILT at $buildtime\n"; if( defined $filelist{ $type } ) { my ( $path, $temp, $new_buildtime, @stuff ) = split "\t", $filelist{ $type }; # print "$path, $new_buildtime, @stuff\n"; if( $new_buildtime > $buildtime ) { $upgrade{ $type } = "$path"; } } if( defined $upgrade_master{ $type } ) { push @install_script, "ERASE $type"; foreach my $type ( split " ", $upgrade_master{ $type } ) { my ( $path, $temp, $new_buildtime, @stuff ) = split "\t", $filelist{ $type }; if( defined $installed_rpms{ $type } ) { $buildtime = $installed_rpms{ $type }; } else { $buildtime = 0; # set to zero because no package of that type is installed } if( $new_buildtime > $buildtime ) { $upgrade{ $type } = "$path"; } } } } #### Check default sections from install.master file foreach my $key ( keys %install_master ) { my @temp = split " " , $key; my $default = pop @temp; if( $default eq "(default)" ) { # print "install_master key = $key\n"; foreach my $rpm ( split " ", $install_master{ $key } ) { if( ! defined $installed_rpms{ $rpm } ) { if( ! defined $filelist{ $rpm } ) { # print "\tRPM $rpm DOES NOT REALLY EXIST\n"; } else { # print "\tNEW RPM $rpm\n"; $upgrade{ $rpm } = ""; } } } } } my $kernel_arch = find_arch(); if( ! defined $installed_rpms{ $kernel_arch } ) { $upgrade{ $kernel_arch } = ""; } #### Switch out all obsolete rpms.... #### This will install all the new ones even if the old ones are not #### installed. This is not very usefull. if( defined $OPTIONS{ OBSOLETE } ) { foreach my $type ( sort keys %upgrade_master ) { foreach my $new ( split " ", $upgrade_master{ $type } ) { my ( $path, $temp, $new_buildtime, @stuff ) = split "\t", $filelist{ $new }; if( ! defined $installed_rpms{ $new } ) { $upgrade{ $new } = $path; } } } } ### Satisfy all dependancies foreach my $installed_rpm ( keys %installed_rpms ) { if( ! defined $dependancies{ $installed_rpm } ) { next; } my @new = find_new_required( split "\t", $dependancies{ $installed_rpm } ); if( $#new ne -1 ) { debug_print ( "CURRENT $installed_rpm REQUIRES @new\n" ); foreach my $temp ( @new ) { $upgrade{ $temp } = ""; } } } # This is redundant code to Satisfy depends foreach my $junk( 1, 2, 3 ) { foreach my $installed_rpm ( keys %upgrade ) { if( ! defined $dependancies{ $installed_rpm } ) { next; } my @new = find_new_required( split "\t", $dependancies{ $installed_rpm } ); if( $#new ne -1 ) { foreach my $temp ( @new ) { $upgrade{ $temp } = ""; } } } } if( defined $OPTIONS{ IGNORE_KERNEL } ) { delete $upgrade{ "kernel-source" }; delete $upgrade{ "kernel-headers" }; delete $upgrade{ "kernel-pmac" }; delete $upgrade{ "kernel-chrp" }; delete $upgrade{ "kernel-prep" }; } $ENV{PATH} = "$ENV{PATH}:/sbin:/usr/sbin"; #regular users dont have pdisk $find_arch = find_arch(); if ($find_arch eq "prep" ) { print "Looks like a PReP install\n"; } else { print "Not a PReP install\n"; } make_word_hash( "English" ); if( -e "/live/lib/" ) { system( "killall -9 xmessage >/dev/null 2>&1" ); } change_font(); show_packages_window(); $SIG{ USR1 } = \&got_user1; Gtk->timeout_add( 500, \&new_install_subroutine ); main Gtk; exit; sub got_user1 { print "Holy crap!\n"; select( undef, undef, undef, 0.5 ); update_progress( 0.5, "Holy crap!" ); } subhijklmnopqrstuvwxyz{|}~ reset_packages { my( $set, $key, $count ); my @list_items = @_; # print "Should do some kind of reset to the original selections\n"; $DONT_COMPUTE = "TRUE"; # This used to toggle the use of the check_diskspace() routine for speed reasons foreach $set ( @list_items ) { if( ! defined $sets{$set} ) { next; } $sets{$set}->deselect; } foreach $set ( @list_items ) { if( ! defined $sets{$set} ) { next; } my @set_name = split " ", $set; if( pop @set_name eq "(default)" ) { print "set @set_name is a default set\n"; $sets{$set}->select; } } #### Add arch my $kernel_rpm = "kernel-$find_arch"; print "Should select kernel rpm: $kernel_rpm\n"; if( defined $rpmlisttreereverse{$kernel_rpm} ) { print "Should select again $kernel_rpm\n"; $rpmlisttreereverse{ $kernel_rpm }->select; } $DONT_COMPUTE = "FALSE"; # This used to toggle the use of the check_diskspacek() routine for speed reasons check_diskspace(); } sub install_packages { if( ! defined $OPTIONS{ CONTINUE } ) { make_install_script(); } print "install script is now @install_script\n"; if( $#install_script eq -1 ) { my_print ( "There are no new packages. Your system is up to date.\n" ); return; } my $MB = $SIZE / ( 1024 * 1024 ); printf "\nTotal megabytes to install: %.2f\n", $MB; $OPTIONS{ INSTALL_NOW } = "TRUE"; $MasterCounter = $#install_script; } sub show_packages_window { my( $box1, $box2, $scrolled_win, $list, $leaf, $base_dir, $branch ); my( $set, $rpm, $tmp, @stuff, $size ); my( $count ) = 0; undef( %sets ); undef( %rpmlisttree ); %map = (); # Here we will read the base dir files my(@list_items) = split "\t", $install_master{ key_order }; print "items: @list_items\n"; create_standard_window( $packages_window, 240, 20, 550, 450, $words{Choose_Packages} ) || return; $packages_window->signal_connect("destroy" => \&do_exit); $box1 = create_standard_vbox( 0 ); $box2 = create_standard_hbox( 10 , $box1, 1, 1, 0 ); $scrolled_win = new Gtk::ScrolledWindow(undef, undef); $scrolled_win->set_policy(-automatic, -automatic); $box2->pack_start($scrolled_win, 1, 1, 0); $scrolled_win->show; $box2 = my_separator($box1); create_standard_button( $words{Install} , $box2, 1, 1, 0, \&install_packages ); create_standard_button( $words{Reset} , $box2, 1, 1, 0, [ \&reset_packages , @list_items ]); create_standard_button( $words{Close} , $box2, 1, 1, 0, sub { $packages_window->destroy; }); $box2 = create_standard_hbox( 4 , $box1, 0, 1, 0 ); my ( $force_button, $script_failures_button, $depends_button ); $force_button = create_standard_checkbutton( "Force Install" , $box2, 1, 1, 0, sub { if ( $force_button->active() ) { print "Should force\n"; $OPTIONS{ FORCE } = "TRUE"; } else { print "Should not force\n"; delete $OPTIONS{ FORCE }; } }); $OPTIONS{ FORCE } = "TRUE"; $force_button->set_active( 1 ); $script_failures_button = create_standard_checkbutton( "Alert on Script Failures" , $box2, 1, 1, 0, sub { if ( $script_failures_button->active() ) { $OPTIONS{ IGNORE_SCRIPTS } = "TRUE"; } else { delete $OPTIONS{ IGNORE_SCRIPTS }; } }); $script_failures_button->set_active( 0 ); $depends_button = create_standard_checkbutton( "Ignore Dependencies" , $box2, 1, 1, 0, sub { if ( $depends_button->active() ) { $OPTIONS{ NODEPS } = "TRUE"; } else { delete $OPTIONS{ NODEPS }; } }); $OPTIONS{ NODEPS } = "TRUE"; $depends_button->set_active( 1 ); $box2 = create_standard_hbox( 4 , $box1, 0, 1, 0 ); $ProgressBar = new Gtk::ProgressBar; $ProgressBar->set_usize(350,20); $box2->pack_start($ProgressBar,1,1,0); $ProgressBar->show; $box2 = create_standard_hbox( 4 , $box1, 0, 1, 0 ); $ProgressEntry = new Gtk::Entry; $ProgressEntry->set_usize(0, 20); $ProgressEntry->set_text(""); $box2->pack_start($ProgressEntry, 1, 1, 0); $ProgressEntry->show; # my $TestEntry = new Gtk::Entry; # $TestEntry->set_usize(0, 20); # $TestEntry->set_text(""); # $box2->pack_start($TestEntry, 1, 1, 0); # $TestEntry->show; $list = new Gtk::Tree(); $list->set_selection_mode(-multiple); $scrolled_win->add_with_viewport($list); $list->show; foreach $set ( @list_items ) { $sets{$set} = new Gtk::TreeItem( $set ); $list->add($sets{$set}); $sets{$set}->signal_connect('select', \&selected ); $sets{$set}->signal_connect('deselect', \&deselected ); $sets{$set}->show; $branch = new Gtk::Tree(); $sets{$set}->set_subtree($branch); my $count_treeitems = 0; foreach my $type ( sort split "\t", $install_master{ $set } ) { if( ! defined $filelist{ $type } ) { next; } if( exists $rpmlisttreereverse{$type} ) { debug_print( "Already added $type to tree\n" ); next; } my @fields = split "\t", $filelist{ $type }; my $size = sprintf( "%.2f", $fields[5] / ( 1024 * 1024 ) ); if( defined $installed_rpms{ $type } ) { debug_print( "You already have installed $type $installed_rpms{ $type } vs $fields[2]\n" ); if( $installed_rpms{ $type } ge $fields[2] ) { next; } } $tmp = "$type -- $size MB -- $fields[6]"; $leaf = new Gtk::TreeItem( $tmp ); $branch->add($leaf); $leaf->show; $rpmlisttree{$leaf} = $type; $rpmlisttreereverse{$type} = $leaf; $leaf->signal_connect('select', \&selected ); $leaf->signal_connect('deselect', \&deselected ); ++$count_treeitems; } if( $count_treeitems eq 0 ) { my_print( "There ARE NOT any items for branch $set\n" ); $sets{$set}->hide; delete $sets{ $set }; } ++$count; } if( defined $OPTIONS{ PARENT } ) { system "kill -s USR1 $OPTIONS{ PARENT }"; } reset_packages ( @list_items ); } sub expanded { return; my $found; if( defined $rpmlisttreeshown{$_[0]} ) { return; } print "Expanding $_[0] for the first time\n"; $rpmlisttreeshown{ $_[0] } = "TRUE"; foreach my $key ( keys( %sets ) ) { if( $_[0] eq $sets{$key} ) { $found = $key; } } print "should expand $found\n"; foreach my $type ( sort split "\t", $install_master{ $found } ) { if( defined $rpmlisttreereverse{$type} ) { $rpmlisttreereverse{$type}->show; } } } sub selected { my ($key, $key2, @selected, $type); if( defined $rpmlisttree{ $_[0] } ) { $type = $rpmlisttree{ $_[0] }; $upgrade{ $type } = ""; if( exists $dependancies{ $type } ) { foreach my $file ( split "\t", $dependancies{ $type } ) { if( defined $upgrade{ $file } ) { next; } if( ! defined $filelist{ $file } ) { next; } # print( "\t$type also depends on $file\n" ); if( defined $rpmlisttreereverse{$file} ) { # print "\tTrying to run select on leaf: $file\n"; $rpmlisttreereverse{$file}->select; } } } } else { debug_print( "entered selected tree()\n" ); ## In this case, the item is a branch not a leaf $DONT_COMPUTE = "TRUE"; foreach $key ( keys( %sets ) ) { if( $_[0] eq $sets{$key} ) { # print "\tselect $key\n"; foreach my $type ( sort split "\t", $install_master{ $key } ) { if( defined $rpmlisttreereverse{$type} ) { $rpmlisttreereverse{$type}->select; } } last; } } $DONT_COMPUTE = "FALSE"; debug_print( "finished selected\n" ); } if( $DONT_COMPUTE eq "TRUE" ) { return; } check_diskspace(); } sub deselected { my ($key, $key2); if( defined $rpmlisttree{ $_[0] } ) { debug_print( "deselected $rpmlisttree{ $_[0] }\n" ); delete $upgrade{ $rpmlisttree{ $_[0] } }; } else { ## In this case, the item is a branch not a leaf $DONT_COMPUTE = "TRUE"; foreach my $key ( keys( %sets ) ) { if( $_[0] eq $sets{$key} ) { if( ! defined $install_master{ $key } ) { next; } # print "deselect $key\n"; foreach my $type ( sort split "\t", $install_master{ $key } ) { # print "\t in deselect foreach loop $key for $type\n"; if( defined $rpmlisttreereverse{$type} ) { $rpmlisttreereverse{$type}->deselect; } # print "\t in deselect foreach loop $key for $type ... done\n"; } # print "finished deselect $key\n"; } } $DONT_COMPUTE = "FALSE"; } if( $DONT_COMPUTE eq "TRUE" ) { return; } check_diskspace(); } ### This routine is still broken sub check_diskspace { my $number = 0; my $size = 0; foreach my $type (keys %upgrade ) { if( ! defined $filelist{ $type } ) { next; } my @stuff = split "\t" , $filelist{ $type }; if( defined $installed_rpms{ $type } ) { ### print "You have already installed $type\n"; if( $installed_rpms{ $type } ge $stuff[2] ) { ### Do not delete the type from %upgrade ### It needs to be there so it doesn't recursive loop ### delete $upgrade{ $type }; next; } } $size += $stuff[5]; ++$number; } $size = $size / ( 1024 * 1024 ); my $current_number = keys %installed_rpms; my $string = sprintf "$number packages: for %.2f MBytes. $current_number packages already installed.", $size; # $string .= " 5 new packages, 1 package to upgrade."; debug_print( "$string\n" ); $ProgressEntry->set_text( $string ); } sub update_progress { my $value = shift @_; my $text = join " ", @_; if( $value gt 1 ) { $value = 1; } if( $value lt 0 ) { $value = 0; } $ProgressBar->update( $value ); $ProgressBar->hide; $ProgressBar->show; if( ! defined $text ) { $text = "Done"; } if( $text eq "" ) { $text = "Done"; } $ProgressEntry->set_text( $text ); $ProgressEntry->hide; $ProgressEntry->show; while (Gtk::Gdk->events_pending() ) { Gtk->main_iteration(); } } sub find_file { #Just a simple routine that looks around for a filename my ( $path, $newfilename); my $file = $_[0]; #print "Trying to find file $file\n"; foreach $path ( "$in_dir", "$in_dir/software/RedHat/base", "$in_dir/software/RedHat/RPMS", "$in_dir/RedHat/RPMS", "$out_dir/tmp/", "$in_dir/software/RedHat/maps" , "$in_dir/RPMS/" , "$in_dir/software" , "$in_dir/maps/" , "/home/new" , "/mnt/cdrom/maps", "/tmp/install/software" ) { # print "\tTesting $path/$file\n"; if ( -e "$path/$file" ) { print "FOUND $path/$file!\n"; return "$path/$file"; } $newfilename = substr( $file, 0, 31 ); if ( -e "$path/$newfilename" ) { print "FOUND $path/$newfilename!\n"; return "$path/$newfilename"; } $newfilename = substr( $file, 0, 27 ) . ".rpm"; if ( -e "$path/$newfilename" ) { print "FOUND $path/$newfilename!\n"; return "$path/$newfilename"; } $newfilename = substr( $file, 0, 23 ) . ".ppc.rpm"; if ( -e "$path/$newfilename" ) { print "FOUND $path/$newfilename!\n"; return "$path/$newfilename"; } $newfilename = substr( $file, 0, 20 ) . ".noarch.rpm"; if ( -e "$path/$newfilename" ) { print "FOUND $path/$newfilename!\n"; return "$path/$newfilename"; } } print "Can not find $file\n"; return $file; } sub do_exit { print "Done!\n"; if( defined $OPTIONS{ EXIT_WINDOW } ) { return; } if( defined $OPTIONS{ PARENT } ) { system "touch /tmp/install_finished"; system "kill -s USR1 $OPTIONS{ PARENT }"; } Gtk->exit(0); } sub upgrade_type { # upgrade a rpm of a certian type my ( $path_to_root, $type, @rpm_args ) = @_; my ( $path, $temp, $new_buildtime, @stuff ) = split "\t", $filelist{ $type }; ### This rpm is not installed already. Just install from scratch if( ! defined $installed_rpms{ $type } ) { return install_type( $path_to_root, $type, @rpm_args ); } # First check to see if duplicate rpm types are already installed my_print( "Upgrading new $type: $path\n" ); my @files = split "\n", `rpm -q --root $path_to_root $type --queryformat=\"%{NAME}-%{VERSION}-%{RELEASE}\n\" `; if( $#files ne 0 ) { ### This means that duplicate RPMS are already installed ### We will remove all the older ones erase_type( $path_to_root, $type, $new_buildtime ); } my $return = install_rpm( $path_to_root, "$location/software/$path", "-U --nodeps --force" ); if( $#files ne 0 ) { ### Probably this has left two different rpms of the same type ### We will remove all the older ones erase_type( $path_to_root, $type, $new_buildtime ); } ## if return == 1 it could mean it failed to make a symlink ## if return == 512 it could mean it ran out of disk space if( $return ne 0 ) { @files = split " ", `rpm -q --root $path_to_root $type --queryformat=\"%{NAME}-%{VERSION}-%{RELEASE} \" `; if( $#files ne 0 ) { my_print( "Should erase @files here $new_buildtime\n" ); erase_type( $path_to_root, $type, $new_buildtime ); } if( $OPTIONS{ PARANOID } eq "TRUE" ) { my_print( " Something went wrong upgrading $path. rpm returned $return If it was only a post install script failure, then just remove one of the rpms. Check the error above. Press to continue. \n"); ; } } @files = split " ", `rpm -q --root $path_to_root $type --queryformat=\"%{NAME}-%{VERSION}-%{RELEASE} \" `; if( $#files eq -1 ) { my_print( "\n"); my_print( "The package: path\n"); my_print( "did not install.\n"); my_print( "press to continue\n"); ; } } sub erase_type { # Erase a RPM of a certain type my( $path_to_root, $type, $new_build_date ) = @_; if( ! defined $new_build_date ) { $new_build_date = 0; } my @files = split "\n", `rpm -q --root $path_to_root $type --queryformat=\"%{NAME}-%{VERSION}-%{RELEASE}\t%{BUILDTIME}\n\" `; foreach my $line ( @files ) { my( $rpm, $build_date ) = split "\t", $line; if( defined $build_date ) { if( $new_build_date ne $build_date ) { my_print( "rpm -e $rpm --nodeps --root $path_to_root\n" ); system "rpm -e $rpm --nodeps --root $path_to_root\n"; } } else { my_print( "rpm -e $rpm --nodeps --root $path_to_root\n"); system "rpm -e $rpm --nodeps --root $path_to_root\n"; } } @files = split "\n", `rpm -q --root $path_to_root $type --queryformat=\"%{NAME}-%{VERSION}-%{RELEASE}\t%{BUILDTIME}\n\" `; if( $#files eq -1 ) { ## Succesfully erased all the verions of $type return 1; } if( $new_build_date ne 0 ) { ## This means that there should be 1 rpm still installed but all ## other versions should have been erased if( $#files eq 1 ) { return 1; } } my_print( "COULD NOT ERASE @files\n"); return 0; } sub install_type { # Install a RPM type that was not installed already my ( $path_to_root, $type, @rpm_args ) = @_; my ( $path, $temp, $new_buildtime, @stuff ) = split "\t", $filelist{ $type }; my_print( "Installing new $type: $path\n"); if( defined $installed_rpms{ $type } ) { my_print( "$type already installed\n"); my_print( "upgrade_type() should probably be called here instead\n"); return -1; } return install_rpm( $path_to_root, "$location/software/$path", "-hvi @rpm_args" ); } sub find_new_required { # Figure out which RPMS might have requirements that are not being met my @req_rpms = @_; my @new; foreach my $req_rpm ( @req_rpms ) { my $Already_Installed = "FALSE"; foreach my $split_test ( split " ", $req_rpm ) { if( defined $installed_rpms{ $split_test } ) { $Already_Installed = "TRUE"; } if( defined $upgrade{ $split_test } ) { $Already_Installed = "TRUE"; } } if( $Already_Installed eq "FALSE" ) { push @new, $req_rpm; } } return @new; } sub setRunlevel { # set default run level my ($path_to_root, $runlevel ) = @_; open (INITTAB, "$path_to_root/etc/inittab"); my @wholeFile = ; close (INITTAB); open (INITTAB, ">$path_to_root/etc/inittab"); for my $myLine (@wholeFile) { if (($myLine =~ /^id/) && ($myLine =~ /initdefault:$/)) { print INITTAB "id:$runlevel:initdefault:\n" } else { print INITTAB $myLine; } } close (INITTAB); } sub wget_wrapper { # This gets a file using wget my( $file )= @_; # print "Proxy users need to set the proxy and the port i.e. --proxy route.electric.pri:3128\n"; my $proxy = ""; if( defined $OPTIONS{ PROXY } ) { $proxy = " --proxy $OPTIONS{ PROXY }"; if( defined $OPTIONS{ PROXY_PORT } ) { $proxy .= ":$OPTIONS{ PROXY_PORT }"; } } system "wget --quiet $proxy $file"; } sub wget_check( ) { # this checks to see if wget exists my $returned = system "which wget 1>/dev/null 2>/dev/null"; # $stuff = $returned / 256; # print "whereis wget returned $returned $stuff\n"; if( $returned ne 0 ) { print "\n"; print "This script requires wget which does not seem to be installed.\n"; print "Please install wget and restart the script\n"; print "\n"; } } sub write_logfile { # This writes out the /var/lib/rpm/upgrade_script_log file open INSTALL_LOG, ">$path_to_root/var/lib/rpm/upgrade_script_log"; print INSTALL_LOG "UPGRADE_VERSION = $VERSION\n"; my $date = time(); print INSTALL_LOG "LAST_RUN_ON = $date\n"; print INSTALL_LOG "LAST_PACKAGE_INFO_DATE = $OPTIONS{ PACKAGE_INFO_DATE }\n"; close INSTALL_LOG; } sub scan_logfile { # This examines the upgrade_script_log for information about previous installs my $path_to_root = $_[0]; if( ! -e "$path_to_root/var/lib/rpm/upgrade_script_log" ) { return; } foreach my $line ( `cat $path_to_root/var/lib/rpm/upgrade_script_log` ) { chomp $line; my ( $key, $value ) = split /=/ , $line; debug_print( "$key, $value\n"); $key =~ s/ //g; if( $key eq "LAST_RUN_ON" ) { debug_print( "FOUND $key, $value\n"); $OPTIONS{ LAST_RUN_ON } = $value; } } } sub clean_path { my $name = $_[0]; my @path = split /\//, $name; $name = ""; foreach my $piece ( @path ) { if( $piece eq "" ) { next; } $name .= "/$piece"; } if( substr( $name, 0, 1 ) ne "/" ) { $name = "/" . $name; } return $name; } sub make_fstab { # Write out fstab( this might be safe to call everytime ) my ($path_to_root ) = clean_path( @_ ); my $length; my($file_name) = "$path_to_root/etc/fstab"; if( -e $file_name ) { return; } open (FSTAB,">$file_name"); my $counter = 1; foreach my $line ( `mount` ) { chomp $line; my ( $device, $junk, $path, $junk1, $type, @fields ) = split " ", $line; if( $type eq "proc" ) { next; } if( $type eq "devpts" ) { next; } $length = length $path_to_root; if( $path_to_root ne substr( $path, 0, $length ) ) { next; } $path = substr( $path, $length ); $path =~ s/\/$//g ; if( substr( $path, 0, 1 ) ne "\/" ) { $path = "/" . $path; } $length = 25 - length $device; for my $count ( 1 ... $length ) { $device .= " "; } $length = 20 - length $path; for my $count ( 1 ... $length ) { $path .= " "; } $length = 6 - length $type; for my $count ( 1 ... $length ) { $type .= " "; } print FSTAB "$device $path $type defaults 1 $counter\n"; ++$counter; } foreach my $line ( `cat /proc/swaps` ) { chomp $line; my ( $device, @fields ) = split " ", $line; if( $device eq "Filename" ) { next; } my $swapline = pack "A25", "$device"; print FSTAB "$swapline swap swap defaults 0 0\n"; } print FSTAB "/dev/fd0 /mnt/floppy auto noauto 0 0\n"; print FSTAB "/dev/cdrom /mnt/cdrom auto noauto 0 0\n"; print FSTAB "none /proc proc defaults 0 0\n"; print FSTAB "none /dev/pts devpts gid=5\,mode=620 0 0\n"; close(FSTAB); } sub my_system { # system wrapper to show what system is calling print "RUNNING @_ \n"; system "@_"; } sub my_print { # printf wrapper which you can turn off with --quiet if( defined $OPTIONS{ QUIET } ) { return; } print @_; } sub debug_print { # printf wrapper for debugging. turn on with --debug if( ! defined $OPTIONS{ DEBUG } ) { return; } print @_; } sub make_filelist_hash { # parse the filelist and make a hash of the keys my( %known_path, %known_name, %known_type ); my ($filelist, $no_check) = @_; # if( ! -e "$filelist" ) { die "Could not find packages !"; } foreach my $line ( split "\n", $filelist ) { chomp $line; my ( $path, @fields ) = split "\t" , $line; my $type = $fields[0]; if( $fields[4] eq "" ) { next; } if( -e $location ) { if( ! -e "$location/software/$path" ) { debug_print( "MISSING FILE $path\n" ); next; } } my @wholepath = split "\/" , $path; my $name = pop @wholepath; $known_name{ $name } = $type; $known_path{ $path } = join "\t" , @fields; $known_type{ $type } = "$path\t" . join "\t", @fields; } return( \%known_type ); } sub make_upgrade_hash { # parse the upgrade_master file and make a hash of the keys my( %update ); my ($update_master, $no_check) = @_; foreach my $line ( split "\n", $update_master ) { chomp $line; my ( $type, @new_types ) = split "\t" , $line; $update{ $type } = join "\t", @new_types; } return( \%update ); } sub make_install_hash { #parse the install_master file and make a hash of the keys my( %install ); my ($install_master, $no_check) = @_; my @key_order; foreach my $line ( split "\n", $install_master ) { chomp $line; if( $line eq "" ) { next; } my ( $type, $rpms ) = split ":" , $line; my ( @new_types ) = split " " , $rpms; $install{ $type } = join "\t", @new_types; push @key_order, $type; } $install{ key_order } = join "\t", @key_order, "unsorted"; return( \%install ); } sub parse_package_info( ) { # The package_info file has the filelist, install_master, etc. in it my $filename = $_[0]; my %package; if( ! -f $filename ) { print "Could not find package information\n"; exit; } open INFO, "zcat $filename|"; while( ) { chomp $_; if( ! substr( $_, 0, 1 ) eq "<" ) { next; } if( ! ">" eq chop $_ ) { next; } my $tag = substr( $_, 1 ); my $uc_tag = uc $tag; # print "FOUND $tag\n"; while( ) { chomp $_; if( $_ eq "" ) { last; } $package{ $uc_tag } .= "$_\n"; } # print "GOT $_"; } close INFO; my $filelist = make_filelist_hash( $package{ "FILELIST" }, "NOCHECK" ); delete $package{ "FILELIST" }; my $upgrade_master = make_upgrade_hash( $package{ "UPGRADE.MASTER" } ); delete $package{ "UPGRADE.MASTER" }; my $install_master = make_install_hash( $package{ "INSTALL.MASTER" } ); delete $package{ "INSTALL.MASTER" }; my %test = %$install_master; $test{ "order" } = $package{ "ORDER.MASTER" }; delete $package{ "ORDER.MASTER" }; $test{ "unsorted" } = $package{ "UNSORTED" }; delete $package{ "UNSORTED" }; my %dependancies; foreach my $line ( split "\n", $package{ "DEPENDANCIES" } ) { my( $key, @deps ) = split "\t", $line; $dependancies{ $key } = join "\t", @deps; } delete $package{ "DEPENDANCIES" }; delete $package{ "MD5" }; chomp $package{ "DATE" }; $OPTIONS{ PACKAGE_INFO_DATE } = $package{ "DATE" }; delete $package{ "DATE" }; foreach my $key ( sort keys %package ) { print "Ignored $key\n"; } return $filelist, \%test, $upgrade_master, \%dependancies; } sub perform_final_upgrade_checks { # Do some checks on the filesystem to see if important files are there my $last_update = $_[0]; chdir $path_to_root; if( $last_update gt 974826565 ) { my_print "Already did the standard updates\n"; perform_safe_checks (); return; } else { my_print "About to do specific fixes\n"; } if( defined $OPTIONS{ USE_X } ) { setRunlevel( $path_to_root, "5" ); } else { setRunlevel( $path_to_root, "3" ); } ### Setup the keyboard open KEYBOARD, ">etc/sysconfig/keyboard"; print KEYBOARD "KEYTABLE=\"us\"\n"; print KEYBOARD "KEYBOARDTYPE=\"pc\"\n"; close KEYBOARD; if( -e "etc/sysconfig/keymap" ) { unlink "etc/sysconfig/keymap"; } if( -e "etc/sysconfig/console/default.kmap" ) { unlink "etc/sysconfig/console/default.kmap"; } ### Setup the mouse open MOUSE, ">etc/sysconfig/mouse"; print MOUSE "MOUSETYPE=imps2\n"; print MOUSE "XMOUSETYPE=IMPS/2\n"; print MOUSE "FULLNAME=\"Universal Serial Bus 1 Button Mouse (USB)\"\n"; print MOUSE "XEMU3=yes\n"; close MOUSE; if( ! -e "etc/profile.d/linuxppc.sh" ) { open BASH, ">etc/profile.d/linuxppc.sh"; print BASH "alias lf=\"ls -aCF\"\n"; print BASH "alias pa=\"ps axuw\"\n"; print BASH "PATH=/sbin:/usr/sbin:\$PATH\n"; close BASH; } system "chmod +x etc/profile.d/linuxppc.sh"; ### Setup Frame Buffer X my @stuff = split "/", readlink "etc/X11/X" ; my $X_type = pop @stuff; if( ( $X_type ne "XF68_FBDEV" ) || ( $X_type ne "XFree" ) ) { if( -e "usr/X11R6/bin/XF68_FBDev" ) { print "Symlinking /etc/X11/X to XF68_FBDev\n"; system "ln -sf /usr/X11R6/bin/XF68_FBDev etc/X11/X"; } if( -e "etc/X11/XF86Config" ) { system "mv etc/X11/XF86Config etc/X11/XF86Config.upgrade_backup$$"; } } ### Rename and check for sound alias in modules.conf my (@lines, $SOUND); if( -e "etc/modules.conf" ) { @lines = split "\n", `cat etc/modules.conf`; } open MODULES, ">etc/modules.conf"; foreach my $line ( @lines ) { $line =~ s/\t/ /g ; $line =~ s/ / /g ; my( $alias, $name, $module ) = split " ", $line; if( $name eq "sound" ) { $SOUND = "TRUE"; } print MODULES "$line\n"; } if( ! defined $SOUND ) { print MODULES "alias sound dmasound\n"; } close MODULES; system "chroot $path_to_root chkconfig Xautoconfig --level 5 on"; perform_safe_checks (); } #### Everything in this routine should be safe to run at any time #### This routine just checks to see if various files that are required #### for a normal running system actually exist. #### If something does not, it creates them. sub perform_safe_checks { #Do safe filesystem checks( this is run everytime ) #### First peform and fixes to packages.... perform_fixes_to_packages (); chdir $path_to_root; if( ! -e "etc/X11/XF86Config" ) { system "chroot $path_to_root /usr/X11R6/bin/Xautoconfig3"; } if( ! -e "etc/sysconfig/desktop" ) { system "echo GNOME > etc/sysconfig/desktop"; } ### Write out /etc/fstab make_fstab( $path_to_root ); ### Make sure /etc/passwd gets set if( ! -e "etc/shadow" ) { system "chroot $path_to_root /usr/sbin/pwconv"; } ### Make aliases in /etc/modules.conf if( -e "etc/conf.modules" ) { system "mv etc/conf.modules etc/modules.conf"; } ### Create networking files if they don't exist if( ! -e "etc/hosts" ) { system "echo 127.0.0.1 localhost > etc/hosts"; } if( ! -e "etc/resolv.conf" ) { system "echo namserver 127.0.0.1 > etc/resolv.conf"; } if( ! -e "etc/sysconfig/network" ) { system "echo NETWORKING=yes > etc/sysconfig/network"; system "echo HOSTNAME=localhost >> etc/sysconfig/network"; system "echo DOMAINNAME=localdomain >> etc/sysconfig/network"; } system "touch etc/sysconfig/i18n"; ### Setup the keyboard if( ! -e "etc/sysconfig/keyboard" ) { open KEYBOARD, ">etc/sysconfig/keyboard"; print KEYBOARD "KEYTABLE=\"us\"\n"; print KEYBOARD "KEYBOARDTYPE=\"pc\"\n"; close KEYBOARD; } ### Setup the mouse if( ! -e "etc/sysconfig/mouse" ) { open MOUSE, ">etc/sysconfig/mouse"; print MOUSE "MOUSETYPE=imps2\n"; print MOUSE "XMOUSETYPE=IMPS/2\n"; print MOUSE "FULLNAME=\"Universal Serial Bus 1 Button Mouse (USB)\"\n"; print MOUSE "XEMU3=yes\n"; close MOUSE; } if( ! -e "etc/X11/X" ) { if( -e "usr/X11R6/bin/XF68_FBDev" ) { print "Symlinking /etc/X11/X to XF68_FBDev\n"; system "ln -sf /usr/X11R6/bin/XF68_FBDev etc/X11/X"; } elsif( -e "usr/X11R6/bin/XFree" ) { print "Symlinking /etc/X11/X to XFree\n"; system "ln -sf /usr/X11R6/bin/XFree etc/X11/X"; } } if( $path_to_root ne "/" ) { my @path = split "/", readlink "/etc/X11/X"; my $xserver = pop @path; if( $xserver eq "Xpmac" ) { if( -e "usr/X11R6/bin/$xserver" ) { print "Symlinking /etc/X11/X to $xserver\n"; system "ln -sf /usr/X11R6/bin/$xserver etc/X11/X"; } } } make_cdrom_links(); } # This function should be empty. But, sometimes there are problems that # unavoidably occur. As a temporary solution, things can be fixed here #### THIS ROUTINE SHOULD BE ASSUMED TO BE SAFE TO RUN AT ANYTIME !!!! sub perform_fixes_to_packages { # This routine fixes problems with packages ### Fix for bzip2 & gnome-core ### gnome-help-browser( and a few other apps ) need libbz.so.0 ### If that library isn't there, just create a link for it debug_print "entering performing_fixes_now()\n"; if( ! -e "$path_to_root/usr/lib/libbz2.so.0" ) { chdir "$path_to_root/usr/lib"; system "ln -s libbz2.so.1 libbz2.so.0"; } } # system "cp -a /live/fixes/inetd.conf $out_dir/etc/"; # system "cp -a /live/fixes/inittab $out_dir/etc/"; # system "cp -a /live/fixes/rc.sysinit $out_dir/etc/rc.d/"; # system "cp -a /live/fixes/redhat.links $out_dir/usr/lib/desktop-links/"; # system "cp -a /live/fixes/default-page.html $out_dir/usr/share/gnome/help/help-browser/C/"; # # gdm fixes # system "chroot $out_dir /usr/sbin/useradd -u 42 -r gdm > /dev/null"; # system "mkdir $out_dir/var/gdm"; # system "chroot $out_dir chown gdm:gdm /var/gdm"; # system "ln -sf /dev/null $out_dir/var/gdm/\:0.log"; #### These routines just find CDROMS and make the links in /dev/ sub make_cdrom_links { my %drives; my $drive; chdir "$path_to_root/dev/"; if( -e "cdrom" ) { return; } foreach my $line ( `cat /proc/partitions` ) { chomp $line; my ( $minor, $major, $size, $device ) = split " ", $line; if( ! defined $device ) { next; } if( $device eq "name" ) { next; } if( $device eq "" ) { next; } $drive = substr $device, 0, 3; # print "drive = $drive device is $device\n"; if( defined $drives{ $drive } ) { $drives{ $drive } = "NOT_CDROM"; } else { $drives{ $drive } = "CDROM"; } } foreach $drive ( sort keys %drives ) { if( $drives{ $drive } eq "CDROM" ) { print "drive $drive is a CDROM\n"; system "ln -sf $drive cdrom"; return; } else { print "drive $drive is a hard drive\n"; } } system "ln -sf scd0 cdrom"; chdir "$path_to_root"; } sub find_arch { # Try to determine which kernel version to use( pmac, prep, chrp ) if( -e "/proc/device-tree/AAPL,ROM" ) { return "pmac"; } if( -e "/proc/device-tree/aliases/" ) { return "pmac"; } if( -e "/proc/cpuinfo" ) { my @cpuinfo = split "PREP ", uc `cat /proc/cpuinfo |grep machine`; if( $#cpuinfo > 0 ) { return "prep"; } } my_print( "Could not determine arch. Using pmac.\n" ); return "pmac"; } sub populate_installed_rpms_hash { if( ! -e "$path_to_root/var/lib/rpm" ) { system "mkdir -p $path_to_root/var/lib/rpm"; } if( ! -e "$path_to_root/tmp" ) { system "mkdir -p $path_to_root/tmp"; } if( ! -e "$path_to_root/var/tmp" ) { system "mkdir -p $path_to_root/var/tmp"; } ## Check rpms' that have more than one version installed (--duplicates ) if( -e "$path_to_root/var/lib/rpm/packages.rpm" ) { debug_print( "About to scan $path_to_root/var/lib/rpm/packages.rpm\n" ); foreach my $line ( `rpm -qa --root $path_to_root --queryformat=\"%{NAME}\t%{BUILDTIME}\n\"` ) { chomp $line; my( $type, $buildtime ) = split "\t", $line; if( defined $installed_rpms{ $type } ) { if( defined $OPTIONS{ SHOWDUPLICATES } ) { my_print ( "Duplicate $type built $buildtime\n" ); } } debug_print ( "You have type: $type installed. Built $buildtime\n" ); $installed_rpms{ $type } = $buildtime; } } if( defined $installed_rpms{ "linuxppc-release" } ) { $OPTIONS{ LATEST_RPM } = $installed_rpms{ "linuxppc-release" }; my $date_string = gmtime( $OPTIONS{ LATEST_RPM } ); my_print ( "The current release file is dated: $date_string\n" ); if( defined $OPTIONS{ LAST_RUN_ON } ) { $date_string = gmtime( $OPTIONS{ LAST_RUN_ON } ); my_print ( "The packages are current up to: $date_string\n" ); } } else { $OPTIONS{ LATEST_RPM } = -1; } } sub make_install_script { @install_script = ""; $SIZE = 0; #### Put the rpms into the install_script in the order in which they should be installed foreach my $line ( split "\n", $install_master{ "order" } ) { my( $type, @args ) = split " ", $line; if( defined $upgrade{ $type } ) { if( ! defined $filelist{ $type } ) { next; } if( defined $upgrade_master{ $type } ) { next; } my( @junk ) = split "\t", $filelist{ $type }; $SIZE += $junk[5]; push @install_script, "INSTALL $type @args"; delete $upgrade{ $type }; } } #### Just do the rest in alphabetical order is fine foreach my $type ( sort keys %upgrade ) { if( ! defined $filelist{ $type } ) { next; } if( defined $upgrade_master{ $type } ) { next; } my( @junk ) = split "\t", $filelist{ $type }; $SIZE += $junk[5]; push @install_script, "INSTALL $type"; } } sub install_rpm { # installs/upgrades a RPM - this function is a wrapper around rpm my ( $path_to_root, $location, $rpm_args ) = @_; my $proxy = ""; if( defined $OPTIONS{ PROXY } ) { my @proxy_args = split " ", $OPTIONS{ PROXY }; $proxy = " --httpproxy $proxy_args[0] --httpport $proxy_args[1] "; } if( defined $OPTIONS{ FORCE } ) { $rpm_args .= " --force"; } if( defined $OPTIONS{ NODEPS } ) { $rpm_args .= " --nodeps"; } if( defined $OPTIONS{ RPMARGS } ) { $rpm_args .= " $OPTIONS{ RPMARGS } "; } my_print "rpm $rpm_args $proxy --root $path_to_root $location\n"; return system "rpm $rpm_args $proxy --root $path_to_root $location"; } sub new_install_subroutine { debug_print( "Checking if I should install\n" ); if( ! defined $OPTIONS{ INSTALL_NOW } ) { return 1; } if( defined $OPTIONS{ JUST_INSTALLED_RPM } ) { delete $OPTIONS{ JUST_INSTALLED_RPM }; return 1; } print "YES! I am going to install!!!!!\n"; if( ! defined $install_script[0] ) { # Should do fixes here I think..... perform_final_upgrade_checks( $OPTIONS{ LATEST_RPM } ); write_logfile (); $OPTIONS{ EXIT_WINDOW } = "DISPLAYED"; $packages_window->destroy(); delete $OPTIONS{ INSTALL_NOW }; if ( defined $OPTIONS{ PARENT } ) { delete $OPTIONS{ EXIT_WINDOW }; do_exit(); } else { standard_error_window( "Finished", "You have finished installing the packages.", "End" ); } return 1; } my $line = shift @install_script; my( $method, @args ) = split " ", $line; if( ! defined $method ) { my_print( "There wasn't anything to do this time\n" ); return 1; } print "YES! processing $line\n"; if( $method eq "ERASE" ) { if( erase_type ( $path_to_root, $args[0] ) ) { my_print ( "$args[0] successfully erased \n" ); } else { my_print ( "ERASE FAILED\n" ); my_print ( "You should erase the package $args[0] manually\n" ); my_print ( "before you can continue installing\n" ); standard_error_window( "Erase Failed", "You should erase package $args[0] manually.", "Continue" ); delete $OPTIONS{ INSTALL_NOW }; $OPTIONS{ CONTINUE } = "TRUE"; } } my $type; if( $method eq "INSTALL" ) { my_print ( "$method @args\n" ); $type = shift( @args ); if( upgrade_type( $path_to_root, $type, @args ) ) { standard_error_window( "Install Failed", "$type could not be installed.", "Continue" ); delete $OPTIONS{ INSTALL_NOW }; $OPTIONS{ CONTINUE } = "TRUE"; } } my $count = $#install_script; if( $MasterCounter == 0 ) { $MasterCounter = 1; } ## Just to be safe we don't divide by zero update_progress( ($MasterCounter - $count - 1 ) / $MasterCounter, "Running: $method $type @args" ); $OPTIONS{ JUST_INSTALLED_RPM } = "TRUE"; return 1; } sub standard_error_window { my $title = shift @_; my $message = shift @_; my $button_text = shift @_; my $length = 8 * (length "$message$button_text" ) + 30; if( $length < 100 ) { $length = 100; } create_standard_window( $error_window, 250, 140, $length, 40, "$title" ); $error_window->set_modal(1); my $box1 = create_standard_vbox( 0 ); my $box2 = create_standard_hbox( 10, $box1, 1, 1, 0 ); create_standard_label( "$message" , $box2 ); if( $button_text eq "End" ) { delete $OPTIONS{ EXIT_WINDOW }; create_standard_button( $button_text , $box2, 1, 1, 0, \&do_exit ); $error_window->signal_connect("destroy" => \&do_exit); } else { create_standard_button( $button_text , $box2, 1, 1, 0, sub { $error_window->destroy(); if( $button_text eq "Continue" ) { $OPTIONS{ INSTALL_NOW } = "INSTALL_NOW"; delete $OPTIONS{ CONTINUE }; } }); } } sub create_standard_vbox { my( $item ); $item = new Gtk::VBox(0,0); $item->border_width( $_[0] ); if( defined $_[1] ) { if( defined $_[2] ) { $_[1]->pack_start($item, $_[2], $_[3], $_[4] ); } else { # $_[1]->add($item); } } else { $CurrentWindow->add($item); } $item->show; return $item; } sub create_standard_hbox { my( $item ); $item = new Gtk::HBox(0,10); $item->border_width( $_[0] ); if( ! defined $_[1] ) { $CurrentWindow->add($item); } elsif ( ! defined $_[2] ) { $_[1]->add($item); } else { $_[1]->pack_start($item, $_[2], $_[3], $_[4] ); } $item->show; return $item; } sub create_standard_button { my( $button ) = new Gtk::Button( $_[0] ); # $_[0]->can_default(1); if( ! defined $_[1] ) { $button->show; return $button; } if( ! defined $_[2] ) { $_[1]->add($button); } else { $_[1]->pack_start($button, $_[2], $_[3], $_[4] ); } if( defined $_[5] ) { $button->signal_connect('clicked', $_[5] ); } $button->show; return $button; } sub create_standard_checkbutton { my( $button ) = new Gtk::CheckButton( $_[0] ); $button->set_state(1); # $_[0]->can_default(1); if( ! defined $_[1] ) { $button->show; return $button; } if( ! defined $_[2] ) { $_[1]->add($button); } else { $_[1]->pack_start($button, $_[2], $_[3], $_[4] ); } if( defined $_[5] ) { $button->signal_connect('clicked', $_[5] ); } $button->show; return $button; } sub create_standard_entry { my($hbox) = create_standard_hbox( 10 , $_[2]); my($label) = new Gtk::Label $_[0]; $label->set_alignment(0.0,0.5); $hbox->pack_start($label, 0, 1, 0); $label->show; my($entry) = new Gtk::Entry; $entry->set_usize(0, 20); $entry->set_text("$_[1]"); $hbox->pack_start($entry, 1, 1, 0); $entry->show; return $entry; } sub create_standard_label { my($label) = new Gtk::Label $_[0]; # $label->set_alignment(0.0,0.5); if( ! defined $_[2] ) { $_[1]->add($label); } else { $_[1]->pack_start($label, $_[2], $_[3], $_[4] ); } $label->show; return $label; } sub create_standard_window { if ( defined $_[0] ) { $_[0]->destroy; return; } $_[0] = new Gtk::Window "toplevel"; $_[0]->set_uposition($_[1],$_[2]); if ( ! ( $_[3] == -1 )) { # print "Setting window size to $_[3], $_[4]\n"; # $_[0]->set_usize($_[3],$_[4]); $_[0]->set_default_size( $_[3], $_[4] ); } $_[0]->signal_connect("destroy", \&destroy_window, \$_[0]); $_[0]->signal_connect("delete_event", \&destroy_window, \$_[0]); $_[0]->set_title( "$_[5]" ); $_[0]->border_width(0); $_[0]->grab_focus; $_[0]->show; $CurrentWindow = $_[0]; } sub my_separator { my($box1) = @_; my($separator) = new Gtk::HSeparator; $box1->pack_start($separator, 0, 1, 0); $separator->show; my($box2) = create_standard_hbox( 10 , $box1, 0, 1, 0 ); return $box2; } sub destroy_window { my($widget, $windowref, $w2) = @_; $$windowref = undef; $w2 = undef if defined $w2; 0; } sub create_text_window { my($box1,$box2,$button,$separator,$table,$hscrollbar,$vscrollbar,$text); create_standard_window( $cngrat_window, $_[0], $_[1], $_[2], $_[3], $_[4] ) || return; $box1 = create_standard_vbox( 0 ); $box2 = create_standard_vbox( 10, $box1, 1, 1, 0 ); $table = new Gtk::Table(2,2,0); $table->set_row_spacing(0,2); $table->set_col_spacing(0,2); $box2->pack_start($table,1,1,0); $table->show; $text = new Gtk::Text(undef,undef); $table->attach_defaults($text, 0,1,0,1); show $text; $hscrollbar = new Gtk::HScrollbar($text->hadj); $table->attach($hscrollbar, 0, 1,1,2,[-expand,-fill],[-fill],0,0); $hscrollbar->show; $vscrollbar = new Gtk::VScrollbar($text->vadj); $table->attach($vscrollbar, 1, 2,0,1,[-fill],[-expand,-fill],0,0); $vscrollbar->show; $text->freeze; $text->realize; $text->insert(undef,$text->style->black,undef, $_[6] ); $text->thaw; $box2 = my_separator($box1); create_standard_button( $_[5] , $box2, 1, 1, 0, sub { $cngrat_window->destroy; }); } sub change_font { my( $StandardText, $FontSelector ); $StandardText = new Gtk::Text(undef,undef); $FontSelector = new Gtk::FontSelectionDialog "Font Selection Dialog"; my $newFont = $_[0]; if( ! defined $newFont ) { print "Setting font to lucida medium\n"; # $FontSelector->set_font_name( "-misc-fixed-medium-r-semicondensed-*-13-*-*-*-c-*-iso8859-8" ); # $FontSelector->set_font_name( "-b&h-lucida-medium-r-normal-sans-12-*-72-72-p-*-*-1" ); $FontSelector->set_font_name( "-b&h-lucida-medium-r-normal-sans-12-120-75-75-p-71-iso8859-1" ); } else { print "Setting font to $newFont\n"; $FontSelector->set_font_name( $newFont ); } $CurrentFont = $FontSelector->get_font; # print "got font $CurrentFont\n"; $StandardText->style->font($CurrentFont); # print "set font to#!/usr/bin/perl -w ## Command line tool to find and upgrade packages ## jcarr@linuxppc.org use strict; my $VERSION = "4.4.2"; my $VERSION_DATE = "Wed Dec 27 20:47:00 2000"; # This version was actually tested on my portable # In testing: # Implement --proxy # A graphical version # # Still todo: # Allow user to select which packages to upgrade # Add an option to override the interactive parts # Add recursive function to check requirements my %OPTIONS; $OPTIONS{ RPMARGS } = ""; my @values; while ( ) { my $arg = shift @ARGV; if( ! defined $arg ) { last; } if( $arg eq "" ) { last; } if( $arg eq "--help" ) { print_help(); } if( $arg eq "--fullnames" ) { $OPTIONS{ FULLNAME } = "TRUE"; next; } #This isn't implemented yet if( $arg eq "--duplicates" ) { $OPTIONS{ SHOWDUPLICATES } = "TRUE"; next; } if( $arg eq "--upgrade" ) { $OPTIONS{ UPGRADE } = "TRUE"; next; } if( $arg eq "--install" ) { $OPTIONS{ UPGRADE } = "TRUE"; next; } if( $arg eq "--ignore-kernel" ) { $OPTIONS{ IGNORE_KERNEL } = "TRUE"; next; } if( $arg eq "--obsolete" ) { $OPTIONS{ OBSOLETE } = "TRUE"; next; } if( $arg eq "--nodeps" ) { $OPTIONS{ RPMARGS } .= "--nodeps "; next; } if( $arg eq "--force" ) { $OPTIONS{ RPMARGS } .= "--force "; next; } if( $arg eq "--quiet" ) { $OPTIONS{ QUIET } = "TRUE"; next; } if( $arg eq "--debug" ) { $OPTIONS{ DEBUG } = "TRUE"; next; } if( $arg eq "--fixes" ) { $OPTIONS{ FIXES } = "TRUE"; next; } if( $arg eq "--proxy" ) { $OPTIONS{ PROXY } = shift @ARGV; next; } if( $arg eq "--proxy-port" ) { $OPTIONS{ PROXY_PORT } = shift @ARGV; next; } if( $arg eq "--save" ) { $OPTIONS{ SAVE } = "TRUE"; next; } if( $arg eq "--parent" ) { $OPTIONS{ PARENT } = shift @ARGV; next; } if( $arg eq "--path_to_root" ) { $OPTIONS{ PATH_TO_ROOT } = shift @ARGV; next; } if( $arg eq "--location" ) { $OPTIONS{ LOCATION } = shift @ARGV; next; } if( $arg eq "--paranoid" ) { $OPTIONS{ PARANOID } = "TRUE"; next; } if( $arg eq "--version" ) { print "upgrade.pl version: $VERSION from $VERSION_DATE\n"; exit; } if( substr( $arg, 0, 2 ) eq "--" ) { print_help(); } if( substr( $arg, 0, 1 ) eq "-" ) { print_help(); } push @values, $arg; } sub print_help { print "upgrade.pl version = $VERSION from $VERSION_DATE Usage: [Options] Options are: --path_to_root # directory to install into --location # path to the install files --install # Actually perform the upgrade --paranoid # Stop on every rpm script that exits abnormally --fullnames # prints the full filename of each new rpm --duplicates # will show you which packages you have more # than one installed version --obsolete # Will install all replacements for obsolete rpms # regardless of the obsolete rpms are installed --save # Save the location you selected --parent # this is the parent process... --proxy # --proxy our.firewall.host --proxy-port # --proxy-port 1342 --fixes # Run the various fixes and checks for a new install # or a system that has been upgraded # See the perform_final_upgrade_checks() function --ignore-kernel # Do not upgrade kernel rpms --quiet # Do not show any output --debug # Show lots of output For example: upgrade --install upgrade --debug upgrade --install --location http://ftp.linuxppc.org/linuxppc-stable/ xupgrade --path_to_root /mnt/new_install "; exit; } ###### end of subroutine print_help my $path_to_root = "/"; if( defined $values[0] ) { $path_to_root = shift @values; } if( defined $OPTIONS{ PATH_TO_ROOT } ) { $path_to_root = $OPTIONS{ PATH_TO_ROOT }; } my $location = ""; if( defined $values[0] ) { $location = shift @values; } if( defined $OPTIONS{ LOCATION } ) { $location = $OPTIONS{ LOCATION }; } my @install_script; my $SIZE; my $DONT_COMPUTE; # This used to toggle the use of the compute_disk() routine for speed reasons my %filelist; my %installed_rpms; my %upgrade; my %install_master; my %upgrade_master; my %dependancies; my %rpmlisttreeshown; my $install_script; if( defined $ENV{ DISPLAY } ) { my_print ( "It looks like you are running X windows. I should try to run xupgrade here\n" ); } if( defined $OPTIONS{ UPGRADE } ) { $OPTIONS{ FULLNAME } = "TRUE"; } wget_check(); # Checks to see if you have wget scan_logfile( $path_to_root ); populate_installed_rpms_hash(); if( defined $OPTIONS{ SHOWDUPLICATES } ) { exit; } if( defined $OPTIONS{ FIXES } ) { perform_final_upgrade_checks( $OPTIONS{ LATEST_RPM } ); exit; } if( defined $OPTIONS{ LOCATION } ) { $location = $OPTIONS{ LOCATION }; } if( $location eq "" ) { if( -e "/etc/SoftwareLocation" ) { $location = `cat /etc/SoftwareLocation`; chomp $location; } if( $location eq "" ) { $location = select_package_location(); if( defined $OPTIONS{ SAVE } ) { open LOCATION, ">/etc/SoftwareLocation"; print LOCATION $location; close LOCATION; } } } my $package_info = "$location/maps/package_info.gz"; if( ! -f "$package_info" ) { chdir "/tmp"; $package_info = "/tmp/package_info.gz"; unlink $package_info; my_print ( "Connecting to $location.... \n" ); wget_wrapper( "$location/maps/package_info.gz" ); if( ! -e $package_info ) { print "Could not find packages_info file !\n"; exit; } } my( $tmp1, $tmp2, $tmp3, $tmp4 ) = parse_package_info( "$package_info" ); %filelist = %$tmp1; %install_master = %$tmp2; %upgrade_master = %$tmp3; %dependancies = %$tmp4; #### Look through the installed rpms for new versions and put them in %upgrade foreach my $type ( sort keys %installed_rpms ) { my $buildtime = $installed_rpms{ $type }; # print "FOUND $type BUILT at $buildtime\n"; if( defined $filelist{ $type } ) { my ( $path, $temp, $new_buildtime, @stuff ) = split "\t", $filelist{ $type }; # print "$path, $new_buildtime, @stuff\n"; if( $new_buildtime > $buildtime ) { $upgrade{ $type } = "$path"; } } if( defined $upgrade_master{ $type } ) { push @install_script, "ERASE $type"; foreach my $type ( split " ", $upgrade_master{ $type } ) { my ( $path, $temp, $new_buildtime, @stuff ) = split "\t", $filelist{ $type }; if( defined $installed_rpms{ $type } ) { $buildtime = $installed_rpms{ $type }; } else { $buildtime = 0; # set to zero because no package of that type is installed } if( $new_buildtime > $buildtime ) { $upgrade{ $type } = "$path"; } } } } #### Check default sections from install.master file foreach my $key ( keys %install_master ) { my @temp = split " " , $key; my $default = pop @temp; if( $default eq "(default)" ) { # print "install_master key = $key\n"; foreach my $rpm ( split " ", $install_master{ $key } ) { if( ! defined $installed_rpms{ $rpm } ) { if( ! defined $filelist{ $rpm } ) { # print "\tRPM $rpm DOES NOT REALLY EXIST\n"; } else { # print "\tNEW RPM $rpm\n"; $upgrade{ $rpm } = ""; } } } } } my $kernel_arch = find_arch(); if( ! defined $installed_rpms{ $kernel_arch } ) { $upgrade{ $kernel_arch } = ""; } #### Switch out all obsolete rpms.... #### This will install all the new ones even if the old ones are not #### installed. This is not very usefull. if( defined $OPTIONS{ OBSOLETE } ) { foreach my $type ( sort keys %upgrade_master ) { foreach my $new ( split " ", $upgrade_master{ $type } ) { my ( $path, $temp, $new_buildtime, @stuff ) = split "\t", $filelist{ $new }; if( ! defined $installed_rpms{ $new } ) { $upgrade{ $new } = $path; } } } } ### Satisfy all dependancies foreach my $installed_rpm ( keys %installed_rpms ) { if( ! defined $dependancies{ $installed_rpm } ) { next; } my @new = find_new_required( split "\t", $dependancies{ $installed_rpm } ); if( $#new ne -1 ) { debug_print ( "CURRENT $installed_rpm REQUIRES @new\n" ); foreach my $temp ( @new ) { $upgrade{ $temp } = ""; } } } # This is redundant code to Satisfy depends foreach my $junk( 1, 2, 3 ) { foreach my $installed_rpm ( keys %upgrade ) { if( ! defined $dependancies{ $installed_rpm } ) { next; } my @new = find_new_required( split "\t", $dependancies{ $installed_rpm } ); if( $#new ne -1 ) { foreach my $temp ( @new ) { $upgrade{ $temp } = ""; } } } } if( defined $OPTIONS{ IGNORE_KERNEL } ) { delete $upgrade{ "kernel-source" }; delete $upgrade{ "kernel-headers" }; delete $upgrade{ "kernel-pmac" }; delete $upgrade{ "kernel-chrp" }; delete $upgrade{ "kernel-prep" }; } make_install_script(); if( $install_script eq "" ) { my_print ( "There are no new packages. Your system is up to date.\n" ); exit; } if( ! defined $OPTIONS{ UPGRADE } ) { print $install_script; my $MB = $SIZE / ( 1024 * 1024 ); printf "\nTotal megabytes to install: %.2f\n", $MB; print "Type:\n\nupgrade --install\n\n"; print "to actually install all the packages\n"; exit; } foreach my $line ( split "\n", $install_script ) { my( $method, @args ) = split " ", $line; if( $method eq "ERASE" ) { if( erase_type ( $path_to_root, $args[0] ) ) { my_print ( "$args[0] successfully erased \n" ); } else { my_print ( "ERASE FAILED\n" ); my_print ( "You should erase the package $args[0] manually\n" ); my_print ( "before you can continue installing\n" ); my_print ( "Press to continue\n" ); ; } } if( $method eq "INSTALL" ) { my_print ( "$method @args\n" ); my $type = shift( @args ); upgrade_type( $path_to_root, $type, @args ); } } perform_final_upgrade_checks( $OPTIONS{ LATEST_RPM } ); write_logfile (); my_print ( "\nCongradulations... You have upgraded your system to the newest packages.\n" ); exit; sub upgrade_type { # upgrade a rpm of a certian type my ( $path_to_root, $type, @rpm_args ) = @_; my ( $path, $temp, $new_buildtime, @stuff ) = split "\t", $filelist{ $type }; ### This rpm is not installed already. Just install from scratch if( ! defined $installed_rpms{ $type } ) { return install_type( $path_to_root, $type, @rpm_args ); } # First check to see if duplicate rpm types are already installed my_print( "Upgrading new $type: $path\n" ); my @files = split "\n", `rpm -q --root $path_to_root $type --queryformat=\"%{NAME}-%{VERSION}-%{RELEASE}\n\" `; if( $#files ne 0 ) { ### This means that duplicate RPMS are already installed ### We will remove all the older ones erase_type( $path_to_root, $type, $new_buildtime ); } my $return = install_rpm( $path_to_root, "$location/software/$path", "-U --nodeps --force" ); if( $#files ne 0 ) { ### Probably this has left two different rpms of the same type ### We will remove all the older ones erase_type( $path_to_root, $type, $new_buildtime ); } ## if return == 1 it could mean it failed to make a symlink ## if return == 512 it could mean it ran out of disk space if( $return ne 0 ) { @files = split " ", `rpm -q --root $path_to_root $type --queryformat=\"%{NAME}-%{VERSION}-%{RELEASE} \" `; if( $#files ne 0 ) { my_print( "Should erase @files here $new_buildtime\n" ); erase_type( $path_to_root, $type, $new_buildtime ); } if( $OPTIONS{ PARANOID } eq "TRUE" ) { my_print( " Something went wrong upgrading $path. rpm returned $return If it was only a post install script failure, then just remove one of the rpms. Check the error above. Press to continue. \n"); ; } } @files = split " ", `rpm -q --root $path_to_root $type --queryformat=\"%{NAME}-%{VERSION}-%{RELEASE} \" `; if( $#files eq -1 ) { my_print( "\n"); my_print( "The package: path\n"); my_print( "did not install.\n"); my_print( "press to continue\n"); ; } } sub erase_type { # Erase a RPM of a certain type my( $path_to_root, $type, $new_build_date ) = @_; if( ! defined $new_build_date ) { $new_build_date = 0; } my @files = split "\n", `rpm -q --root $path_to_root $type --queryformat=\"%{NAME}-%{VERSION}-%{RELEASE}\t%{BUILDTIME}\n\" `; foreach my $line ( @files ) { my( $rpm, $build_date ) = split "\t", $line; if( defined $build_date ) { if( $new_build_date ne $build_date ) { my_print( "rpm -e $rpm --nodeps --root $path_to_root\n" ); system "rpm -e $rpm --nodeps --root $path_to_root\n"; } } else { my_print( "rpm -e $rpm --nodeps --root $path_to_root\n"); system "rpm -e $rpm --nodeps --root $path_to_root\n"; } } @files = split "\n", `rpm -q --root $path_to_root $type --queryformat=\"%{NAME}-%{VERSION}-%{RELEASE}\t%{BUILDTIME}\n\" `; if( $#files eq -1 ) { ## Succesfully erased all the verions of $type return 1; } if( $new_build_date ne 0 ) { ## This means that there should be 1 rpm still installed but all ## other versions should have been erased if( $#files eq 1 ) { return 1; } } my_print( "COULD NOT ERASE @files\n"); return 0; } sub install_type { # Install a RPM type that was not installed already my ( $path_to_root, $type, @rpm_args ) = @_; my ( $path, $temp, $new_buildtime, @stuff ) = split "\t", $filelist{ $type }; my_print( "Installing new $type: $path\n"); if( defined $installed_rpms{ $type } ) { my_print( "$type already installed\n"); my_print( "upgrade_type() should probably be called here instead\n"); return -1; } return install_rpm( $path_to_root, "$location/software/$path", "-hvi @rpm_args" ); } sub find_new_required { # Figure out which RPMS might have requirements that are not being met my @req_rpms = @_; my @new; foreach my $req_rpm ( @req_rpms ) { my $Already_Installed = "FALSE"; foreach my $split_test ( split " ", $req_rpm ) { if( defined $installed_rpms{ $split_test } ) { $Already_Installed = "TRUE"; } if( defined $upgrade{ $split_test } ) { $Already_Installed = "TRUE"; } } if( $Already_Installed eq "FALSE" ) { push @new, $req_rpm; } } return @new; } sub setRunlevel { # set default run level my ($path_to_root, $runlevel ) = @_; open (INITTAB, "$path_to_root/etc/inittab"); my @wholeFile = ; close (INITTAB); open (INITTAB, ">$path_to_root/etc/inittab"); for my $myLine (@wholeFile) { if (($myLine =~ /^id/) && ($myLine =~ /initdefault:$/)) { print INITTAB "id:$runlevel:initdefault:\n" } else { print INITTAB $myLine; } } close (INITTAB); } sub wget_wrapper { # This gets a file using wget my( $file )= @_; # print "Proxy users need to set the proxy and the port i.e. --proxy route.electric.pri:3128\n"; my $proxy = ""; if( defined $OPTIONS{ PROXY } ) { $proxy = " --proxy $OPTIONS{ PROXY }"; if( defined $OPTIONS{ PROXY_PORT } ) { $proxy .= ":$OPTIONS{ PROXY_PORT }"; } } system "wget --quiet $proxy $file"; } sub wget_check( ) { # this checks to see if wget exists my $returned = system "which wget 1>/dev/null 2>/dev/null"; # $stuff = $returned / 256; # print "whereis wget returned $returned $stuff\n"; if( $returned ne 0 ) { print "\n"; print "This script requires wget which does not seem to be installed.\n"; print "Please install wget and restart the script\n"; print "\n"; } } sub write_logfile { # This writes out the /var/lib/rpm/upgrade_script_log file open INSTALL_LOG, ">$path_to_root/var/lib/rpm/upgrade_script_log"; print INSTALL_LOG "UPGRADE_VERSION = $VERSION\n"; my $date = time(); print INSTALL_LOG "LAST_RUN_ON = $date\n"; print INSTALL_LOG "LAST_PACKAGE_INFO_DATE = $OPTIONS{ PACKAGE_INFO_DATE }\n"; close INSTALL_LOG; } sub scan_logfile { # This examines the upgrade_script_log for information about previous installs my $path_to_root = $_[0]; if( ! -e "$path_to_root/var/lib/rpm/upgrade_script_log" ) { return; } foreach my $line ( `cat $path_to_root/var/lib/rpm/upgrade_script_log` ) { chomp $line; my ( $key, $value ) = split /=/ , $line; debug_print( "$key, $value\n"); $key =~ s/ //g; if( $key eq "LAST_RUN_ON" ) { debug_print( "FOUND $key, $value\n"); $OPTIONS{ LAST_RUN_ON } = $value; } } } sub clean_path { my $name = $_[0]; my @path = split /\//, $name; $name = ""; foreach my $piece ( @path ) { if( $piece eq "" ) { next; } $name .= "/$piece"; } if( substr( $name, 0, 1 ) ne "/" ) { $name = "/" . $name; } return $name; } sub make_fstab { # Write out fstab( this might be safe to call everytime ) my ($path_to_root ) = clean_path( @_ ); my $length; my($file_name) = "$path_to_root/etc/fstab"; if( -e $file_name ) { return; } open (FSTAB,">$file_name"); my $counter = 1; foreach my $line ( `mount` ) { chomp $line; my ( $device, $junk, $path, $junk1, $type, @fields ) = split " ", $line; if( $type eq "proc" ) { next; } if( $type eq "devpts" ) { next; } $length = length $path_to_root; if( $path_to_root ne substr( $path, 0, $length ) ) { next; } $path = substr( $path, $length ); $path =~ s/\/$//g ; if( substr( $path, 0, 1 ) ne "\/" ) { $path = "/" . $path; } $length = 25 - length $device; for my $count ( 1 ... $length ) { $device .= " "; } $length = 20 - length $path; for my $count ( 1 ... $length ) { $path .= " "; } $length = 6 - length $type; for my $count ( 1 ... $length ) { $type .= " "; } print FSTAB "$device $path $type defaults 1 $counter\n"; ++$counter; } foreach my $line ( `cat /proc/swaps` ) { chomp $line; my ( $device, @fields ) = split " ", $line; if( $device eq "Filename" ) { next; } my $swapline = pack "A25", "$device"; print FSTAB "$swapline swap swap defaults 0 0\n"; } print FSTAB "/dev/fd0 /mnt/floppy auto noauto 0 0\n"; print FSTAB "/dev/cdrom /mnt/cdrom auto noauto 0 0\n"; print FSTAB "none /proc proc defaults 0 0\n"; print FSTAB "none /dev/pts devpts gid=5\,mode=620 0 0\n"; close(FSTAB); } sub my_system { # system wrapper to show what system is calling print "RUNNING @_ \n"; system "@_"; } sub my_print { # printf wrapper which you can turn off with --quiet if( defined $OPTIONS{ QUIET } ) { return; } print @_; } sub debug_print { # printf wrapper for debugging. turn on with --debug if( ! defined $OPTIONS{ DEBUG } ) { return; } print @_; } sub make_filelist_hash { # parse the filelist and make a hash of the keys my( %known_path, %known_name, %known_type ); my ($filelist, $no_check) = @_; # if( ! -e "$filelist" ) { die "Could not find packages !"; } foreach my $line ( split "\n", $filelist ) { chomp $line; my ( $path, @fields ) = split "\t" , $line; my $type = $fields[0]; if( $fields[4] eq "" ) { next; } if( -e $location ) { if( ! -e "$location/software/$path" ) { debug_print( "MISSING FILE $path\n" ); next; } } my @wholepath = split "\/" , $path; my $name = pop @wholepath; $known_name{ $name } = $type; $known_path{ $path } = join "\t" , @fields; $known_type{ $type } = "$path\t" . join "\t", @fields; } return( \%known_type ); } sub make_upgrade_hash { # parse the upgrade_master file and make a hash of the keys my( %update ); my ($update_master, $no_check) = @_; foreach my $line ( split "\n", $update_master ) { chomp $line; my ( $type, @new_types ) = split "\t" , $line; $update{ $type } = join "\t", @new_types; } return( \%update ); } sub make_install_hash { #parse the install_master file and make a hash of the keys my( %install ); my ($install_master, $no_check) = @_; my @key_order; foreach my $line ( split "\n", $install_master ) { chomp $line; if( $line eq "" ) { next; } my ( $type, $rpms ) = split ":" , $line; my ( @new_types ) = split " " , $rpms; $install{ $type } = join "\t", @new_types; push @key_order, $type; } $install{ key_order } = join "\t", @key_order, "unsorted"; return( \%install ); } sub parse_package_info( ) { # The package_info file has the filelist, install_master, etc. in it my $filename = $_[0]; my %package; if( ! -f $filename ) { print "Could not find package information\n"; exit; } open INFO, "zcat $filename|"; while( ) { chomp $_; if( ! substr( $_, 0, 1 ) eq "<" ) { next; } if( ! ">" eq chop $_ ) { next; } my $tag = substr( $_, 1 ); my $uc_tag = uc $tag; # print "FOUND $tag\n"; while( ) { chomp $_; if( $_ eq "" ) { last; } $package{ $uc_tag } .= "$_\n"; } # print "GOT $_"; } close INFO; my $filelist = make_filelist_hash( $package{ "FILELIST" }, "NOCHECK" ); delete $package{ "FILELIST" }; my $upgrade_master = make_upgrade_hash( $package{ "UPGRADE.MASTER" } ); delete $package{ "UPGRADE.MASTER" }; my $install_master = make_install_hash( $package{ "INSTALL.MASTER" } ); delete $package{ "INSTALL.MASTER" }; my %test = %$install_master; $test{ "order" } = $package{ "ORDER.MASTER" }; delete $package{ "ORDER.MASTER" }; $test{ "unsorted" } = $package{ "UNSORTED" }; delete $package{ "UNSORTED" }; my %dependancies; foreach my $line ( split "\n", $package{ "DEPENDANCIES" } ) { my( $key, @deps ) = split "\t", $line; $dependancies{ $key } = join "\t", @deps; } delete $package{ "DEPENDANCIES" }; delete $package{ "MD5" }; chomp $package{ "DATE" }; $OPTIONS{ PACKAGE_INFO_DATE } = $package{ "DATE" }; delete $package{ "DATE" }; foreach my $key ( sort keys %package ) { print "Ignored $key\n"; } return $filelist, \%test, $upgrade_master, \%dependancies; } sub perform_final_upgrade_checks { # Do some checks on the filesystem to see if important files are there my $last_update = $_[0]; chdir $path_to_root; if( $last_update gt 974826565 ) { my_print "Already did the standard updates\n"; perform_safe_checks (); return; } else { my_print "About to do specific fixes\n"; } if( defined $OPTIONS{ USE_X } ) { setRunlevel( $path_to_root, "5" ); } else { setRunlevel( $path_to_root, "3" ); } ### Setup the keyboard open KEYBOARD, ">etc/sysconfig/keyboard"; print KEYBOARD "KEYTABLE=\"us\"\n"; print KEYBOARD "KEYBOARDTYPE=\"pc\"\n"; close KEYBOARD; if( -e "etc/sysconfig/keymap" ) { unlink "etc/sysconfig/keymap"; } if( -e "etc/sysconfig/console/default.kmap" ) { unlink "etc/sysconfig/console/default.kmap"; } ### Setup the mouse open MOUSE, ">etc/sysconfig/mouse"; print MOUSE "MOUSETYPE=imps2\n"; print MOUSE "XMOUSETYPE=IMPS/2\n"; print MOUSE "FULLNAME=\"Universal Serial Bus 1 Button Mouse (USB)\"\n"; print MOUSE "XEMU3=yes\n"; close MOUSE; if( ! -e "etc/profile.d/linuxppc.sh" ) { open BASH, ">etc/profile.d/linuxppc.sh"; print BASH "alias lf=\"ls -aCF\"\n"; print BASH "alias pa=\"ps axuw\"\n"; print BASH "PATH=/sbin:/usr/sbin:\$PATH\n"; close BASH; } system "chmod +x etc/profile.d/linuxppc.sh"; ### Setup Frame Buffer X my @stuff = split "/", readlink "etc/X11/X" ; my $X_type = pop @stuff; if( ( $X_type ne "XF68_FBDEV" ) || ( $X_type ne "XFree" ) ) { if( -e "usr/X11R6/bin/XF68_FBDev" ) { print "Symlinking /etc/X11/X to XF68_FBDev\n"; system "ln -sf /usr/X11R6/bin/XF68_FBDev etc/X11/X"; } if( -e "etc/X11/XF86Config" ) { system "mv etc/X11/XF86Config etc/X11/XF86Config.upgrade_backup$$"; } } ### Rename and check for sound alias in modules.conf my (@lines, $SOUND); if( -e "etc/modules.conf" ) { @lines = split "\n", `cat etc/modules.conf`; } open MODULES, ">etc/modules.conf"; foreach my $line ( @lines ) { $line =~ s/\t/ /g ; $line =~ s/ / /g ; my( $alias, $name, $module ) = split " ", $line; if( $name eq "sound" ) { $SOUND = "TRUE"; } print MODULES "$line\n"; } if( ! defined $SOUND ) { print MODULES "alias sound dmasound\n"; } close MODULES; system "chroot $path_to_root chkconfig Xautoconfig --level 5 on"; perform_safe_checks (); } #### Everything in this routine should be safe to run at any time #### This routine just checks to see if various files that are required #### for a normal running system actually exist. #### If something does not, it creates them. sub perform_safe_checks { #Do safe filesystem checks( this is run everytime ) #### First peform and fixes to packages.... perform_fixes_to_packages (); chdir $path_to_root; if( ! -e "etc/X11/XF86Config" ) { system "chroot $path_to_root /usr/X11R6/bin/Xautoconfig3"; } if( ! -e "etc/sysconfig/desktop" ) { system "echo GNOME > etc/sysconfig/desktop"; } ### Write out /etc/fstab make_fstab( $path_to_root ); ### Make sure /etc/passwd gets set if( ! -e "etc/shadow" ) { system "chroot $path_to_root /usr/sbin/pwconv"; } ### Make aliases in /etc/modules.conf if( -e "etc/conf.modules" ) { system "mv etc/conf.modules etc/modules.conf"; } ### Create networking files if they don't exist if( ! -e "etc/hosts" ) { system "echo 127.0.0.1 localhost > etc/hosts"; } if( ! -e "etc/resolv.conf" ) { system "echo namserver 127.0.0.1 > etc/resolv.conf"; } if( ! -e "etc/sysconfig/network" ) { system "echo NETWORKING=yes > etc/sysconfig/network"; system "echo HOSTNAME=localhost >> etc/sysconfig/network"; system "echo DOMAINNAME=localdomain >> etc/sysconfig/network"; } system "touch etc/sysconfig/i18n"; ### Setup the keyboard if( ! -e "etc/sysconfig/keyboard" ) { open KEYBOARD, ">etc/sysconfig/keyboard"; print KEYBOARD "KEYTABLE=\"us\"\n"; print KEYBOARD "KEYBOARDTYPE=\"pc\"\n"; close KEYBOARD; } ### Setup the mouse if( ! -e "etc/sysconfig/mouse" ) { open MOUSE, ">etc/sysconfig/mouse"; print MOUSE "MOUSETYPE=imps2\n"; print MOUSE "XMOUSETYPE=IMPS/2\n"; print MOUSE "FULLNAME=\"Universal Serial Bus 1 Button Mouse (USB)\"\n"; print MOUSE "XEMU3=yes\n"; close MOUSE; } if( ! -e "etc/X11/X" ) { if( -e "usr/X11R6/bin/XF68_FBDev" ) { print "Symlinking /etc/X11/X to XF68_FBDev\n"; system "ln -sf /usr/X11R6/bin/XF68_FBDev etc/X11/X"; } elsif( -e "usr/X11R6/bin/XFree" ) { print "Symlinking /etc/X11/X to XFree\n"; system "ln -sf /usr/X11R6/bin/XFree etc/X11/X"; } } if( $path_to_root ne "/" ) { my @path = split "/", readlink "/etc/X11/X"; my $xserver = pop @path; if( $xserver eq "Xpmac" ) { if( -e "usr/X11R6/bin/$xserver" ) { print "Symlinking /etc/X11/X to $xserver\n"; system "ln -sf /usr/X11R6/bin/$xserver etc/X11/X"; } } } make_cdrom_links(); } # This function should be empty. But, sometimes there are problems that # unavoidably occur. As a temporary solution, things can be fixed here #### THIS ROUTINE SHOULD BE ASSUMED TO BE SAFE TO RUN AT ANYTIME !!!! sub perform_fixes_to_packages { # This routine fixes problems with packages ### Fix for bzip2 & gnome-core ### gnome-help-browser( and a few other apps ) need libbz.so.0 ### If that library isn't there, just create a link for it debug_print "entering performing_fixes_now()\n"; if( ! -e "$path_to_root/usr/lib/libbz2.so.0" ) { chdir "$path_to_root/usr/lib"; system "ln -s libbz2.so.1 libbz2.so.0"; } } # system "cp -a /live/fixes/inetd.conf $out_dir/etc/"; # system "cp -a /live/fixes/inittab $out_dir/etc/"; # system "cp -a /live/fixes/rc.sysinit $out_dir/etc/rc.d/"; # system "cp -a /live/fixes/redhat.links $out_dir/usr/lib/desktop-links/"; # system "cp -a /live/fixes/default-page.html $out_dir/usr/share/gnome/help/help-browser/C/"; # # gdm fixes # system "chroot $out_dir /usr/sbin/useradd -u 42 -r gdm > /dev/null"; # system "mkdir $out_dir/var/gdm"; # system "chroot $out_dir chown gdm:gdm /var/gdm"; # system "ln -sf /dev/null $out_dir/var/gdm/\:0.log"; #### These routines just find CDROMS and make the links in /dev/ sub make_cdrom_links { my %drives; my $drive; chdir "$path_to_root/dev/"; if( -e "cdrom" ) { return; } foreach my $line ( `cat /proc/partitions` ) { chomp $line; my ( $minor, $major, $size, $device ) = split " ", $line; if( ! defined $device ) { next; } if( $device eq "name" ) { next; } if( $device eq "" ) { next; } $drive = substr $device, 0, 3; # print "drive = $drive device is $device\n"; if( defined $drives{ $drive } ) { $drives{ $drive } = "NOT_CDROM"; } else { $drives{ $drive } = "CDROM"; } } foreach $drive ( sort keys %drives ) { if( $drives{ $drive } eq "CDROM" ) { print "drive $drive is a CDROM\n"; system "ln -sf $drive cdrom"; return; } else { print "drive $drive is a hard drive\n"; } } system "ln -sf scd0 cdrom"; chdir "$path_to_root"; } sub find_arch { # Try to determine which kernel version to use( pmac, prep, chrp ) if( -e "/proc/device-tree/AAPL,ROM" ) { return "pmac"; } if( -e "/proc/device-tree/aliases/" ) { return "pmac"; } if( -e "/proc/cpuinfo" ) { my @cpuinfo = split "PREP ", uc `cat /proc/cpuinfo |grep machine`; if( $#cpuinfo > 0 ) { return "prep"; } } my_print( "Could not determine arch. Using pmac.\n" ); return "pmac"; } sub populate_installed_rpms_hash { if( ! -e "$path_to_root/var/lib/rpm" ) { system "mkdir -p $path_to_root/var/lib/rpm"; } if( ! -e "$path_to_root/tmp" ) { system "mkdir -p $path_to_root/tmp"; } if( ! -e "$path_to_root/var/tmp" ) { system "mkdir -p $path_to_root/var/tmp"; } ## Check rpms' that have more than one version installed (--duplicates ) if( -e "$path_to_root/var/lib/rpm/packages.rpm" ) { debug_print( "About to scan $path_to_root/var/lib/rpm/packages.rpm\n" ); foreach my $line ( `rpm -qa --root $path_to_root --queryformat=\"%{NAME}\t%{BUILDTIME}\n\"` ) { chomp $line; my( $type, $buildtime ) = split "\t", $line; if( defined $installed_rpms{ $type } ) { if( defined $OPTIONS{ SHOWDUPLICATES } ) { my_print ( "Duplicate $type built $buildtime\n" ); } } debug_print ( "You have type: $type installed. Built $buildtime\n" ); $installed_rpms{ $type } = $buildtime; } } if( defined $installed_rpms{ "linuxppc-release" } ) { $OPTIONS{ LATEST_RPM } = $installed_rpms{ "linuxppc-release" }; my $date_string = gmtime( $OPTIONS{ LATEST_RPM } ); my_print ( "The current release file is dated: $date_string\n" ); if( defined $OPTIONS{ LAST_RUN_ON } ) { $date_string = gmtime( $OPTIONS{ LAST_RUN_ON } ); my_print ( "The packages are current up to: $date_string\n" ); } } else { $OPTIONS{ LATEST_RPM } = -1; } } sub make_install_script { @install_script = ""; $SIZE = 0; #### Put the rpms into the install_script in the order in which they should be installed foreach my $line ( split "\n", $install_master{ "order" } ) { my( $type, @args ) = split " ", $line; if( defined $upgrade{ $type } ) { if( ! defined $filelist{ $type } ) { next; } if( defined $upgrade_master{ $type } ) { next; } my( @junk ) = split "\t", $filelist{ $type }; $SIZE += $junk[5]; push @install_script, "INSTALL $type @args"; delete $upgrade{ $type }; } } #### Just do the rest in alphabetical order is fine foreach my $type ( sort keys %upgrade ) { if( ! defined $filelist{ $type } ) { next; } if( defined $upgrade_master{ $type } ) { next; } my( @junk ) = split "\t", $filelist{ $type }; $SIZE += $junk[5]; push @install_script, "INSTALL $type"; } } sub install_rpm { # installs/upgrades a RPM - this function is a wrapper around rpm my ( $path_to_root, $location, $rpm_args ) = @_; my $proxy = ""; if( defined $OPTIONS{ PROXY } ) { if( defined $OPTIONS{ PROXY_PORT } ) { $proxy = $CurrentFont\n"; } sub choose_language { my( $box1, $label, $language); create_standard_window( $language_window, 230, 20, -1, -1, $words{Choose_Language} ); $box1 = create_standard_vbox( 0 ); $label = create_standard_label( $words{Choose_Language} , $box1, 0, 0, 0 ); foreach $language ( "English" , "Italiano" , "Deutsch", "Portugues" ) { create_standard_button( $language , $box1, 1, 1, 0, sub { if( $language eq "Japanese" ) { change_font "-jis-fixed-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-0"; } else { change_font(); } print "Choose $language\n"; $ChangeLanguage = "TRUE"; make_word_hash( $language ); show_install_helper_window(); show_install_helper_window(); $language_window->destroy; undef $ChangeLanguage; } ); } create_standard_button( "Request for help" , $box1, 1, 1, 0, sub { create_text_window( 150, 20, 375, 200, "Request for Help", $words{Close}, $words{Request_for_Help}); } ); } sub make_word_hash { # Makes a hash of all the #!/bin/perl # This program mounts the live filesystem and continues the boot # Started by Jeff Carr @ LinuxPPC. This code done under the GPL # I've made a few changes for the new version.... system( "mkdir -p /mnt/cdrom" ); # The default is to go into X11, but if the user passed redhat # to the kernel, We should go into the RedHat installer @commands = split( " " , `cat /proc/cmdline` ); foreach $arg ( @commands ) { if( uc substr( $arg , 0 , 4) eq "TEXT" ){ unlink "/etc/X11/X"; open SLOW, ">>/text_install"; close SLOW; } if( uc substr( $arg , 0 , 5) eq "XPMAC" ){ $Xserver_name = "Xpmac"; } if( uc substr( $arg , 0 , 4) eq "SLOW" ){ open SLOW, ">>/slow"; close SLOW; } if( uc substr( $arg , 0 , 4) eq "OLD_INPUT_LAYER" ){ open SLOW, ">>/old_input_layer"; close SLOW; } } system "/root/bin/find_live.pl 2>&1 1&>/dev/tty4"; # This routine finds the live filesystem if( ! ( -e "/live/bin" ) ) { if( -e "/mnt/cdrom/live/small_files.tgz" ) { print "Ah ha!. The new 2000 format!\n"; setup_second_ramdisk( "/live" ); chdir "/live"; system "tar xfz /mnt/cdrom/live/small_files.tgz"; system "ln -s /live /ram1"; } else { print "\n\n\nI can't seem to find the live filesystem. Sorry :(\n"; exit; } } else { setup_second_ramdisk( "/ram1" ); } print "\n\nBeginning the boot process for LinuxPPC 2000... \n\n"; sleep 1; chdir "/etc/sysconfig/network-scripts/"; system( "ln -s /live/network-scripts/* ." ); chdir "/sbin"; system( "ln -s /live/sbin/* . 2>/dev/tty4" ); chdir "/usr"; system( "mv lib lib.orig" ); system( "mv share lib.orig" ); system( "ln -s /live/usr/* . 2>/dev/tty4" ); $fbinfo = `head -n 1 /proc/fb`; chop( $fbinfo ); ( $fbdev, $fbadd, $fbpath ) = split( " " , $fbinfo ); ( $empty, $fbpci , $fbname ) = split ( /\// , $fbpath ); print "Frame Buffer $fbinfo name is $fbname\n"; if( substr( $fbname, 0, 11 ) eq "ATY,Rage128" ) { print "Using ATI Rage 128\n"; } elsif( $fbname eq "platnum" ) { print "Using platinum video\n"; } system "cp /usr/local/share/Blackbox/blackboxrc/default /root/.blackboxrc"; if( -e "/proc/device-tree/color-code" ) { $color = "test"; $color = `cat /proc/device-tree/color-code`; ($test) = unpack "h7" , $color; print "color = $test\n"; } else { print "color = unknown\n"; } if( -e "/proc/device-tree/openprom/model" ) { $OF = `cat /proc/device-tree/openprom/model`; @stuff = split( " ", $OF ); $OFversion = pop( @stuff ); print "OpenFirmware Version = $OFversion\n"; } else { print "OpenFirmware Version = unknown\n"; } if( $OFversion >= 3 ) { print "You have a New World ROM machine.\n"; } else { print "You do not have a New World ROM machine.\n"; } system( "/root/bin/Xautoconfig_wrapper" ); open( CPUINFO , "/proc/cpuinfo" ); while( ) { if( @stuff[0] eq "machine" ) { if( substr( @stuff[2] , 0, 4 ) eq "PReP" ) { if( substr( @stuff[3] , 0, 9 ) eq "Blackhawk" ) { print "\n\n\nFound Blackhawk!!!!\n\n\n"; } } } } close( CPUINFO ); print "\n\n\nLoading Xwindows....\nPlease Wait, this will take a few minutes\n\n"; if( ! defined $Xserver_name ) { $Xserver_name = "XF68_FBDev"; } setup_X_server ( $Xserver_name ); system( "ldconfig 2>&1 1&>/dev/tty4" ); system( "hostname localhost" ); exit; sub setup_X_server { $server = $_[0]; if( -d "/ram1/" ) { $now = localtime(); $startdate = time(); print "\nSetting up $server starting at $now.\n"; print "If this takes more than a minute it may not be working correctly.\n"; print "\nPlease wait a moment...\n"; if( -e "/usr/X11R6/bin/$server" ) { system( "cp -a /usr/X11R6/bin/$server /ram1" ); } elsif ( -e "/mnt/cdrom/live/bin/$server" ) { system( "cp -a /mnt/cdrom/live/bin/$server /ram1" ); } else { system( "cp -a /usr/X11R6/bin/$server /ram1" ); } $enddate = time(); $elapsed = $enddate - $startdate; print "Set up $server in $elapsed seconds.\n"; @info = stat "/ram1/$server"; $size = $info[7]; system "echo $elapsed >> /root/elapsed"; system "echo $size >> /root/elapsed"; if( $elapsed > 30 ) { $estimate = $elapsed * 21; print "\n\n\n"; print "Your CD-ROM is running very slowly. The X-based installer\n"; print "will take a LONG time to load off of a slow CD-ROM\n"; print "It is recommended that you try another Linux kernel to\n"; print "see if you can get better CDROM performance.\n"; print "If you cannot, you should copy the LinuxPPC live file\n"; print "from your CD-ROM on to a Standard HFS partition on your.\n"; print "hard drive. See the LinuxPPC website for more information.\n"; print "At this rate, it will take $estimate seconds to load X.\n"; print "\n\n\n"; } system( "ln -sf /ram1/$server /etc/X11/X" ); } else { system( "ln -sf /usr/X11R6/bin/$server /etc/X11/X" ); } } sub setup_second_ramdisk { # Check if you have more than 33554432 bytes of ram $dir = $_[0]; @info = stat "/proc/kcore"; $size = $info[7]; if( $size >= 33554432 ) { print "You have 32 MB or more of RAM.\n"; system "mke2fs /dev/ram1 >/dev/tty4"; if( ! -d "$dir" ) { system "mkdir $dir"; } system "mount /dev/ram1 $dir"; } else { print "\nYou do not have 32 MB or more of RAM.\n"; print "The X installer might not work.\n"; print "We recommend you use the text-based RedHat installer.\n\n"; sleep 2; } } ELF41h4 (444 ++,,,---000 /lib/ld.so.1GNUCD5&1A 2!9>;B,*#6:< @87?C30 )('-4/.%$= "+%" -%.;%  A%4 GR.g.z...6p Y04x0/L/T/0\0<%0d31` B0 R/`0t,x/4/,0/</\0l`/ //!/20J/D/0.0$//("/"/l"//"./"/"/t 0,@.0(/,'0D ,0|20L,7%hF0X/_/d"u/|"{0T"+.@__gmon_start__libXaw.so.6_DYNAMIC_GLOBAL_OFFSET_TABLE__init_fini_SDA_BASE_asciiTextWidgetClasscommandWidgetClassformWidgetClasslabelWidgetClassscrollbarWidgetClassXtStringsXInternAtomXtDestroyWidgetXMapWindowXtCreateManagedWidgetXtAddCallbackXtRealizeWidgetXtAppAddTimeOutXtVaSetValuesXtShellStringsXtAppAddActionsXQueryPointerXtParseTranslationTableXtOverrideTranslationsXSetWMProtocolsXtSetMappedWhenManagedlibXmu.so.6XtGetApplicationResourceslibXt.so.6XtAppMainLoopXtAppInitializeXtDisplayXtScreenXtWindowXtVaCreateWidgetXtVaCreateManagedWidgetXtVaGetValueslibSM.so.6libICE.so.6libXext.so.6libX11.so.6XParseGeometrylibc.so.6strcpystdoutmemcpyperrorputsmallocwritefprintf__deregister_frame_infostdinunlinkfreadstrcmpfclosestderrmkstemp__xstatexitfopenatoi_IO_stdin_used__libc_start_mainstrlen__register_frame_infoclosefree_etext_edata_end_SDA2_BASE_GLIBC_2.1GLIBC_2.0 ii ii1`6p /,/4/</D$/L/T/\/d=/l,/t2/|>/)/-/0/*/!/+/"/1/.//6// //</%00 00;0$(0,304 0<0D70L90T?0\0d0l0t0|80#050&.. .'.4. . ./.|) xT!68!|=%XH!UY>|3x8L1K>|tx= .<`8c*x88H}=@= ;8#.= =@9)+9J+$88*=`8|vx9k+ !A ,<=a (48*9+$08w*~ųx89 9_kL1H|zx<x83588L1Ha8888HYTc:, A;8<<==@8+88+D9+T9J+` Cx889!L1HMAa!}kR})9k9)Uj}kR=U .})}kpa8w*x})p ~ųx899_L1HU|}x888789L1HxH},@TCxHM> l= C0!:+ɡ=@Ɋ+(}i[x2h!U;>,@TCxH>l= C0!:+ɡ=@Ɋ+(}i[x2h!U9>|@@h= .<`a8c+lEx8F89L1HE|}x878889L1HxHm!|JT>|@@t= .<`!8c+xEx8F89L1H|}x88889L1HExHa!|Z})!|87T>Cx89L1H= 889`9)*}&Y.;a<9= }Y.89)+}&.=`}.9@9k9}fQ.9= }Q.89)+ }&.=`}.9k+9@ }fQ.= ;[Q.8(9)+|}&.9`}{.;@= :I+|3x:0>`?;@;;~Y..!=`|}H..~ųx&x8H!!||x}=J a<}}Z+<868|Hq,Ap!~x|H.H ,@X!86}?J 8.i 8L1H !|*}?Ji T>868L1H;|;Z;;A~óx|!ĂAȂâЂԂ؂܃!Aa상8!N !|ptx||}x|#x8`x8H U,@a4,@xH 8`H8cH |y@$= i.<8+L1H 8`H<8+xH |~y@xH xH Y8`Hd4x8xH |cy@04,A$xH QxH xH 8`H8||xH x|ptx|8!N !|  |~x<8+8a8L1H m8aH |y@ 8`Hd;XH|exxxH = .x88 H |cyAxH mx8aL1K1|}x8aH ix | 8! N !|,-@ ,@|#xL1K H L1Kɀ|8!N !| =  .;.,A|N!,@| 8!N !||8!N N !|KKK}|8!N !|K饀|8!N H% %4$XConsortium: xmessage.c,v 1.6 95/01/04 16:29:54 gildea Exp $maxWidthMaximummaxHeightTimeouttimeoutNearMousenearMouseCentercenterfalsePrintValueprintValueDefaultButtondefaultButtonokay:0ButtonsbuttonsFilefile.timeout-timeout.nearMouse-nearmouse.center-centeron.printValue-print.defaultButton-default.buttons-buttons.file-file*message.Scroll: whenNeeded*baseTranslations: #override :Return: default-exit() -timeout secs exit with status 0 after "secs" seconds -nearmouse pop up near the mouse cursor -center pop up at center of screen -print print the button label when selected -default button button to activate if Return is pressed -buttons string comma-separated list of label:exitcode -file filename file to read message from, "-" for stdinusage: %s [-options] [message ...] where options include: %s default-exitexitWM_PROTOCOLS: exit(1) Xmessage-help%s: problems reading message file %s: cannot get memory for message string %s: unable to create query form with buttons: %s WM_DELETE_WINDOW%s: internal error, found extra pairs (should be %d) %s: internal error found %d instead of %d pairs formmessageleftrightbottomdisplayCaretuseStringInPlacetopMarginbottomMarginleftMarginrightMarginhScrollbarvScrollbarfromVertvertDistancefromHoriz?ffffffC0cannot get memory for message file r/tmp/xmsg-XXXXXX.&d&\=u=u&T&L=u=u&D&4&$=u=u&& < =u&%%< =u&%%<=u&%%=&=&%%<<%%<<'&&&&&&&&&&&&&&&x&l'$')((p(('''d'`))Xco| % %4Pt  .( 8  o oo hN!-%l)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release).symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.bss.rela.plt.rela.sbss.text.init.fini.rodata.sdata2.data.eh_frame.dynamic.ctors.dtors.got.sdata.sbss.plt.bss.comment #00 1PP$7 tt@?Go h hTo 0c  m 8 8( w``` L% % (%4%4 %X%X++,,----..........$..p1T.@.0x#!/bin/perl # This program assumes that you have the partitions you want to install # onto formatted and mounted relative to /mnt open STDOUT, ">/dev/tty4"; open STDERR, ">/dev/tty4"; if ( test_dir( "/mnt/cdrom/" ) ) { print "/mnt/cdrom/"; exit;} print STDERR "I'm going to look on your CD-ROM.\n"; my($devcdrom) = `grep 'drive name:' /proc/sys/dev/cdrom/info`; my(@devcdroms); if (defined($devcdrom)) { $devcdrom =~ s/^\s*drive\s+name\s*:\s+//; @devcdroms = split(" ", $devcdrom); foreach $devcdrom ( sort(@devcdroms) ) { try_cdroms( $devcdrom ); } } try_cdroms( "scd0", "scd1", "sr0", "sr1" ); try_cdroms( "hda", "hdb", "hdc", "hdd", "hde", "hdf", "cdrom" ); print STDERR "I'm going to look on your MacOS partitions.\n"; print STDERR "HFS+ partitions are not supported.\n"; sleep 2; look_harder(); close STDERR; close STDOUT; print STDERR "\n\n\nI can't find the install files or LinuxPPC Live.\n"; print STDERR "If you have more than one CD-ROM drive, you should try it\n"; print STDERR "in the another drive. Or, the CD you have might not be valid.\n"; print STDERR "Please mount the CD-ROM or directory containing the files.\n\n"; exit; sub my_system { print "Running @_\n"; system "@_"; } sub try_cdroms { foreach $device ( @_ ) { system "umount /mnt/cdrom 2>/dev/null"; # $current = `hdparm -d0 /dev/$device |grep auto`; if( substr( $device, 0, 1 ) eq "h" ) { my_system "hdparm -d0 /dev/$device"; } my_system( "mount /dev/$device /mnt/cdrom" ); if ( test_dir( "/mnt/cdrom/" ) ) { my_system "ln -sf /dev/$device /dev/cdrom"; exit; } } } sub look_harder { @partitions = `cat /proc/partitions`; shift( @partitions ); foreach $partition ( @partitions ) { chop( $partition ); @stuff = split( " ", $partition ); if( @stuff[2] <= 80000 ) { next; } #too small if( length $stuff[3] eq 3 ) { print "not actually a partition $stuff[3]\n"; next; } #not a partition my_system "mount /dev/$stuff[3] /mnt/cdrom 2>/dev/null"; if ( test_dir( "/mnt/cdrom" ) ) { print "/mnt/cdrom"; exit;} system "umount /mnt/cdrom 2>/dev/null"; } } sub mount_livesystem { if( -e $_[0] ) { my_system "mount -o loop=/dev/loop0 $_[0] /live/"; } } sub test_dir { my( $dir, $name ); foreach $dir ( "$_[0]", "$_[0]/LinuxPPC", "$_[0]/Software/LinuxPPC", "$_[0]Desktop\ Folder", "$_[0]/Desktop\ Folder/LinuxPPC", "$_[0]/Desktop\ Folder/Software/LinuxPPC", "$_[0]/live" ) { if( -e "$dir/small_files.tgz" ) { return TRUE; } foreach $name ( "linuxppc.live" , "live.filesystem" , "LinuxPPC_1999Q4_live", "small_files" ) { if( -e "$dir/$name" ) { mount_livesystem "$dir/$name"; } } } } if [ -f /etc/X11/X ]; then echo echo . /root/bin/root_startx watch_xpid.pl if [ -f /tmp/try_x_again ]; then . /root/bin/root_startx fi /bin/bash exit fi if [ -f /bin/install ]; then echo echo /root/bin/try_xserver_again . /root/bin/root_startx /bin/bash else echo echo echo Entering the text based installer! echo You are here for 1 of 2 reasons: echo "1) Your machine does not support X windows" echo "2) You do not have enough memory( more than 48 Meg is recommended)" echo If it is because you do not have enough memory, echo you can still attempt to run the graphical installer echo by typing: echo echo startx echo echo An error has occurred. The install files could not be found echo If you are installing off of the internet echo or a local hard drive, please make sure that you have echo placed your install files on a HFS partition. HFS+ echo partitions do not work. echo echo If you want to continue in text mode, type: echo text_install echo echo Or, you can reboot your machine now echo exec /bin/bash fi /bin/bash ELF46d4 (444 4|4|4|4|4|444000 /lib/ld.so.1GNU     "o55>5*5F"}516 6 ^6(676$v6,Hf64h6<6D(6LP 56T " __gmon_start__libc.so.6ioctl__ctype_bfscanffgetsgetuidfprintf__deregister_frame_infostrncmp__strdupstrcmpfclosestderrexitfopen_IO_stdin_used__libc_start_mainstrlenopen__register_frame_infocloseGLIBC_2.1GLIBC_2.0 ii ii5555555566 6 6 6$ 6, 646<6D6L6T!|H1HH|8!N |) xT!68!|=H0T!| =  4,@l= i4| ,A0??4|9)?4| |N!?4| ,@= 9)5, A<`8c4H/= 8 4| 8!N !||8!N !|= 9)5, A<`<8c486H/%|8!N !||8!N !|ۡX`h048!, A})J| Z.p @,A,#AxH$|~#5})J| Z.=@p ;A{5?})J| Z.p @88j3x8 H$a;|cy@l ,"@T,"A@xH$Mz5<84L1H#z5<838L1H#8`L1H$1;xH$|8a8xH#,@Ā|$|Aa 8! N !|Aa $||x<`<8c4$83 H#|}y@(= i5<84, A})J| Z.p @,A,#AxH"|~#5})J| Z.=@p ;A{5?})J| Z.p @88j4lx8 H";|cy@l ,"@T,"A@xH"mz5<84L1H"z5<838L1H"8`L1H"Q;xH"1|8a8xH!,@Ā|$|Aa 8! N !| =  4;4,A?}(N!,@| 8!N !||8!N !8!N !|K|8!N H# File generated by Xautoconfig3. # To make your own XF86Config File, please remove the reference to this # program in your startup scripts, and run Xconfigurator. # ********************************************************************** # Refer to the XF86Config(4/5) man page for details about the format of # this file. # ********************************************************************** # ********************************************************************** # Files section. This allows default font and rgb paths to be set # ********************************************************************** Section "Files" # The location of the RGB database. Note, this is the name of the # file minus the extension (like ".txt" or ".db"). There is normally # no need to change the default. RgbPath "/usr/X11R6/lib/X11/rgb" # Multiple FontPath entries are allowed (they are concatenated together) # By default, we use a font server, independent of the X server to # render fonts. FontPath "unix/:-1" EndSection # ********************************************************************** # Server flags section. # ********************************************************************** Section "ServerFlags" # Uncomment this to cause a core dump at the spot where a signal is # received. This may leave the console in an unusable state, but may # provide a better stack trace in the core dump to aid in debugging #NoTrapSignals # Uncomment this to disable the server abort sequence # This allows clients to receive this key event. #DontZap # Uncomment this to disable the / mode switching # sequences. This allows clients to receive these key events. #DontZoom EndSection # ********************************************************************** # Input devices # ********************************************************************** # ********************************************************************** # Keyboard section # ********************************************************************** Section "Keyboard" Protocol "Standard" # when using XQUEUE, comment out the above line, and uncomment the # following line #Protocol "Xqueue" AutoRepeat 500 5 # Let the server do the NumLock processing. This should only be # required when using pre-R6 clients #ServerNumLock # Specify which keyboard LEDs can be user-controlled (eg, with xset(1)) #Xleds 1 2 3 #To set the LeftAlt to Meta, RightAlt key to ModeShift, #RightCtl key to Compose, and ScrollLock key to ModeLock: LeftAlt Meta ScrollLock Compose RightCtl Control # To disable the XKEYBOARD extension, uncomment XkbDisable. # XkbDisable ScrollLock Compose RightCtl Control # To enable the XKEYBOARD extension, comment XkbDisable. XkbDisable # To customise the XKB settings to suit your keyboard, modify the # lines below (which are the defaults). For example, for a non-U.S. # keyboard, you will probably want to use: # XkbModel "pc102" # If you have a US Microsoft Natural keyboard, you can use: # XkbModel "microsoft" # # Then to change the language, change the Layout setting. # For example, a german layout can be obtained with: # XkbLayout "de" # or: # XkbLayout "de" # XkbVariant "nodeadkeys" # # If you'd like to switch the positions of your capslock and # control keys, use: # XkbOptions "ctrl:swapcaps" # These are the default XKB settings for XFree86 # XkbRules "xfree86" # XkbModel "pc101" # XkbLayout "us" # XkbVariant "" # XkbOptions "" XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc101)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc101" EndSection XkbKeycodes "macintosh" XkbTypes "default" XkbCompat "default" XkbSymbols "macintosh/us" XkbGeometry "macintosh" XkbRules "xfree86" XkbModel "pc101" EndSection XkbKeycodes "usb" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc105)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc101" EndSection XkbKeycodes "amiga" XkbTypes "default" XkbCompat "default" XkbSymbols "amiga" XkbGeometry "amiga" XkbRules "xfree86" XkbModel "pc101" EndSection # ********************************************************************** # Pointer section # ********************************************************************** Section "Pointer" # Enable scrolling on wheel mice ZAxisMapping 4 5 # When using XQUEUE, comment out the above two lines, and uncomment # the following line. # Protocol "Xqueue" # Baudrate and SampleRate are only for some Logitech mice # BaudRate 9600 # SampleRate 150 # Emulate3Buttons is an option for 2-button Microsoft mice # Emulate3Timeout is the timeout in milliseconds (default is 50ms) # ********************************************************************** # Monitor section # ********************************************************************** # Any number of monitor sections may be present Section "Monitor" Identifier "Unknown" VendorName "Unknown" ModelName "Unknown" # ********************************************************************** # Graphics device section # ********************************************************************** # Any number of graphics device sections may be present Section "Device" Identifier "Generic Frame Buffer Device" VendorName "Unknown" BoardName "Unknown" EndSection # ********************************************************************** # Graphics device section # ********************************************************************** # Any number of graphics device sections may be present Section "Device" Identifier "Generic Frame Buffer Device" VendorName "Unknown" BoardName "Unknown" # This will put your monitor into standby after 20 minutes, suspend # after 30 minutes, and off after 40 minutes. man 5 XF86Config for # more details Option "power_saver" EndSection # ********************************************************************** # Screen sections # ********************************************************************** # The Frame Buffer Server Section "Screen" Driver "fbdev" Device "Generic Frame Buffer Device" Monitor "Unknown" /dev/fb0You must run this program as root. Can't access /dev/fb0 Exiting. Can't determine keyboard/mouse type. Exiting. /etc/X11/XF86ConfigwCan't write to /etc/X11/XF86Config. Exiting. %s RightAlt Meta adbusbpcamiga Protocol "%s" Device "/dev/mouse" EndSection HorizSync 28-33 VertRefresh 43-72 HorizSync 28-50 VertRefresh 43-75 HorizSync 30-70 VertRefresh 50-160 HorizSync 30-100 VertRefresh 50-160 HorizSync 30-130 VertRefresh 50-160 # D: %5.3f MHz, H: %5.3f kHz, V: %5.3f Hz Modeline "Generated" %5.3f %d %d %d %d %d %d %d %d Interlace DoubleScan +HSync -HSync +VSync -VSync Composite bcast EndSection Subsection "Display" Depth %d Modes "Generated" ViewPort 0 0 Virtual %d %d EndSubsection EndSection BmA.@@C0/proc/sys/kernel/osreleaserCan't open /proc/sys/kernel/osrelease.Exiting. %d.%d.%d/proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes%dYou must be running a kernel 2.2.0 or newer. /etc/sysconfig/mouseCan't open /etc/sysconfig/mouse. Exiting. XMOUSETYPE=Can't determine mouse type./etc/sysconfig/keyboardCan't open /etc/sysconfig/keyboard. Exiting. KEYBOARDTYPE=4N!4  PT 5 oloo@t #$T%4$T&&')*T+..symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.sbss.rela.plt.init.text.fini.rodata.sdata2.data.eh_frame.ctors.dtors.got.dynamic.sdata.sbss.plt.bss #00 1PP7 `?TTGo@@,Toll0c n x(~  4|4|4|4|44444444445H5H<5555655ELF 4d`4 (444 bbbbbdbbb000 /lib/ld.so.1GNU%)$( %'" !#    &c4cA"^d}d'd@d0d pd( Ud0" ccdd@F\dH dP4;dX(d`WdhCdpdx(ddidbddHdh0d/dwd d(dmddPd<9cdJ dJ" __gmon_start__libc.so.6ioctlstdoutstrerrorsnprintf__ctype_b__strtol_internalfscanffgetsmemcpygetuidmallocbzerofprintf__deregister_frame_inforeadstrncmp__strdupsscanfmemsetfclosestderrfputcpreadaccess__errno_locationexit__fxstatfopen_IO_stdin_used__libc_start_mainstrlenopenstrchrfputs__register_frame_infopwriteclosevfprintffreeGLIBC_2.0GLIBC_2.1 iir ii|c c c$cccddddd d( d0 d8 d@dHdPdXd`dhdpdxddddddddddd d!d"d#d%d'!|HAHHA|8!N |) xT!68!|=JH[P!| =  b ,@l= ib ,A0??b9)?b |N!?b ,@= 9)d8, A<`8cbHZ= 8 b | 8!N !||8!N !|= 9)c, A<`<8cb8eHYـ|8!N !||8!N !|ۡHPX $(!,A0a48<@Dd= ;UHY,A(= ic<8VL1HYQ8`L1HZx8L1HY|~x0|p@L8F8L1HY0c|c|cp@(x8F8hL1HY0c|c|cTxHX,A= ic<8V(HH |cy@= ic<8VHHt,A= ic<8VxHX̐=C0= 9)Yɉ= ɩY`(!hAԁaIR$:Z~|J|R|Zɡ!la܁AZ|R|J|Z|R,`(`(h$$@ ;H!a|JZk| p}ix})XP})p,} HH8T&}=x@$8aL1H a8a L1H Րa PHi<`<8cV8VHX%|y@$= ic<8VL1HW8`H`= c\<8VxL1HV< A = c`8VxL1HVH= cd8VxL1HV<8VxL1HV= <ch8VxL1HV A <8WxL1HViH<8WxL1HVQ<8WxL1HV== cl<8VxL1HV!h(A<8W@H<( A<8WhH((A<8WH(A<8WxL1HUH<8WxL1HU= cp<8VxL1HU`= Y=`KY$<8Xx^$ L2BHU] lh<|x)x a8X4Hx~xx|+xL2BHUp A<8XhxL1HTp A<8XtxL1HTـp A<8XxL1HTH<8XxL1HTp A<8XxL1HTH<8XxL1HTip A<8XxL1HTIp A<8XxL1HT)= ct<8VxL1HT 8(A$=`9kYT:}K.= 9)Y}JJ}IN = cx<8VxL1HS<8XH= cx<8VxL1HS<8XH= cx<8VxL1HSq<8XHx= cx<8VxL1HSI<8XHP= cx<8VxL1HS!<8Y H(= cx<8VxL1HR<8Y xL1HRH<8Y4xL1HR=@=`= ccc<8YLxL1HR;= c|<8VxL1HR?<x8YhxL1HRe? ?@?`??8YlxL1HRA8YxL1HR1x8YhxL1HR;8YxL1HR hl8YxL1HQx8YL1HQ,@<8YxL1HQxHRU8`d| $(!,A0a48<@DˡHPX8!`N !|$|~x<`8cexH)Q;@,8`A8` HQQ|x8 HQݓx88 8@Hy,@ 8`HQT~,@,x8@8L8@HE,@ 8`HQ;xx8 Hx8H x$|8! N !|$?}cH =c@,A0?xK|cyAcc,@܀$|8! N 9# 8|i}i Tc@.}cxN !|$H)?|`x<c8eH$M}cH K-= cH,A@x8 K,@=  c= ic=  c= icH $|8! N !|$(,4;<`<8cZP8ZlHO|cy@, A})J| Z.p @,A,#AxHL|~#c})J| Z.=@p ;A{c?})J| Z.p @88j[\x8 HL;|cy@l ,"@T,"A@xHLzc<8[hL1HLzc<8ZL1HK8`L1HL;xHLu|8a8xHL,@Ā|$|Aa 8! N !|Aa $||x<`<8c[8ZlHL9|}y@(= ic<8[L1HK18`L1HK?@?`H,!;, A{c})J| Z.?p A >, A})J| Z.p @,A,#AxHK|~#c})J| Z.=@p ;A{c?})J| Z.p @88j[x8 HJ;|cy@l ,"@T,"A@xHJрzc<8[hL1HJ%zc<8ZL1HJ8`L1HJŘ;xHJ|8a8xHJ!,@Ā|$|Aa 8! N !|$8``HI|~x8`HJ9= =`9)[;b$;>(?;, A ,Ax|N!|@x$|8! N !|$|#x|~xxHI|}y@ 4<`8c[|xL1N!x$|8! N !||cyAHIe|8!N !P|a?89aa ! A$@$!(A0a8؁@ءHPX`9!i p?|{x;pc<`}8c\ HH)|cxdxHHc8` HH58`HHu!P|a?89aa ! A$@$!(A0a8؁@ءHPX`9!i p?|{x;pc<`}8c\ HGY|cdxxHG1c8` HGe|a8!N !p|=89aa ! A$@$!(A0a8؁@ءHPX`9!I |dx=`pkc8pEHFq|8!N ! ! A$@$!(A0a8؁@ءHPX`8!pN !|Aa $|x4,@= 9)?48,@= 9)X?8<,@= 9)D?<0,@= 9)?<,A(= A9)b$T:}i., @?4<`8c\,}(L1N!= 9)b$T:}i.DH́?<<`8c\h}(L1N!|.DH= ;b$;?@?`;|.,AL?<8z\T}(xL1N!}>.x |N!,@?<8{\p}(L1N!;(;@D,@?4<`8c\x}(L1N!?D<`?<8c\}(L1N!?Dx |N!$|Aa 8! N !|$|x@,AxHiy@?D, A x|N!xHxK$|8! N !|#D |N!|8!N !|$|}x8dK|x8dHCL=D?P $,Ax|N!x$|8! N @@8`N !|a $|#x|+x|3xKMc$|a 8! N !| |x?P (,A |N!xK]| 8!N !|$|#x#X8 |H;A Tx|Z8L1HBAH8#P}d[x x8|N!,@x88HBYa$|8! N !|$(,4|#xs|x;A$?L<` 48c\|8L1N!?X8|HA Tx|8L1HA}H|x4|$(,8!0N !|$(,4|#xs|x;A$?L<` 48c\|8L1N!?X8|HA Tx|8L1H@HTi.TkB|Kx|[xTc|x4|$(,8!0N !|#P |N!|8!N !|$(,4|x?X|#x8|H;ATx|c8L1H??Px xx|8N!4|$(,8!0N !|$(,4TD.|#xT>s|+x|x;A$?L<` 48c\|8L1N!?X8|HATx|c8L1H>?Px xx|8N!4|$(,8!0N !|$(,4T.TF>|KxTB|Kx|#xTs|+x|x;A$?L<` 48c\|8L1N!?X8|HATx|c8L1H>?Px xx|8N!4|$(,8!0N !|$|~x>X|#x|H|+x|3x@<|H}?HP~T|&T|})(x(8|Kx|cxL1H=q>Px xx|xN!$|8! N !| t|xA8T|yA$?Px |N!|x| 8!N XTN 1 |iN !|A(a,048<D|~x,;@<4<`8c\}(L1N!<8]xH<|zy@TH;cH;|ex>4<`8c]}(xL1N!H$8a8 H;]|y@>4<`8c]8}(L1N!9 ?8;|@|xA, @ ?;}#P;,@ ,:@ ,.@|, @p<8]\88 8L1H;,@L xK%||x8xK|`x8`8H;uxxKH(,@ ;H/20} |&T}+9A ,:@ , @<8]h8a8L1H:,@; ?`Ht?;})t})J| Z.xp ;AL1H:,= 8i]t@,@>4}(L1N!a<`| Y9ka?{c})t})J| Z.<p 88]p|+xA?})t})J| Z.p @P8a8ExH9,@̀D|A(a,048<8!@N N N !|`|#x,@H#L)@, A,cH), A |@, @ 8`H$}#Kx`|+x|Z|3xL1H918`|8!N !|#L<` 48c]|L1N!8`|8!N !| |x`,AK8`| 8!N ,}$KxA 8`N |:x})Bx})"xT(4})xU+Ѿ})ZCLU):|iP.Hc,M |0@|8@|@@Ԡ | @Ȁ |(@N !|!Aa $(,4|+x|3x|;xx|#x}Cx|xW(4|x|ZxT Ѿ|R|~xT^LW+:}KP.}8KxHJ/A@ |@ |@ |@Ԡ |@Ȁ |@8`@Hx8K|jxjJ >LW+:| H.8` >L}KI.4|!Aa $(,8!0N !|a $|#x|}xH6-c(H6|fx4<`8c]|xexL1N!$|a 8! N !| !$A(a,048<D|zxH; !! !!;,A?;`| xUi>i |})U)T}(9;9xA9@U`>,#@L]=i |})U)T}*9AL=i |})U)T}+9@H(}Ui>i |})U)T}(9@, @8;,A|@x@,, @ 9 >|@@, Ax, @, A|@,C@T, @H;xH4y(@(, @x8]8L1H4,@;H@xH49(@, @x8]8L1H4,@;aaa ;H,8|@,A,A8x8]8 L1H41,@p, @d;;H<,APx8]8 L1H3,@4, @(;;aaH8|@,A,A@<8]x88L1H3,@Ԉ , @; ;H@,Ax8]8L1H3Y,@, @;;a, @, A,A\ xCxxK,A$:4<`8c]}((%xL1N!,@H$4<`8c]|(%xL1N!D| !$A(a,048<8!@N !|hlt|x(8L1H2-|~y@8,H8`x8H1,@<8^xK4x8K4|dxHxH2 4|A<8^xKH!48| I8xK|`x8LH1xK xH0t|hl8!pN !|$|}x}H;Kـ}LHK͓L$|8! N !| !Aa $(,4|3xw`|x|#x|+x|;x}Cx}:Kx}WSx,A |x;L!~}+!`| | H9AxK),8(A=`9k_T:}K.= 9)_}JJ}IN xx8x899 Ki|cy@<8^$H|xxx8x99 K5|cy@<8^$xHH,@88x899 xK|~xx88xx99 K,@<8^,xxH,@<8^HxH<8^`H<8^hxxH|xxFx8899 KQ|cy@<8^$HdxxxHx~x8xK|cy@|<8^$xH0,@88Fx899 xK|~xxxx88Hx~xK,@<8^,Fx~xH,@<8^H~xH<8^`Hx<8^hFx~xHdxx8W>W>99 K9|cy@xx8x899 K|cyA(<8^tx#xxL1H-H8<8^x#xxL1H-}Hxx8W>W>x9 K|cyA cH,@ spA 8`HsA= 8^H = 8^sA= 8^H = 8^sA= 9 ^H = 9 ^sA= 8 ^H = 8 ^sA= 9I^H = 9I^<8^| x#xxL1H,|cyA 8c8|H<`8c^H|A #xH = 8i^4| !Aa $(,8!0N 8 N !|}&A(a,048<D$|#x|zx8:xH*x|}y8.N|`&Tc|c;x8|cxH*|~xAx8?x, A`, *8 @,AHx888H+!, A ,@ (@<`8c_DHz,A8;;, A`, *8 @,AHcx888H*!, A ,@ (@<`8c_XH|z,Al>, A`, *8 @,AHx888H*!, A ,@ (@<`8c_lH z8`D$|A(a,048<} 8!@N !|$(,4|#x|}x,8`Ax8:H(|~y@<`8c_H8?;, A`, *8 @,AHx888H)!, A ,@ (@<`8c_Ht} >, A`, *8 @,AHx888H(!, A ,@ (@<`8c_H }8`4|$(,8!0N !| |x?|#x, A| @?, A| @p?, A| @X,@ ,AHx8Kف?, A| @ ,A |A 8`H8`| 8!N = 9)_#N !| |x8xH',@(<<`8c_|xL1N!8`H$8<`8c_|xL1N!8`| 8!N 8PN !| |xP,AH&M8P| 8!N !|!TAXa\`dhlt|~x<8_8a88L1H&,@>4<`8c_}(L1N!<8`8a8H&|yy@>4<`8c_}(88L1N!HlxKu|x9?$9_D9,8084888<8 9(;a8;A<;@! A $a(;H<a,9?9_08` 8a8exFx89L1H%|}xk9=!)})I})1K| Y}+9A >4<`8c`P}(xL1N!!88`U)>?;T;U)~?< :?$,@U)~}#x!}}kY}k[``|Xx|kX8}cxxxK8a88%xH$a,@#xH$t|!TAXa\`dhl8!pN !|$|~xL|#xX|@T|@P,AH#<>8`x8a8L1H$,@?4<`8c_}(L1N!? 0}`1I| I|[xT<T8aL1H#,P@ ?8<`8c_}(8L1N!8X\P$|8! N !|$|x|#x|+x|3x8K|`y8`Ax|xxxH"]|fy@4H"cLH"m|dx8<`8c`|L1N!H8|@ 8`H,?L<` 88c`x|xL1N!8`$|8! N !|$|x|#x|+x|3x8K|`y8`Ax|xxxH!|fy@4H!cLH!|dx8<`8c`|L1N!H8|@ 8`H,?L<` 88cax|xL1N!8`$|8! N #L X|L 8 XN !|!Aa $(,4|{x|+x|#xKݕ|}x;<<`8ca<}(xL1N!|,A$8<`8ca`|xL1N!HT8|9 ;@=];)H8xKI|~x||pW0})x@8|KxcxKW~|x=W>?9`_ \cxxK!,AXA,,A$8xKݽ|excxxKH,;<<`8ca}(xL1N!,AH=9)=(A0x8K||x }  !`| }+yA)x, @Ā4|!Aa $(,8!0N !|$|}x8a8Hux88Kŀ$|8! N !| !$A(a,048<D|#xr|xLA 8Kݰ x8KͰrAx8xլרDDDD֐DDDD<*Invalid bus numberInvalid slot numberInvalid function number':' expectedInvalid vendor IDInvalid device ID/proc/bus/pciCannot open %s...using %s%s/devicesFile name too longr%x %x %x %lx %lx %lx %lx %lx %lx %lx %lx %lx %lx %lx %lx %lx %lxproc: parse error (read only %d items)%s/%02x/%02x.%dproc_read: read failed: %sproc_read: tried to read %d bytes at %d, but got only %dproc_write: write failed: %sproc_write: tried to write %d bytes at %d, but got only %dScanning bus %02x for devices... Bus %02x seen twice (firmware bug). Ignored.Device %02x:%02x.%d has unknown header type %02x. %02x:%02x.%d: Invalid 64-bit address seen.%02x:%02x.%d 64-bit device address ignored.bblb@]''**E|*++_<<===E|A<B CN!b  JP  r cL( oooJPPQ\QR`TTU.symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.sbss.rela.plt.init.text.fini.rodata.sdata2.data.eh_frame.ctors.dtors.got.dynamic.sdata.sbss.plt.bss #00 1PP@7 ?  GoRTo0c(($ nLL x(~  AtJJ JJlbbbb|bbbbbbbbbbc\c\$cc ccec,c#!/usr/bin/perl my $device = $ARGV[0]; my $system_files = $ARGV[1]; if( ! defined $device ) { die "must provide device"; } if( ! defined $system_files ) { $system_files = "/mnt/cdrom/"; } if( system "hmount $device" ) { print "HMOUNT FAILED $hmount\n"; exit; } system "hmkdir System\\ Folder"; system "hcd System\\ Folder"; system "hcopy $system_files/live/Finder.bin :"; system "hcopy $system_files/live/System.bin :"; system "hcopy $system_files/live/MacOS_ROM.bin :"; system "hcopy $system_files/System\\ Folder/yaboot.conf :"; print "\n\nSystem Folder contents:\n"; system "hls -l"; print "\n"; system "hcd ::"; # system "hattrib -b System\\ Folder"; system "hcopy $system_files/vmlinux.2.2.15pre3 :"; system "hls -l"; system "humount $device"; Welcome Willkommen Instructions Willkommen Congratulations Herzlichen Glueckwunsch! Version Version Choose_Method Installationsart auswaehlen ... Choose_Packages Software-Pakete auswaehlen ... Enter_Password Passwort-Eingabe ... Network_Config Netzwerk-Konfiguration ... Finished Ende About_BootX Ueber BootX ... Using_BootX Benutzung von BootX ... Install Installation Update_Installer Update- und Installations-Programm Language Sprache Choose_Language Bitte waehlen Sie Ihre Sprache aus: Quit Beenden Reboot Reboot Reset Reset NFS_mount_failed Das Netzwerk Dateisystem konnte nicht angehaengt werden. Close Schliessen Cancel Abbrechen Activate Aktivieren Finish Beenden Done Fertig dated datiert Setup_Network Netzwerk konfigurieren Site Dateisystem/URL Known_sites Folgende Installationspunkte (Dateisysteme/URL's) wurden gefunden: end Try_URL Versuche URL: Update_URL Update URL: Update Update Partition Partition Name Name Size Groesse Mount_Point Anhaengepunkt des Dateisystems welcome_title Wilkommen zu dem X Linux Installations-Programm MountWindowName Konfiguration der Partitionen Format Formatieren FormatMount Formatieren und Anhaengen CDROM CDROM NFS Netzwerk Dateisystem LocalPartition Lokale Partitionen LocalMountFailed Das Anhaengen des lokalen Dateisystems ist fehlgeschlagen CDROM_Mount_Failed Das Anhaengen des CDROM-Dateisystems ist fehlgeschlagen NFS_Mount_Failed Das Anhaengen des Netzwerk-Dateisystems ist fehlgeschlagen Connection_Failed Keine Verbinfung zu URL Select_Partitions Bitte waehlen Sie die Partionen aus Customize Bearbeiten Check_Diskspace Verfuegbaren Plattenplatz pruefen Total_Size Benoetigter Plattenplatz fuer die Installation: Device_Name Geraete Namen IP_Address IP Adresse Gateway Gateway Netmask Netzwerk-Maske On_Boot Beim Booten Default_Gateway Standard Gateway Hostname Rechner Name Nameserver Nameserver Activate Aktivieren Setup_PPP PPP-Einstellungen DefaultFont -misc-fixed-medium-r-semicondensed-*-13-*-*-*-c-*-iso8859-2 welcome_text Dies ist das erste X-basierte graphische Installations- Programm fuer LinuxPPC. Zusaetzliche Informationen finden Sie unter: http://www.linuxppc.org/userguide/ Waehrend der Installation nehmen Sie folgende Schritte vor: 1: Waehlen Sie ein Installationsart aus. Wenn Sie ein Installations-CD eingelegt haben, dann ueberspringt das Installations-Programm diesen Schritt. 2: Waehlen Sie die Festplatten-Partionen fuer die Installation aus. Wenn Sie noch keine erstellt haben, dann booten Sie bitte MacOS und erstellen welche. Empfohlen werden 2 Partitionen: root (Dateisystem) und swap (Swap-Bereich). Die root-Partionen wird unter "/" angehaengt. 3: Waehlen Sie die Software-Pakete aus, welche installiert werden sollen. Die Standard-Installation benoetigt ca. 350 MB Festplattenspeicher. Klicken Sie auf Installation ... Die Ausgabe des Installationsprogramms wird in das Ausgabefenster geschrieben, welches Sie durch doppel-Klick oeffnen koennen. 4: Geben Sie bitte ein Passwort ein, das Sie sich gut merken koennen. 5: Netzwerk-Konfiguration: Sie koennen Ihre Netzwerk-Einstellungen jetzt eingeben oder zu einem spaeteren Zeitpunkt vornehmen indem Sie das Programm "netcfg" benutzen. Herzlichen Glueckwunsch, die Installation ist beendet. Waehlen Sie "Reboot" oder "Beenden" end NFS_instructions Geben Sie bitte den Rechner-Namen und den Pfad des exportierten Dateisystems in das Eingabefeld "Dateisystem/URL" ein: Zum Beispiel: rechner.netzwerk.org:/pfad/zu/linuxppc/ Klicken Sie anschliessend auf NFS. end NFS_badmount_message Das Anhaengen des Netzwerk-Dateisystems ist fehlgeschlagen! Bitte pruefen Sie ob sie den Rechner- und den Verzeichnis-Namen richtig angegeben haben und versuchen Sie es dann erneut. Probleme mit Netzwerk-Dateisystemen koennen auch auftreten, wenn Sie nicht die benoetigten Zugriffsrechte besitzen. end BootX_message Wenn Sie MacOS booten, wird eine Abfrage erscheinen ber die Sie entscheiden knnen, ob Sie LinuxPPC oder weiter MacOS booten moechten Wenn Sie sich fuer Linux entscheiden sollten, geben Sie bitte die Installationspartition an, damit der Kernel das root-Dateisystem findet. Bitte "deselectieren" Sie die Check-Bock "Use RamDisk". end No_Install_Files Es scheinen keine Pakete/Dateien fuer die Installation vorhanden zu sein. Wenn Sie wissen wo Ihre Pakete/Dateien fuer die Installation liegen, dann haengen Sie das Dateisystem/Verzeichnis bitte in das Verzeichnis /tmp/install an. end Bad_Site Dieser Installationspunkt (Dateisystem/URL) arbeitet nicht korrekt. Bitte Versuchen Sie einen anderen :-( end URL_help Bitte geben sie einen URL oder waehlen sie einen schon vorhandenen Installationspunkt. Zum Beispiel http://ftp.linuxppc.org/linuxppc-4711/ Dieses Installations-Programm arbeitet mit HTTP-Installationspunkten schneller als mit FTP-Installationspunkten. end Credits_Text Herzlichen Glueckwunsch, Sie haben LinuxPPC 5.0 installiert! - Dieses Installationsprogramm wurde erstellt - von Brian Bresen - Danksagung an alle die die Erstellung dieses Programms unterstutzt - haben bzw. daran mitgewirkt haben: Linus Torvalds, Richard Stallman, - Mark Hatle, Tom Rini, Adrian Sun, Paul Mackerras, Gary Thomas und alle - anderen Linux-Entwickler. Spencer Kimball und Peter Matis fuer die GTK - Tips und GIMP. Die Sponsoren von LinuxPPC Linux International und John - "MadDog" Hall. ... und natuerlich Ihnen der LinuxPPC-Benutzern. end Request_for_Help RTFM= _R_ead _T_he _F_ine _M_anual end Welcome Welcome Instructions Instructions Congratulations Congratulations: You are done Version Version Choose_Method Choose Method Choose_Packages Choose Packages Enter_Password Enter Password Post_Install Linux Configuration Password root Password: Again root Again: Set_password Set password Network_Config Network Configuration Credits Credits Congradulations Congradulations Options_Menu Options Menu Finished Finished About_BootX About BootX Using_BootX Using BootX Install Install Update_Installer Update Installer Language Language Choose_Language Choose Language Quit Quit Reboot Reboot Reset Reset NFS_mount_failed NFS mount failed Close Close Cancel Cancel Activate Activate Finish Finish Done Done dated dated Setup_Network Setup Network Setup_DHCP Setup DHCP Site Site: Known_sites I have found the following known sites: Try_URL Try URL Update_URL Update URL: Update Update Partition Partition Name Name Type Type Size Size Length Length Mount_Point Mount Point welcome_title Welcome to the X Linux Installer! MountWindowName Mount Partitions and Setup Swap Format Format FormatMount Format and Mount CDROM CDROM NFS NFS LocalPartition Local Partition LocalMountFailed Local Mount Failed CDROM_Mount_Failed CDROM Mount Failed NFS_Mount_Failed NFS Mount Failed Connection_Failed Connection to URL Failed Select_Partitions Select Partitions Partition_Drives Partition Drives Customize Customize Check_Diskspace Check Diskspace Total_Size Total size to install: No_Linux_Partitions No Linux Partitions Defined Help Help Device_Name Device Name IP_Address IP Address Gateway Gateway Netmask Netmask On_Boot On Boot Default_Gateway Default Gateway Hostname Hostname Nameserver Nameserver Activate Activate Setup_PPP Setup PPP Recommend Recommend no_root_title No Root partition! too_small_title Root is too small! Launch_xterm Launch xterm Configure_Keys Configure X modifier keys Show_output Run xinstaller with output window DefaultFont -misc-fixed-medium-r-semicondensed-*-13-*-*-*-c-*-iso8859-8 welcome_text This is the First X based Graphical installer for LinuxPPC. More instructions for installing LinuxPPC can be found at http://www.linuxppc.org/userguide/ In brief, to install Follow the steps below: 1: Choose the install method to use. If you already have the CD in your machine, the installer will skip this part. 2: Select the Partitions that you want to install from. You will only be able to format UNIX partitions. If you don't have any UNIX partitions you will need to create one now. We recommend you make four partitions: /home, /boot, Swap, and / (often called root). 3: Choose the software you want to install. The default install needs about 450 Megabytes of disk space. Then Click Install. You can watch the output of the progress if you open up the output window by double clicking on it's icon in the lower left part of the screen. 4: Enter your password Congratulations! You're done installing! Hit reboot or quit. end Recommend_text We recommend you make four partitions called: Name: Size in Megabytes: Type: / 500-1500 Apple_UNIX_SVR4 /home 100 - rest of drive Linux /boot 32 Apple_HFS swap 64 Linux If you have a lot of space for linux, 1.5 GB should be the most you will need for root, you should put the rest of the free space on /home. It's probably a good idea to put swap at the end of the drive. For PREP machines the /boot partition should have the kernel copied onto it. For CHRP machines, it should be a msdos format. end No_Linux_Partitions_Text You do not have any Linux partitions defined yet. You will have to partition you drives before you can install. end no_root_warning You did not select a partition to use as the root drive. You need to input "/"(without the quotes) as a mount point for one partition. end too_small_warning The partition you have select to use as root is too small. You need at least 450MB on a partition to install the minimal packages. end NFS_instructions Type the machine and path - for example my.machine.org:/path/to/linuxppc/ in the entry box, then click NFS. end NFS_badmount_message NFS mount: failed or didn't contain the right files to install LinuxPPC. Please check the server name and path and try to mount it again. You can also mount the partition yourself into /tmp/install end No_Install_Files does not seem to contain any install files. If you know where the files are, you should mount them into /tmp/install end Bad_Site Is not currently working correctly. Please try another one. end URL_help Enter a URL below or choose a known site. For example: http://ftp.linuxppc.org/linuxppc-1999/ This Installer is faster with HTTP than FTP sites. end BootX_message If things went well in the MacOS, you are prompted at bootup with BootX. From there you can choose Linux or MacOS. If you choose Linux, You will need to tell the kernel what partition you installed onto. Once you have installed Linux, you will have to uncheck the "Use ramdisk" checkbox. end Credits_Text This Installer started by Brian Bresen Special thanks goes out to the Free Software Foundation for helping start the whole effort, Linus Torvalds for a great kernel, Gary Thomas, Paul Mackerras and Cort Dougan for helping get LinuxPPC started and to all the people on the dev list that have contributed to making Linux on the PowerPC. Finally to all the other Free Software groups who made all the pieces to the puzzle: Apache,GIMP, GNOME, KDE, X, etc. end Request_for_Help If you know a foreign language please help make the installer better and submit a translation! The files are in /usr/X11R6/lib/xli and are in a very simple text format. Just email them to me( jcarr@linuxppc.org. ) I only know english! end KPPP_Warning You can not configure a PPP connection using the LinuxPPC installer at this time, or you do not have kppp installed. Please install KDE if you would like to use kppp. end Finished_Message You have finished installing LinuxPPC. You may now continue to configure your system or simply reboot your machine! If you have a New World Rom Macintosh, you will need to type linuxppc at the prompt after you boot off of the CD. If you have a older Macintosh, you will have to to set BootX to not use the ramdisk or you will need to boot off the /boot partition you made during this install. end Welcome Benvenuto Instructions Benvenuto Congratulations Congratulazioni: hai finito Version Versione Choose_Method Scegli il metodo d'installazione Choose_Packages Scegli i pacchetti da installare Enter_Password Inserisci la password Network_Config Impostazioni di rete Finished Finito About_BootX Info su BootX Using_BootX Uso di BootX Install Installa Update_Installer Aggiorna l'installazione Language Lingua Choose_Language Scegli la lingua Quit Esci Reboot Riavvia Reset Cancella NFS_mount_failed Il tentativo di montare il volume NFS e` fallito Close Chiudi Cancel Annulla Activate Attiva Finish Fine Done Fatto dated datato Setup_Network Configura la rete Site Sito: Known_sites Ho trovato i seguenti siti: Try_URL Prova l' URL: Update_URL Aggiorna l' URL: Update Aggiorna Partition Partzione Name Nome Size Dimensione Mount_Point Mount Point welcome_title Benvenuto nell'installazione di Linux! MountWindowName Monta le partizioni e imposta lo swap Format Inizializza FormatMount Inizializza e monta CDROM CD-ROM NFS NFS LocalPartition Partizione locale LocalMountFailed Il tentativo di montare la partizione locale e` fallito CDROM_Mount_Failed Il tentativo di montare il CD-ROM e` fallito NFS_Mount_Failed Il tentativo di montare il volume NFS e` fallito Connection_Failed La connessione all'URL e` fallita Select_Partitions Scegli le partizioni Customize Personalizza Check_Diskspace Controlla lo spazio su disco Total_Size Dimensione totale dei pacchetti da installare: Device_Name Nome del dispositivo IP_Address Indirizzo IP Gateway Gateway Netmask Maschera di sottorete On_Boot Attiva all'avvio Default_Gateway Default Gateway Hostname Nome host Nameserver Nameserver Activate Attiva Setup_PPP Configura PPP DefaultFont -misc-fixed-medium-r-semicondensed-*-13-*-*-*-c-*-iso8859-8 welcome_text Questo e` il primo programma d'installazione di Linux basato su X Windows. Ulteriori istruzioni per installare Linux si trovano all'indirizzo http://www.linuxppc.org/userguide/ Per installare: 1: Scegli il metodo d'installazione. Se il CD e` gia` inserito, il programma d'installazione saltera` questo punto. 2: Scegli le partizioni su cui effettuare l'installazione. E` possibile inizializzare solo partizioni UNIX. Se non hai partizioni UNIX, riavvia sotto MacOS e creale. E` consigliabile creare almeno due partizioni per Linux, "root" e "swap". La partizione "root" va poi montata sotto / 3: Seleziona i pacchetti che vuoi installare. L'installazione base (predefinita) richiede circa 350 Megabytes di spazio su disco. Quando hai finito, fai clic su "Installa". Puoi seguire l'andamento dell'installazione aprendo la finestra "Output" (fai doppio clic sulla sua icona in basso a sinistra sullo schermo). 4: Inserisci la password. 5: Imposta i parametri di rete. Questo passo non e` indispensabile, e puoi comunque farlo in un secondo momento usando il comando "netcfg". Congratulazioni! L'installazione e` completa! Fai clic su "Riavvia" o su "Esci". end NFS_instructions Inserisci l'indirizzo del server e il percorso (ad esempio mio.server.org:/percorso/per/linuxppc/), poi fai clic su "NFS". end NFS_badmount_message Il tentativo di montare il volume NFS e` fallito, oppure il volume non contiene i file per l'installazione di LinuxPPC. Controlla il nome del server e il percorso e riprova. Puoi anche montare la partizione direttamente sotto /tmp/install. end BootX_message Se tutto e` andato bene sotto MacOS, comparira` all'avvio la finestra di BootX, dalla quale puoi scegliere se far partire Linux o MacOS. Se scegli Linux devi indicare su quale partizione e` installato. Devi inoltre deselezionare l'opzione "Use ramdisk". La partizione che devi indicare nel campo "/dev/" e` end No_Install_Files non sembra contenere i files d'installazione. Se sai in quale directory si trovano, devi montarla sotto /tmp/install end Bad_Site al momento sembra non funzionare correttamente. Prova un altro sito. end URL_help Inserisci un URL o scegli uno dei siti qua sotto. Ad esempio http://ftp.linuxppc.org/linuxppc-1999/ Questo programma d'installazione e` piu` veloce via HTTP che via FTP. end Credits_Text Congratulazioni, hai installato LinuxPPC 5.0! Questo programma d'installazione e` stato iniziato da Brian Bresen Un ringraziamento particolare da LinuxPPC alle seguenti persone, che hanno reso possibile questo programma: Linus Torvalds, Richard Stallman, Mark Hatle, Tom Rini, Adrian Sun, Paul Mackerras, Gary Thomas, e a tutti gli sviluppatori Linux sparsi per il mondo; a Spencer Kimball e Peter Mattis per GTK e the GIMP; a Tux; ai "Supporters of Linux International" e a John "MadDog" Hall. E a voi, gli utenti di LinuxPPC. end Request_for_Help Avrai notato che molte traduzioni non sono disponibili o sono ancora incomplete. Se conosci una lingua straniera, puoi aiutarci a migliorare questo programma d'installazione fornendoci una traduzione! I files sono in /usr/X11R6/lib/xli e sono in un formato testo molto semplice. Se hai una traduzione, mandamela per email ( jcarr@linuxppc.org. ) Purtroppo io conosco solo l'inglese! end Welcome Bem Vindo Language Idioma Choose_Language Escolha o Idioma Quit Sair cd /root USERNAME="root" ENV="/root/.bashrc" HISTSIZE="1000" HOSTNAME="localhost.localdomain" LOGNAME="root" HISTFILESIZE="1000" MAIL="/var/spool/mail/root" TERM="linux" HOSTTYPE="powerpc" HOME="/root" SHELL="/bin/bash" PS1="[\u@\h \W]# " USER="root" OSTYPE="Linux" SHLVL="1" _="/usr/bin/env" DISPLAY=:0 export USERNAME ENV HISTSIZE HOSTNAME LOGNAME HISTFILESIZE MAIL TERM HOSTTYPE PATH KDEDIR HOME SHELL PS1 USER OSTYPE SHLVL _ DISPLAY if [ -f /root/xargs ]; then /etc/X11/X `cat xargs` & else /etc/X11/X & fi echo $! > /tmp/xpid sleep 4 if [ -e /slow ]; then sleep 45 fi xmessage -center Please wait -- Booting into the Linux Installer & sleep 3 if [ -e /slow ]; then sleep 5 fi # cd /usr/X11R6/lib/X11/fonts # cat */* > /dev/null # cd /root blackbox & if [ -e /slow ]; then sleep 5 fi install_helper & if [ -e /slow ]; then sleep 5 fi xset s off #!/usr/bin/perl # # Xautoconfig_wrapper: # Sets depth using fbdev # Figures out whether or Xautoconfig3 or 4 should be run # my $OPTIONS; while ( ) { $arg = shift @ARGV; if( ! defined $arg ) { last; } if( $arg eq "--ignore-depth" ) { $OPTIONS{ FBSET } = "FALSE"; next; } if( $arg eq "--quiet" ) { $OPTIONS{ QUIET } = "TRUE"; next; } if( $arg eq "--path_to_root" ) { $OPTIONS{ PATH_TO_ROOT } = shift @ARGV; next; } print "Xautoconfig_wrapper 0.9\n"; print " --ignore-depth Do not set color depth\n"; print " --path_to_root set the root path to PATH\n"; print " --quiet Do not print any output\n"; print " --no_font_path Remove FontPath\n"; print " --help This info\n"; exit; } $path_to_root = "/"; if( defined $OPTIONS{ PATH_TO_ROOT } ) { $path_to_root = $OPTIONS{ PATH_TO_ROOT }; } if( -e "/proc/cmdline" && ! defined $OPTIONS{ FBSET } ) { my @kernel_args = split " ", `cat /proc/cmdline`; foreach $arg ( @kernel_args ) { ( $type, $value ) = split "=", $arg; # print "$type is equal to $value\n"; if( $type eq "depth" ) { my_print( "Setting color depth to: $value\n" ); system "fbset -depth $value"; last; } } } @path = split "/", readlink "$path_to_root/etc/X11/X"; $xserver = pop @path; my_print ( "path is @path, xserver is $xserver\n" ); if( $xserver eq "XF68_FBDev" ) { run_Xautoconfig( 3 ); } if( $xserver eq "XFree" ) { run_Xautoconfig( 4 ); } if( $xserver eq "XWrapper" ) { # Don't know what to run here? run_Xautoconfig( 3 ); } ### Run 3 as the default run_Xautoconfig( 3 ); parse_out_fontpath(); exit; sub run_Xautoconfig { $version = $_[0]; my_print( "Running Xautoconfig$version\n" ); system "/root/bin/Xautoconfig$version"; } sub my_print { if( defined $OPTIONS{ QUIET } ) { return; } print @_; } sub parse_out_fontpath { my @lines = split "\n", `cat /etc/X11/XF86Config`; open CONFIG, ">/etc/X11/XF86Config"; foreach my $line ( @lines ) { my @parts = split " ", $line; if( $parts[0] eq "FontPath" ) { next; } print CONFIG "$line\n"; } close CONFIG; } Welcome 褦 Congratulations ͤǤλޤ Version С Choose_Method 󥹥ȡ뤹ǥ Choose_Packages ѥå Enter_Password ѥ Network_Config ͥåȥ Finished λ About_BootX BootXˤĤ Using_BootX BootXλȤ Install 󥹥ȡ Update_Installer åץǡ Language Choose_Language Quit λ Reboot Ƶư Reset ꥻå NFS_mount_failed NFSΥޥȤ˼ Close Ĥ Cancel 󥻥 Activate ͭˤ Finish λ Done λ dated ա Setup_Network ͥåȥ Site : Known_sites I have found the following known sites: Try_URL URLǼ¹ Update_URL åץǡ URL: Update åץǡ Partition ѡƥ Name ̾ Size Mount_Point ޥȥݥ welcome_title X Linux Installerˤ褦 MountWindowName ѡƥΥޥȤȥåפ Format եޥå FormatMount եޥåȡޥ CDROM CD-ROM NFS NFS LocalPartition ѡƥ LocalMountFailed ǥΥޥȤ˼ CDROM_Mount_Failed CD-ROMΥޥȤ˼ NFS_Mount_Failed NFSΥޥȤ˼ Connection_Failed ꤵ줿URLȤ³˼ Select_Partitions ѡƥ Customize ޥ Check_Diskspace ǥڡγǧ Total_Size 󥹥ȡ뤵: Device_Name ǥХ̾ IP_Address IPɥ쥹 Gateway ȥ Netmask ͥåȥޥ On_Boot ưͭ Default_Gateway ǥեȥȥ Hostname ۥ̾ Nameserver ͡ॵ Activate ͭˤ welcome_text This is the First X based Graphical installer for LinuxPPC. More instructions for installing LinuxPPC can be found at http://www.linuxppc.org/userguide/ In brief, to install Follow the steps below: 1: Choose the install method to use. If you already have the CD in your machine, the installer will skip this part. 2: Select the Partitions that you want to install from. You will only be able to format UNIX partitions. If you don't have any UNIX partitions, go back to the MacOS and create one. We recommend you make two partitions: Root and Swap. Root you will mount as / 3: Choose the software you want to install. The default install needs about 350 Megabytes of disk space. Then Click Install. You can watch the output of the progress if you open up the output window by double clicking on it's icon in the lower left part of the screen. 4: Enter your password 5: Configure your network. This is optional, you can do this after you reboot using the command netcfg. Congratulations! You're done installing! Hit reboot or quit. end NFS_instructions Type the machine and path - for example my.machine.org:/path/to/linuxppc/ in the entry box, then click NFS. end NFS_badmount_message NFS mount: failed or didn't contain the right files to install LinuxPPC. Please check the server name and path and try to mount it again. You can also mount the partition yourself into /tmp/install end BootX_message If things went well in the MacOS, you are prompted at bootup with BootX. From there you can choose Linux or MacOS. If you choose Linux, You will need to tell the kernel what partition you installed onto. Once you have installed Linux, you will have to uncheck the "Use ramdisk" checkbox. And enter the / partition into to /dev/ For you, your current / (called \"root\" ) partition is: end No_Install_Files does not seem to contain any install files. end Bad_Site Is not currently working correctly. Please try another one. end URL_help Enter a URL below or choose a known site. For example: http://ftp.linuxppc.org/linuxppc-1999/ This Installer is faster with HTTP than FTP sites. end Credits Congratulations, you have installed LinuxPPC 5.0! Good Job! This Installer started by Brian Bresen Special thanks from LinuxPPC to the following people who made this installer possible: Linus Torvalds, Richard Stallman, Mark Hatle, Tom Rini, Adrian Sun, Paul Mackerras, Gary Thomas, and all the other Linux developers out there. Spencer Kimball and Peter Mattis for GTK and the GIMP. Tux. The supporters of Linux International and John "MadDog" Hall. And you the users of LinuxPPC. end welcome_text LinuxPPCѤȤƤϽƤΥեX١Υ󥹥ȡǤLinuxPPCΥ󥹥ȡ˴ؤƤ˾ܤhttp://www.linuxppc.org/userguide/ˤޤ 󥹥ȡ򤹤ˤϰʲμƧߤޤ: 1. 󥹥ȡˡ򤷤ޤCD˥ԥ塼ƤϤμФޤ 2. 󥹥ȡ뤵ѡƥ򤷤ޤUNIXѡƥΤߥեޥåȤǤޤ⤷UNIXѡƥ¸ߤʤMacOSꡢ򤷤ƲĤΥѡƥ뤳Ȥ򤪴ᤷޤ: RootSwapǤRoot/ȤƥޥȤޤ 3. 󥹥ȡ뤷եȥ򤷤ޤǥեȥ󥹥ȡǤ350MBζǥ̤ɬפȤʤޤInstall򥯥åޤ̤κˤoutput windowΥ֥륯åƳȤˤꡢʹԾνϤ򸫤뤳ȤǤޤ 4. ѥɤ 5. ͥåȥ򤷤ޤϥץǤޤޥnetcfgѤ뤳ȤˤƵư򤹤뤳ȤǤޤ ǤȤޤ! 󥹥ȡ뤬λޤ! rebootޤquit򲡤Ʋ end NFS_instructions ޥȥѥϤޤ㤨Сmy.machine.org:/path/to/linuxppc/ϤNFS򥯥åޤ end NFS_badmount_message NFSޥ: ޥȤ˼ԤLinuxPPC򥤥󥹥ȡ뤹ΤɬפʥեޤǤޤ󡣥̾ȥѥǧξ塢٥ޥȤ򤷤Ʋޤưǥѡƥ/tmp/install˥ޥȤ뤳ȤǤޤ end BootX_message MacOSǤνλޤ顢ưBootXˤLinuxMacOSΤɤ餫ԤˤʤޤLinux򤹤ϡͥLinux󥹥ȡ뤵줿ѡƥΤɬפޤLinux󥹥ȡ뤵ޤȡ"Use ramdisk"åܥåΥå򳰤ɬפޤޤ롼ȥѡƥ(/)/dev/θϤޤǤϡߤΥ롼(\"root\"ȸƤӤޤ)ѡƥ: end Bad_Site ΥȤϸưƤޤ ¾ΥȤƲ end URL_help ˤURL¸ΥȤ򤷤Ʋ 㤨Сhttp://ftp.linuxppc.org/linuxppc-1999/ Υ󥹥ȡǤFTPHTTPȤ®ˤʤޤ end ռ ǤȤޤLinuxPPC 5.0Υ󥹥ȡ뤬λޤ ͤǤ Υ󥹥ȡBrian Bresen ˤ곫ȯϤޤ Υ󥹥ȡǽˤƤ줿LinuxPPC̤ʤ򿽤夲ޤ: Linus TorvalsRichard StallmanMark HatleTom RiniAdrian SunPaul MackerrasGary TomasӤ¾Τ٤ƤlinuxȯԤGTKGIMPˤSpencer KimballPeter MattisˡTuxᡣLinux InternationalΥݡãȡJohn "MadDog" HallᡣơLinuxPPCΥ桼γ͡ end#!/usr/bin/perl if( -e "/tmp/xpid" ) { $xpid = `cat /tmp/xpid`; } chomp $xpid; if( $xpid eq "" ) { exit 0; } foreach $count ( 1 .. 10 ) { print "$count: checking process $xpid\n"; if( ! kill 0 => $xpid ) { print "X is not running as pid $xpid\n"; if( -e "/live/XF68_FBDev" ) { unlink "/live/XF68_FBDev"; } system "cp /mnt/cdrom/live/bin/Xpmac /live"; system "ln -sf /live/Xpmac /etc/X11/X"; print "\n"; print "\n"; print "\n"; print "Your system only supports Xpmac\n"; print "Setting up Xpmac.... Please wait...\n"; print "\n"; print "\n"; print "\n"; sleep 5; system "touch /tmp/try_x_again"; exit 0; } sleep 1; } ## Return 1 if X opened successfully; exit 1; ! Parts (C) 1996 By Greg J. Badros ! You may use this file as specified under the GNU General Public License !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! emacs, xemacs emacs*Background: DarkSlateGray emacs*Foreground: Wheat emacs*pointerColor: Orchid emacs*cursorColor: Orchid emacs*bitmapIcon: on emacs*font: fixed emacs.geometry: 80x25 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! xterm (and friends) XTerm*highlightSelection: true ! Uncomment this to use color for the bold attribute XTerm*VT100*colorBDMode: on XTerm*VT100*colorBD: blue ! Uncomment this to use color for underline attribute XTerm.VT100*colorULMode: on XTerm.VT100*underLine: off XTerm*VT100*colorUL: magenta ! Uncomment this to display the scrollbar XTerm*scrollBar: true ! This resource specifies whether or not to ignore the 'alternate screen' ! of applications such as vi. When it is on, these applications will restore ! the contents of the screen when they are exited to what they were before ! they were started. When it is off, the contents of vi will remain on the ! screen after the program is quit. XTerm.VT100.titeInhibit: true ! Uncomment this to turn off color mode in your xterms !XTerm.VT100*colorMode: off XTerm.VT100*dynamicColors: on ! Number of lines of scrollback to save XTerm*saveLines: 1500 xterm*reverseWrap: true *visualBell: true *scrollTtyOutput: False *scrollKey: True Scrollbar.JumpCursor: True # ~/.bash_logout clear # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin BASH_ENV=$HOME/.bashrc USERNAME="" export USERNAME BASH_ENV PATH # .bashrc # User specific aliases and functions TERM=linux export TERM # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi set meta-flag on set convert-meta off set output-meta on "\e[h": beginning-of-line "\e[f": end-of-line "\e0d": backward-word "\e0c": forward-word "\e[5~": beginning-of-history "\e[6~": end-of-history "\e[3~": delete-char "\e[2~": quoted-insert blackbox & wmpid=$! xmessage -center Please wait -- Booting into the Linux Installer & xtoolwait xset s off # xtoolwait xterm -iconic -T "output" -e "xinstaller" & xtoolwait install_helper & wait $wmpid # exec blackbox # exec wmaker 9 . ..: libCshareHX11R6IX11: .9 ..; rpm>perldisk; .: ..<rpmrc=macros# $Id: rpmrc.in,v 2.8 1999/04/16 22:26:17 jbj Exp $ ############################################################# # Please send new entries to rpm-list@redhat.com ############################################################# # Values for RPM_OPT_FLAGS for various platforms optflags: i386 -O2 -m486 -fno-strength-reduce optflags: alpha -O2 optflags: sparc -O2 optflags: sparc64 -O2 optflags: m68k -O2 -fomit-frame-pointer optflags: ppc -O2 -fsigned-char optflags: parisc -O2 -mpa-risc-1-0 optflags: hppa1.0 -O2 -mpa-risc-1-0 optflags: hppa1.1 -O2 -mpa-risc-1-0 optflags: hppa1.2 -O2 -mpa-risc-1-0 optflags: hppa2.0 -O2 -mpa-risc-1-0 optflags: mipseb -O2 optflags: mipsel -O2 optflags: armv4 -O2 -fsigned-char -fomit-frame-pointer optflags: armv4b -O2 -fsigned-char -fomit-frame-pointer optflags: armv4l -O2 -fsigned-char -fomit-frame-pointer ############################################################# # Canonical arch names and numbers arch_canon: i986: i986 1 arch_canon: i886: i886 1 arch_canon: i786: i786 1 arch_canon: i686: i686 1 arch_canon: i586: i586 1 arch_canon: i486: i486 1 arch_canon: i386: i386 1 arch_canon: alpha: alpha 2 arch_canon: sparc: sparc 3 arch_canon: sun4: sparc 3 arch_canon: sun4m: sparc 3 arch_canon: sun4c: sparc 3 arch_canon: sun4d: sparc 3 # This is really a place holder for MIPS. arch_canon: mipseb: mipseb 4 arch_canon: ppc: ppc 5 arch_canon: m68k: m68k 6 arch_canon: IP: sgi 7 arch_canon: rs6000: rs6000 8 arch_canon: sparc64:sparc64 10 arch_canon: sun4u: sparc64 10 arch_canon: mipsel: mipsel 11 arch_canon: armv4b: armv4b 12 arch_canon: armv4l: armv4l 12 arch_canon: sa110: armv4 12 ############################################################# # Canonical OS names and numbers os_canon: Linux: Linux 1 os_canon: IRIX: Irix 2 # This is wrong os_canon: SunOS5: solaris 3 os_canon: SunOS4: SunOS 4 os_canon: AmigaOS: AmigaOS 5 os_canon: AIX: AIX 5 os_canon: HP-UX: hpux10 6 os_canon: OSF1: osf1 7 os_canon: osf4.0: osf1 7 os_canon: osf3.2: osf1 7 os_canon: FreeBSD: FreeBSD 8 os_canon: SCO_SV: SCO_SV3.2v5.0.2 9 os_canon: IRIX64: Irix64 10 os_canon: NEXTSTEP: NextStep 11 os_canon: BSD/OS: BSD_OS 12 os_canon: machten: machten 13 os_canon: CYGWIN32_NT: cygwin32 14 os_canon: CYGWIN32_95: cygwin32 15 os_canon: UNIX_SV: MP_RAS: 16 ############################################################# # For a given uname().machine, the default build arch buildarchtranslate: osfmach3_i986: i386 buildarchtranslate: osfmach3_i886: i386 buildarchtranslate: osfmach3_i786: i386 buildarchtranslate: osfmach3_i686: i386 buildarchtranslate: osfmach3_i586: i386 buildarchtranslate: osfmach3_i486: i386 buildarchtranslate: osfmach3_i386: i386 buildarchtranslate: i986: i386 buildarchtranslate: i886: i386 buildarchtranslate: i786: i386 buildarchtranslate: i686: i386 buildarchtranslate: i586: i386 buildarchtranslate: i486: i386 buildarchtranslate: i386: i386 buildarchtranslate: osfmach3_ppc: ppc buildarchtranslate: powerpc: ppc buildarchtranslate: powerppc: ppc buildarchtranslate: sun4c: sparc buildarchtranslate: sun4d: sparc buildarchtranslate: sun4m: sparc buildarchtranslate: sun4u: sparc64 ############################################################# # Architecture compatibility arch_compat: alpha: axp noarch arch_compat: i986: i886 arch_compat: i886: i786 arch_compat: i786: i686 arch_compat: i686: i586 arch_compat: i586: i486 arch_compat: i486: i386 arch_compat: i386: noarch arch_compat: osfmach3_i986: i986 osfmach3_i886 arch_compat: osfmach3_i886: i886 osfmach3_i786 arch_compat: osfmach3_i786: i786 osfmach3_i686 arch_compat: osfmach3_i686: i686 osfmach3_i586 arch_compat: osfmach3_i586: i586 osfmach3_i486 arch_compat: osfmach3_i486: i486 osfmach3_i386 arch_compat: osfmach3_i386: i486 arch_compat: osfmach3_ppc: ppc arch_compat: powerpc: ppc arch_compat: powerppc: ppc arch_compat: sun4c: sparc arch_compat: sun4d: sparc arch_compat: sun4m: sparc arch_compat: sun4u: sparc arch_compat: sparc64: sparc arch_compat: sparc: noarch arch_compat: ppc: rs6000 arch_compat: rs6000: noarch arch_compat: mipseb: noarch arch_compat: mipsel: noarch arch_compat: hppa2.0: hppa1.2 arch_compat: hppa1.2: hppa1.1 arch_compat: hppa1.1: hppa1.0 arch_compat: hppa1.0: parisc arch_compat: parisc: noarch arch_compat: armv4: arm armv4b armv4l noarch arch_compat: armv4b: arm armv4 noarch arch_compat: armv4l: arm armv4 noarch os_compat: IRIX64: IRIX os_compat: solaris2.7: solaris2.3 solaris2.4 solaris2.5 solaris2.6 os_compat: solaris2.6: solaris2.3 solaris2.4 solaris2.5 os_compat: solaris2.5: solaris2.3 solaris2.4 os_compat: solaris2.4: solaris2.3 os_compat: hpux11.00: hpux10.30 os_compat: hpux10.30: hpux10.20 os_compat: hpux10.20: hpux10.10 os_compat: hpux10.10: hpux10.01 os_compat: hpux10.01: hpux10.00 os_compat: hpux10.00: hpux9.07 os_compat: hpux9.07: hpux9.05 os_compat: hpux9.05: hpux9.04 os_compat: osf4.0: osf3.2 os_compat: ncr-sysv4.3: ncr-sysv4.2 buildarch_compat: i986: i886 buildarch_compat: i886: i786 buildarch_compat: i786: i686 buildarch_compat: i686: i586 buildarch_compat: i586: i486 buildarch_compat: i486: i386 buildarch_compat: i386: noarch buildarch_compat: sun4c: noarch buildarch_compat: sun4d: noarch buildarch_compat: sun4m: noarch buildarch_compat: sun4u: noarch buildarch_compat: sparc64: noarch buildarch_compat: sparc: noarch buildarch_compat: alpha: noarch buildarch_compat: m68k: noarch buildarch_compat: ppc: noarch buildarch_compat: mipsel: noarch buildarch_compat: mipseb: noarch buildarch_compat: armv4: armv4b armv4l noarch buildarch_compat: armv4b: noarch buildarch_compat: armv4l: noarch buildarch_compat: parisc: noarch ############################################################# #macrofiles: /usr/lib/rpm/macros:/etc/rpm/macros:~/.rpmmacros macrofiles: /usr/lib/rpm/macros:/usr/lib/rpm/%{_target}/macros:/etc/rpm/macros:/etc/rpm/%{_target}/macros:~/.rpmmacros #include: /usr/lib/rpm/%{_target}/rpmrc # $Id: macros.in,v 1.22 1999/04/16 05:44:38 jbj Exp $ #============================================================================== # Macro naming conventions (preliminary): # # Macros that begin with an underscore are "local" in the sense that # they (if used) will not be exported in rpm headers. Some macros # that don't start with an underscore (but look like they should) # are compatible with macros generated by rpm-2.5.x and will be made # more consistent in a future release. # #============================================================================== # ---- filesystem macros. # %_usr /usr %_usrsrc %{_usr}/src %_var /var #============================================================================== # ---- path macros # XXX The use of which here is overly simple (read: dumb). # %__bzip2 %{_bzip2bin} %__cat /bin/cat %__chgrp /bin/chgrp %__chmod /bin/chmod %__chown /bin/chown %__cp /bin/cp %__cpio /bin/cpio %__gzip %{_gzipbin} %__id /usr/bin/id %__install %(which install) %__make /usr/bin/make %__mkdir /bin/mkdir %__mv /bin/mv %__patch /usr/bin/patch %__ranlib %(which ranlib) %__rm /bin/rm %__strip %(which strip) %__tar /bin/tar # XXX avoid weird failures from which if tools are not installed %__libtoolize libtoolize %__aclocal aclocal %__autoheader autoheader %__automake automake %__autoconf autoconf #============================================================================== # ---- Required rpmrc macros. # Macros that used to be initialized as a side effect of rpmrc parsing. # These are the default values that can be overridden by other # (e.g. per-platform, per-system, per-packager) macro files. # %_builddir %{_topdir}/BUILD %_buildshell /bin/sh %_bzip2bin /usr/bin/bzip2 %_dbpath %{_var}/lib/rpm %_defaultdocdir %{_usr}/doc # # XXX fixowner, fixgroup, and fixperms are run at the end of hardcoded setup %_fixowner [ `%{__id} -u` = '0' ] && %{__chown} -Rf root %_fixgroup [ `%{__id} -u` = '0' ] && %{__chgrp} -Rf root %_fixperms %{__chmod} -Rf a+rX,g-w,o-w # %_gzipbin /bin/gzip %_instchangelog 5 %_pgpbin /usr/bin/pgp %_rpmdir %{_topdir}/RPMS # # XXX Note escaped %% for use in headerSprintf %_rpmfilename %%{ARCH}/%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm %_signature none %_sourcedir %{_topdir}/SOURCES %_specdir %{_topdir}/SPECS %_srcrpmdir %{_topdir}/SRPMS %_tmppath %{_var}/tmp %_topdir %{_usrsrc}/redhat # #============================================================================== # ---- Optional rpmrc macros. # Macros that used to be initialized as a side effect of rpmrc and/or # spec file parsing but were not set in the distributed configuration # /usr/lib/rpm/rpmrc file. # #%buildroot #%distribution #%_excludedocs #%_ftpport #%_ftpproxy #%_gpg_name #%_gpg_path #%_httpport #%_httpproxy #%_langpatt #%_netsharedpath #%packager #%_pgp_name #%_pgp_path #%_provides #%_timecheck #%vendor #============================================================================== # ---- per-platform macros. # Macros that are specific to an individual platform. The values here # will be used if the per-platform macro file does not exist.. # %_arch ppc %_vendor redhat %_os linux %_target_platform %{_target_cpu}-%{_vendor}-%{_target_os} # # XXX use the rpmrc instantiated macro for now #%optflags -O2 #============================================================================== # ---- script environment macros. # Macro(s) that establish the environment for running a script. # %_preScriptEnvironment \ RPM_SOURCE_DIR=\"%{_sourcedir}\"\ RPM_BUILD_DIR=\"%{_builddir}\"\ RPM_OPT_FLAGS=\"%{optflags}\"\ RPM_ARCH=\"%{_arch}\"\ RPM_OS=\"%{_os}\"\ export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS\ RPM_DOC_DIR=\"%{_docdir}\"\ export RPM_DOC_DIR\ RPM_PACKAGE_NAME=\"%{name}\"\ RPM_PACKAGE_VERSION=\"%{version}\"\ RPM_PACKAGE_RELEASE=\"%{release}\"\ export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\ %{?buildroot:RPM_BUILD_ROOT=\"%{buildroot}\"\ export RPM_BUILD_ROOT\ } #============================================================================== # ---- configure macros. # Macro(s) similar to those used by configure. # %_prefix /usr %_build %{_host} %_build_alias %{_host_alias} %_build_cpu %{_host_cpu} %_build_vendor %{_host_vendor} %_build_os %{_host_os} %_host powerpc-unknown-linux-gnu %_host_alias powerpc-unknown-linux-gnu %_host_cpu powerpc %_host_vendor unknown %_host_os linux-gnu %_target %{_host} %_target_alias %{_host_alias} %_target_cpu %{_host_cpu} %_target_vendor %{_host_vendor} %_target_os %{_host_os} #============================================================================== # ---- specfile macros. # Macro(s) here can be used reliably for reproducible builds. # (Note: Above is the goal, below are the macros under development) # # The configure macro does the following: # optionally change to a subdirectory (not implemented). # attempt to update config.guess and config.sub. # run configure with correct prefix, platform, and CFLAGS. # optionally restore current directory (not implemented). # The configure macro should be invoked as %configure (rather than %{configure}) # because the rest of the arguments will be expanded using %*. Another # gotcha is that arguments, if present, should be on the same line as the # %configure. # %configure \ %{?__libtoolize:[ -f configure.in ] && %{__libtoolize} --copy --force} \ CFLAGS="%{optflags}" ./configure %{_target_platform} --prefix=%{_prefix} #------------------------------------------------------------------------------ # The GNUconfigure macro does the following: # update config.guess and config.sub. # regenerate all autoconf/automake files # run configure with correct prefix, platform, and CFLAGS. # %GNUconfigure \ %{__libtoolize} --copy --force \ %{__aclocal} \ %{__autoheader} \ %{__automake} \ %{__autoconf} \ CFLAGS="%{optflags}" ./configure %{_target_platform} --prefix=%{_prefix} > .: ..? perldisk.pl@GTK_standard.plAdpme.pmB partmap.pm#!/usr/bin/perl -w # # perldisk.pl - perl/Gtk disk partitioning utility # by Brian Bresen # under the GPL. # # For real version need to change driveList return and BEGIN block... # BEGIN { unshift(@INC, "/home/bbresen/perldisk"); } use strict; use partmap; use Gtk; require 'GTK_standard.pl'; my $NULL = 0; my @drive; my $map; #The Currently viewed partiton map object if (defined $ARGV[0]) { @drive = @ARGV; } else { @drive = driveList(); } init Gtk; create_main_window(@drive); main Gtk; sub create_main_window { my @drive = (@_); my $i; my @allmaps; # read in the partition maps for $i (0 .. $#drive) { $allmaps[$i] = new partmap($drive[$i]); } $map = $allmaps[0]; $map->read_partition_map(); # Main Window my $mainWindow = standard_window( 25,25,475,350, "Disk Partitioning"); $mainWindow->signal_connect("destroy" => \&Quit); # main box to hold all things - it will be vertical my $mainVbox = standard_vbox( 5, $mainWindow ); # Partitions Box - my $partVbox = standard_vbox( 5, $mainVbox, 0, 1, 0 ); my $partLabel = standard_label( "WARNING: YOU CAN DESTORY DATA WITH THIS PROGRAM!", $partVbox, 0, 1, 0 ); $partLabel = standard_label( "Partitions: ", $partVbox, 0, 1, 0 ); # The Partition Entries Each in a clist my $partEntryBox = standard_vbox( 2, $partVbox, 0, 0, 0 ); my @titles = ("Part. #","Type","Name","Blocks","Base","Size"); my $partEntryList = new_with_titles Gtk::CList(@titles); $partEntryList->set_column_width(0,40); $partEntryList->set_column_width(1,105); $partEntryList->set_column_width(2,105); $partEntryList->set_column_width(3,60); $partEntryList->set_column_width(4,60); $partEntryList->set_column_width(5,32); $partEntryList->set_column_justification(0,"center"); $partEntryList->set_column_justification(1,"right"); $partEntryList->set_column_justification(3,"right"); $partEntryList->set_column_justification(5,"center"); # Fill partition map data fillPartData($map,$partEntryList); $partVbox->pack_start($partEntryList, 1, 1, 10); $partEntryList->column_titles_show; $partEntryList->show; #Partition Button Box my $partButtonBox = standard_hbox( 2, $partVbox, 0, 1, 0 ); my $buttonTable = new Gtk::Table(2,5,0); $partButtonBox->pack_start($buttonTable, 1, 1, 0); $buttonTable->show; # The Partition Buttons my $partAddButton = table_button("Add", 1, 1, 10, [\&partAdd,$partEntryList]); $buttonTable->attach($partAddButton, 0, 1, 0, 1, [-fill,-expand], [], 10, 0); $partAddButton->show; my $nameEntry = new Gtk::Combo(); $nameEntry->entry->set_text("/boot"); $nameEntry->set_popdown_strings('/boot','/','/home','swap'); $nameEntry->set_usize(70,0); my $partNameButton = table_button("Change Name", 1, 1, 10, [\&partName, \$map, $partEntryList, $nameEntry->entry]); $buttonTable->attach($partNameButton, 1, 2, 0, 1, [-fill,-expand], [], 10, 0); $buttonTable->attach($nameEntry, 1, 2, 1, 2, [-fill,-expand], [], 10, 0); $partNameButton->show; $nameEntry->show; my $partConvertButton = table_button("Convert Type", 1, 1, 10, [\&partConvert, \$map, $partEntryList]); $buttonTable->attach($partConvertButton, 2, 3, 0, 1, [-fill,-expand], [], 10, 0); $partConvertButton->show; my $partDeleteButton = table_button("Delete", 1, 1, 10, [\&partDelete, \$map, $partEntryList]); $buttonTable->attach($partDeleteButton, 3, 4, 0, 1, [-fill,-expand], [], 10, 0); $partDeleteButton->show; my $QuitButton = table_button("Quit", 1, 1, 10, \&Quit); $buttonTable->attach($QuitButton, 4, 5, 0, 1, [-fill,-expand], [], 10, 0); $QuitButton->show; #Drive Summary Box my $driveVbox = standard_vbox( 5, $mainVbox, 0, 0, 0 ); my $driveLabel = standard_label( "Drive Info:", $driveVbox, 0, 1, 0 ); @titles = ("Drive","Total Size", "Free", "Used"); my $driveEntryList = new_with_titles Gtk::CList(@titles); # This is for alignment foreach $i (0 .. 4) { $driveEntryList->set_column_width($i,100); $driveEntryList->set_column_justification($i,"center"); } foreach $i (@allmaps) { my $blocksTotal = $i->sbBlkCount; my $blocksFree = blockCount($i); my $percent; if ($i->disk_order == $NULL) { $percent = "-"; } else { $percent = (($blocksTotal - $blocksFree) / $blocksTotal) * 100; $percent = sprintf "%3.1f",$percent; $percent .= "%"; } my @tmpentry = ($i->name, $blocksTotal, $blocksFree, $percent); $driveEntryList->append(@tmpentry); } $driveEntryList->signal_connect('select_row', [\&selectDrive, $partEntryList, @allmaps] ); $driveVbox->pack_start($driveEntryList, 1, 1, 10); $driveEntryList->column_titles_show; $driveEntryList->show; } sub blockCount { my $map = shift @_; my $free = 0; if ($map->disk_order == $NULL) { return "-"; } my $i; for ($i = $map->disk_order;$i != $NULL; $i = $i->next_by_disk) { my $tmpname = $i->dpmeType; if (substr($tmpname,0,10) eq "Apple_Free") { $free += $i->dpmePblocks; } } return $free; } sub selectDrive { my ($drivelist) = shift @_; my ($partlist) = shift @_; my @maps = (@_); if (defined ($drivelist->selection())) { my $row = $drivelist->selection(); $map = $maps[$row]; $partlist->clear; if ($map->disk_order == $NULL) { $map->read_partition_map(); my $blocksTotal = $map->sbBlkCount; my $blocksFree = blockCount($map); my $percent = (($blocksTotal - $blocksFree) / $blocksTotal) * 100; $percent = sprintf "%3.1f",$percent; $percent .= "%"; $drivelist->set_text($row,2,$blocksFree); $drivelist->set_text($row,3,$percent); } fillPartData($map,$partlist); return $map; } else { print "Strange happenings select_row signal when nothing selected\n"; return; } } sub fillPartData { my ($map,$clist) = @_; my ($i,$value,$prefix); my $count = 1; for ($i = $map->disk_order;$i != $NULL; $i = $i->next_by_disk) { $value = ($i->dpmePblocks * $map->sbBlkSize); ($value,$prefix) = $map->adjust_value_and_compute_prefix($value); if (($prefix ne " ") && ($prefix ne "K")) { $value = sprintf "%5.1f%s",$value,$prefix; } else { $value = " "; } my @tmparray = ($count, $i->dpmeType, $i->dpmeName, $i->dpmePblocks, $i->dpmePblockStart, $value); #now append tmparray to the clist $clist->append(@tmparray); $count++; } } sub Quit { Gtk->exit(0); } sub partAdd { my ($button) = shift @_; my ($list) = shift @_; my $part = ($list->selection() + 1); print "Hey cool you just clicked on add\n"; } sub partDelete { my ($button) = shift @_; my ($map,$list) = @_; my $type = "Apple_Free"; my $name = "Extra"; my $part; if (defined ($list->selection())) { $part = ($list->selection() + 1); } else { return; } my $entry = $$map->getEntryByNum($part); print "Attempting to change type of partition number $part to $type.\n"; print "Attempting to change name of partition number $part to $name.\n"; $$map->setPartType($part,$type); $$map->setPartName($part,$name); $$map->combineFree($entry); # $$map->write_partition_map(); #Reshow the partmap $list->clear; fillPartData($$map,$list); return; } sub partName { my ($button) = shift @_; my ($map,$list,$entry) = @_; my $name = $entry->get_text; my $part; if (defined ($list->selection())) { $part = ($list->selection() + 1); } else { return; } print "Attempting to change name of partition number $part to $name \n"; $$map->setPartName($part,$name); $part--; # This is the row again $list->set_text($part,2,$name); } sub driveList { my @drive; $drive[0] = './my_little_drive'; #return @drive; my (@longlist,@list); my ($i,$input); open (PARTS, "/proc/partitions"); while ($input = ) { chop($input); next if ($input =~ /name/); next if ($input eq ""); my @temp = split (/ /, $input); push (@longlist,(pop(@temp))); } close(PARTS); for $i (0 .. ($#longlist - 1)) { if ((length($longlist[$i]) == 3) && (length($longlist[$i+1]) != 3)) { push(@list,( "/dev/" . $longlist[$i])); } } return @drive; #return @list; } sub partConvert { my ($button) = shift @_; my ($map,$list) = @_; my $type = "Apple_UNIX_SVR2"; my $othertype = "Apple_HFS"; my $othertype2 = "Apple_Free"; my $part; if (defined ($list->selection())) { $part = ($list->selection() + 1); } else { return; } my $i = $$map->disk_order; my $j; for ($j = 1;$j < $part;$j++) { $i = $i->next_by_disk; } $j = $i->dpmeType; if (substr($j,0,15) eq $type) { $type = "Apple_HFS"; } elsif ((!(substr($j,0,9) eq $othertype)) && (!(substr($j,0,10) eq $othertype2))) { print "Will only convert HFS, UNIX\(Linux\) or Free Partitions!!\n"; return; } print "Attempting to change type of partition number $part to $type .\n"; $$map->setPartType($part,$type); $part--; # This is the row again $list->set_text($part,1,$type); } #VERSION 1.1 #Date Oct 13 use strict; use Gtk; use Gtk::Atoms; use Gtk::Gdk; sub destroy_window { my($widget, $windowref, $w2) = @_; $windowref = undef; if ( defined $w2 ) { $w2 = undef; } return 0; } sub standard_input { my ($label, $entry, $container, $border_width) = @_; my ($hbox); if ( defined $border_width ) { $hbox = standard_hbox($border_width, $container ); } else { $hbox = standard_hbox(10, $container); } $label = standard_label( $label , $hbox ); return standard_entry( $entry, $hbox ); } sub standard_entry { my ($text, $container) = @_; my($entry) = new Gtk::Entry; $entry->set_usize(0, 20); $entry->set_text($text); if (defined $container) { $container->pack_start($entry, 1, 1, 0); $entry->show; } return $entry; } sub my_separator { my ($box1) = @_; my $separator; my $box2; $separator = new Gtk::HSeparator; $box1->pack_start($separator, 0, 1, 0); $separator->show; $box2 = standard_hbox(10, $box1, 0, 1, 0 ); return $box2; } sub standard_separator { my ($box1) = @_; my $separator; my $box2; $separator = new Gtk::HSeparator; $box1->pack_start($separator, 0, 1, 0); $separator->show; $box2 = standard_hbox(1, $box1, 0, 1, 0 ); return $box2; } sub standard_window { my ($x_pos, $y_pos, $x_size, $y_size, $title) = @_; # i guess these are what they are # if ( defined $window ) { # $window->destroy; # undef $window; # return; # } my $window; $window = new Gtk::Window "toplevel" ; $window->set_uposition($x_pos, $y_pos); if ( ! ( $x_size == -1 )) { print "Setting window size to $x_size, $y_size \n"; $window->set_usize($x_size, $y_size); } $window->signal_connect("destroy", \&destroy_window, \$window); $window->signal_connect("delete_event", \&destroy_window, \$window); $window->set_title( "$title" ); $window->border_width(0); $window->grab_focus; $window->show; return $window; } sub standard_vbox { my ($border_width, $container, $expand, $fill, $padding) = @_; my ($item); $item = new Gtk::VBox(0,0); $item->border_width( $border_width ); if( defined $container ) { if( defined $expand ) { $container->pack_start($item, $expand, $fill, $padding ); } else { $container->add($item); } } # else { # $CurrentWindow->add($item); # } $item->show; return $item; } sub standard_hbox { my ($border_width, $container, $expand, $fill, $padding) = @_; my( $item ); $item = new Gtk::HBox(0,10); $item->border_width( $border_width ); if ( defined $container ) { if ( defined $expand ) { $container->pack_start($item, $expand, $fill, $padding ); } else { $container->add($item); } } # else { # $CurrentWindow->add($item); # } $item->show; return $item; } sub standard_label { my ($label_text, $container, $expand, $fill, $padding) = @_; my($label) = new Gtk::Label $label_text; # $label->set_alignment(0.0, 0.5); if( ! defined $expand ) { $container->add($label); } else { $container->pack_start($label, $expand, $fill, $padding ); } $label->show; return $label; } sub standard_checkbutton { my ($button_text, $container, $expand, $fill, $padding) = @_; my( $button ) = new Gtk::CheckButton( $button_text ); $button->set_state(1); if( ! defined $container ) { $button->show; return $button; } if( ! defined $expand ) { $container->add($button); } else { $container->pack_start($button, $expand, $fill, $padding ); } $button->show; return $button; } sub table_button { my ($button_text, $expand, $fill, $padding, $clicked_handler) = @_; my( $button ) = new Gtk::Button( $button_text ); if( defined $clicked_handler ) { $button->signal_connect('clicked', $clicked_handler ); } return $button; } sub standard_button { my ($button_text, $container, $expand, $fill, $padding, $clicked_handler) = @_; my( $button ) = new Gtk::Button( $button_text ); # $button_text->can_default(1); if( ! defined $container ) { $button->show; return $button; } if( ! defined $expand ) { $container->add($button); } else { $container->pack_start($button, $expand, $fill, $padding ); } if( defined $clicked_handler ) { $button->signal_connect('clicked', $clicked_handler ); } $button->show; return $button; } sub standard_text_box { my($name, $contents, $vbox) = @_; my $hbox; my $label; my $table; my $text; $hbox = new Gtk::HBox(0,10); $hbox->border_width(1); $vbox->pack_start($hbox, 0, 1, 0); $hbox->show; $label = new Gtk::Label $name; $label->set_alignment(0.0, 0.5); $hbox->pack_start($label, 0, 1, 0); $label->show; $table = new Gtk::Table(1, 1, 0); $hbox->pack_start($table, 1, 1, 0); $table->show; $text = new Gtk::Text(undef,undef); $table->attach($text, 0, 1, 0, 1, [-fill,-expand], [], 0, 0); $text->set_editable(1); $text->insert(undef, $text->style->black, undef, $contents); $text->show; return $text; } sub do_exit { print "done!\n"; Gtk->exit(0); } sub standard_menuitem { my( $itemname ) = $_[0]; my $item = new Gtk::MenuItem $itemname; $item->show; # $item->signal_connect('select', sub { # print "selected $itemname\n"; # } ); $item->signal_connect('activate', sub { print "activate $itemname\n"; } ); return $item; } sub standard_option_menu { my( $container ) = shift @_; my( @options ) = @_; my( $optionmenu, $menu, $item, $itemname ); $optionmenu = new Gtk::OptionMenu; $optionmenu->show; $container->add($optionmenu); $menu = new Gtk::Menu; $menu->show; $optionmenu->set_menu( $menu ); foreach $itemname ( @options ) { $item = standard_menuitem( $itemname ); $menu->append($item); } $menu->set_active( $item ); $menu->hide; $menu->show; print "menu active is = " . $menu->get_active . "\n"; return $menu; } sub standard_list { my( $list, $listitem ); $list = new Gtk::List; $_[1]->add($list); $list->show; $listitem = new Gtk::ListItem "item1"; $listitem->show; $list->append_items( $listitem ); $listitem = new Gtk::ListItem "item2"; $listitem->show; $list->append_items( $listitem ); $listitem = new Gtk::ListItem "item3"; $listitem->show; $list->append_items( $listitem ); print "finished making list\n"; return $list; } sub standard_Clist { } 1; #!/usr/bin/perl -w # # dpme.pm = disk partition map entry module # by Brian Bresen # under the GPL. # package dpme; use strict; use Fcntl; my $NULL = 0; sub new { my $class = shift @_; my $entry = shift @_; my $self = {}; bless ($self, $class); $self->prev_by_disk( $NULL ); $self->next_by_disk( $NULL ); $self->prev_by_base( $NULL ); $self->next_by_base( $NULL ); return $self; } sub next_by_disk { my $node = shift @_; return @_ ? ($node->{next_by_disk} = shift) : $node->{next_by_disk}; } sub prev_by_disk { my $node = shift; return @_ ? ($node->{prev_by_disk} = shift) : $node->{prev_by_disk}; } sub next_by_base { my $node = shift; return @_ ? ($node->{next_by_base} = shift) : $node->{next_by_base}; } sub prev_by_base { my $node = shift; return @_ ? ($node->{prev_by_base} = shift) : $node->{prev_by_base}; } sub destroy { #This may get crazy since there are two lists my $node = shift; while ($node != $NULL) { my $next = $node->next_by_disk; $node->prev_by_disk(undef); $node->next_by_disk(undef); $node->prev_by_base(undef); $node->next_by_base(undef); $node = $next; } } sub keys { #dpmeAddrs is strange return ('dpmeSig', 'dpmeReserved1', 'dpmeMapEntry', 'dpmePblockStart', 'dpmePblocks', 'dpmeName', 'dpmeType', 'dpmeLblockStart', 'dpmeLblocks', 'dpmeFlags', 'dpmeBootBlock', 'dpmeBootBytes', 'dpmeChecksum', 'dpmeProcId', 'dpmeBootArgs', 'dpmeReserved3'); } sub _link_disk_to { my $node = shift; my $next = shift; $node->next_by_disk($next); return $next->prev_by_disk($node); } sub _link_base_to { my $node = shift; my $next = shift; $node->next_by_base($next); return $next->prev_by_base($node); } sub appendDiskOrder { my $node = shift; my $add = shift; $add->prev_by_disk($node); $add->next_by_disk($node->next_by_disk); $node->next_by_disk($add); return $node; } sub appendBaseOrder { my $node = shift; my $add = shift; $add->prev_by_base($node); $add->next_by_base($node->next_by_base); $node->next_by_base($add); return $node; } sub prependBaseOrder { my $node = shift; my $add = shift; $add->next_by_base($node); $add->prev_by_base($node->prev_by_base); $node->prev_by_base($add); return $node; } sub remove { my $first = shift; my $last = shift || $first; $first->prev_by_disk->_link_disk_to($last->next_by_disk); $last->_link_disk_to($first); $first->prev_by_base->_link_base_to($last->next_by_base); $last->_link_base_to($first); return $first; } sub dpmeSig { my $self = shift; return @_ ? ($self->{dpmeSig} = shift) : $self->{dpmeSig}; } sub dpmeReserved1 { my $self = shift; return @_ ? ($self->{dpmeReserved1} = shift) : $self->{dpmeReserved1}; } sub dpmeMapEntry { my $self = shift; return @_ ? ($self->{dpmeMapEntry} = shift) : $self->{dpmeMapEntry}; } sub dpmePblockStart { my $self = shift; return @_ ? ($self->{dpmePblockStart} = shift) : $self->{dpmePblockStart}; } sub dpmePblocks { my $self = shift; return @_ ? ($self->{dpmePblocks} = shift) : $self->{dpmePblocks}; } sub dpmeName { my $self = shift; return @_ ? ($self->{dpmeName} = shift) : $self->{dpmeName}; } sub dpmeType { my $self = shift; return @_ ? ($self->{dpmeType} = shift) : $self->{dpmeType}; } sub dpmeLblockStart { my $self = shift; return @_ ? ($self->{dpmeLblockStart} = shift) : $self->{dpmeLblockStart}; } sub dpmeLblocks { my $self = shift; return @_ ? ($self->{dpmeLblocks} = shift) : $self->{dpmeLblocks}; } sub dpmeFlags { my $self = shift; return @_ ? ($self->{dpmeFlags} = shift) : $self->{dpmeFlags}; } sub dpmeBootBlock { my $self = shift; return @_ ? ($self->{dpmeBootBlock} = shift) : $self->{dpmeBootBlock}; } sub dpmeBootBytes { my $self = shift; return @_ ? ($self->{dpmeBootBytes} = shift) : $self->{dpmeBootBytes}; } sub dpmeAddrs { my $self = shift @_; my ($num) = shift @_; return @_ ? ($self->{dpmeAddrs}[$num] = shift) : $self->{dpmeAddrs}[$num]; } sub dpmeChecksum { my $self = shift; return @_ ? ($self->{dpmeChecksum} = shift) : $self->{dpmeChecksum}; } sub dpmeProcId { my $self = shift; return @_ ? ($self->{dpmeProcId} = shift) : $self->{dpmeProcId}; } sub dpmeBootArgs { my $self = shift; return @_ ? ($self->{dpmeBootArgs} = shift) : $self->{dpmeBootArgs}; } sub dpmeReserved3 { my $self = shift; return @_ ? ($self->{dpmeReserved3} = shift) : $self->{dpmeReserved3}; } 1; #!/usr/bin/perl -w # # partmap.pm - partition map module # by Brian Bresen # under the GPL. # # This package will allow you to read a drive's partition map # The partmap object will also contain the block 0 block as well package partmap; use strict; use Fcntl; use dpme; my $NULL = 0; sub new { my $class = shift @_; my $drive = shift @_; my $map; #print "Looking for Signature 4552 in hex, 17746 in decimal\n"; #my $block0_sig = unpack("B16", pack ("n", 0x4552)); $map->{name} = $drive; $map->{numparts} = 0; $map->{disk_order} = $NULL; $map->{base_order} = $NULL; bless ($map, $class); $map->read_block_zero($drive); # I'll leave it up to coders to fill the map data like below # $map->read_partition_map(); #read first partmap entry return $map; } sub getEntryByNum { my $map = shift; my $part = shift; my $entry = $map->disk_order; my $i; for ($i = 1; $i < $part; $i++) { $entry = $entry->next_by_disk; } return $entry; } sub combineFree { my $map = shift; my $entry = shift; my $partsRemoved = 0; my $freeType = "Apple_Free"; my $next = $entry->next_by_base; my $prev = $entry->prev_by_base; #my $nextType = $next->dpmeType; #my $prevType = $prev->dpmeType; if (($next != $NULL) && ((substr(($next->dpmeType),0,10)) eq $freeType)) { $map->combineData($entry,$next); $partsRemoved++; } if (($prev != $NULL) && ((substr(($prev->dpmeType),0,10)) eq $freeType)) { $map->combineData($prev,$entry); $partsRemoved++; } print "partsRemoved is: $partsRemoved\n"; if ($partsRemoved != 0) { $map->adjustCount(($entry->dpmeMapEntry) - $partsRemoved); } return; } sub checkChange { my $map = shift; my $orig_map = new partmap($map->name); $orig_map->read_partition_map(); if (($map->numparts) != ($orig_map->numparts)) { return 1; } my $entry = $map->disk_order; my $orig_entry = $orig_map->disk_order; while ($entry != $NULL) { my $i; for $i ($entry->keys) { if (($entry->{$i}) ne ($orig_entry->{$i})) { printf "Looks different in %s: %s - %s\n",$i,$entry->{$i},$orig_entry->{$i}; return 1; } } $entry->next_by_disk; $orig_entry->next_by_disk; } } sub combineData { my $map = shift; my ($first,$second) = @_; my $totalBlocks = (($first->dpmePblocks) + ($second->dpmePblocks)); #Change Data in first $first->dpmePblocks($totalBlocks); $first->next_by_base($second->next_by_base); $second->prev_by_base($NULL); if ($second->next_by_base != $NULL) { $second->next_by_base->prev_by_base($first); $second->next_by_base($NULL); } if ($second->prev_by_disk != $NULL) { $second->prev_by_disk->next_by_disk($second->next_by_disk); $second->prev_by_disk($NULL); } if ($second->next_by_disk != $NULL) { $second->next_by_disk->prev_by_disk($second->prev_by_disk); $second->next_by_disk($NULL); } #Kill mame and ... $second->destroy; return; } sub adjustCount { my $map = shift; my $count = shift; $map->numparts($count); my $entry = $map->disk_order; while ($entry != $NULL) { $entry->dpmeMapEntry($count); $entry = $entry->next_by_disk; } return; } sub disk_report { my $map = shift; my $drive = $map->name; my ($i, $type, $name, $value, $prefix); #Output Header printf "\nPartition map (with %d byte blocks) on '%s'\n", $map->sbBlkSize, $drive; printf " #: %19s %-12s %8s %-8s ( size )\n", "type", "name", "length", "base"; #printf " #: %*s %-*s %*s %-*s ( size )\n", 19, "type", 12, "name", 8, "length", 8, "base"; #Output Body my $count = 1; for ($i = $map->disk_order;$i != $NULL;$i = $i->next_by_disk) { my @tmparray = split (/\0/, $i->dpmeType); $type = $tmparray[0]; @tmparray = split (/\0/, $i->dpmeName); $name = $tmparray[0]; my $isDrvr = $map->containsDriver($count) ? "*" : " "; printf "%2.d: %19s%1s%-12.12s ",$count, $type, $isDrvr, $name; printf "%8.d @ %-8.d", $i->dpmePblocks, $i->dpmePblockStart; $value = ($i->dpmePblocks * $map->sbBlkSize); ($value,$prefix) = $map->adjust_value_and_compute_prefix($value); if (($prefix ne " ") && ($prefix ne "K")) { printf " (%5.1f%s)\n", $value, $prefix; } else { printf "\n"; } $count++; } #Output Footer printf "\n"; $value = $map->sbBlkCount * $map->sbBlkSize; ($value,$prefix) = $map->adjust_value_and_compute_prefix($value); printf "Device block size=%d, Number of Blocks=%d (%1.1f%1s)\n", $map->sbBlkSize, $map->sbBlkCount, $value, $prefix; printf "DeviceType=0x%x, DeviceId=0x%x\n",$map->sbDevType,$map->sbDevId; printf "Drivers-\n"; foreach $i (1 .. $map->sbDrvrCount) { printf "%d: @ %d for %d, type=0x%x\n", $i, $map->sbMap($i,'ddBlock'), $map->sbMap($i,'ddSize'), $map->sbMap($i,'ddType'); } printf "\n"; } sub containsDriver { my $map = shift; my $part = shift; my $i; my $entry = $map->disk_order; for ($i = $part;$i > 1;$i--) { $entry = $entry->next_by_disk; } my $base = $entry->dpmePblockStart; # First Block of partition foreach $i (1 .. $map->sbDrvrCount ) { if ($base == $map->sbMap($i,'ddBlock')) { # Is same as a driver's first block return 1; } } return 0; } sub adjust_value_and_compute_prefix { my $map = shift; my $value = shift; my $prefix; if ($value < 1024.0) { $prefix = " "; } else { $value = $value / 1024; if ($value < 1024.0) { $prefix = "K"; } else { $value = $value / 1024; if ($value < 1024.0) { $prefix = "M"; } else { $value = $value / 1024; if ($value < 1024.0) { $prefix = "G"; } else { $value = $value / 1024; $prefix = "T"; } } } } return ($value,$prefix); } sub read_partition_map { my $map = shift @_; my $drive = $map->name; my $temp; sysopen(DRIVE, $drive, O_RDONLY) or die "Couldn't open $drive for reading!\n"; # Go To the beggining of the drive sysseek(DRIVE, 512, 0) or die "Couldn't seek byte 512 of drive!\n"; #Read the first two bytes from the drive $temp = read_16_bits(*DRIVE); #print "Read entry sig and it is : $temp\n"; while ($temp == 20557 ) { #HERE WE SHOULD INSERT THE FOLLOWING INTO LINKED LISTS #FIRST CREATE NEW NODE THEN CHECK IT'S PLACMENT IN LISTS #OR IF IT'S OUT OF RANGE DELETE THE NODE my $entry = new dpme; $entry->{dpmeSig} = $temp; $entry->{dpmeReserved1} = read_16_bits(*DRIVE); $entry->{dpmeMapEntry} = read_32_bits(*DRIVE); $entry->{dpmePblockStart} = read_32_bits(*DRIVE); $entry->{dpmePblocks} = read_32_bits(*DRIVE); $entry->{dpmeName} = read_char_32(*DRIVE); #NUL term'd str $entry->{dpmeType} = read_char_32(*DRIVE); #1-32 chars $entry->{dpmeLblockStart} = read_32_bits(*DRIVE); $entry->{dpmeLblocks} = read_32_bits(*DRIVE); $entry->{dpmeFlags} = read_32_bits(*DRIVE); $entry->{dpmeBootBlock} = read_32_bits(*DRIVE); $entry->{dpmeBootBytes} = read_32_bits(*DRIVE); $entry->{dpmeAddrs}[1] = read_32_bits(*DRIVE); $entry->{dpmeAddrs}[2] = read_32_bits(*DRIVE); $entry->{dpmeAddrs}[3] = read_32_bits(*DRIVE); $entry->{dpmeAddrs}[4] = read_32_bits(*DRIVE); $entry->{dpmeChecksum} = read_32_bits(*DRIVE); $entry->{dpmeProcId} = read_char_16(*DRIVE); $entry->{dpmeBootArgs} = read_x_bytes(*DRIVE,128); $entry->{dpmeReserved3} = read_x_bytes(*DRIVE,248); # Here we add to lists if ($map->insertEntryData($entry)) { $temp = read_16_bits(*DRIVE); #get next 2 bytes for while sig check } else { $temp = 0; # We are done reading now } } close(DRIVE) or die "Couldn't close drive filehandle!\n"; } sub insertEntryData { my $map = shift; my $entry = shift; if (($map->disk_order == $NULL) && ($map->base_order == $NULL)) { $map->{disk_order} = $entry; $map->{base_order} = $entry; return $entry; } #check if overlaps any existing partition my $endBlock = $entry->dpmePblockStart + ($entry->dpmePblocks - 1 ); if ($endBlock > $map->sbBlkCount) { return 0; } my $i = $map->base_order; while ($i != $NULL) { my $threshold = $i->dpmePblockStart + ($i->dpmePblocks - 1); if (($i->next_by_base == $NULL) && ($entry->dpmePblockStart > $threshold)) { $i->appendBaseOrder($entry); last; } elsif (($endBlock < $i->dpmePblockStart )) { $i->prependBaseOrder($entry); last; } elsif ($i->next_by_base == $NULL) { return 0; } $i = $i->next_by_base; } $i = $map->disk_order; while ($i->next_by_disk != $NULL) { $i = $i->next_by_disk; } $i->appendDiskOrder($entry); if (($entry->prev_by_disk != $NULL) || ($entry->next_by_disk != $NULL)) { return $entry; } else { return 0; } } sub read_block_zero { my $map = shift @_; my $drive = shift @_; sysopen(DRIVE, $drive, O_RDONLY) or die "Couldn't open $drive for reading!\n"; # Go To the beggining of the drive sysseek(DRIVE,0,0) or die "Couldn't seek to start of drive!\n"; #Read the first two bytes from the drive $map->{sbSig} = read_16_bits(*DRIVE); #print "sbSig is $map->{sbSig} - "; if ($map->{sbSig} == 17746) { #print "Horray!\n"; } else { die "A Horrible Horrible error has happend!!!\n"; } # Read the next two bytes - the block size of the device # this should most likely be 512 $map->{sbBlkSize} = read_16_bits(*DRIVE); # Read the next four bytes - the block count of the device # this should most likely be be big number $map->{sbBlkCount} = read_32_bits(*DRIVE); # Read the next two bytes - the device type $map->{sbDevType} = read_16_bits(*DRIVE); # Read the next two bytes - the device ID $map->{sbDevId} = read_16_bits(*DRIVE); # Read the next four bytes - the block count of the device $map->{sbData} = read_32_bits(*DRIVE); # Read the next two bytes - Driver Count $map->{sbDrvrCount} = read_16_bits(*DRIVE); # Read the next sbMap upto array[247] my $i; foreach $i (1 .. $map->{sbDrvrCount}) { $map->{sbMap}[$i]->{ddBlock} = read_32_bits(*DRIVE); #print "Driver Starting Block is $map->{sbMap}[$i]->{ddBlock}\n"; $map->{sbMap}[$i]->{ddSize} = read_16_bits(*DRIVE); #print "Driver Size is $map->{sbMap}[$i]->{ddSize}\n"; $map->{sbMap}[$i]->{ddType} = read_16_bits(*DRIVE); #print "Driver Type is $map->{sbMap}[$i]->{ddType}\n"; } close(DRIVE) or die "Couldn't close drive filehandle!\n"; } sub write_partition_map { my $map = shift; my $drive = $map->name; sysopen(DRIVE, $drive, O_RDWR) or die "Couldn't open $drive for reading and writing!\n"; #Go to start of partition map partition sysseek(DRIVE, 512, 0) or die "Couldn't seek to start of partition map!\n"; my $entry = $map->disk_order; while ($entry != $NULL) { $map->write_partition_map_entry($entry,*DRIVE); $entry = $entry->next_by_disk; } return; } sub write_partition_map_entry { my $map = shift; my $entry = shift; local (*DRIVE) = shift; write_16_bits(*DRIVE, $entry->dpmeSig); write_16_bits(*DRIVE, $entry->dpmeReserved1); write_32_bits(*DRIVE, $entry->dpmeMapEntry); write_32_bits(*DRIVE, $entry->dpmePblockStart); write_32_bits(*DRIVE, $entry->dpmePblocks); write_char_32(*DRIVE, $entry->dpmeName); write_char_32(*DRIVE, $entry->dpmeType); write_32_bits(*DRIVE, $entry->dpmeLblockStart); write_32_bits(*DRIVE, $entry->dpmeLblocks); write_32_bits(*DRIVE, $entry->dpmeFlags); write_32_bits(*DRIVE, $entry->dpmeBootBlock); write_32_bits(*DRIVE, $entry->dpmeBootBytes); write_32_bits(*DRIVE, $entry->dpmeAddrs(1)); write_32_bits(*DRIVE, $entry->dpmeAddrs(2)); write_32_bits(*DRIVE, $entry->dpmeAddrs(3)); write_32_bits(*DRIVE, $entry->dpmeAddrs(4)); write_32_bits(*DRIVE, $entry->dpmeChecksum); write_char_16(*DRIVE, $entry->dpmeProcId); write_x_bytes(*DRIVE, 128, $entry->dpmeBootArgs); write_x_bytes(*DRIVE, 248, $entry->dpmeReserved3); return; } sub write_16_bits { local (*DRIVE) = shift; my $temp = shift; my $data = pack("n", $temp); my $written = syswrite(DRIVE, $data, 2, 0); die "Fatal error during write!\n" unless defined $written; #print "I actually just wrote 2 bytes : $data\n"; return $data; } sub write_32_bits { local (*DRIVE) = shift; my $temp = shift; my $data = pack("N", $temp); my $written = syswrite(DRIVE, $data, 4, 0); die "Fatal error during write!\n" unless defined $written; #print "I actually just wrote 4 bytes : $data\n"; return $data; } sub write_char_16 { local (*DRIVE) = shift; my $data = shift; if (length($data) != 16) { $data = pack ("a16",$data); } my $written = sQRSTUVWyswrite(DRIVE, $data, 16, 0); die "Fatal error during write!\n" unless defined $written; #print "I actually just wrote 16 bytes :$data\n"; return $data; } sub write_char_32 { local (*DRIVE) = shift; my $data = shift; if (length($data) != 32) { $data = pack ("a32",$data); } my $written = syswrite(DRIVE, $data, 32, 0); die "Fatal error during write!\n" unless defined $written; print "I actually just wrote 32 bytes :$data\n"; return $data; } sub write_x_bytes { local (*DRIVE) = shift; my $bytes = shift; my $data = shift; if (length($data) != $bytes) { $data = pack ("a$bytes",$data); } my $written = syswrite(DRIVE, $data, $bytes, 0); die "Fatal error during write!\n" unless defined $written; #print "I actually just wrote $bytes bytes :$data\n"; return $data; } sub read_16_bits { #my $map = shift; local (*DRIVE) = shift; my $temp; my $read = sysread(DRIVE, $temp, 2, 0); #my $temppack = substr("0" x 16 . $temp, -16); my $temppack = unpack("B16", $temp); return unpack("n", pack("B16", $temppack)); } sub read_32_bits { #my $map = shift; local (*DRIVE) = shift; my $temp; my $read = sysread(DRIVE, $temp, 4, 0); #my $temppack = substr("0" x 32 . $temp, -32); #guess this is wrong or something dunno my $data = unpack("B32", $temp); return unpack("N", pack("B32", $data)); } sub read_char { #my $map = shift; local (*DRIVE) = shift; my $temp; my $read = sysread(DRIVE, $temp, 1, 0); return $temp; } sub read_char_16 { #my $map = shift; local (*DRIVE) = shift; my $temp; my $read = sysread(DRIVE, $temp, 16, 0); return $temp; } sub read_char_32 { #my $map = shift; local (*DRIVE) = shift; my $temp; my $read = sysread(DRIVE, $temp, 32, 0); return $temp; } sub read_x_bytes { #my $map = shift; local (*DRIVE) = shift; my $bytes = shift; my $temp; my $read = sysread(DRIVE, $temp, $bytes, 0); return $temp; } sub displayPart{ my $map = shift @_; my $part = shift @_; my $i; my $entry = $map->disk_order; for ($i = 1; $i < $part; $i++ ) { $entry = $entry->next_by_disk; } printf "Partiton Sig: %s \n", $entry->dpmeSig; printf "Partiton Name: %s \n", $entry->dpmeName; printf "Partiton Type: %s \n", $entry->dpmeType; printf "Partiton Reservered1: %s \n", $entry->dpmeReserved1; printf "Partiton MapEntry: %s \n", $entry->dpmeMapEntry; printf "Partiton PblockStart: %s \n", $entry->dpmePblockStart; printf "Partiton Pblocks: %s \n", $entry->dpmePblocks; printf "Partiton LblockStart: %s \n", $entry->dpmeLblockStart; printf "Partiton Lblocks: %s \n", $entry->dpmeLblocks; printf "Partiton Flgas: %s \n", $entry->dpmeFlags; printf "Partiton BootBlock: %s \n", $entry->dpmeBootBlock; printf "Partiton BootBytes: %s \n", $entry->dpmeBootBytes; printf "Partiton Addrs[1]: %s \n", $entry->dpmeAddrs(1); printf "Partiton Addrs[2]: %s \n", $entry->dpmeAddrs(2); printf "Partiton Addrs[3]: %s \n", $entry->dpmeAddrs(3); printf "Partiton Addrs[4]: %s \n", $entry->dpmeAddrs(4); printf "Partiton Checksum: %s \n", $entry->dpmeChecksum; printf "Partiton ProcId: %s \n", $entry->dpmeProcId; printf "Partiton BootArgs: %s \n", $entry->dpmeBootArgs; printf "Partiton Reservered3: %s \n", $entry->dpmeReserved3; printf "This entry node: %s \n",$entry; if ($entry->prev_by_disk != $NULL) { printf "Previous by disk is: %s \n",$entry->prev_by_disk; printf "Next by disk of Previous by disk is: %s \n",$entry->prev_by_disk->next_by_disk; } if ($entry->next_by_disk != $NULL) { printf "Next by disk is: %s \n",$entry->next_by_disk; printf "Prev by disk of Next by disk is: %s \n",$entry->next_by_disk->prev_by_disk; } } sub setPartName{ my $map = shift; my ($part, $name) = @_; my $drive = $map->name; if (defined $name) { $name = $name . "\0"; } else { return 0; } my ($i, $entry); $entry = $map->disk_order; for ($i = 1; $i < $part; $i++ ) { $entry = $entry->next_by_disk; } my $len = length($name); if ($len <= 32) { $entry->{dpmeName} = $name; # # should write to drive here # my $block = ($map->sbBlkSize * $part); # $block += 16; #Name is 16 bytes into dpme # # sysopen(DRIVE, $drive, O_RDWR) # or die "Couldn't open $drive for reading!\n"; # # # Go To the beggining of the drive # sysseek(DRIVE, $block, 0) # or die "Couldn't seek byte $block of drive!\n"; # # my $written = syswrite(DRIVE, $name, 32, 0); # die "Fatal error during write!\n" unless defined $written; # # close (DRIVE); } else { return 0; } return $name; } sub setPartType{ my $map = shift; my ($part, $type) = @_; my $drive = $map->name; if (defined $type) { $type = $type . "\0"; } else { return 0; } my ($i, $entry); $entry = $map->disk_order; for ($i = 1; $i < $part; $i++ ) { $entry = $entry->next_by_disk; } my $len = length($type); if ($len <= 32) { $entry->{dpmeType} = $type; # print "should write to drive here\n"; # my $block = $map->sbBlkSize * $part; # $block += 48; #Type is 48 bytes into dpme # # sysopen(DRIVE, $drive, O_RDWR) # or die "Couldn't open $drive for reading!\n"; # # # Go To the beggining of the drive # sysseek(DRIVE, $block, 0) # or die "Couldn't seek byte $block of drive!\n"; # # my $written = syswrite(DRIVE, $type, $len); # die "Fatal error during write!\n" unless defined $written; # # print "Wrote $written bytes to $drive\n"; # # close (DRIVE); } else { return 0; } return $type; } sub disk_order { my $self = shift; return $self->{disk_order}; } sub base_order { my $self = shift; return $self->{base_order}; } sub sbSig { my $self = shift; return $self->{sbSig}; } sub sbBlkSize { my $self = shift; return $self->{sbBlkSize}; } sub sbBlkCount { my $self = shift; return $self->{sbBlkCount}; } sub sbDevType { my $self = shift; return $self->{sbDevType}; } sub sbDevId { my $self = shift; return $self->{sbDevId}; } sub sbData { my $self = shift; return $self->{sbData}; } sub sbDrvrCount { my $self = shift; return $self->{sbDrvrCount}; } sub sbMap { my $self = shift; my ($i,$field) = @_; return $self->{sbMap}[$i]->{$field}; } sub numparts { my $self = shift; return $self->{numparts}; } sub name { my $self = shift; return $self->{name}; } 1; C .9 ..DterminfoD .C ..ElE .D ..F linux-latGlinux }linux-lat@!%)4EGKRT[_cgkqv{ "'+059=@IR[djmx{}+/46<BHNTZ`flrw [%i%p1%d;%p2%dr[%i%p1%dG[%i%p1%d;%p2%dH [?25l[?25h[%p1%dX[?5h[?5l$<200/>[@[3~[[A[21~[[B[[C[[D[[E[17~[18~[19~[20~[1~[2~[6~[5~ [%p1%dP[%p1%dM[%p1%d@[%p1%dLc]R8[%i%p1%dd7 M[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;mH +,-.0`a fghijklmno~pqrs_tuvwxyz{|}~[4~[23~[24~[25~[26~[28~[29~[31~[32~[33~[34~[%i%d;%dR[?6c[3%p1%dm[4%p1%dm}linux|linux console@!%)4EGKRT[_cgkqv{ "'+059=@IR[djmx{}+/46<BHNTZ`flrw [%i%p1%d;%p2%dr[%i%p1%dG[%i%p1%d;%p2%dH [?25l[?25h[%p1%dX[?5h[?5l$<200/>[@[3~[[A[21~[[B[[C[[D[[E[17~[18~[19~[20~[1~[2~[6~[5~ [%p1%dP[%p1%dM[%p1%d@[%p1%dLc]R8[%i%p1%dd7 M[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;mH +,-.0`afghijklmno~pqrs_tuvwxyz{|}~[4~[23~[24~[25~[26~[28~[29~[31~[32~[33~[34~[%i%d;%dR[?6c[3%p1%dm[4%p1%dmJ . ..K cpL rmM lsN lnO bashP shQ catRmountSumountT psU dfVmkdirW initX mvYldconfigZ perl[mke2fs\ fsck] fsck.ext2^pdisk_clock` datearoutebifconfigc vid haltemkswapfswapongmknodhhdparmimodprobejrebootkinstalll runinstallminsmodnrmmodosleepp killqkillallrejectssysctltgunzipuloadkeysELF4v4 (444 ntntnxnxnxdnnn000 /lib/ld.so.1GNUCH A'#54E>0-1=G+?/( 6B" 2&,FDC;! .*<:@97)3 %$8X@" sl!rX",ql2r9q(@sFsd"Nr$Zq4dqDkQ srzq"r<("q0rL"q<r s\"r$Hr4"qrhq"qqrD@rT"q@q8r""qX")sT".r 6s4>r "ErX"Mr"WsL`r"hr"or"wr8s,lqs L"s<s$r@r q,sDt"rHqHr, "r\"s rdh"qX 'r9rl@r|P"HqOr"Xq"^q"tq"zs"rtP__gmon_start__libc.so.6strcpytextdomainchownprintfstdoututimegeteuidgetopt_long__ctype_bgetenvdirnamememcpyreadlinkputs_nl_msg_cat_cntrmallocoptarg__dcgettextlchown__xstat64chmodrenamestrrchrwritefprintf__stpcpymkfifo__deregister_frame_infooptindstdinumaskferrorreadstrncmpstrncpyunlinkreallocreaddir64_IO_getcsymlinkopen64opendir__assert_fail__xmknodstrcmpeuidaccesssprintf__mempcpyfclosesetlocalestderrerror__lxstat64__fxstat64__errno_locationlinkexitbindtextdomainrpmatch_IO_stdin_used__libc_start_mainstrlenlseek64strchrclosedirmkdir__register_frame_infoclosefreeftruncate64GLIBC_2.1GLIBC_2.0 ii iiqqCqqq!qAq<q7qDqqq.qEqq r r %r,r3r$r,8r4r<rDrLrTr\9rd;rl?rtGr|@r#r>r&rrr r*r2r6rr'r rBr)r+rs:s /sFss$1s,-s4$s<0sD5sL(sT"s\sdslq(q,4q0q4 q8q<q@|) xT!68!|=XHcؔ!| =  n|,@l= inx ,A0??nx9)?nx |N!nx ,@= 9)rT, A<`8cnHc%= 8 n|| 8!N !||8!N !|= 9)q, A<`<8cn8thHb1|8!N !||8!N !|$|}yA|?oL= ,q,A= =`IoP q0| A,<8Z8`8Hb=  q0=`~oL oP= =`oLqxL1HaH?oT,A= =@ioX q0| A,<8[8`8Hba=@ q0= oT oX= q=`koT|#xL1Ha?o\,A= =`Io` q0| A,<8[`8`8Ha=  q0=`o\ o`= io\?L1Hauod,A= =`Ioh q0| A,<8b8`8Ha=  q0=`od oh= iod?L1Haol,A= =`Iop q0| A,<8c<8`8Ha5=  q0=`ol op= iol?L1H`ot,A= =`Iox q0| A,<8c8`8H`=  q0=`ot ox= iotH_H>xH`!| !$A(a,048<D|? x|}x|#x|+x|3xH`|uxxH_8cTc8!|c}!n8T6xxH`>yA$;>?`>?ZX#x8}H9 }>L1N!,AH_<8d &xH0,AxЁ?ؐ=xxH_,ATH^?o|,A6oq0| A$<8d8`8H_Uq0}o|oo|H(,AxH],AtH^Ic,A ,@ ,@TH^)?o,A7oq0| A$<8d(8`8H^q0}oooH,,@,ALx| 8H],AlH]?o,A8oq0| A$<8dD8`8H^=q0}oooxx8`L1H^a8`H <8/|I,@8`a |Ԃ؂܃ +Kk샋}a[xN !|A8a<@DHLP!TAXa\`dhlt|? x|}x}5Kx|#x|;x|+x|3x}CxH\8cTc8!|c}!n8T6xxH]~xL1H;-|}xH\}8cTc8!|c}!n8T6xxH]UxH\x~88L1N!|cyA|خ~޳x,/@,/A:>`?`>Hd8` H>|}x~|P:x=88L1N!|cyAx~DxHZ,A`H[U?o,A3oq0| A$<8dd8`8H[q0~oooxx8`H4,Ax~ijxxL1H[YHhT&,@AP?o,A4oq0| A$<8d8`8H[iq0~oooxH}y8/>, /@,/Ax8/HY|~y@HT&,@Ax?o,A= =`Io q0| A,<8d8`8HZ=  q0=`}o o= ox8`8L1HZ8`H y8`a |KȂk̂ЂԂ؂܃ +Kk샋}a[xN !P|p!tAxa|!Aa|? x>q@||x|9 |#x|+x?P:At?o,A= ?ioq0| A,<8d8`8HY?q0= ~o o= o8`8L1HY8`K!=  q@:|Ap?o?,A= ioq0| A(<8d8`8HYq0= ~o o= o8`8L1HY!8`KW:}));8`$xxHXy,A@HWՀ,A$<8d &x8`L1HX8`H,8PH08`$x8xHW,@x8x8hL1HWP,@T&,@@>@>`q@9 T:Q.?HCxL1H9;oD,A#xDx8HH7U:L||y;P@`?o?,?`A;oq0| A$<8d8`8HWq0~ooo8`8L1HWT?H,|HPA= 8dH85X~xxx8K!CH\CxH3#, .9)@#, .9)@#, @#xL1H9H|dx#x8H6M||x,@ :HPPCxx~x8T9H(~xH*oD,A HL| Px~xK~xxHV3q@9)| 3q@@@~óxH=  q@|P,@|=  oD,Ap?o?,A= ioȀq0| A(<8e8`8HUq0= ~oĐ o= o8`8L1HV8`K= u q@, T:Q.A,ACx$xHTu,@̃P,@?8U)&`| @#xH,?|~x;t~xx8\L1HTx,|t@D?o?,A= ioЀq0| A(<8d8`8HTq0= |o̐ o= o8`8L1HU H#xHT%|c,/@8`Dx8HT],@T&,@ACxHS8cTc8|c|n;W6xDxHTxL1H6xH0||x#xHS|}xxHS;W8!}!n8T6$xxHRxHRH>xPCxx~x8X9H%Hx?o?,A= io؀q0| A(<8e@8`8HSq0= ~oԐ o= o&x8`8L1HS8`K%8`a | +ĂKȂk̂ЂԂ؂܃ +Kk샋}a[xN !|$|}x;8 HS!} 8D$(,048H<@8`HQlchcT}LP$|8! N !p|p!tAxa||#x= |xx< q8e8`HQ?<8e8}eHQM;@8}eHQy8aK<`8ceHP|{yA = ip<`8ceHP|{xH(A=`9kf@T`:}K.= 9)f@}JJ}IN = iq<<8XH']|y@l?o?,?A>oq0| A$<8e8`8HQq0|oܐo= =`io܀q<xH'8`K= 9)XW:}i.aLH89 @! !048&`|@x8`~DxHG,A$HH; <8hP8`~xHT&|@X8<H|p}ISxU,M9`}H`}'YU&U@~|x}$Np|@A|@L|@@:`8T8a|}an9!U<6Hpx,}i[x{PZI;A8|鮁<;, @;,A9>,@ 9),A|| @@(xx}e[x8HGA,A:H;,@$xxxL1H&U,A:~Cxx~xHG|}y@4HF,A<8hP8`~xL1HG; Hl@,A`<8hx8L1H%,AExfxxHFy,@(HF%; <8hP8`~ƳxL1HGxHE,@(HE; <8hP~Ƴx8`L1HF~CxHE,@(HE; <8hP~x8`L1HF#xa |+ĂKȂk̂ЂԂ؂܃ +Kk샋}a[xN !P|}&hlp!tAxa|!Aad|? x?1}l1| }l99|zx|#x|+x|;x}Cx}.Kx}]Sx:HAXCx8|L1N!,AHDq<8hPFxH xHY= |sx9)q$|H@88`H܂_V@&,@~Vx@x8,@l?p,A= =`Ip q0| A,<8h8`8HD=  q0=`~p p= pFx8`8HH,@Xx8x|L1N!,A HCq,A<8hPH?;`| @(?x| @ ?||Jx!l,&@8 ,@$,A,?8U)&`| @T&|HA,A8,A܁?8U)&`| @ĀT&|HA,@9 T&a)|HAT&|H@8`x8HBM,@h8`Dx8XHB5,@P?dmnopqrstuvwxyz{|}~| @@?X| @0\|Zx| p}x})`P})p9iiH8},[y& A,@,@ ,@x?p,A= =`Ip q0| A,<8hp8`8HBQ=  q0=`~p p = pFxx8`8L1HBeHV&,@AT&,@@l?p$,A= =`Ip( q0| A,<8h8`8HA=  q0=`~p$ p(= p$x8`8HpP,A?X|A@|V&,@AD ,@8,A,x8HAU,A? p,= ,iq,A= ?ip0q0| A,<8i8`8H@?q0= yp, p0= =`p,qcxxT>L1H?H|? p4= ,iq,A= ?ip8q0| A,<8i,8`8H@u?q0= yp4 p8= =`p4qcxxL1H?9H#u,@1|lH-AxT&,@@h?pɀq0= }pL pP= pLHT?pT,A= ipXq0| A(<8i8`8H>uq0= }pT pX= pTxGx8`8L1H>cxH>UHcxH=8cTc8!|c}!n8T6~xdxH>ycxH>x~xH<,AtH=c,A`?p\?,A= ip`q0| A(<8i8`8H=q0= }p\ p`= p\dxHT:H ,AT&,@@Lx8H=a,Ax8H6x8H3|cy@xH4y?`p,?A= ipq0| A(<8k$8`8H5 q0= {p p= pxFx8`L1H5%H0~xxH4,AdH3?`p,?A= ipq0| A(<8kD8`8H4}q0= {p p= pHȀ(,A\ ? |p}"x|`P|p})x|8$|KxxH4,A$H3Ic,A ,@ ,@H3%?`p,?A= ipq0| A(<8kh8`8H3q0= {p p= px8`xL1H3H?p?,A= ipȀq0| A(<8k8`8H3Iq0= }pĐ p= pFx8`8L1H3eHp0,AP?X@8@$xH3,AH2?@p̃c,?A= ipЀq0| A(<8k8`8H2q0= zp̐ p= pdx8`xL1H24,@P(,A܀ ? |p}"x|`P|p})x|8$|KxxH0,AH1Uc,A ,@ ,@H11?@pԃc,?A= ip؀q0| A(<8kh8`8H1q0= zpԐ p= pdx8`xL1H1݀4,@l<,Ax@xH0,ApH0?`p܃,?A= ipq0| A(<8k8`8H1%q0= {pܐ p= pH؁=,1}l1| I| [yAĀ,@ 8V&`| A , @@Lx~D 8H/,AH/?@pc,?A= ipq0| A(<8k8`8H0iq0= zp p= pdxx8`L1H04,A8HH, A(xH/M,AH/9?`p샣,?A= ipq0| A(<8k8`8H/ɀq0= {p p= pH|,A~xxH.A,AtH.?`p,?A= ipq0| A(<8l 8`8H/Mq0= {p p= pxx8`L1H/i8`a | +ĂKȂk̂ЂԂ؂܃ +Kk샋} }a[xN !||cy@$<`<<8cl$8l88l@8H-(@$<`<<8clP8l88l@8H-q#D9)( @$<`<<8cl8l88l@8H-A8`|8!N !|!$A(a,048<D|3x|yx|#x|+x|;x}CxxK,@$<`<<8cmH8l88m`8H,8 #xdxExx9 9KaD|!$A(a,048<8!@N !|||x8`x8H,M,A$a <8q$H8`H(H,)<8mhx8`L1H-%8`||8!N !||gx|#xH}|8!N !|a $|{xWc:|#x8cHW<|}x|T8H= q }}H)$|a 8! N =@jq 8 }i[x 9),L 9`4i9)AN }$})}) PU):9)}H.}J,A@} Cx | @$ |(@ |0@ iN ), @́c CUi<})ZU)8| J 9kc |I.| x  8`N !|!Aa $(,4?q |xx? |+x|3x| @|;xAx8H |xW<|T8H aW:x8H M|xq  Km,@( xK;7AxxExfx'xKa4|!Aa $(,8!0N !|!Aa $(,4|yx|#xH)E;|{x,;@;AX;|.$xexH)-,@(|.H)|A<,@ xH;@;|.;,@,@xHxH8`4|!Aa $(,8!0N !|,|fx|#x@= 8mlH = 8m= =`iq,qL1H'̀|8!N !| !$A(a,048<D|{x|#xH'= Ip|}xCxH'8c!#})I} H|iH8T>}#x~8wH'||yA xdxH(,AxH9 8.!98!:8}+Kxa= 8mm9@8.{xAyzA|x}ISxX!\=`PAA!!<P mQ^= ePD.9)mA})P>})aA9!Q iP9!PD.P};. iQ_>PB>N 8 Ht Hl! ,HXHPX!\ ,H<! ,H(a! ,lH |{xHj2}u2}5}uKyA$8<8mxL1H&xdxxH&Dxx8~H xD| !$A(a,048<8!@N !|Aa $|{x|#xH%||yAcxH%;|}x;]HT,AH;xH$|@A4xcxxHy|L#|&TG||cx8|xxH%|cy@xH%,@ xH8`$|Aa 8! N !|$|#x|+xH$Q;,@|,.@x}= ,~@h8}~|}it9)( }j[xA0}@tDW8}Kt})9k})( });@, ~@,A;x$|8! N !| |yA,@ 8`HD<8mxK|ey@<`8cn4xK8`H#= 9)nT:|i.| 8!N |hx,M (9h})ti)/}'p}h[x|JxH|8P|p}kx, |`8|[x@N !|$= ||xiq(H!,Al?q,A= ?iqq0| A,<8nP8`8H"?q0= ~q q= qx8L1H"= iq(H"e,ApH!?q,?A= iq q0| A(<8nP8`8H"Yq0= }q q = qxxL1H"y$|8! N !|8`K|8!N !|$|x8/H!|cy@$= ;n\;H$,/@8c|@A}?P;8}H |~y@ 8`H xxxH!8|x$|8! N !|}&a $|+y|{x|#xM;AHcxxxH|y@H ,AxHQM@x$|a } 8! N !`|Aa|}x|#x|+xxH|zxxH|x|8cH||y@ 8`HxxxH A,/@4>9c})ti)/}*p}@Jx|PP|p}kx|`8|[xH,/A8/8c,A{x8L1HYx|Aa8!N !|!Aa $(,4|#xHE|zyAxH||y@CxHHx? .H,.@ ,ApT|A`;ccxHYP;|@@0;|@AxxHU|cyAL|P||xxdxHu;CxHi|cy@pCxHe,@xHCxHMH xHq8`4|!Aa $(,8!0N !| |xH4c@ 9 |,/@}?4cA| 8!N !|=  q,A |N!= <iq8n`8L1H|8!N !| H|y@Kx| 8!N !| H|y@K]x| 8!N !`||}xHi8cKmxHY|8!N !p|;;H@, AL8(}@$,@$= Iq4}c| R.p @ |~;= iq8H,@8|xH hc!|h|8!N !`||#x|+xKi|~xHi|xxH]|(A|~xHEH08||| 8U)<|Kx}8 |8!N !||#x|dx8`H|8!N !||#x|dx8`H|8!N !| =  o$;o$,A|N!,@| 8!N !||8!N N !|KKK}|8!N !|KA|8!N D XDXlXXXalwaysautoneverZaZbZfZZiZlZdZxZPZPZxpZlRZdSZTsZLuZDvZ4VZ,oZ$oversionhelpversion-controlverboseupdatesymbolic-linksuffixrecursivepreservepathparentsone-file-systemno-dereferencelinkinteractivesparseforcebackuparchiveTry `%s --help' for more information. Usage: %s [OPTION]... SOURCE DEST or: %s [OPTION]... SOURCE... DIRECTORY Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. -a, --archive same as -dpR -b, --backup make backup before removal -d, --no-dereference preserve links -f, --force remove existing destinations, never prompt -i, --interactive prompt before overwrite -l, --link link files instead of copying -p, --preserve preserve file attributes if possible -P, --parents append source path to DIRECTORY -r copy recursively, non-directories as files --sparse=WHEN control creation of sparse files -R, --recursive copy directories recursively -s, --symbolic-link make symbolic links instead of copying -S, --suffix=SUFFIX override the usual backup suffix -u, --update copy only when the SOURCE file is newer than the destination file or when the destination file is missing -v, --verbose explain what is being done -V, --version-control=WORD override the usual version control -x, --one-file-system stay on this file system --help display this help and exit --version output version information and exit By default, sparse SOURCE files are detected by a crude heuristic and the corresponding DEST file is made sparse as well. That is the behavior selected by --sparse=auto. Specify --sparse=always to create a sparse DEST file whenever the SOURCE file contains a long enough sequence of zero bytes. Use --sparse=never to inhibit creation of sparse files. The backup suffix is ~, unless set with SIMPLE_BACKUP_SUFFIX. The version control may be set with VERSION_CONTROL, values are: t, numbered make numbered backups nil, existing numbered if numbered backups exist, simple otherwise never, simple always make simple backups As a special case, cp makes a backup of SOURCE when the force and backup options are given and SOURCE and DEST are the same name for an existing, regular file. Report bugs to .%spreserving times for %spreserving ownership for %spreserving permissions for %scannot make directory `%s'`%s' exists but is not a directorymissing file argumentsmissing destination filevirtual memory exhausted%s -> %s ..when preserving paths, last argument must be a directorycopying multiple files, but last argument (%s) is not a directoryfileutils/usr/share/localeSIMPLE_BACKUP_SUFFIXVERSION_CONTROLabdfilprsuvxPRS:V:sparse typecp (%s) %s GNU fileutils4.0cannot make both hard and symbolic linksh$0DPxL%svirtual memory exhausted`%s' and `%s' are the same filecannot create regular file `%s'%s: omitting directory%s: cannot overwrite directory with non-directory%s: overwrite `%s', overriding mode %04o? %s: overwrite `%s'? %s: cannot overwrite directorybacking up `%s' would destroy source; `%s' not movedbacking up `%s' would destroy source; `%s' not copiedcannot backup `%s'cannot remove old link to `%s'%s -> %s %s: won't create hard link `%s' to directory `%s'%s: cannot copy cyclic symbolic linkcannot create directory `%s'.%s: can make relative symbolic links only in current directorycannot create link `%s'cannot create fifo `%s'cannot create special file `%s'cannot read symbolic link `%s'cannot create symbolic link `%s'preserving ownership for %s%s: unknown file typepreserving times for %ssetting permissions for %spreserving permissions for %srestoring permissions of %scannot un-backup `%s'co != ((void *)0)copy.cvalid_options((co->backup_type) == none || (co->backup_type) == simple || (co->backup_type) == numbered_existing || (co->backup_type) == numbered)((co->sparse_mode) == SPARSE_NEVER || (co->sparse_mode) == SPARSE_AUTO || (co->sparse_mode) == SPARSE_ALWAYS)valid_options (options)copy%s%s: invalid %s `%s' %s: ambiguous %s `%s' ~..~%d~P\dxހޔިnn nmmmnumberedtexistingnilsimpleneverversion control typewrite error.Memory exhaustedo0 XD XlP  qD d d0 o 4oo N!nmn`GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release).symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.plt.rela.sbss.text.init.fini.rodata.sdata2.data.eh_frame.dynamic.ctors.dtors.got.sdata.sbss.plt.bss.comment #00 1PP47 ?Go To 4 40c d d m@@T xI~XDXD(XlXl XXntntnxnxnnnno$o$o,o,o4o4oDoDqq(qDq$thqttqv ELF 4V4 (444 PxPxPxPxPx$PPP000 /lib/ld.so.1GNU%8,!5&.(46 0 %" 73#)/ +'*-1 2$D" SX"%S,Rl3S$?RxIT,"PSWS<("\R<gRtxSD"T,"S T S"STRS SL"Sl"RR|RX"S"SX"S"T<S""S"*S88R?Tt"FSL"QT$[S@bS, lRpsT4t"ySHSdS|`S$S4 "S S\h"REH SStR S"R",S"2T"__gmon_start__libc.so.6textdomainprintfstdoutgetopt_long__ctype_bfchdirmemcpyputs__overflow_nl_msg_cat_cntrmallocisatty__dcgettext_obstack_newchunkrmdirabort_obstack_beginfprintf__deregister_frame_infochdiroptindstdinferrorunlinkreallocreaddir64_IO_getcopen64opendir__assert_failstrcmpgetcwdeuidaccess__mempcpyfclosesetlocalestderrerror__lxstat64obstack_freefflush_unlockedfwrite_unlocked__errno_locationexitbindtextdomainrpmatch_IO_stdin_used__libc_start_mainstrlenstrchrclosedir__register_frame_infoclosefreeGLIBC_2.1GLIBC_2.0 ii7 iiARR3R R/R5RR S6S SSS$+S,%S4,S< SD SLSTS\.Sd)SlSt2S|*S1SSSSSS$S(SSSS4SSS-S"T7T T!T T$#T,T4'T<RlRp&Rt RxR|R|) xT!68!|=E8HG!| =  P|,@l= iPx ,A0??Px9)?Px |N!Px ,@= 9)SL, A<`8cPHF= 8 P|| 8!N !||8!N !|= 9)R, A<`<8cP8UHF1|8!N !||8!N !|$|}yA|?QD= ,RpA= =`IQH Rt| A,<8F8`8HF=  Rt=`~QD QH= =`QDRhxL1HEH,?QL,A= =@iQP Rt| A,<8F88`8HF1=@ Rt= QL QP= =`iQLRh?L1HEQT,A= =`IQX Rt| A,<8FX8`8HE=  Rt=`QT QX= iQT?L1HEQQ\,A= =`IQ` Rt| A,<8H 8`8HEi=  Rt=`Q\ Q`= iQ\HDH!xHEE!|$|}x;8`HE1} $|8! N !|8<@!DAHaLPTX\d|#x= |{x< Rh8HL8`HC?<8H\8}HPHC; 8}HPHD 8aK!H,fA\A(,RApA,AHx,dA,Hl,rALA,iA,HT,vA@HH8HD89 H 89  !H$8H8H 8`K<<8Hp8ELcxx8HC},@<=  Qp,A0<`<<8cHx8H8HL1HC H 8`HCY=  Ql,A 8`K9?@R|@,A 8`HC?Qd,A= =`IQh Rt| A,<8H8`8HB=  Rt=`Qd Qh= Qd8`8L1HB8`KH=  R|@?;(>>?RT:|~.L1H0]} x| Zx,@|i#|c!|cHPN !|H? |`|8!N !| | @|;xA P8|cH|0P9 |(|#x;|+x|3xL1H?~x| 8!N !@|!Aa= 9)WDI |~xzPH?U? |x};Qx;|@@?}QtxH?A,}QtQx@x;;? x88yU8xxK|dxExfxxx8yUKŀ,A =  JX9iJX 9YUU aHd?}QtDxexH?Ax8L1H>= iQtH>u8c|A$<`<<8cJ`8I$8J8XH=}Qt|!Aa8!N TN !||#x|dx8`8H>%;,@Px8`8xH> ,@8!| @(!x| @ !||Jx!~x|8!N !|}&a,048<@!DAHaLPTX\d(=  Q|ux,; ;@A,><<)Q8vW8SD8T88H<]>`sQ|>,>AHH=),A8H8wJK;@|fx<x8J8`L1H=E3Q|>-H?tQ|H<|}yAԈ,.@$,A܀= .T|HAA#x8H,@;;T ~=> ,Aei>T`&xH;;W|}x }#9)| @@x8H8U)&`| A, @= IRp@`?Q,A= ?iQRt| A,<8KD8`8H7?Rt= Q Q= QH\?Q,A= ?iQRt| A,<8Kp8`8H7=?Rt= Q Q= Q= RhcxK|fxCxxxL1H6H&,A<;,@8,A,= ,IRp?A$<`<<8cJ8I$8J8H5̀T&,@@X?Q,A= iQRt| A(<8K8`8H6URt= Q Q= QHT?Q,A= iQRt| A(<8K8`8H6Rt= Q Q= Q= RhcxK|fxCxxxL1H4H%,@ 8`H(,Ap?Q?,A= iQRt| A(<8K8`8H5eRt= Q Q= QcxK9|dxxL1H4cxH4U,AH4i,@,@?Q?,A= iQRt| A(<8K8`8H4̀Rt= ~Q Q= QcxK|fxxx8`L1H48`H8`$|Aa 8! N !|}&(,0!4A8a<@DHLT$|? x|+x|#x,C;@x?Q,A= =`IQȀ Rt| A,<8K8`8H3=  Rt=`~QĐ Q= QCxK|fxx8`8H0,@,@ ,AtCx8H3q,A`?Q,A= ?iQЀRt| A,<8L8`8H3?Rt= ~Q̐ Q= QHh,A\?Q,A= ?iQ؀Rt| A,<8L@8`8H2?Rt= ~QԐ Q= Q,A@= =`RpRhCxKm|fxxxxL1H1H"I,AH,Ap?Q?,A= iQRt| A(<8Ld8`8H2 Rt= ~Qܐ Q= QCxK|dxxL1H1-A8H,A 8`HlCxH15,@H0?Q,?A= iQRt| A(<8L8`8H1iRt= |Q Q= QCxK=|fxxx8`L1H1yAl8HCxH0= ;WD< |}x|| |X@@xxH1 < }#KxDxxL1H0< |})8 |X@< @x8H0́| 8/=  ; Wpx X?8|P@9)9k| ?@x8H0x 88L1H0 8 9)8 CxH/8T8!|}!n9a8DxUc6L1H/|zx~xK)x |vx|PTA$<`<<8cI@8I$8IP8H.W:})(A$<`<<8cIX8I$8IP8H.Ł< }9Kx|HP|@@(<`<<8cIh8I$8IP8H.< |P|@xxH/Y< { })|XP(}~[x< A(<`<<8cI8I$8IP8H.%{ |P,@cx8H.{ 8  A8;x88Ha,AxHMKxHAHx<`8cLH.,@dH-?Q,?A= iQRt| A(<8L8`8H.9Rt= |Q Q= QH,A ?Q= ,)Rp?A= iQRt| A(<8L8`8H-̀Rt= ~Q Q= =`iQRhCxK,|}xA`?Q,A= =`IR Rt| A,<8L8`8H-]=  Rt=`~Q R= QH = 8M#xdxxxL1H,=H,@ 8`H,Ap?R?,A= iRRt| A(<8M8`8H,Rt= ~R R= RCxK|dxxL1H,ACxH,i,A,H+Ń,@,@,?@<`8cJDxK,Ap?R ,A= iRRt| A(<8M<8`8H, Rt= ~R R= R CxK|fxx8`8Ht?R,A= =`IR Rt| A,<8Md8`8H+=  Rt=`}R R= RCxKi|fxxx8`L1H+K~óxa |؂܃ +Kk샋} }a[xN !P|!Aa|#y|x|+xAL1H,.@|t,A,.@,@t?R,A= =`IR Rt| A,<8M8`8H*a=  Rt=`R R = R8`8L1H*}8`H,,@ _HTt@A _HD8`8H),A 8H(a!d? }z[x8,A,AH(,@ 8`HH(?R$,A= =`IR( Rt| A,<8M8`8H)U=  Rt=`}R$ R(= R$K%|fxxx8`L1H)a8`HW@&,@@|= 9)Wp  =`PkRDW𾃟 8`HU|dxcx8xHx|{x,@l?R,,A= ?iR0Rt| A,<8K(8`8H(u?Rt= |R, R0= R,8`8L1H(,A?R4?,A= iR8Rt| A(<8M8`8H(Rt= |R4 R8= R48`8L1H(%?= 9)Wp  }Rp| PTK}Rp#| @A8 H&H8 9)#?}RpK孀}Rp#| @A8 H&MH8 9)#= iRpH&cxH'M,A?R<,A= =`IR@ Rt| A,<8Nx8`8H&=  Rt=`}R< R@= R<8`8L1H' H,A 8`H8`H&W@&,@@,AxxKH|$yA8/H%Q1|xxK = |}xiRD8H|y@$<`<<8cN8I$8N8rH%AxH&!x|!Aa8!N !|a $??<`8cWD888SD8TH$?`<`8cWp8SD888TH$}<<888T8`5H{RD$|a 8! N !|= iRDH = 9`8iWD8H$}= 8iWp9`8H$i|8!N |hx,M (9h})ti)/}'p}h[x|JxH|8P|p}kx, |`8|[x@N !|$= ||xiRlH#E,Al?RH,A= ?iRLRt| A,<8N8`8H$!?Rt= ~RH RL= RHx8L1H$== iRlH#,ApH#%?RP,?A= iRTRt| A(<8N8`8H#Rt= }RP RT= RPxxL1H#$|8! N !|8`K|8!N cN c N cN c9@|@@X|x,A<#9`, A)9k, @| P||}ix}@8| Kx8c|@@A}CSxN c9| @9@@D|x ,A(+9, 9JA)9J, @9k| 8@AȀ |@| @ 8`N 8`N !|!Aa $(,4|}x|#xK|{xxK|zxxK|yxxK|xx<8NexxL1H <8NxExL1H <C0! =@9JOɊɡ}+Kx=@A `(9JO  !<28N%x!`(x-$L2BH Y<x8OxL1H A4|!Aa $(,8!0N !|$|~x|#xx|N!~Tc8}+| @A$<`<<8cO(8OH8OP8H| .,@H<H8}?KyA,x|N!,@؃,@8`$|8! N !| ,@ 8`H4c|@@,@8c|@AH5x| 8!N !|$|}x|#xx|N!]Tc8}`| P@A,<`<<8cO(8OH8O\8HyH\, }i[xA( |@,@؁), @| P@@ }@Sxk,@9k| @A8`$|8! N |gxG8`| @L 9 ,A<, }ISxA0} Cx|(@L 9| !.)9k, 8c@܀9J| @AN !|Aa $||x|#x|@|+x;@T,A8,xA,HdxN!,A$;,@܀;|@Ax$|Aa 8! N |jxj8`, M Ti(4}#HP}+J| #|!֍j|`HP, @N 9` | @9 @,|K|I|A9)U :}k| @9)A|K|I|P1@|jN !| |x( A$<`<<8cOl8OH8O|8HcH;xKe,Ax| 8!N !|a $|#x!}}+|+x!|| }+y|~x|3x@T8`$H|yAD  ||8pc |xK!|ixU#8?Hq,@xH8`HX|ixT8|c| @@8 9)| @A8 x $|a 8! N !|a $|}x=|H@@;`,Al,A<;,A|N!  ,@Ѐ,A~|N!~~=;|H@A8 $|a 8! N !|$|}x,A`,AT|@@D,A(yA |N!,@;|@Aă|@@4,AxH y@;|@Aԃ ,AxHy@}HxH$|8! N !||ixi ,A H 8`H|8!N 9 $  N !|!Aa $(,4|}x|#xcx||+x|3xN!T|8|@A$<`<<8cO(8OH8O8tH|.,Acx|N!,A<,~.A(,AxKH|.cxHt,Ad,&cx|N!,A, AxKxH|x,@8`4|!Aa $(,8!0N !|a  !$A(a,048<D|wx|#x!`| !v}+| Ky@ ~óxK|{y@ 8`H(  77|H@@܀,A,?xA>>>`_Cx~ijx|N!T}8|@A8uO8OH8O8H|AxcxKM|.,A(cxK|cyAHC|H^.; 9); y@`;9|@A,wHM;cx7;7  H%8`D|a  !$A(a,048<8!@N !|$(,4|#y|x|+x@$<`<<8cO8OH8O8Hxx88K9|cyA8H?a9)? ,ADxK|jy@ ]H|!9` 8` !I}HX? 9)U :Tk:|J|X@? A8H |c8cK|dxxK}8`4|$(,8!0N !|$|x88K9|cy@ 8`H,! ,@? 9)? ?9)?$|8! N !| |x89 ??RX,AD<`8cO8L1H,@H <8OH0RX,@8H,@(Hـ<8P8`L1H8`H8`| 8!N !|$|x|#x,|+x;ApHY,AHUy@ = 8P<,A= 8PTH = 8P\y@ = 9 P\<8P$8`L1H;H8H),@(H;<8P`8`L1Hx$|8! N !| |x,AHM,AH=| 8!N !| |xH4c@ 9 |,/@}?4cA| 8!N !|}&$ H;|}x8`L1H;H0H||x,"@8; xxL1H|}xxxHa|~yMAA xH$He||xxL1H!8`$ |} 8! N !|=  Rd,A |N!= <iR\8Pd8L1H|8!N !| H|y@Kx| 8!N !| H|y@K]x| 8!N !p|;;H@, AL8(}@$,@$= IRx}c| R.p @ |~;= iR|H,@8|xHhc!|h|8!N !| =  Q$;Q$,A|N!,@| 8!N !||8!N N !|KKǕK}|8!N !|Kƹ|8!N DDEFdEfEiErEvEQlEQpversionhelpverboserecursiveinteractiveforcedirectoryTry `%s --help' for more information. Usage: %s [OPTION]... FILE... Remove (unlink) the FILE(s). -d, --directory unlink directory, even if non-empty (super-user only) -f, --force ignore nonexistent files, never prompt -i, --interactive prompt before any removal -r, -R, --recursive remove the contents of directories recursively -v, --verbose explain what is being done --help display this help and exit --version output version information and exit Report bugs to .fileutils/usr/share/localedfirvRrm (%s) %s GNU fileutils4.0too few arguments((status) == RM_OK || (status) == RM_USER_DECLINED || (status) == RM_ERROR)rm.cmaindepth < current_depth ()remove.cprint_nth_dirn_lengths > 0pop_dirtop_len >= 2__extension__ ({ struct obstack *__o = (&dir_stack); (unsigned) (__o->next_free - __o->object_base); }) >= top_len__extension__ ({ struct obstack *__o = (&len_stack); (unsigned) (__o->next_free - __o->object_base); }) >= sizeof (size_t)[...]strlen (buf) + 1 == n_bytes_neededfull_filenamefs->have_filetype_modefspec_filetype_mode%s.((status) == RM_OK || (status) == RM_USER_DECLINED || (status) == RM_ERROR)remove_cwd_entriesvirtual memory exhausted%s: remove write-protected directory `%s'? %s: remove write-protected file `%s'? %s: remove directory `%s'? %s: remove `%s'? removing %s cannot unlink `%s'%s: is a directory%s: directory `%s' is write protected; descend into it anyway? %s: descend into directory `%s'? removing all entries of directory %s cannot change to directory %s..cannot change back to directory %s via `..'%s: remove directory `%s'%s? (might be nonempty)removing the directory itself: %s cannot remove current directory `%s'cannot remove directory `%s'cannot remove `.' or `..'cannot remove `%s'WARNING: Circular directory structure. This almost certainly means that you have a corrupted file system. NOTIFY YOUR SYSTEM MANAGER. The following two directories have the same inode number: continue? old_ent != ((void *)0)rmwrite error# entries: %u # buckets: %u # buckets used: %u (%.2f%%) max bucket length: %u C0@Ybucket < table->bucket_limithash.chash_lookuphash_get_nextcandidate >= 10next_primehash_find_entrynew_bucket < new_table->bucket_limithash_rehashentryhash_insert.cannot open current directorycannot get current directorycannot return to %s%s%ssaved working directory from %sMemory exhaustedQ0 D EPL 7 R4 8 8| o ooN!PPdGCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release).symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.plt.rela.sbss.text.init.fini.rodata.sdata2.data.eh_frame.dynamic.ctors.dtors.got.sdata.sbss.plt.bss.comment #00 1PP|7 ?LLKGopTo  0c 8 84 m l lH x 98~DD(EE E8E8 @PxPxPxPxPPPPQ$Q$Q,Q,Q4Q4QDQD$RhRhRRh|URhWRh9UELF4l4 (444 ϠϠϠϠϠ444000 /lib/ld.so.1GNUCFD@)&43<(* '6>0= ;+A5 B8 1 #,E9 ?C/%-!7:2$"." !X",ֈ"29Ԝ@H$LՐPUԬ_XDfx~ "՘(" <Ԩՠ"֘,"԰ ` ֐ְԤ ՀHհ8h%04P<ը"TԴ[\bX"i q֨yX"@"@4֠<8X"`8HxPhPָ(@p Ԡt"0H hՈ "*p /ոh">PG@ V"ax4hz"P"Ԙ("ր"__gmon_start__libc.so.6strcpytextdomainioctlprintfstdoutgetopt_longgetgrgid__ctype_bgetenv__strtol_internalqsortmemcpyreadlinkputs__overflow_nl_msg_cat_cntrmallocisattyoptarg__bzero__dcgettext_obstack_newchunk__strtoul_internal__ctype_toupper__xstat64abortstrrchr_obstack_beginfprintf__deregister_frame_infooptindmktimeferrorstrncmpstrncpyreallocreaddir64localtimememsetfnmatchtimeopendir__assert_failstrcmpgetpwuidgetpwnamsprintffclosesetlocalestderrerror__lxstat64fwrite_unlocked__errno_locationexitbindtextdomaingetgrnam_IO_stdin_usedstrverscmpgmtime__libc_start_mainstrlenstrchrfputsclosedir__ctype_tolower__register_frame_infofreeGLIBC_2.1GLIBC_2.0 ii ii:"@ (D08)@'H-PX `,h6p2x.ՀՈ7Ր՘ՠըհո9*!A?  <#>% (1058@&HPBX+`h/p8x=րEֈ֐֘֠(֨$ְָ04ԘCԜԠ3ԤԨԬ ԰Դ |) xT!68!|=0HL!| =  Ϥ,@l= iϠ ,A0??Ϡ9)?Ϡ |N!Ϡ ,@= 9)ը, A<`8c0Hy= 8 Ϥ| 8!N !||8!N !|= 9)(, A<`<8c08Hō|8!N !||8!N !|a $d |XPT@| @(xd@($}kJ}iHx}@HP|@P| $ @  = Ԝ;Hy|@,?`;|.8{PL1Hš;|;A= <`Ԝ8cTH5$|a 8! N !| !Aa $(,4|#x|~x= ?@ Ԑ8`8XH]?<8h8}\Hđ>8}\H?9@8= =`I$ XӰ8`Ha= iӴxdxH)=  ,|x,Ah=  <,A$,@= 8H= 8H = 8<`<<8c|88ƫL1H9HP8`Hą=  (,A 8`HKY?,A HH:= i=@9k( 9J 9`@p=  Ӽ,A`=  ,@P=  ,@@=  ,@0=  ,@ =  ,@,A9`=  ؑj,AT=  Ӽ,@D??<`8c888ՠ8րH=<`8c8ՠ8ր88H!= 8d Ө8`2Hd?? ;}ӤӬHM|@@= W:};L1Hc}88XH;|A=  ,A@=  ,A <`<8c8X8HyH<`8c8H%=  Ӭ,AH'=  ,@<`8cX8H%Ӭ,A`H.-=  Ӱ,A= iԜ9` #| @A8 HHi8 =`+09)+0H(= )Ӱ, Ax ,@ =  =  Ӱ,AT?;ӰӰ}H}H},AHxHӰ,@=  ,Ah=  Ӽ,@X<`<8c8K<`<8c8K= i?;ƐH[Tc:|.<`8cL1H=  ,A<`8cϨH;<`8cϰH;HL= i$Hٔ!| !$A(a,048<D= ??`?@? <`jĐ ԔȐ̐Аܐ8cHq||yA(<x8ƐHH||yAx8`HZ!<`8cH9?<88HT 8P<`8cH||yÄ,Ax8888Ha,@(!, @<`| A =H|?` ,A= ?iԨ| A,<88`8H?Ԩ= { =  xH^Q|fxx8`8L1H;<@8``thxL1HU,AT>,A =  8?<`8cXH,@ <`8chH||yA x8888H`q,@(!, A<`| A =H @?`?,A= iԨ| A(<8p8`8HYԨ= { = xH])|fxx8`8L1HH(xA=`9kT`:}K.= 9)}JJ}IN 8=`=  H8`8HWHt=@9 =`8* HX= 8 HH=  Ӽ;Ӽ,9@== =`8I đH@$8`H,A 8H88=`=  H= 8 H= 8 H= 8 H= 8 H= 8 ӼH= 8 ӼH|= 8 Hl=@9 =`8*Ӽ ԌHP= 8 H@= 8 H0= 8 H = 8 H= 8 H=@9 =`8*Đ H= 8 H= i԰8888H],@ a, @<`| @|?`?,?A< Ԩ| A$<88`8HԨ{ = =`i԰HZ}|fxx8`8L1HՁa= iH= 8 ӼH=@9 =`8* H<`8cHE<`8cH9H= 8 ӼH= 8 H= 8 H= 8 ԌH= i԰HHx= 8 Hh8`8HTHX8`8HTuHH= 8 H8= 8 H(= i԰8888H\,@ a, A<`| @|?`$?,?A<(Ԩ| A$<88`8HԨ{$(= =`i԰$HX|fxx8`8L1H)a= iHd= 8 HT= 8 HD= 8 ӼH4= i԰<8THA||y@l?@,?,?`A;0Ԩ| A$<88`8H1Ԩz,0= =`i,԰xHB}8`H?= 9)xW:}I.=`KH= i԰<8HAY||y@l?@4?,?`A;8Ԩ| A$<8 8`8HԨz48= =`i4԰xHA8`H>a= 9)W:}I.=`KH= i԰<8H@||y@l?@||y@l?@T?,?`A;XԨ| A$<8`8`8HɀԨzTX= =`iT԰xH?8`H;x8`HOeH8= 8 H(= <i԰88HIAH 8`H;U<<88Ʀ,xx8H!,@8`HN}?= ܐ},A<= 9)o|HJ,A$}|t8HNь,@8`HN%= i 8:8HN= iԴD| !$A(a,048<8!@N ! |x|#x8`89=`9kpU:}K.= 9)p}JJ}IN |t,=ADA,A@,:A8H<,\A,^AH(99H9K,A 9H9H|t(xA=`9kT:}K.= 9)}JJ}IN |t98,H98,H8,H8,Hx8,Hl8 ,H`8 ,HT8 ,HH8 ,H<8 ,H08,H$8 ,H9,H ,|t@88c9K8T>(A|T8H<8|t(6Ad=`9kT:}K.= 9)}JJ}IN T 69)|t|KT 6|t})8KlT 6|t})8KX88c9HL8T>(>9AT9H|t,?@888cH9(@,@8` 8!N !0|!Aaēȓ̐<`8c\H}|iyaAԈ ,A9 ?;`!)!(a*(ix!=@k9`?KaHaIaJaLH8!<9JkQd kahaiajlham!lX!\= Qd = SdD.9)aaa})P>})a9!QI Qcx9!xPłQcPD.ScD.I Sc>Se>9A8?N 8 Ht Hl! *HXjHP8!< *H<X!\ *H(xa|!~ *jH a?@L1HP:=`= ; Ϩka;? ,AA,AH@,A,AH,! |t,*A(A,ApHt,:@l8 H8`HO*x |{x!a9)!j{8a88K,{A;H;H 9)!;H!i, Al8 a ;H\;H!; 9)|t,=!@4,Ad;;;|.8aHI,@08a88K,A;H;|.;,@,@?\?,?A<`Ԩ| A$<8l8`8HՀԨ}\`\8aHL|fxx8`8L1HHP!8 9)|t,=!@,8a 8K,{A ;H;,A@?d?,A= ihԨ| A(<88`8H Ԩ= ~d h= d8`8L1HE= iH=`,AxH,@= 8 |!Aaăȃ8!N !|$|}x|#x8` HL=  Ӱ|xӰxL1HL,AxL1HLݐH$|8! N !|!DAHaLPTX\d||x|#xH;@|}x8xH;`|~y@<xHK|fx<x88`L1H= 8 $HHHH,xH,A88xH{ ZxH|y@xH,A 9)> (p}x|@P|p x=`= $ 8kԜ |xH?0;0}k0=  ,A\=  Ӽ,@L= ; 8|X@@x8H x8L1H? 9)? = Ԝ<`8cH=`+09)+0=  Ӽ,A=  ,A=  =`,?A$@ Ԝ<`8cHE?09)?0?l,A= =`Ip Ԩ| A,<88`8H=  Ԩ=`l p=`l= ԜxH?xH̀0|09` = iԜ#| @A8 HHi8 =`+09)+0=@Cxdx88H5 |~x?ԜHI?xHE0|09` }Ԝ#| @A8 HaHi8 =`+09)+0=  Ӭ,AHI=  Ӱ,AH= iԜ9` #| @A8 HHi8 =`+09)+0d|!DAHaLPTX\8!`N !|$|}x8`HG!=  i$|8! N !| = |~x,A(88H9,Ad,@=  ,@@,.@4=  ,A,,A = .T|HA 8`H8`| 8!N !|$?Ӭ;|@D?;=Ӥ|H.H}Ӥ}Zkp,AHӬ;|;A=@9 =`8*Ӭ Ӹ$|8! N !0|!Aaēȓ̐|? x?= ~Ӭ Ө|{x| |#x|+x?@$|Z?Ө}ӤT80HEU~Ӭ}Ӥ=@ ӤUk809}k p>Ӭ,U)80}) t~Ӭ@&Uk80}k x? @=  ,A(,/A,@ ~xHHcxH|}xxH;W8!}!n8T6xxexH'=  ,A@= Ӭ=` ӤT80|88`xH,@ӬӤH= Ӭ=` ӤT80|88`xH],@HHxHC |fx<x88`L1H= 88` $8HD=`+Ӭ=@ ӤU)80})Bi8Uk&`| @H @$=  Ӽ,A=  ,A?Ӭ?ӤT80x|"H=ӬӤU)80})pxH|~y&ADH A=  Ӽ,@$=  ,@=  ,A;8`xxHu,@= iӬ=@ ӤUk80}kB8 xH A=  Ӽ,AtT&,@@d=  ,@,8ӬӤkxU)80})xpip,&xӬӤTc80|c8cx8hL1HiH8=<(ӬGӤU)80})R thӬ8Uk80}kR x A xH= iӬ=@ ӤUk80}kB+8U)&`| @ 8Hp= iӬ=@ ӤUk80}kB T&,@@DH A=  ,@ 8H(= iӬ=@ ӤUk80}kB8H8 |=`+Ӭ=@ ӤU)80})HL=`xx8x8H-H=` Ӹ|@4,|&T/|| |`8U)~|Kx ӸH ;;cxL1H@=hӬ= IӤUk80|kQ.(Ӭxx9)(Ӭa | +Kk샋}a[xN !|$|? x|~x9!U=6|#xx8H)|cy@@HxH?|fx<x88`L1H= 8 $H8|xL1H?|pa |}a[xN !`||#y||x@ 8`Hp,/Ax8/H|y@xL1H?uH@P;xH|}8cH>|xxxH|xHx|8!N !|}& !Aa $(,4|yx|#xH>Ӭ;7AW80-|x?@xZӤ}R+|9)( AA|P.HQ,A:Ӥ|H.}?J,/A,@pKH@H|cH=с:Ӥ|}x|H.$xH!a:Ӥx}?JpKxHizӤ};Z |,@ ||X.HM7;{;;@<=  Ӭ;|;@P?`;;;Ӥ|J|,A|J;;8L1HӬ;|;A= Ӭ4| !Aa $(,} 8!0N !|$|}x8/H%80c|c|x8x=, .@0|t,A,.@,@ 8`H8`$|8! N !|=  (Ah=`9kT:}K.= 9)}JJ}IN =  ,A(A8,AXH|=  ,A= 8=H= 8=4H=  ,A= 8>0H= 8=H=  ,A= 8>H= 8>HHM=  ,A= 8@H= 8@H=  ,A= 8AHd= 8@HX=  ,A= 8?H<= 8?,H0=  ,A= 8@\H= 8@4HH= =`iӤӬ8Hɀ|8!N !||kx$` `| A|`&TcH8`,@kHՀ|8!N !||kx+``| A|`&TcH8`,@dH|8!N !||kx$X X| A|`&TcH8`,@kH-|8!N !||kx+XX| A|`&TcH8`,@dHـ|8!N !||kx$P P| A|`&TcH8`,@kH|8!N !||kx+PP| A|`&TcH8`,@dH1|8!N !||kx 8D8|PA@@+<<| @A,| @8`A@ $< <| @@8`H8`,@kH|8!N !||kx8K8|PA@@$< <| @A,| @8`A@ +<<| @@8`H8`,@dH)|8!N !|cH|8!N !|d|xH}|8!N !|cH|8!N !|d|xH|8!N !|$|x|#x8.H5|}x~8.H%|dy,O|&T ?T}+9O@,@ 8`H,@ 8`H xH|cy@H݀$|8! N !|$|~x|#x8.H|}x~8.Hu|dy,O|&T ?T}+9O@,@ 8`H,@ 8`H xHA|cy@H-$|8! N !|!Aa $(,4=  Ӽ(A<=`9k T:}K.= 9) }JJ}IN ?Ӭ;|@?@;` ?;zӤ|cH ŀ|Ԝ#| @A8 HAH8 iӬ;|;AHHHHHHHHyH?@Ӭ;|@p? ;` ??;yӤ|cH}|Ԝ#| @A8 HH8 i=09)=0;Ӭ;|A4|!Aa $(,8!0N !| !Aa $(,4|? x|~x~8H;_= )8, ;`A( A, AH`HXHP=  Ԕ,A= ; 4H@_=`kӴ=*9)N| HA8 | @= ; LH = ; X=  \x,AD8888`8H|fx<8dCx8L1HCxH=  ,AP= =`Ԁ~HLӸ8h8H=|fx<x8dxL1HYxHq<x8l8L1H1xHI=  ,@~ L1H'MH8`,A<|ex8tH< 8|xL1HxH=  Ԍ,@d=  ,@~$L1H(H8`,A<|ex8tH<$8|xL1HaxHyT&h `"}7Ih "||KyA<~(,<UhU>} xUi>/8UE>xL1HHH= Ԁ~8<|p8 |X8|x88H|ex<8xL1HxH8H%|yyAHD{8T8!|}!n;W6PDxxxL1Hx|| P8xx&xH:|cyA8 |9 <H=  Ԕ,A ;`H;` ,@`8| x| p |i88H|}xH|cP|e|p<<|e(888ƳxxL1HH88|x|p88HE|fx<8dexxL1HaxHy=  ,A8=  Ӽ,@(= Ԝ<`8cH9=`+09)+0?`ԜCxH?0}:P|J0~<x8H|,@\p,AhԜ<`8cHŁ=09)=0x8~pt8H=  ,A$~tH=  ,A ~Ha |܃ +Kk샋}a[xN !|! A a  $ ( , 4|? x|#x|+x|zx88 x8gxH'|}x(A ;H88T8a|}an9!U>6xgxx88H'q=  ,A@9@| @@4<9?}>PgԬ})J| Z.p@@}Q9J| @AxFx8xHxa |+Kk샋}a[xN !|}&$=  |~x,|3xAHe-Ah=  ,AX=  Ӽ,@H ?8|H@@x8HM <808L1HŁ? 9)? = =`iԜxK=  0;0| 0Ad=  ,AT=  Ӽ,@D? 9)| @@x8H x8L1H5? 9)? =  ,AH%$|} 8! N !| = ;Ϩ,A 8HxH8H8H| 8!N !|DHLT=  |x,A4888`8H|ex<`8cd8L1H9=  ,A@= =`ԀHLӸ88Hm|ex<`8cdxL1Hx8K=  ,A H!T|DHL8!PN !| |xW&,@@H= iԜ9`/#| @A8/HiHi8 =`+09)+08`W&| @H= iԜ9`@#| @A8@HHi8 =`+09)+0W&,@H= iԜ9`|#| @A8|HHi8 =`+09)+08`W&| @H= iԜ9`=#| @A8=HiHi8 =`+09)+08`W&| @`=  ,@PsIAH= iԜ9`*#| @A8*HHi8 =`+09)+0| 8!N !|a $,||x;@$?`9;Ϩ \,A;; H(T&, @?`@ ;H8`| @,,@9;Ϩ d,A ; H`;HX, @ ;HH8`| @ ;H0, `@ ; H i ||p| 8q) |Kx,@$pI0|| Tzq) |Kx,;@TxHQ= |}x,A4|@A|x|`PH=,A,@<`8cϨHU,A 8HW88Ϩ|iH5<`8cϰH)$|a 8! N !|$,@H?}Ԝ>c}$t| @;AT>HH8 7AĀ$|8! N !| =`=  I|p} x, })@P|~xU?'8A= iӸ8Z= 8`88H= ), A~8Tk&`| @,, @`p`I0|9?})x8|KxH@ii@! }(Ii`!|}(y@, A8`| @;x| 8!N !|Aa  !$A(a,048<D= >)8Ӭ| A }?KxH|x=  Ӭ;`|?@? ;yӤ|cKY8|@?@?<8:4|H.}J,AӬ9&|2|K|T:|2x(2@}r}%H.Uj<}J| H@D}iPP|Z<4}'Ji}EY.\4}'R |@}`&Uk/}gQ.8|8 AdӬ;{|;A(x,@8= T>`W780;[x;x;uӤ{|cKuӤ|cKӬ6||H.;@|~xHAxKsԜ9` #| @A8 HHi8 ;Z|;AdD|Aa  !$A(a,048<8!@N !| !$A(a,048<D= >)8Ӭ| A }>KxH|x=  Ӭ;|?@?@;zӤ|cK8|@?`<8;4|H.}J,A|9&|K|I|PT:|2x(2}u}%H.Uj<}J| H@D}iPP|Z<4}'Ji}EY.\4}'R |@}`&Uk/}gQ.8|8 AhӬ;|;A0,@8= W=  Ӭy|k@?;`||@Q@L+|&TG|})x,8|KxAH=  |A8zԜ9` #| @A8 H{Hi8 PyӤ|cK Ӭ|@dzԜ9`,#| @A8,H{yHi8 zԜ9` #| @A8 H{IHi8 Ӭx|A= iԜ#| @A8 H{ H8 9)#4|!Aa $(,8!0N !|a $|~x|#x|@?`?,@\;}?||H@H|Ԝ9` #| @A8 HzQHi8 ;|K|IH<|Ԝ;#9` | @A8 Hz Hi8 x|A`$|a 8! N |#x+}*t, .@ ,AD, A# 8c| x, @| @@ ,/A8/8c,A8c,@8N !|}&!Aa $(,4= i<UU`UV| }kp| P,?`9 8@ 88?@4,@ 8T<|cTc:HIz49 8;|@- ?; W<||4T:;>Y.}i[xW<}>J| AW:H:4}>Ji9|A4x<89@&49} Ji||Y.9J@8x|At4|!Aa $(,} 8!0N !|$|}yA|?t= ,ԠA= =`Ix Ԩ| A,<88`8Hx=  Ԩ=`~t x= =`tԐxL1HweH?|,A= =@iӀ Ԩ| A,<88`8Hx5=@ Ԩ= | Ӏ= =`i|Ԑ?L1Hwӄ,A= =`Iӈ Ԩ| A,<88`8Hw=  Ԩ=`ӄ ӈ= iӄ?L1Hw]ӌ,A= =`IӐ Ԩ| A,<88`8Hwm=  Ԩ=`ӌ Ӑ= iӌ?L1HvӔ,A= =`IӘ Ԩ| A,<8`8`8Hw =  Ԩ=`Ӕ Ә= iӔ?L1HvӜ,A= =`IӠ Ԩ| A,<8$8`8Hv=  Ԩ=`Ӝ Ӡ= iӜHuHxHv!|!Aa $(,4|yx|#xHu;|{x,;@;AX;|.$xexHu,@(|.Hu|A<,@ xH;@;|.;,@,@xHxH8`4|!Aa $(,8!0N !|,|fx|#x@= 8PH = 8h= =`iԠԐL1Ht=|8!N !|$= ||xiԜHs,Al?@,A= ?iDԨ| A,<8ŀ8`8Ht?Ԩ= ~@ D= @x8L1Hu= iԜHt],ApHs?H,?A= iLԨ| A(<8ŀ8`8HtIԨ= }H L= HxxL1Ht$|8! N !|8`K|8!N piA 8rH8-piA 8wH8-pi@A8xN 8-N piA ,xA 8SH8spiA ,xA 8SH8spiM  ,xA8T N 8t N Tc&,`@ 8`bN , @ 8`cN ,@@ 8`dN 8`|@ 8`-N ,@ 8`pN 8`|@ 8`lN 8`|A 8`?N 8`sN !|$|}x|#xKI|8WKuW8KiW58K]xxK$|8! N !|cKu|8!N !|HAa $(!,A0a48<@DT|;y|yx|#x|+x@~8H:|08 :{ A;xp01|)}&JxxL1H4u;|:@ |A8#xDx8L1H3u,@#xDxL1H3H0W(W@~} x9`W)~WL}cKx}SxL1H3m!*o =`C0>@a:RŸr,X(2@ <8ŜcxL2BHpHn aɁ>@:RX(ɲ:2:!49 })I 2L#|&TG|H9@h$= 9)Ő| <|t8Ťcxx L2BHpAcxHoY(@ <8ŬxcxL2BHpcxHL~3~x~p#xDxxxL1H8]T~T`8}ixT8} }i|b`};| P#xDxxxL1H2ux||~x|#x@p|PTH|@ ;H;,A~p~ʳx)x| @A| @ | @A:7xxx~ݳx~xxxL1H7T~T`8}ixT8} }i} ||B@}:| P| p`ZxxxxL1H1Ux||~x|#x@p|PTH ||@ 9`H9`}x[x:~ʳx)x| @9`A| @ | @A9` 8|}r9@ = 9)Ő| (Al,@ ( A\V|,} &U)7~J, @3:(A(,@ ( A809 .3: x9  pW}P}kI( A, @( @8,AHt,@l3~ʳx~p|H9`@Rx"K}rY 8|}r9A0= 89)Ő}i9@0sS8.;;8xx8 L1H5m808xx8 L1H/|~x|#xy@~cxT|Aa $(!,A0a48<@DH8!PN !|$|y|#x@<<`8cHj|y@(<`8cHj,A 8H8H<8xK=|cyA= 9)T`:}i.~HX<x8 888 HE|cy@8! ,A 8`H  ,@ 8`H 8`$|8! N !|$|#x|x|+xK1}(1||H9Ah,A$(A,Ax,AHDHj?P,A= =`IT Ԩ| A,<8 8`8Hj=  Ԩ=`}P T= <P8,H?X,A= =`I\ Ԩ| A,<8 8`8Hj!=  Ԩ=`}X \= <X8|H@xHgM,A,@= l,A4>|H@xHg ,AT,@xHh|}x8` L1H Q|xxL1H ,@=  ll8`H = ihhx$|8! N !|$= p|}x,A|AL,@xHfq|~x8` L1H,|xA ~L1HݐHH=  pp$|8! N !|$= p|~x,A4>|H@xHeq,A,@= t,A4>|H@xHe1,AT,@xHd|}x8` L1Hu|xxL1H,@=  tt8`H = ippx$|8! N !|$|}x8`$Hy|x@ = 84x8$L1He)x$|8! N |cy@ = 8i4cN |cy@ = 8i4N |cyT>TA8 }CH= 8 9)4}@J*T}#^0TcT|x|X0})x*N !|;y|lx|3x@ = ;4,A(A,AH,AH,O@,@H,A|t,#A,~A8`8@|8,@H|A|}88(sA(=`9kT:}K.= 9)}JJ}IN U 9=| P.U |^0p@| @@} 8c8K;',H;",H ,;/8`A| @@8`8@ H|A(}8A|=`9kȰT:}K.= 9)Ȱ}JJ}IN ,'@P| @@} 8c| @@ 8\| 8c| @@ } H8(UAx=`9kT:}K.= 9)}JJ}IN 9aH9bH9fH9nH9rH9tH9vH,AHx,AHl= IԬ}hB| R.p@T| @@ 8\| 8c| @@U Ѿ9)0},8c| @@U 9)0},8cU`0H4U 9=| P.U |^0pA| @@ 8\| 8c| @@} 8c8@`|8,@\A| @@8c| @@ 8| 8! N !|Aa $?x|~x|@|#x|+xAT;,W8@T|AH`]?}|Hx|ix|PT8|i=|T8HaIx?<|W8}~JH.xxex8GxK|@A@<|;xI.xH<||}x}>JxexGx8Kx$|Aa 8! N !|<84K|8!N !||dx8`Kŀ|8!N !|@DHLT|#x||x<848a8$L1H_qx8a8Kx8`8K)T|@DHL8!PN !|8:Ku|8!N !| |xH^4c@ 9 |,/@}?4cA| 8!N !|=  Ԉ,A |N!= <iԀ808L1H_|8!N !| H]|y@Kx| 8!N !| H^ |y@K]x| 8!N !`||}xH]8cKmxH^}|8!N } !|#| @#8`N 8`N !|$,|}x|#x;A,xxK,A 8`H,;@8`$|8! N !|Aa $(,4|+x($|{x|#x|3x|;x@$<`<<8cP8x8ʄ8vH[p}x|@P|p9!})x8|KxH[|}x8xcxx8H\1a ,@?| @ 8`H,A| |t,AlxH[%;,;@ 8`HXx80H[,A(? |t,BA,D@ ;;+9)} t(5A=`9kʐT:}K.= 9)ʐ}JJ}IN 8a 8KH8a 8KH8`Hx8a 8Hx8a 8Hpx8a 8H`x8a 8HPx8a 8H@x8a 8H08a 8KaH$x8a 8Hx8a 8Ke,A 8`H| 8`4|Aa $(,8!0N } !|#| @#8`N 8`N !|$,|}x|#x;A,xxK,A 8`H,;@8`$|8! N !|Aa $(,4|+x($|x|#x|3x|;x@$<`<<8cp8˘8ˤ8vHX݉?8})ti* ! }HQp} x}k@P}kp|Xxi) ! }(IX8}(Sy}~xxA, |th ! }(Ih !||Ky@܈ ,-ADHX|}x8exxx8HYa ,@>| @ 8`H,A| |t,AlxHW;,;@ 8`HXx80HW,A(> |t,BA,D@ ;;~+9)} t(5A=`9k˰T:}K.= 9)˰}JJ}IN 8a 8KH8a 8KyH8`Hx8a 8Hx8a 8Hpx8a 8H`x8a 8HPx8a 8H@x8a 8H08a 8KH$x8a 8Hx8a 8K,A 8`H| 8`4|Aa $(,8!0N !| |#xHWa|cyA |dxx8,L1HVxH8`| 8!N !| |#xHU|cyA |dxx8,L1HVxH8`| 8!N !|+x,8AT<<}(fԬU >}*R| Z.pA'ԘUK:| H.| xH} Cx|+x,}#)8@8! N !|+x,8AT<<}(fԬU >}*R| Z.pA'ԤUK:| H.| xH} Cx|+x,}#)8@8! N !pp|pOs8=@QL|&T?|0P} &U)aJ8|8P}P}GP|p|p}p}Jp}@PP} @PUI}*R| Z.pA'ԤUK:| H.H}Cx;|@AH,OA 7,9 l;;A fxH8= Qa)}(H} p}).p|HP|;xU@<|RT (4|J|R|@PT|PPH,OA ,@ = ;hK,EA ,;;A fxH8 HH,EA l,;;A fxH8 j00|| ~8q)_|KxT}'=@L|&T?|})x|8| KxxaJ| PTT 8})})})XP| y9)0<@A 8-,-A|8,_|P} 0P@0} Kx,9)@X9` } Kx,|9)AH<} Kx,*9)@9`0} Kx,|9)AA 8-8PP|p8|y|@,@@,A @,,0@x80H x8 xHK,A xH d,A xH pxH |,@ = ;tK,EA ,W;;A fxH8}GSxKT,EA x,;;A fxH8~xK(,EA L,W;;A fxH8}GSxK,EA ,;;A fxH8~xK,EA ,;;A fxH878K,EA ,;;A fxH8Kp,EA ,;;A fxH878K@;})pH89)J|@,@h,A@,,0@x80H x8 xHIA8 HH:,A ::;})pH89)J|@,@,A@,,0@x80H x8 xHH,WA,, <8̀|&T?|"x8KH\,A,, <8̀|&T?|"x8KH,, <8̀|&T?|"x8L1HG;HP= ;͈K= ;͐K,EA,;;A fxH8K;x~x8,L1HGY;xHFTep}'HPU <|JT8|JT 6|@8}29m}\@P= I9J~a)$}*H})R}Kp})p}+HPU 8| P}@PP} @P8hHp9;@`<Q`||p|.p}gXPU`<|ZT (4|J|Z|@(|>p}'HPU <|JT8|JT 6|@;}@P}\@P= I9J~a)$}*H})R}Kp})p}+HPU 8| P}@PP} @P5A }Cx8|t, GA, g@,|pA fxH8=@QaJ|P|.p|PT <}kUi(4}kJ}k}k(P9kd}KP}ip}J.p|PPT<|:T (4|J|:|XPK,A fxH8|+xK,A fxH8= Ia)$}#H})})p|`p} HP8KH,EAl,;;A fxH8W=I9Ja$| @|R}Ip|p| PT 8}`XP7}KPP}*HP9)} @}J}p})p|@PK,EA,;;A fxH8K,OA,;;A fxH878lKt,;;A fxH8=@QaJ}(P} p}).p}+HPU <|JT (4|Z|J}@P9d}HP} p}J.p|PPT<|:T (4|J|:|@PK,,A ::@ = :)ͨ~#xHAY|xP|p8||@,@,A@,,0@x80H x8 xHA,Ax~$xxKH4,Ax~$xxK!Hx~$xxL1H@xH ,A;xx~x8,L1H@;xH@e,a@xx8K,AĀax!|A})Zx|:x|Kx}J2x|Sxa}:x!A|Cx}k*x|[x})Rx|Ky@d;HxxK,ALxxK|zy@|;})pH89)J|@,@d,;;A<@,,0@x80H x8 xH@58-;xZHt;})pH89)J|@,@,;;A<@,,0@x80H x8 xH?8+;x<`|,||.pIpIPA fxH8<`||Ip|.p| PT <}kT 6} HPUj(4}kRU):})P}k|JK܌,%;;A~Ix ;,%@P|p8|y|@,@,A@,,0@x80H x8 xH>,A|PxxKH4,A|PxxK H|PxxL1H=yx,|x@}3})I})1||H9A 8#x4|!Aa !Aa $(,8!0N |(@ 8`N @ 8`N |0@AA 8`N 8`N !|$H|jx|ipm@=C0^ɡ }i[x^(~Ɋ! 2!(- :$|8! N !|Aa $H|+y|x|3x|#x@|@@$;@cZ|@|3xA(@ 9@H(9@H <`|@A 9@H9@~|T0| H|R ,A  080}?x80}80U >|S}`Q|xU>|)|kPTiW>}#x|8@@$|cB|@@8A|8@@ 8|cB|gP|S}`Q| x|)| PT W>} x|8@@ |B|@@9JA|8@@9JT| SxH,@ 8}S;@cZ|@A(@ 9@H(9@H <`|@A 9@H9@~} T0| H|R ,@P8U >H 404080|Kx80}80U >|c}`a|xU>|!}+0PU)W>})x| 8@}cx@$})B| @@8A| 8@@ 8})B}'HP| S}`Q| x|!}+HPU)W>})x| 8@@$})B| @@9JA| 8@@ 9J})BT|SxHP|c}`a|xU>|)|kPTiW>}#x|8@@$|cB|@@8A|8@@ 8|cB|gP|c}`a| x|)| PT W>} x|8@@ |B|@@9JA|8@@9JT| SxH| @@ 9H;@cZ| @A( @ 8H(8H <`| @A 8H8~}I<0| H|: ,@,|P||}(9 })I|KyA|9H\ 40} 4040}J8080|[x}JKx80}80UG>|;}`9| xUD>|!}+0PU)W>})x| (@@$})R| P@9A| (@@ 9})R}%HP| ;}`9|x|!|HPTɀW>}&x|(@@$|R|P@8A|(@@ |R8U|0P| ;xU>U >|QU>}kAU>}IQ})AT>}k}kR}JX}JQ}JS< |PxUh})P8})xUk>T>| Z}:|0@A$}(})I})|2x#@||H9A98}cx|#xcxx$|Aa 8! N !| !$A(a,048<DH|+y;!|3x|#x|}x@H| @@;c| @|3xA( @ 9@H(9@H <`| @A 9@H9@~|T0| H|R ,A  0 0}=x} 0 0Hx, @ 8};c| @A( @ 9@H(9@H <`| @A 9@H9@~}T0| H|R ,@PU>H d 00 0|Kx} 0 0U>|;} 9U>}@)}i0PUkW>}kx| P@|;x@}kb| `@A| P@@}kb}jXP| C} A}@)| XPT W>}`x|P@@|b|`@A|P@@|bP|;}`9U>}1}KPUIW>}*x| @@@}Jb| `@A| @@@}Jb}HPP| ;} 9}1| PPT W>}`x|@@@|b|`@A|@@@|bP,A$0;@Ht|@@|#xxAa H`;c|@A(@ 9@H(9@H <`|@A 9@H9@~T0| H|R ,@T|||},9 })I|KyA }lP| ||}?PHP}|[x,AxxH d }000 0 0}=x}_[x} 0 0W>|C}`A| xW>|)}+0PU)W>})x| 8@@$})| @9JA| 8@@ 9J})}'HP| C}`A|x|)|HPTɀW>}&x|8@@$||@9A|8@@ 9||0PUJ|3x}JCxUK>U>|IU>UJ>}kA}*I}JAT>}k}kJ})X})I})K< Uh|Hx}JH8}JxUk>T>}JZ}:| @A$}Ix# }8I|||}89A }l@P| @||}?PP}@HP}h[x,A4}hP}*0P| ||HP0}k$0}[[x$0Yya D| !$A(a,048<8!@N !| =  ;,A|N!,@| 8!N !||8!N N !|KKj}K}|8!N !|Ki|8!N S xl`file-typeclassifynoneexormicdbdsopilndifinoecrclc01;3201;3301;353301;3601;340m[abdDԔhikpndGPqHr@s8w,ABlF`FHILNQR  T (,x lblock-sizecolorversionhelptimetabsizesortshow-control-charsformatrecursivequoting-stylequote-nameliteraldereferenceindicator-styleignoresiignore-backupsalmost-allwidthsizereversehide-control-charsno-groupnumeric-uid-gidkilobytesinodehuman-readablefull-timedireddirectoryescapeall0(  single-columnverticalacrosshorizontalcommaslongverbosex@lextensionstatusctimeuseaccessatime($x if-ttyttyautoneverforceyesalways %d fileutils/usr/share/locale%s (%s) %s dirvdirlsGNU fileutils4.0.//DIRED////SUBDIRED////DIRED-OPTIONS// --quoting-style=%s QUOTING_STYLELS_BLOCK_SIZECOLUMNSignoring invalid width in environment variable COLUMNS: %sPOSIXLY_CORRECTTABSIZEignoring invalid tab size in environment variable TABSIZE: %sabcdefghiklmnopqrstuvw:xABCDFGHI:LNQRST:UX1invalid line width: %s*~.*~invalid tab size: %ssort typetime typeformat typecolorization criterionindicator stylequoting style*=@|ttttttttttp\pqr Try `%s --help' for more information. Usage: %s [OPTION]... [FILE]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuSUX nor --sort. -a, --all do not hide entries starting with . -A, --almost-all do not list implied . and .. -b, --escape print octal escapes for nongraphic characters --block-size=SIZE use SIZE-byte blocks -B, --ignore-backups do not list implied entries ending with ~ -c sort by change time; with -l: show ctime -C list entries by columns --color[=WHEN] control whether color is used to distinguish file types. WHEN may be `never', `always', or `auto' -d, --directory list directory entries instead of contents -D, --dired generate output designed for Emacs' dired mode -f do not sort, enable -aU, disable -lst -F, --classify append indicator (one of */=@|) to entries --format=WORD across -x, commas -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C --full-time list both full date and full time -g (ignored) -G, --no-group inhibit display of group information -h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G) -H, --si likewise, but use powers of 1000 not 1024 --indicator-style=WORD append indicator with style WORD to entry names: none (default), classify (-F), file-type (-p) -i, --inode print index number of each file -I, --ignore=PATTERN do not list implied entries matching shell PATTERN -k, --kilobytes like --block-size=1024 -l use a long listing format -L, --dereference list entries pointed to by symbolic links -m fill width with a comma separated list of entries -n, --numeric-uid-gid list numeric UIDs and GIDs instead of names -N, --literal print raw entry names (don't treat e.g. control characters specially) -o use long listing format without group info -p, --file-type append indicator (one of /=@|) to entries -q, --hide-control-chars print ? instead of non graphic characters --show-control-chars show non graphic characters as-is (default) -Q, --quote-name enclose entry names in double quotes --quoting-style=WORD use quoting style WORD for entry names: literal, shell, shell-always, c, escape -r, --reverse reverse order while sorting -R, --recursive list subdirectories recursively -s, --size print size of each file, in blocks -S sort by file size --sort=WORD extension -X, none -U, size -S, time -t, version -v status -c, time -t, atime -u, access -u, use -u --time=WORD show time as WORD instead of modification time: atime, access, use, ctime or status; use specified time as sort key if --sort=time -t sort by modification time -T, --tabsize=COLS assume tab stops at each COLS instead of 8 -u sort by last access time; with -l: show atime -U do not sort; list entries in directory order -v sort by version -w, --width=COLS assume screen width instead of current value -x list entries by lines instead of by columns -X sort alphabetically by entry extension -1 list one file per line --help display this help and exit --version output version information and exit By default, color is not used to distinguish types of files. That is equivalent to using --color=none. Using the --color option without the optional WHEN argument is equivalent to using --color=always. With --color=auto, color codes are output only if standard output is connected to a terminal (tty). Report bugs to .%s: invalid %s `%s' %s: ambiguous %s `%s' write errorkMGTPEZY%.0f%.1f%c%.0f%cC0?sihuman-readableBLOCK_SIZEPOSIXLY_CORRECTeEgGkKmMpPtTyYzZ0block sizeinvalid %s `%s'invalid character following %s `%s'%s `%s' larger than maximum long intƴưƨescapecshell-alwaysshellliteral0000000000000000000$00000000000000000000000000000000000000000000000000000000Memory exhausted0 <= strtol_base && strtol_base <= 36xstrtol.cxstrtolxxx,xxxxxLxx\xxxlxxxxxxxxxxxxxxxxxx4 (444 80808080808<8<8<000 /lib/ld.so.1GNU%1&#)%.  (0 +* "/$ ,-!'-" ;t!:X",:39:;$F9P:DW( _:("d9u:"|9;< :H:L; h:|:l:":9:TX": ;T:";";l;,";4":t&;\.:@5: ?9F;dt"L;HW: "h:"m;D r:h":\-p ::;$":d";L"__gmon_start__libc.so.6strcpytextdomainprintfstdoutgetopt_long__ctype_bgetenvdirnameputs_nl_msg_cat_cntrmallocoptarg__dcgettext__xstat64renamestrrchrfprintf__stpcpy__deregister_frame_infooptindstdinferrorstrncmpstrncpyunlinkreaddir64_IO_getcsymlinkopendirstrcmpsprintffclosesetlocalestderrerror__lxstat64__errno_locationlinkexitbindtextdomainrpmatch_IO_stdin_used__libc_start_mainstrlenclosedir__register_frame_infofreeGLIBC_2.1GLIBC_2.0 ii ii:L:T:\*:d/:l:t:|:::"::&: : ::':):-::,:::!;%; ;;;$.;,;4;<;D(;L0;T;\ ;d$;l;t99#9 999 :|) xT!68!|=-`H0l!| =  84,@l= i80 ,A0??809)?80 |N!80 ,@= 9):, A<`8c88H/= 8 84| 8!N !||8!N !|= 9):d, A<`<8c888<H/|8!N !||8!N !|a쓁||x|#xL1H |xcxL1H!}(|}x!|}(yAl?9,A= =`I9 9| A,<8.8`8H/=  9=`~9 9= 98`8L1H/8`x8H.=,A$H.9<8.8`xL1H.8`x8xH.,A$H.<8.8`xL1H.xH.xH.}!x8`| @L! || @}) _  9? Q iPނ 9? PD.P;`/ iQ^>P|B>N 8 HtlHl H? J ,HXHP h? l ,H< ? ,H( ?  ,lH 8lDxH)Ux8`x8xH),&A H)i,A<8.Ht= i9 }@&UJ2|Y|P9LA=  9,A= 9);,, @= 9);,, A8`$x8H(,@ȁ?x| @? || @?| @,A#xxK,Ax?9,A= =`I9 9| A,<8/8`8H(=  9=`~9 9= 9&xx8`8L1H(HP A8`x8xH(e,@hT&,@@l?9,A= =`I9 9| A,<8/ 8`8H(I=  9=`~9 9= 9x8`8H=  9,A?`9 = ,9A= ?i9$9| A,<8/@8`8H'?9= {9 9$= =`9 9xxL1H&Hm,@8`H =  9,@|=  9,@|?9(,A= =`I9, 9| A,<8/T8`8H'%=  9=`~9( 9,= 9(x8`8H=  9,A@= 9xH |}y@h?`90?,A= i949| A(<8.8`8H&9= {90 94= 908`8L1H&xH%8cTc8!|c}!n8T6~xxH&uxH&Ex~xH%9,AH%,A`?`98?,A= i9<9| A(<8/d8`8H%Հ9= {98 9<= 98xH@:HxH$,AH%,A|?`9@?,A= i9D9| A(<8/x8`8H%Q9= {9@ 9D= 9@xHH$,A<8.H=  9,Ap?9H?,A= i9L9| A(<8/8`8H$ɀ9= }9H 9L= =`i9H9x&xL1H$Q=  9#xx|L1N!,AH#?`9P,?A= i9T9| A(<8/8`8H$19= {9P 9T= =`9P9x(x8`xL1H$!,A~xxH",AxH#A?9X,A= =`I9\ 9| A,<8/8`8H#=  9=`}9X 9\= 9Xxx8`L1H#8`a |؂܃ +Kk샋}a[xN !|$|}yA|?9`= ,9A= =`I9d 9| A,<808`8H"=  9=`~9` 9d= =`9`9xL1H!H?9h,A= =@i9l 9| A,<80(8`8H"U=@ 9= 9h 9l= 9=`k9h|#xL1H!?9p,A= =`I9t 9| A,<80|8`8H!=  9=`9p 9t= i9p?L1H!y9x,A= =`I9| 9| A,<848`8H!=  9=`9x 9|= i9x?L1H!9,A= =`I9 9| A,<858`8H!)=  9=`9 9= i9H yHixH!!|Ȓ̓Г!ԓAؓaܓ|? x|#x= |yx< 986 8`H?<8}6$860H ;8}6$H 1<`8c6DH|}yA = 9<`8c6\H;@<==@=`= |}x99999H,dAxA8,SAA,A,FAXH,VA,bA L M N H9? HQSlIiPނS 89? 8PD.PD.;@/IiS>S>N 8HtCHl ؉? ڰ#HXHP ? #H< ? #H( 8? < >#cH 8cxHHx~x$xK]|zxHW):})xL1HY,@l?9,A= =`I9 9| A,<868`8H=  9=`~9 9= 98`8L1H=  :|@4?:xT:|{.K륁>:Z9)| >:A=  9,AH2|vH]!| !$A(a,048<D|{x|#xH= I9|}xCxH8c!#})I} H|iH8T>}#x~8wHM||yA xdxH,AxH9 8.!98!:8}+Kxa= 87F7F9@8.{xAyzA|x}ISxX!\=`PAA!!<P 7TQ^= ePD.9)7PA})P>})aA9!Q iP9!PD.P};. iQ_>PB>N 8 Ht Hl! ,HXHPX!\ ,H<! ,H(a! ,lH |{xHj2}u2}5}uKyA$8<87HxL1HxdxxHDxx8~H1xD| !$A(a,048<8!@N !|Aa $|{x|#xH9||yAcxH;|}x;]HT,AH;xH|@A4xcxxHy|L#|&TG||cx8|xxH|cy@xH,@ xH8`$|Aa 8! N !|$|#x|+xH;,@|,.@x}= ,~@h8}~|}it9)( }j[xA0}@tDW8}Kt})9k})( });@, ~@,A;x$|8! N !| |yA,@ 8`HD<87pxH|ey@<`8c7xHi8`HY= 9)7T:|i.| 8!N |hx,M (9h})ti)/}'p}h[x|JxH|8P|p}kx, |`8|[x@N !|$= ||xi9H,Al?9,A= ?i9Ԁ9| A,<878`8Hm?9= ~9А 9= 9x8L1Hi= i9H,ApH?9؃,?A= i9܀9| A(<878`8H9= }9ؐ 9= 9xxL1H$|8! N !|8`K|8!N !|$|x8/H)|cy@$= ;7;H$,/@8c|@A}?P;8}H|~y@ 8`H xxxH8|x$|8! N !|||dx8`8H;,@T&h@!?x||8!N !| |xH4c@ 9 |,/@}?4cA| 8!N !p|;;H@, AL8(}@$,@$= I9}c| R.p @ |~;= i9H,@8|xHhc!|h|8!N !`||#x|+xK5|~xH|xxH|(A|~xHiH08||| 8U)<|Kx}8 |8!N !|!Aa $(,4|yx|#xHE;|{x,;@;AX;|.$xexH,@(|.H|A<,@ xH;@;|.;,@,@xHxH8`4|!Aa $(,8!0N !|,|fx|#x@= 88H = 88= =`i9쀫9L1H |8!N !| =  8;8,A|N!,@| 8!N !||8!N N !|KKK}|8!N !|K5|8!N D--<.b.F.n.f.|i.tS.hs.`v.PV.H9.@9versionhelpversion-controlverbosesymbolicsuffixinteractiveforceno-dereferencedirectorybackupvirtual memory exhausted%s%s: hard link not allowed for directory/`%s' and `%s' are the same file%s: cannot overwrite directory%s: replace `%s'? %s: File existscannot backup `%s'cannot remove `%s'create %s %s to %s cannot create %s `%s' to `%s'cannot un-backup `%s' (Try `%s --help' for more information. Usage: %s [OPTION]... TARGET [LINK_NAME] or: %s [OPTION]... TARGET... DIRECTORY Create a link to the specified TARGET with optional LINK_NAME. If there is more than one TARGET, the last argument must be a directory; create links in DIRECTORY to each TARGET. Create hard links by default, symbolic links with --symbolic. When creating hard links, each TARGET must exist. -b, --backup make a backup of each existing destination file -d, -F, --directory hard link directories (super-user only) -f, --force remove existing destination files -n, --no-dereference treat destination that is a symlink to a directory as if it were a normal file -i, --interactive prompt whether to remove destinations -s, --symbolic make symbolic links instead of hard links -S, --suffix=SUFFIX override the usual backup suffix -v, --verbose print name of each file before linking -V, --version-control=WORD override the usual version control --help display this help and exit --version output version information and exit The backup suffix is ~, unless set with SIMPLE_BACKUP_SUFFIX. The version control may be set with VERSION_CONTROL, values are: t, numbered make numbered backups nil, existing numbered if numbered backups exist, simple otherwise never, simple always make simple backups Report bugs to .fileutils/usr/share/localeSIMPLE_BACKUP_SUFFIXVERSION_CONTROLbdfinsvFS:V:ln (%s) %s GNU fileutils4.0missing file argumentsymbolic linkhard link.when making multiple links, last argument must be a directory@LThp~..~%d~`lt777777numberedtexistingnilsimpleneverversion control typewrite error.%s: invalid %s `%s' %s: ambiguous %s `%s' 8 - -<P  :<< o ooN!8<7@GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release).symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.plt.rela.sbss.text.init.fini.rodata.sdata2.data.eh_frame.dynamic.ctors.dtors.got.sdata.sbss.plt.bss.comment #00 1PP`7 ?GobTo  0c<< m  T x X X"~--(-<-< -`-` 8080808088888<8<8888888899$:9<9<,99=ELF44 (444 00000V8L}}}000 /lib/ld.so.1GNU=X1H[ElYj|y"w`d^FaXaDs%Ckgn~fVLj Wpa7{q,otkyC*07j@0 i[R9MS)>/(6+8 iv\g_T.}M-{M$p2q= LK'jW s5Z bIg@%=J!9hw) Kz"?jrid x/`cHUu rz9mkH?A+[0>tPoV7V;PsU#&]n/}|6Qv-.;vu}+0XJVeP*dr37}~oLRpZQD)]EzimhnQ(c%V1Iuq>4\ _Sw6I:.M$^Q_]9f ,0vZ '5PeO (F6YcI?uxO R1R2w7_'1 ]?l9G<2h!4!^ E`%BOW#-)yx#IG!UW3GQc>b4Az[D@x)!)s;y2y$5.F* P~fs{J,Tg`Krp~A"EDgzT%>_E#]  abD='!DY-WN: GES , : }Yg\f 3lNFtnI0^ X"N (e\wh@%$w'o2^< Ash`Uau&5;8;8> "46Zc'cHz*mm8C/A|#t{v/KJN_&*<Y`8UV1LfFpHub^:A .6:L-qOh].P?3Rvrd1,5O=pk\e TBr*+ WkdlxZS5{n(e /?~3t#&o7mFM@b Tj<+ {tRY|JXoU=QfT~liq&43SBO 8[4&C\BKXNe"9By|<xLCmGJB KC+qSMH($a|dnliG-k@bN[;,}Z$<2: " })~?  E  KVP^ pf\owzx `Hd(P0X"$""""(28@""h<"0`"7PDC4LPS "[ hr y"X,8@"h""@"x("""XX" ,"@ p`"H #"*="DT cHHm0tw"h "x""h,X "!"0$X""" 0X"'`"."3 8;p CK"R"\Xt"g <4 o"yPhH"8"@ (""p P"""("(" \8P!"%t",6pP?8"K p      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~t T\@c0 m,"yH$  H "Hx"pDX "x h"t!  `@$ +HP"3H:"@"I"OP"U"\ fv""I4 | h""!00D}l A4+  ~#0 3C>l WhXD =T4 l8 w8d  p(< (,T <l ,D8T =Y WLp( lt 2   *X ,  'h  9@H L YtL wHTx( $0 ?x 0 U f  $L ;p( HH VXH e , xh  {  Td  7t0 =   \  8 t ( <n$( R< \X o   p< 6H C4    `\ ĸ #L, 6  AP V0 lH  0 ը r` X P 4 4   % BLt, XH o1, w 5   \8  ߌ BH D` X \ H H / B^ Wl b }n -, hD   +8 8 |f0l=TL LY|<4 ,x   Y( a \    ,l, @$I~`4t l<( L ݘx x \ ֈ0 .p  ذ  ) FH S(x \~la,< yy4 8D  X @ ~~$@ ul( =1P  @K ZTp |qp(  ( HP r< bX| ;<X ~  /P @t$ V^X lHX l HD( L S , y ~ ehL P -4 ;8 H d|< }8h  ,`  8?Lt  8 j` );L U`$ g> \s|$t$P A,L ( $. 5F ZP gX y<  0 DT t 8 Hp<D 2`l F\ H i}Bl @ $| hx =   #- Lxax y| ; } xd  ` հH     &H3 A8 Rm( _H` pdx w  T8 kx % GtDHl$ P5@ p ` 2< B RuX `@x z:|` (|, lD@"   | 8 )( 9 FyP b=j1  uL JP ,  , 8   Dx8 @T)* ? QJT _< mP0 $N , 1Z ( H .lAyPP P" g]$ u ?$h (0 T t8 p (d D/ ,"( =P\ LX b`< v ,  o h C@ vpd T, 0@ /L^? g |L8 \ &@ ^x $ 0! <$ /T @B K~W@ m\\$ {,X| H     ( @   /@ MH ^t kL yT H \ D 4 $, ! !4!5 !DP !UL !je| !yE!k\ !$ !L ! !@H !l!!"¤L " "1 "6 0 "O<"`EX "jx"{W@L "< ""t\$ "8" "P@ #(( #\ #)w0h #1#G #UӰ #fJ  #q #68 # #˰p #0| #L #4#@ #@#$S $tH $3i $@4$P~$b $o $|$p $ $tD $! $L$P( %%(%<t %Clx %N 4 %`%=(\%\ %% %P %D( %^  % % %E &\  &K<\ &"0 &= &RD&^ &q@&<&? &~&&Ј & , &,&{ &T ' x( '$ ':\` 'L'f'|GTP 'ִD '*t '''Mpx 'D` ( <(%( (1X4 (=8 (KPP (^_ (k, (w|D ( x ( (~p< ((ؠ (LH, )H$)~)$< )7 0 )J0 )WѬ0 )nhd )P)6 )| ))8 ) )H *, **(*7P *A *R  *_G$ *xoT *FH* */< ** *Ԍ4 *@\ *<T ++ | +5\@ +BܴT +T@ +cp +s4++D+E0+X +L +T,X, mx ,@,,!p\ ,2$ ,Cd ,RH ,g,yb ,F ,|d ,~,b,, ,  ,l ,- -!PD -2OH -9  -O<H -m,-z/ , -hl -L -X- --| -qT  - -.  .#T .1l$ .=i .R\._\.g] .z48 .A .g| .(0 .< .@ .pP .hX .`//4 /$`8 /.h/<`/LϬd /[b /f/~w` /T /T` /pl /| //0 /4$/( 0 40 zTx 07L 0B0ZXh0]8H 0o 0x8 0~0D 0|x 0C\0 001F< 1D, 1-t 16x 1?1L 1^X 1y7X 1 L 1 1Y0 1X 1m( 17X 1L 20 22/$ 2;`| 2E2Q( 2`zD 2r$ 2yH( 27, 2302H\ 2 24 2T4 2T\ 2dP 37@ 3%pT 35d3Ax@ 3ON8\ 3]0 3px 3x 3@d@38 3d 3H 3?3 4` 4Ш| 4,|4?d4U4j4q 4ٌ0 4t 4 4D 4GH4/ 4$P 4< 5l 5(  5+F( 5? 5S78 5c @ 5u  5=5D 5H` 5@P 5S, 5zD 56H@ 6$E6+ d 69H$$6D6TD 6gd 6( 6h6  6sl 6= 66@ 6,7< 77/T 72 L 7?T 7T8x  7b$T 7pah 7Dh 7x8 77?l 7< 7xP 7< 88 8X 8(~838Mxh, 8a 8p888z0 8F 8h$ 8|8h 8n 8l8~9+L 9PT 9x| 9,9@w| 9IQP< 9R9aDh9l#@ 9y 9| 9 9 9N9>9F,9h4D ::YX4 :' :6 :HҨ :^ :l  :x=x : :V :P ::D : :<h :< ;^;-0 ;'( ;9@ ;Kp@ ;d, ;u\L ;( ;< ;Dp ;L@ ;;?|;d ;< < < <#l <9 N >1( >@L( >EVH >[0 >hH >rx >0 >>~>8$ >>|>dT >8x >LT >hl?tt ?!H$ ?5|T ?G` ?X28 ?kv ?}$ ?| ?4X ??@p ?p?< ??xh @  @VD @"x  @*|8 @5(( @C@K@YC( @c @x8 @ @H( @@X @T@ @@<@ \P A@ A A*A9$D AMA]R0 Ad, A{_| A AA*t A  A;X A6  Ah| AdP BH0 B( H B=8 BQ8t Be0!BpB<BB`x B< B B@B B` BCtC C8 C(bh C9  CHxP C^0\ Ctsd4 CP C@ C( CxC C+p CI  C` C$ D < D D)l D9DHHx, D]DtϴX D~@ D l8 D$ D, DLh Dl D8 DR, E X E*D E:$| EGd E\q H Eq0EN, E\ E0E EƠ| ELd E  EI FX F ( F0FO Fh, F}CLF|FmXt F ( Fy| F F4x FF X GG< G+ l G?@(GHX GT$ G`@ Gz4GG4G G^l GH8 G  G$, Gm< H H(p H/HF HSH^ HjHx Ht Hd H H4<l H H;| H@I @I I:`D IH IS Ibp Iu, I4 I. IH I| Il I J L J J*yH JEJU`JpJɜ\ JJQ J  JC$J( Jʄl JVK K  K# ( K/ KC@ KQ Kk K K d K| K KT8 K=0K,X K)  LL L$Dl L.[H LN< L^8Lt4 L( LT L L׈ LHL  LD LM @p MT M*M?MO@ D Mht M{ M M$M= MMK 0 MAM>M N }D N0N)x| N9| NJ` NYH Nd4@ N{dN N0 N N2|( N^d N8 Nu OHHOsT| O(O5OAOX Ohs OxOOl,, OR\ OÄ4 OXO P P P'@ P7T( PD0( P[X0 PnEP Py8 P(P8(P P|L Pr@ PF\Pklx P+< QT Q#x Q3Q;D QJQ`߬$ Qx` Q~QHD QG$PQQhQ(QY( QK R@R$ R0x REP, R^\L RjH  RxP R+  R\$8 RK< RRLRPD RRSL S S3SE\ SQT S`,S4 Sx S=S S<h S>8SW< St<  T@T<T0TA(@ TWTd0 TxR, Tl  T~T10 T ( TT"\( THU n Ut U'UAX< U[UkU} U8UX U@ Uod U-, U UH  V e VCX V&u V6^t VEt@ VXVp`Hh Vz&< V, V$VX V, Vh\ Vͨ VW2,` W5WL W_` Wu2 W W8WW( Wc@ W+,D W  X T XdH X%` X3;X XKTt XXl Xf Xvp X>HX4 X`, X@< XX Xs@ X^  Y, Y&h@ Y=TYUYbtYsY, Yt4 Y Y8 Yx8 YYz< YO Z Z$ Z2+`| Z;( ZKPZ_T ZrZ ZZd ZC Zw, Z0 ZpZl [ 6 [T ["( [2[AC0 [Rht [\~[nl@8 [ [ [E[[1[( [[L0 [z0 [L[0 \x \(pt \5__gmon_start__libtermcap.so.2_DYNAMIC_GLOBAL_OFFSET_TABLE__init_fini_SDA_BASE_tgetenttgetnumtgetflagtgetstrPCtputsUPBCtgotolibdl.so.2dlerrordlclosedlsymdlopenlibc.so.6strcpysetrlimit64textdomainwaitpidioctlgetgidprintfsysconf__strtod_internalstdoutvsprintfgetdtablesizeungetcsigemptysetstrerrorfdopengeteuidmalloc_stats__ctype_bgetenvgetegidsetlinebuf__strtol_internalexecvegetpidgetpagesizeqsortfgetsgetrlimit64memcpyputsdup2getuidfeofmallocisattyconfstrendpwentsiglongjmp__dcgettextselect__strtoul_internalfflush__ctype_toupperglob_pattern_p__xstat64sigaddsetstrncasecmpbzerosetpgidabortalarm__sigsetjmppipegetpgrpstrrchrcallocwriteenvironfprintfkillsetpwentctimestrcat__deregister_frame_infochdirstdinumaskferrorsetgidreadstrcollstrncmpstrncpyunlinkgetrusagestrcasecmpreallocreaddir64bcopy_IO_getcsigfillsetforksigactionkillpggroup_membersbrkgettimeofdayfnmatchclearerropen64getppidtcgetattrtimeopendirgetgroupsstrcmpttynamegetpwuiddupgetcwdstrsignalgetpwnamgethostnamememalignsprintffclosesetlocalegetpeernamestderr__lxstat64cfreevallocfwrite__fxstat64accesstcgetpgrp__errno_locationexitbindtextdomainsigdelset_IO_putcfileno_IO_stdin_usedgetpwent__libc_start_mainstrlenlseek64strchrfputsclosedirfcntltzsetsetuidtcsetattr__ctype_tolower__register_frame_infoclosevfprintftcsetpgrpfreesigprocmaskfopen64__environ_environ_etext_edata_endrl_kill_lineread_docarray_expand_indexdebugging_login_shellrl_funmap_names_rl_enable_metabind_array_variablejust_one_command_rl_free_history_entrycolon_builtin_docappend_historymake_select_commandxmallocprint_time_in_hzsh_getoptcurrent_jobsort_variablesmake_word_flagsrl_deprep_term_functionrl_display_promptstream_listdingupdate_export_env_inplaceqsort_string_comparerl_ignore_some_completions_functionmake_default_mailpathdstackrl_line_buffercheck_identifiershift_builtinterminal_pgrpexit_immediately_on_errormaybe_save_shell_historyfg_builtinarray_add_elementdispose_hash_tabledirs_builtinstrip_trailing_ifs_whitespacerest_of_argsshell_levelxfreecrlfallow_null_glob_expansionlogout_docsetup_glob_ignorehashed_filenamesrl_vi_checkshopt_builtin_rl_erase_at_end_of_lineextended_glob_rl_defining_kbd_macrobrace_expandrl_vi_yank_torl_vi_completebegin_unwind_frame__divdi3rl_kill_texthistory_comment_charglob_vectorget_dollar_var_valuerl_macro_dumperbuiltin_docoriginal_pgrpignoreeofrl_instreammake_builtin_argvrl_read_init_fileremember_mail_datesexpand_words_shellexpfind_flagarray_to_word_listinitialize_shell_variablesrl_completer_quote_characterssh_optargnext_historystatic_shell_builtinssource_doccurrent_command_subst_pidload_historysv_strict_posixrl_vi_matchset_signal_ignoredpromptvars_rl_with_macro_input_rl_output_meta_charsrl_rubout_or_deletemaybe_unsave_linesubshell_envpshell_version_stringparser_errorlist_stringneed_here_docsignal_is_ignoredrunning_under_emacsrl_key_sequence_lengthrl_arg_signrl_filename_quoting_functionall_visible_functionsxtrace_print_cond_termyy_getcrl_marktype_builtinrl_untranslate_keyseqdebug_print_cond_commandhash_builtinexecute_prompt_commandsource_file_rl_vi_set_lastsearch_for_commandlegal_identifierhistory_set_posextract_colon_unituser_command_matchescheck_mailhistory_lines_this_sessionvi_insertion_keymapall_shell_variablesrl_end_undo_grouprl_call_last_kbd_macrorl_vi_replacerl_set_keymap_from_edit_modede_backslashlast_command_subst_pidvi_movement_keymapreturn_catchset_locale_varsccs_versionrl_completer_word_break_charactersprevious_historywith_input_from_buffered_streamrl_filename_dequoting_functionarray_to_stringfind_user_commandsv_localebash_history_disablehistory_expansionrl_modifyingrl_discard_argumentbreakingcurrent_command_numberrl_vi_ewordrl_reverse_search_historyhistory_expansion_inhibitedmake_var_arraybg_builtinmaybe_execute_filerl_dispatchingpre_process_linewrite_historyprint_var_listset_job_controlsingle_quoteusername_completion_functionrl_redisplayset_ppidno_line_editingrl_show_char_rl_digit_valuediscard_unwind_framecolon_builtincurrent_fds_to_closehistory_expandstop_making_childreninteractivebash_inputrl_unix_word_ruboutcommand_errstrfalse_builtin_docarray_subrangeshell_pgrpnohup_all_jobscurrent_prompt_stringarray_quoterl_clear_signalsmalloc_bucket_statsposix_initializerl_revert_linerl_reset_after_signalcopy_wordrl_numeric_argrl_dump_variableshup_on_exitstifle_historymax_input_historyrestore_pipelinekill_current_pipelinealiasesfull_pathnameclose_buffered_streaminterrupt_immediatelybuffered_getcharreverse_listrl_clear_screendispose_builtin_envrl_set_retained_killsfind_hash_item_rl_make_prompt_for_searchrl_bind_key_in_mapsave_pipelinedescribe_pidperform_hostname_completionextract_arithmetic_substread_builtinrl_deletereadline_echoing_prl_insert_comment_rl_init_terminal_iothis_shell_builtinfc_docmake_absoluteexit_shellmaybe_set_sigchld_trap_rl_update_finalhistory_reeditinghistory_set_history_staterl_vi_first_printdeclare_doclcurrentrl_line_buffer_len_rl_vis_botlinthis_command_namepending_trapsget_word_from_stringset_docinteractive_commentsdefault_tty_job_signalscontinuingrl_menu_completeprint_assignmentrl_display_fixedhistory_total_bytesexit_builtinparse_and_executeignore_glob_matchesabsolute_program_rl_undo_group_levelarray_referencecompletion_matchesrl_directory_completion_hookdump_translatable_stringsbinary_o_optionsrun_unwind_protectsstring_rest_of_argsread_but_dont_executerl_vi_columnrl_executing_keymapunset_docrl_yankmark_modified_varsterm_crrl_explicit_argexpand_wordrl_completion_entry_functionrl_catch_signalsunclosed_pairbreak_docxtrace_print_arith_cmdtrap_listrl_filename_completion_desiredsubshell_environment_rl_pop_executing_macro_rl_dispatchmake_variable_valuemake_hash_tablereadline_internal_setuptimeval_to_secsrl_vi_delete_torl_noninc_forward_search_againrl_ruboutrl_delete_horizontal_spacerl_undo_listignore_signaldescribe_commandexpand_wordsreset_mail_filesrl_history_search_backwardreadlinerl_donerestart_job_controlword_splitrl_variable_bindpopd_doclist_lengthsourcelevelwith_input_from_streamrl_insert_textquoted_array_assignment_stringrl_vi_goto_markrl_refresh_linecommand_errorhistory_get_history_statemake_local_array_variableshell_meta_chars_rl_init_line_statetilde_expansion_preexpansion_hooktop_leveltype_docyyparseinitialize_job_controlcontinue_builtinset_signalrl_vi_eof_maybetest_eaccessinitialize_filename_hashingpwd_docinit_yy_iologout_builtinparse_symbolic_mode_rl_convert_meta_chars_to_asciiwhere_historyreinitialize_signalsmake_local_variable_rl_kill_kbd_macroclean_simple_commandtrap_dochelp_docvalid_array_referencedispose_redirectsskipsubscriptremember_argsarray_needs_makingecho_input_at_readbrace_expansionreturn_EOFpipeline_pgrpemacs_standard_keymapmaybe_add_historymake_function_defcurrent_userindirection_level_stringrl_vi_append_modereadline_top_level_rl_savestringset_or_show_attributessv_histignoremaybe_make_restrictedexec_doctermination_unwind_protectpush_contexthistory_getprivileged_modeset_sigwinch_handlerrl_vi_prev_wordfunmaprl_restore_promptterm_DCtimes_builtinreadonly_builtinstrip_trailingrl_display_match_listwait_for_single_pidnum_shell_builtinstime_to_check_mailset_dollar_vars_unchangedget_history_eventrl_set_signalsprint_simple_commanddot_docstdin_redirectsmerge_builtin_envrl_noninc_forward_searchtilde_expansion_failure_hookglob_error_returnexit_docmaybe_append_historylist_optargbash_history_reinitsetup_async_signalsshow_var_attributesrl_forced_update_displayrl_unbind_key_rl_completion_case_foldunlink_fifo_listrl_forward_search_historyremove_hash_itemexport_doclogin_shellbash_brace_completionsv_globignoresource_builtinrl_noninc_reverse_search_againmake_pattern_listmake_bare_wordterminal_can_insertget_group_listread_historydisown_docterminate_stopped_jobsrl_library_versionthe_current_working_directoryrl_quoted_insertrl_copy_textbuiltin_usagerl_vi_domove_rl_term_autowrapend_job_controlrl_vi_yank_argwithout_job_controlreset_signal_handlersrl_attempted_completion_functionarray_to_assignment_stringcurrent_readline_promptget_job_by_pidmake_redirectionfind_special_builtincopy_redirectstime_docfile_errorhistory_arg_extractrl_vi_bWordbash_add_historyget_alias_valuerl_getc_functionoriginal_signalsrestricted_shellparse_and_execute_cleanup_rl_vi_done_insertingjobsexpand_word_leave_quotedshell_start_timeumask_docrl_readline_namelocaletransset_dollar_vars_changedhistory_no_expand_charsrl_tty_statusvariable_contexttilde_initializerl_unbind_function_in_maprl_unbind_key_in_maprl_transpose_charsevalexphistory_lines_in_fileparse_commandgive_terminal_toassignmenttilde_expand_wordvar_lookupusing_historyexecuting_line_numbertrap_builtinhelp_builtinsignal_nameskill_docfunction_envdot_found_in_searchset_default_locale_varsrl_beginning_of_historycopy_commandshell_functionsindirection_levelbash_re_editlegal_number_rl_complete_mark_directoriesmake_here_documentpolite_directory_format_rl_vi_textmod_commandparse_string_to_word_listterm_imdo_assignment_no_expandcheck_window_sizethe_printed_commanditracerl_forwardlast_history_linehistory_quotes_inhibit_expansionbind_docsv_histsizeno_symbolic_linksbinary_testmake_group_commandrl_digit_argumentsv_tzset_shelloptsrl_backward_wordcase_docsv_pathfree_array_membersrltty_set_default_bindingsrl_vi_back_to_indentbuiltin_envthrow_to_top_levelsubshell_argvtemporary_envassign_array_var_from_word_liststartup_staterl_last_funcfc_builtinprint_word_listcdspellingbind_builtinmove_to_high_fd_rl_qsort_string_comparefd_to_buffered_streammake_cond_commandtilde_additional_prefixesunbound_vars_is_errorrl_expand_promptinitialize_aliasesrl_get_keymap_by_name_rl_allow_pathname_alphabetic_charsglob_dot_filenameswait_builtintest_bracket_dochostname_list_initializedrl_completepop_contextadd_hash_item_rl_control_keypadsv_ignoreeofstring_listrun_unwind_frameexpand_string_unsplittrap_handlerhash_stringrl_completion_display_matches_hookunfreeze_jobs_listall_visible_variablesshopt_builtin_docglobal_commandtrap_to_sighandlermake_until_commanddebug_parserunset_sigwinch_handlershell_is_restrictedterm_eifind_variable_internalmake_bare_simple_commandrl_filename_quoting_desiredmake_simple_commandsignal_is_trappedrl_resize_terminalrl_char_searchsh_badopt_rl_last_c_possame_filerl_terminal_namehistory_listkill_all_local_variableshistory_delimiting_charsfg_percent_doctilde_expandprint_var_valuepatch_levelrl_arrow_keysdelete_all_jobs_rl_next_macro_keybase_pathnameecho_command_at_executefind_hashed_filenamedispose_wordalias_expand_wordrl_stop_outputbuiltin_builtin_rl_print_completions_horizontallybash_readline_initializedshell_environmentselect_docrl_undo_commandignore_tty_job_signalsterm_backspaceterm_gotoreport_errorbg_docinternal_warningrl_vi_overstrikerl_vi_set_markrl_re_read_init_filedollar_dollar_pidcopy_word_listuntil_docrl_backward_kill_wordinteractive_shellset_pipestatus_from_exitrl_macro_bindshell_execverl_filename_quote_charactersbash_input_fd_changedreset_mail_timerstrsubsetup_ignore_patternsword_list_remove_quoted_nullsprevious_jobget_array_valuepwd_builtinget_numeric_argps1_promptrl_stuff_charthe_printed_command_sizesubstringsys_errorsignal_is_specialrl_pending_inputdollar_vars_changedglob_filenameset_builtinstring_quote_removalscreenheightyynerrssv_history_controlmake_for_commandreturn_docdo_redirections_rl_vi_reset_lastdisown_builtinhistory_search_poslocal_builtincheck_binary_fileterm_pchashing_enabledreset_shell_flagsnohup_jobrl_event_hookeof_encounteredrl_copy_keymaprl_message_rl_mark_modified_lines_rl_strindexlist_running_jobsall_aliasesadd_string_to_listexec_builtinprimary_prompt_rl_char_search_internalshell_flagsrl_yank_nth_arglast_shell_builtinremove_hashed_filenamecd_builtin_rl_isearch_terminatorsSBrun_pending_trapssync_buffered_stream_rl_to_uppercurrent_host_namequote_globbing_charsremove_historytest_docfalse_builtinrl_redisplay_functionbrace_arg_separatorgrouping_braces_dochistory_tokenizeinttostrkill_pidrl_outstreamabsolute_pathnameterminate_current_pipelinerl_dump_macroshistory_numberreader_loopput_command_name_into_envrl_end_of_lineexpand_words_no_varsfind_variable_rl_enable_meta_keyrl_universal_argument_rl_complete_show_allrl_yank_poprl_vi_putjobs_m_flaghistory_searchremember_filename_startset_debug_trapfind_functionspecial_varsbashline_reinitializewait_forrl_set_keyadd_or_supercede_exported_varprint_malloc_statsrl_reset_line_staterl_variable_dumperrl_forward_wordterm_clrpagalias_builtinassign_in_envmake_while_commandrl_history_search_forwardlist_rest_of_argshistory_docextract_array_assignment_list_rl_add_macro_charrl_vi_fetch_historyeval_docrl_vi_change_charclose_buffered_fdrl_discard_keymapreturn_catch_valueeof_encountered_limitcommand_string_indexrl_endbreak_builtinset_sigchld_handlerquote_string_for_globbingunary_testrl_unbind_command_in_mapdirs_doctest_builtinsigint_sighandlerwait_for_jobassign_word_listinitialize_readlinevariable_in_context_rl_get_screen_sizestream_on_stackrl_vi_change_casedo_array_element_assignmentalias_doclist_minus_o_optsread_history_rangerl_vi_append_eolmerge_temporary_envreadline_internal_charhist_last_line_addedfind_shell_builtinif_docpushd_builtinprintf_docinterrupt_staterl_vi_search_againenable_hostname_completion_rl_set_mark_at_posterm_dcrl_vi_subst_rl_abort_internalcontinue_docglobal_error_listnamed_function_stringshell_break_charsrl_set_markshell_builtinsprint_var_functionrl_vi_searchminus_o_option_valueget_env_valuelist_all_jobsset_pipestatus_arraygather_here_documents_rl_to_lowercdable_varsassign_array_from_stringprint_rlimtype_rl_lowercase_p_rl_set_screen_sizejob_slotslist_optoptbash_tilde_expandshell_namerl_completion_query_items_rl_pure_alphabeticfree_undo_listrl_completion_typesh_optindhistory_subst_charunalias_builtinwhile_docrl_push_macro_inputrl_kill_wordfind_reserved_wordscreencharsexecutingset_if_notnumber_of_argsget_tty_state_rl_bell_preferencexreallocstrindexhistory_offsetulimit_docget_home_dirpush_dollar_varsprint_timevalrl_start_kbd_macroreplace_history_entrypossible_control_prefixeslocal_docfunction_doc_rl_clear_screenrl_erase_empty_lineexecutable_filerl_make_keymaprl_named_functionhistory_truncate_filerun_exit_traprl_read_keyconvert_var_to_arrayadd_historyset_langrl_vi_insert_begsh_opterrrun_debug_traprl_add_funmap_entryulimit_builtinrl_copy_forward_wordemacs_ctlx_keymapsuspend_continuerl_reset_terminaldispose_fd_bitmaprl_noninc_reverse_searchrl_yank_last_argget_working_directoryhistory_search_prefixno_argsshow_shell_versionrl_vi_fWordreturn_catch_flaggetopts_docmake_commanddouble_quoteset_minus_o_optionbackslash_quotecanonicalize_pathnameunquoted_glob_pattern_pis_directorywait_docset_var_read_onlyrl_basic_word_break_charactersmake_arith_commandrl_invoking_keyseqs_in_mapreturn_builtindequote_stringrl_restart_outputrl_do_lowercase_version_rl_clear_to_eolrl_backward_kill_line_rl_insert_typeinrl_binding_keymaprl_pre_input_hookbind_variablerl_vi_tilde_expandplace_keywords_in_envbash_getcwd_errstrstring_to_rlimtyperl_copy_region_to_killdisallow_filename_globbingrl_ignore_completion_duplicatespossible_meta_prefixesrl_upcase_wordmainmaybe_make_export_envget_job_specmake_word_rl_backspacestart_jobnoclobberdefault_buffered_inputrl_tab_inserttypeset_docrl_save_promptxtrace_print_word_listsort_char_arraysubshell_top_levelset_signal_handlerreset_shell_optionslist_stopped_jobsinitialize_trapsrl_function_dumpersub_append_stringrl_add_undounset_bash_inputrl_dump_functionsforced_interactivecommand_connectterm_clreolopen_buffered_streamsh_optoptmake_childdecode_signalget_locale_var_getenvtest_binopdo_assignmentloptend_rl_in_streamshift_docset_dirstack_elementflush_hash_tablerl_execute_nextdeclare_builtinrl_complete_with_tilde_expansionrl_vi_arg_digitmake_command_stringhash_docexpand_stringget_clk_tckwait_for_background_pidshistory_lengthrl_begin_undo_groupcurrent_builtinxbcopy_rl_vi_initialize_linesv_optindarray_delete_elementrl_catch_sigwinchset_lines_and_columnsrl_getcread_secondary_linepush_streamredirection_expandrl_unix_line_discard_rl_output_some_charsexpand_word_no_splitdisplay_signal_listrl_make_bare_keymapdata_startno_invisible_varsjob_controlcheck_hashed_filenamesremove_aliasbuffered_ungetcharquote_stringfg_docmaybe_save_line_rl_move_vertbuild_versionterm_IC_rl_keymapmaking_childrenrl_character_len_rl_any_typeinget_current_user_infoinitialize_bash_inputsh_getopt_restore_statedispose_commandbuiltin_addressrl_capitalize_wordterm_icdup_arrayrl_set_keymapbind_functionrl_backwardinitialize_signalsstart_pipelineunset_builtincommand_builtin_rl_out_streamdelete_all_variableshistory_expansion_chartest_unopextract_process_substread_commandrl_get_termcapduplicate_buffered_streamno_optionsconnect_async_listbuiltin_errordispose_function_envinitialize_terminating_signalsunbind_variablealias_expandfree_buffered_streamdecode_prompt_stringlast_made_pidargv_to_word_listrl_newlineshell_variablesset_tty_staterl_vi_bracktypedisable_priv_modereset_terminating_signalsreset_parserrl_vi_end_word_rl_output_character_functionhistory_search_delimiter_charsget_dirstack_from_stringrl_list_funmap_namessuspend_docscreenwidth_rl_clean_up_for_exitsetup_history_ignorebind_int_variablerl_vi_fwordrl_end_kbd_macrorl_editing_modeitossecondary_promptrl_copy_backward_wordrl_translate_keyseqjobs_docfile_statusrl_bind_key_rl_fix_last_undo_of_typelast_asynchronous_pidasynchronous_notification_rl_meta_flagtest_commandsv_histcharslist_appendrl_generic_bindreap_dead_jobs_rl_erase_entire_linechange_flagwhich_set_flags_rl_suppress_redisplayecho_builtinrestrictedrl_vi_eWordforce_append_history_rl_digit_pread_octalbash_history_enableempty_arraywith_input_from_stdinrl_get_next_history_rl_bind_if_unboundsaved_line_for_history_rl_doing_an_undofilename_completion_functiondispose_arrayrl_vi_redomake_cond_nodeset_sigint_handlerrl_backward_char_searchunstifle_historysuspend_builtinrl_delete_or_show_completionsrl_parse_and_binddispose_saved_dollar_varsrun_trap_cleanupjump_to_top_levelchar_is_quotedreadline_internal_teardownliteral_historycurrent_command_line_countrl_special_prefixesdispose_wordshist_verifyfind_tempenv_variableshell_glob_filenamereadonly_docrl_downcase_wordnew_fd_bitmapemacs_meta_keymapmake_case_commandrl_vi_undorl_vi_bword_rl_input_availableprint_commandtilde_additional_suffixescontains_shell_metasrl_initializeeval_builtinmaybe_call_trap_handlerexec_redirection_undo_listkill_builtincd_docarray_variable_partset_var_attributeshell_ttynew_array_elementtimes_docstupidly_hack_special_variablescurrent_historycurrent_readline_linerl_vi_change_torl_vi_deletegetopts_builtinrl_prep_terminaladd_aliasdump_po_stringsexecute_commandremove_unwind_protect_rl_horizontal_scroll_modeparse_shelloptsrl_add_defunnoglob_dot_filenameshistory_controlexecute_command_internalremove_backslashesget_group_arraylet_builtinrl_completion_append_characterunalias_docremember_on_historyarray_lenlet_doccommand_docinitialize_job_signalsrl_kill_full_lineEOF_Reachedrl_vi_next_word_rl_set_the_lineenable_builtinfind_aliaswith_input_from_stringps2_promptinitialize_shell_optionsclose_fd_bitmaprl_vi_overstrike_deleterl_invoking_keyseqsrl_on_new_lineadd_unwind_protectrl_extend_line_buffero_optionsalphabeticrunning_trapstdin_redirthe_current_maintainerclock_t_to_secsinternal_getoptredirection_undo_listrl_attempted_completion_over_rl_redisplay_after_sigwinchset_default_localerl_vi_char_searchtop_level_maskrl_transpose_wordsrl_get_previous_historyhistory_builtinlist_one_jobprint_array_assignmentrun_interrupt_trapmakunboundrl_do_undodollar_varsget_string_valuerl_vi_movement_moderl_cleanup_after_signalvariable_help_docget_name_for_errorrl_get_keymap_name_from_edit_modemake_word_listmake_if_commandterm_iprl_beg_of_linerl_prep_term_functionrl_possible_completionslist_string_with_quoteswordexp_onlyansicstrpushd_doctrap_line_numberyylval_rl_parsing_conditionalized_outfind_path_filecopy_arrayalready_making_childrenrl_insert_completionsrl_complete_internalrestore_original_signalssv_terminalumask_builtin_rl_push_executing_macrorl_get_keymapsv_mailfree_array_rl_eof_charsubshell_argccleanup_the_pipelineprompt_string_pointerrl_basic_quote_charactersdelete_jobrl_function_of_keyseqprint_shift_errorsv_hostfilerl_kill_regionfunmap_program_specific_entry_startrl_vi_editing_mode__moddi3true_builtin_docset_buffered_streamrl_exchange_point_and_markenable_docreset_shopt_optionsrl_abortline_numbercurrent_readline_line_indexalias_expand_alldestroy_array_elementdist_versionget_directory_stackdispose_used_env_varsshould_ignore_glob_matchesposixly_correctyy_ungetcunbind_argsrl_visible_prompt_lengthexport_builtinpushed_string_listfatal_error_rl_replace_text_rl_last_command_was_killinitialize_shell_builtinsglob_argv_flags_rl_comment_beginrl_pointthe_pipelinedelete_all_aliasesassign_array_var_from_stringinternal_errorall_shell_functionscond_expand_wordhistory_is_stifledredirection_errorpat_substrl_tilde_expandprintf_builtinword_list_to_arraylast_command_exit_valuesv_opterradjust_shell_levelrl_insertrl_promptrestore_default_signalmake_word_from_tokenposix_readline_initializerl_initialize_funmaphistory_inhibit_expansion_functioninput_file_descriptorno_exit_on_failed_execrl_deprep_terminalset_working_directoryword_token_alisthangup_all_jobsrl_inhibit_completion_rl_last_v_posshow_name_attributesrl_clear_messagerl_get_keymap_namerl_vi_insertion_modestop_pipelinecopy_redirectcheck_dev_ttymake_new_array_variablejobs_builtin_rl_fix_pointfree_mail_filesarray_pat_substecho_docbuiltin_address_internalrl_delete_textextract_command_substglob_ignore_caseopen_filesrl_free_line_state_rl_move_cursor_relativecheck_bash_inputdispose_exec_redirectsparse_and_execute_levelmail_warningsource_uses_pathcommand_oriented_historyrl_end_of_historyall_digits_rl_init_eightbitsignal_name_rl_uppercase_prelease_statusflush_hashed_filenamesgetopts_resetrl_visible_statsrl_emacs_editing_modemap_overpop_dollar_vars_rl_executing_macronotify_and_cleanup_rl_enable_keypadunwind_protect_varrl_startup_hookdispose_cond_nodeunbind_array_elementreset_internal_getoptbad_optionyycharunset_nodelay_modepop_streamclear_historyfc_execute_fileexpand_aliasesdispose_variablenew_arrayshell_initializedprogramming_errorrl_char_is_quoted_ploop_levelfor_docterm_uplong_args_rl_init_argumenthistory_baseword_list_to_argvyyerrorexport_envbash_initialize_historymaybe_replace_linepopd_builtin_SDA2_BASE_GLIBC_2.1GLIBC_2.00 ii\A ii\K ii\A ii\Keu (0X8g@HP#X5` h,p:x0JMtyOfW>^_ <" (s08v@+HAPcX`Yhpx82hoImTFH-q /U (j0B8*@.HPX)`hp\xE3S41n~KRbk [(r0Q8{@9H;P!X``hDpzx(x7C]w=P}d pZG $(0? &V |) xT!68!|=!H T!| =  0,@l= i0 ,A0??09)?0 |N!0 ,@= 9), A<`8c}H = 8 0| 8!N !||8!N !|= 9), A<`<8c}8PH |8!N !||8!N !|048<Da<`8c8H A,A 8`H H]=  ~,A@H_;H= i~=`<`;~8c!H!,@<`8c!H ,A;<`8ch8H ,A4= )L=`=@!k@J0= 8aA ~8= 9` I~= ai, ?<<=@=8= <j ~ԑi~}df~@=  ~,AD=`+~ ,-@ 8  ~H#A<`8c8H ,A 8`H = D?|L1Hq8`H ݐ}< aL1HA=  ~a ,A = i8L1H$8`H =  ~,A8`H8`H =  ~,A=  ~| ~=  ~=` a tL1H=  Ha ,A= 8 8=  8,A= 8 =  ~,A=  ,@H%=  ,AH T:}<.=`, +@<`8c!L1Hw8`H ! 9)! = i=@, 8 t@t=  ,@l=  ~,@\ |A=  ,A<= iH H ,A$= iH H ,A HHH=  ~,A,=  ~,A;xH ;,@?~,A$H=  ~,A~L1HHIH[=  ~,A<`8c" HQ= ;~|iyx9`A( ,e@<}#Kx8"H #}|<`|[x8c"H|iy=`;4A4<`8c"$}$Kx8HY,@ 8H8H+4=  )<`! 8c8H e|cyAH,@= iHmH0= i~H)=` ! 9)| != ~, @@,A :;,A= :1:w:7 >@;`;;W:}?.} x| @d;01|.8}H 9,@L|.,A;Z|.:,;@|.8r"4L1Hp8`H }1. H ;|.;{,;~x@p|.,@L,A`|.<`8c"XL1Hpe= i8L1HM8`H I99}i. K;|x:A.,@xT| !Aa $(,0!4A8a<@DHL8!PN !|!Aa $(,0!4A8a<@DHLT|+x||wxHp~Ti>,-i)+!i}+I|&T?| KyA\;d@,,A,-@,@ cxH0T}>,;@Ak->@; >`>W|:>>,cA(A,DAlHp,oA ,sAH\2H3H|.,@8`WHHpxH,A 8`H i;;{HL48HDxxH,@0x8u"pxL1Hn-v8L1H8`H Ю;Z,@0dx|AT:.,@|#xT|!Aa $(,0!4A8a<@DHL8!PN !| |~x8`H,A H|~xH!?~,A8H~,A(=  ~,A=  ~,AHiH؝xH !| |cyA\,AP8H 9|~yA@xH|xxH,A$,Ax8HxH| 8!N !| =  ~,@=  ~,@=  ~,@?~,@=  ,Ap<`8c"H6E|cyA 9`T<= iPH9`, @ = iH L1H,A= i~8HH=  ~,A8`H|~xH;=  ~9@,@=` ~,@=`=@ ~*~,9)*~@d<`8c"8Hm?~,@4<`8c"8HM,@,<`8c"8H5,@<`8c"8H9@=  ~=`,@=  ~,A=  ~,@` ~,@=  ~,@t=  ,@d=`+~9), +~@L<`8c"H5L1KQH4=  ~,@=  ~?,A, @=`=@ ~*~,9)*~@`<`8c"8H-~,@4<`8c"8H,@,<`8c"8H,@<`8c"8H=  ~,@8=  ~,@d= i~8HHP=  ~,A@=  ,@0=`+~9), +~@<`8c"H3L1K%xHe| 8!N !|=  ,A 8`H4H|ix 8`,r@<}#Kx8"H !c|k|8!N !| = i~?HU,@$,r@T<8"H ,@@<`8c"HE<`8c"HD<`8c"HD<`8c"HD?9)?= i| 8!N !|$H 1=  1|~x|;1AD},AH̀},AH},AH8?1;1H H )H =1|kx|  8`@|XA8`$|8! N !|$?|1;1H }}H 1== $|8! N !| $(,4a<`8c8H |eyAp,A@A,AHD,AH8= 8 8`HP= iHD= 8 8`H0<`8c"88HmŁa, A ,Ax<}c[x8#H-HE,@4= )~, @<`8c#L1H H ,A 8`~H),AxHf)||xH;,= 8 A;;x?;iH ,@<`8c#xxL1H yyA(??8~#$L1H Y,@8`4| $(,8!0N !`|a<`8c8H |yAxH5,A@A,AHD,AH8= 8 8`Hd= iHX= 8 8`HD<`8c#(x88HkaH 8cHnH <8#88H|8!N !|Aa쓁|+x|#x||{x|3x;A,W:|.;H;xH]||}x@,A,AxL1H>Y|xHx,@l??iH 8cHm!?H }~?},AHA?iH 8cHl?H Ր}Hx8HyxH!x|Aa상8!N !|8`8H-|8!N !@|}&ađ|~x?}HuxH 8cHl!xH }xH 8cHlxH |{x8L1H |yM@H ~|}x,@TcxH,@DxHNU||yA,cxHxcx8L1H %|yMH@,H ~cxH`,@ 8`H8`~H 8x88H M,@ ,Ax88PH |cyL@dH ~-x8`8XH }Q,@,hT&,@@<`8c#<dxL1HbHH }cxH_e8`~H @4|dx8aH|,A <`8c#PdxL1Hb8`~H 8x88H ~y?~x88L1H ~=  ~,AxH ,@ H H x8H ~yxH |;~cxHExā|a} 8!N !|=  ~,@= i~H= iH |Hx=  ~,A=  ~,@$H&yH0= =`i~ԀHQH= =`i H'ـ|8!N !|$,A=  ~,@H0=  ~,@ ?}~HM8= ~Ԑ ܀$|8! N !`||xH?= i~,-@ 8 ~)~ ,s@h ,h@ ,@=`+~9)+~= )~ ,s@, ,u@ ,@=`+~9)+~?~?,AH-}~H {8cHgـ~H }Ɂ^~ ,-@ = i~8 9ki~~| x, A$ ,A,-@ ,@= 9)#p=`+~|8!N 8==@=`=   ~ ~~N !|8`L1H!9 <<==`=@8+ ~ȑ(~'~&~8`HM|8!N !@|a!Aa= ;1,@i1H yi||yA(|xH z=8cHfMH |=|,A(,AH z 8cHfH | H8`Hf 8/9 b!9`a}i[x!9@/8b8i9n8A|#x! Q^P;A89:A<=8!<(!,=`8nPD.#P>= [8s9)#]})2AX})YZ8sQ_A\^X9!XPQ]iP8hH9!HPD.PD.;`/iP>P>N 8HtcHl!#HXHP! #H<(!,#H(H!LaN#cH z?|;1H x=8cHdMH z=}H8`Hd5<:88#L1H x:8`Hd 9 /8b!!!9@/8b8i9nA89:;<8:84(;!(9:XQ]AXYZ[A\X]7H;H8P8nPD.= P>#8s=`}9k#{Axyz}k*Q^}i8sA|~!x;AxQDPzZP8h!h;ahPD.PD.9/{[S>S>N 8HtHl! #HXHP(!,#H<H!L#H(h!lan#cH = :i18`HbQ9 8/!!uv= 8##9@8/;8A9:A<84(9P=`[XAYZ\A]X7H8|}xQ^e #PD.= xAyz{P>9)#})|})a}A~xQz:PhPD.P;/{;Q_>PB>N 8HtHl! =HXHP(!,=H<H!L=H(h!lan=}H H u|a!Aa8!N !p|=  ~,@= iH ti=`kH t]HY?HvYH~,@D8a8H u,@= 9)$?~H 8aH s8cH_8H uݐ~=  ~,AK H|]=  =`,kD8@$=  ,@=  ~,A8HA8`H1H=  8`,@$=  ,@=  ~,A8`H|8!N !|a  !$A(a,048<D= 9)$ <`=`;89k$<<=@<=<#???`>>>`>>?@? |~~~~~~~@~~蓧x~䓹8`L1HQ= =`9k!0=@=i0h~H/Y= i4H/MD|a  !$A(a,048<8!@N !P|}&!Aa-|{xA(H|ex<<8$8$8cxL1H p= ~<8$Tcx|+xL1H o<`8c$dxH q= 9)1 ,A4}?Kx?;|.cx8$L1H o;|.,@<`8c$dxH p?<`8c$dxH p;@8 ,A? ;;;;x}?X. ,s@p}~X.+, s9)@(+, e9)@+, t9)@+, @09}=JiH p)8cH\99}=JH r!|zx8;|H.;,;;@d,ACx8[H n|}xp}@x|PP|pKx8|[x=, -@,-Ax8]H m|cyA 8<8% xcxL1H n%CxHAL?<~8% cxL1H m~<8%dcxL1H m<cx8%L1H mр|!Aa} 8!N !|,4888H nu;,@H mc,XA,A;x4|,8!0N !| $(,4=`=@ 0*~,9);!*~ @<`8c8H m|xH=  ~,A(8`H,@<8$8`L1H=,A,= ~A A,A0Hd,@\H = ix=@, 8 A= 8; 0 H܃ ,A0xH; H<`8c%x88HW9= 8 ~H4H},@= ~,@0=  ,A ?= }~釈H%~H<~, A=(~89)=@8=`(~ ~뇄~xH ,AxH; =  ,A(HH =  ~,@= 8 0=  ,A= 8 0=  0,A= i~=@9ki~j4| $(,8!0N !|<`8c%L1H le8`H|8!N !|<`8c&H|ey@<`8c&H{|ex= <i8&$L1H j-|8!N !| =`8 PHp]=  ~,A@=  ,A0<`8c&,H!|cyAH"=  4,@KA= 8 `Hm=  P|x,AH$x| 8!N !|$=  ~=`,9kX= =@8i ~;;A`<`8c&@8)\p;:; ::~x:`}89)7|H@A}8P,'})p;~xx@4<`8c7@L1HWy,AxH ~xH8`H ~vx,'A|&T/|| ~8q)'|Kx}v}s[x8T8|}An9!U86xxL1H gW8V89)a})}aIn8T6xx~xL1H g}8:9)|H@;@ = 99)+ʮH| x ,@H488H8Hxu|zxH~H||zxH> ,@ )) , @ )) ,A | x ,@ H̀ H~耞Hu|zxHt~耞Hu|zxH`<`8c7X8HpHP<`8c7`K<`K<`K̀~؃,A,A L1H}|dxxHr]|zxH<`8c7X8Hp}H\<`8c7`8HpeHD<`8c7X8HpMH,<`8c7X8Hp5H~؃L1H|dxxHr |zxH\~8H~؀H ~Hri|zxH0= =`|~H0= =`|~H= =`|~HzM|zxH܁> ` ^HĀ~耞8Hl~؀耾H\~HL~Hqm|zxH~Ht |zxHt~8H~H ~耞Hr|zxH@> ^H,~H~H ~8Hq|zxH> K(~8H ~Hn1|zxH=@ P^H܀~,@ 8H88&H~耞8Ht~耞8Hd~,AȀ8&HH~耞8;H8~耞8;H(=@ P^HL~,@88&HyH88&Hn|zx=  PH=  P^,AH H؀~耞8H~耞8H~,@8&HyE|zxH8&Hp~8;H`> ` K4~> H$~> H~> `|Kx K~耞8|Hm|zxH;@H;@= 9)'ʮW8}|P~P9]= 9)-^~}jR| Z B(?A,= 9)2}y| Z|@@= 9).@)ZK= 9)+| R)K,@$=`+\<`9)+\8c7dL1HKq,@=  p,A8p:H|A7;9= 9)+ʮ,A;(?A= 9)2}}| Z,@= 9).@Z,@,AKLA, A= 9)h xK,AxHE~xH=8`H ,AxH%~xH8`a |+ĂKȂk̂ЂԂ؂܃ +Kk샋}a[xN N 8`N !| = ;;ԓԀ,AH؉ | 8!N !`|a= g;Ԑ||x|#x|3x~,AH,A$xH Y8cHExH [~H= 9)ԓi |a8!N !|=  |N!|8!N !|=  |L1N!|8!N !|=  9),A(@ ,AHiHiH= iH W9|8!N !|$?8,@=  ,@Ha=  <,A= iH8`HkI,@,<8$8`L1Hm=`+||x9)+= i4,@ = 8i9|HD88`Hj,@$= i8`9kixL1H 8,@ 8`Hl= H;x| 8!N !|= H S|8!N !|$|#xa<`<8c588588K)$|8! N !|$|~x8` HA ?|x8}88HI8=8}, @c,A8Hn<@=@9 D= , =`D 0A@$|8! N !|$=@D,@= 8 0H= ;08jD K=  9I,@P ,AD=` ,A$=  ~ԓˇ,A ? = i܀Hmm=  @,AHxHŀ$|8! N = )D, A$ |@ 8`N ), @8`N !|a $|~x|+x|#x8`H>?`=@ $?;p?#l=`=x # H,kHA`$xH R}=` 9 T{p=x <l$|a 8! N !| ?$,AHq= iH= <$+=@(l p+*x ,A=  `H=  T = iH H# , A p H| 8!N !| = H,A@,AHϙ? , A p xHyy@= 8 H| 8!N !|}&!Aa $(,4?`~|x,;A(=  ,A=  ~,AH6;? ?0GK|x,AH},A,@@~-,A =  ,@= iH O@ 8`H; =P9~| -A,=@*P9)| H*P@P}LH`|rx,AH|!>u$>, A(?8l| H,@=  H,@=`+@?9)+@>? ?`=  ,AH{= ;xHz=` ~,A(=  ,A=  ~,AH3=  ,@= iH MA??@:H?,AH{1p9~| A,=@*p9)| H*p@p|$H9ݐ|$,@0,@ zH L,@x5$~H$5$, ;AK|y@d=  =@,9 =`*ltAt= )$, A ,A=`9+2 =@,ʇA +2} J ,'@ 8 ?}$88L1HƵ|x}$= |ɇAHʹ,= ;t$A4xH LAH,T$;8| =`+`9)+`K8`~=  t,@=`+`t9)+`=  pHp=  ,A`= i$,A,@D=  `,@4=`9+2 ,A +2} J ,A L1HQ= $,AL=  ,A`,@=  x,A= <i8:L1H IH(= 9)T?8=`p+H/K=  x,Ad= )t=`p8 | @$?8}$ p8H71;t}$=h$8 | I;tH$8})R = =`klI$X,OA 8 lk\ }'I0|}'9A84$xl| X, @$H/)>=`+@? 9)+@K@=  H,A\?T,AT9)>TH; ,8T@4=  x,@$=  l,A 8` H8`HW>D|Aa  !$A(a,048<8!@N = i$, M =@*l, M 9)*l|kIN =  $,M =`+l, M 8 lN !| |xH |A8`L1K,@A L1Ki| 8!N !|}&!Aa $|~x>>>?? U4v8`8y:H |yMA$xH G8cH4xH I|yMxH G8cH3xH I<8:8HU4v8`8y:xHA xH=  , @ 8 $|!Aa } 8! N !|$=  ~,A=  h }fY ||[yA\=  ,A= 9)X|H@H>%,A HFH>=  ,@=  ~,AH+=<?g]=  hG8`L1Hi}$|8! N !| =  P,A0= 9)h;?~H]?P9), ?P@| 8!N !p|=  |xp @,= i,A,!AL1H',Ax=  p @hxL1H=|yA,p @HH EI8cH1YH GIH8`,A xTL1K8`H8`|8!N =  ,{AhA8,&A\A,AP, AHHL,(A<,;A4H8, A(A,A$,H,A,A 8`N 8`N !| =  |x,@= ),i+ }gY|&T?}gy@ ,  @T,i@H,n@<,@0@$=`=@ *`9) *8`H=  ,@D=`+9)( A0,d@$,o@,@ 8` H=`+, AH8 ?, e@4<89xH A,@=  8`T< Hp=  pALT ?, {@8,@,=h=  @9k=@h 8`{H?,AH= iL1H$,A0,}@$,@>8`}9)>H=  ?,@,, -@$,p@,@ 8`H, t@@<89xH @,@(=  p@K,A 8`HD=  pA0,]@$,]@,@ 8`H8`| 8!N !| =  H;,= =`=@2AK?$,AH=`= $lp?,AH}8 =`=   | 8!N !|}&a $(,4,@K!8` H?~,A48(A=@j= 8ih 8H?`{U`,@=  @ak?{Hu= I=`, khAL=  0,A, A<8:,H, A<8:TL1H')H|^T*8`Hk }'Ik |}'yA8`L1K|x,@@= 8 08`&H,#@@=  ~,A=  ,A 8` L1K; 8`L1K], @0=  P,AK=  8` T HL= i(xH =,A=  p@-<->&WW_yA T8`L1K||x|@@,;AtA,&A,(AHAPA AH,|AdH8`L1K}||x,-@ 8`"HxL1K8`Hx8`Hp8`!`THX8`HP8`HH= iL1H,A8aL1Hm,@4aHMU88HM= ihaH 8`H,@4a88L1Kup@ ` 8`(H8`Hk& |9A 8`H9A 8` Hk> }'IH9A 8`$Hdk| |9A 8`%HHk& |}'9A 8`#H,xL1K/),(@H=  ,(@8=  ,@(== `I@T=`K|@=  p@ ` H8= )}`&UkU |X9A U 0}GIk<0|Y}G9@ ,(A xH<,-@ =`+9)( A 8`-HxL1H ,A4|a $(,} 8!0N !p|HLP!TAXa\`dhlp!tAxa||#x||xj"!H} A|;x|+x,8`@8H')== k)@Wk'!01~(A4:|{x::`:;@;9:(,|`&Tc &~#8L1K|zx,@4cxH<a08:|~ExL1H!= 08nH, &@,=  ~,A=`+9)( AH5( A |&T~(9:LA 9=Kx|p})x8|KxH8|A ;@|@cxxH&Q|{xkI! }(Ik@!@| }(yAXHLkI!I}*Ik@!|}*yA@8|A ;@|@cxxH%|{x};[;Hh,'|&@ :H0A4@x!|}@80|97})x~8|Kx;=|h) ,!@@ ,@4,@= ihHpYK%|yA `H@??hiL1Hv},Alއh8`L1K,A(xHo= i@<8:L1HHlh8`88HGE|}xxx8`8H|?h8`88HG|}x8`L1Ke|x,@$>hiL1Ht,A އhHk!`| }+yAxH@|~xHk!i}+Ik!`| }+y@ ,@4<`8c:H@I|~xxx8`8HF]= H= i@<8:L1HxHnUH@8`L1K,A@= i@<8;L1HxHnxHny= 8 8`H<= h8`88HE|fxxx8`HE|xKx$|8! N !|KHE|8!N !0|}&!Aa!Aaēȓ̐ԑ>|yx,A ?8|X8H|X:= =`:)2: ;" :~:`:@:?9h,A ->A,$:`-`&Hx,A62} JIH;@,\@8`L1Kߵ||x, @ ; HxL1KQ!}.k@`!|}.y@,,"@,,A$<`8c;PxH ,],A 6sM,$:@`&H,"k)`!}.I&|&T|KyL@ ,'@ ;2?8 |X;h@ 8 v2|xH1?v2v2+I?9)?#xx$x%x8L1K1|x|9)1A ph9>u})| X;A0} Kx=`+9)|H+@xXHxX8Xx)xXx|cH /:h:@8 @x8$H +1|~xH<=  ,Ak)@!}.Ik *!|}.y@,k)+!}.Ik ?!|}.y@ ,!@<8`L1K݉||x,(@;2?8 |X;h@ 8 v2|xH?v2v2I?9)?Cxx8(8)8L1Ke1|x|9)1A h9>u})| X;A0} Kx=`+9)|H+@xXHxX8Xx)xXxxX;|cH -yh,A xH::HxL1K,$k)@8`L1K||x,(A,k{!}.Ik[!|}.yAhh @,{;h@Cxx8{8}8H@|;2?8 |X@ 8 v2|xH?v2v2I?9)?Cxx8(8)8L1K1|x9)1H$Cxx8[8]8L1K}|x|A h9>u})| X;A0} Kx=`+9)|H+@xXH5xX8Xx)xXxxX;|cH +h,A xH::Hh @8,'k"!}.I@&|&T|KyLA= i@xxx}{x8L1K|x|A;8lH @ h|;x88L1HH hfx8x8L1H 9|{xxH9~l5}k| HA,=@*9)| H*@xXHxX8XdxxXx|cH *il8X;,A cxH:@K } &U)k$!|}.9LA8`H|x9 $8??9^?| A,=`+9)| H+@xXH-xX|Xx|cH );::,AxHHp|PTk)=!}.I}.9A8`L1Ku||x,(@Cx8(8)}{x8L1K|x|A(,(@,AHaH h9>u})| X;A0} Kx=`+9)|H+@xXH9xX8Xx)xXxxX;|cH (h,AxHKxL1KI= i,$xH $,@8( ?;A VH:k+!}nYk !|}nyLh } &U)~KxA<X8| x;<X)x9~| A,=@*9)| H*@xXH%xX, @,=  ~,A=`+9)( AH q,A62} JIH;@kC'|cTc|&T_|c8L1KY|yxKD>6X,8| Atk)>!}.Ik })A9!Q iP߂x9!xPD.S; ! iQ_>PB>N 8H,#H$!#HH8!<#HX!\#Hx!|a~#cHēHH;{H<,\@:P8(V;TA$=`9k;T:}K.= 9);}JJ}IN ;Hxdx8H ;xH&|~x8`Hk"}6Ik"|})y|}xA8H$,@8\=H=;{;H8`H Q,daL8aL&H 5|}x A; xH M8cH]xH M|}x A 9}H9} ,@kT"}6I9@|&T?}6yKA@8a9 m=]]x88 8H 7L@<= ffa)fg}>Hp})p} HPU+8}kJ}kJ}kP9k09)0=}A,a@|8pHp8`Hu|}x8 9 =HP8`HU=  ~|}x,A 8 H8 =  ~,@ 9 H9 8=H= i~H|}xH 8cHxHX8`H,v=`|}x@H H= <Ɂ8;xL1H =H<`8c;H}|}y;@8x8H ,@8.;H(xH =|~xHx;x8H ,W8|@(x8/H |~yA(|A 8HxH|dxxH =   ,@=  ~,AxH.|}xHxH 8cHxH =`;1}H 8cHH K?}~H a8cHq~H a,h|}x@P8.H e|~yA@H= i~HHH Kl8`H)=   |~x,x=`@=  ~,A 9+1 ,A8\;=  1x,;@ 8#H8$ 8H8`H,[8|}xA88Hp8`Hu|}x8HT8`HY,a|}x@ 8H88H$8`H)|}x8\9 =1<})I8|HxiH8xDx};x~xxHe;P|zxHT!PT8 | A,| x80|x| T@CxH!P|zxI9)!P8|I;{,@(== 9h2=@ 229*2 i28; ,@=  ~,A4Cx8H|}xCxH1xHxI|zxxHO=HCxH|~xCxHx_=`9+2 2 ICx|X\`!dAhalptx|8!N !|8`L1HKΑ8`|8!N !P|a|eyAH= i@<8;L1H=  ~,A=  0,A8 0H= $,A,A= l;,A`|9?||p})x8|KyLA<}|ii !I}*Ii` !@| }*y@ , @7L@|&T?|9?})x8|KxA`|,A<`8c=,H ,@@7@H4}|ii !I}*Ii` !@| }*y@ , @;|@,A0P8}H|~x;a|xH  8|H ,@D|;T@.x= i@<8=4xL1Hq|A xH}=  ~,@?}$H 8cH$H |~xH |}yA(9`}= , @;,}~@= i@<8=\xL1HxHHl?0,A= ;=dH = ;== i@<8;xL1H=  ~,A=  0,A 80= 8 |a8!N N !|=  ~,A=  0,A 8 0=  \,A= =`I` d| @x=  ~=`,kA= 8=H = 8=<8=L1H =`+`=9)8+`KA9@ = =`IKH$Kʍ8`L1HOMH= 8 0|8!N = 1c|  N !a |cy;;L8H0T>h #i};Ih #`||KyA4cLA,@Ȉh -#i};Ih+#`|};yA4c}%KxLA\HL8( ALW~W8} xW88} ||3x4c|p}H}'`YA,@h| x9 #!_}>8}gH8}P88|;x|Cxa 8! N !|a,048<D|~x|#xy|+x@4,A= 8>H = 8><`8c=L1H H,@= 8`-H #y;8;|AP8xx8 L1H=;808xx|8 L1H |~x|#xy@,|A= 8>H = 8><`8c>L1H D|a,048<8!@N =`Cakރ}hX} p}kp}iXPU`(4| PTH,|ZT 02}@PP}JZ= b} @Pa)M}(H} p})6p}+HP}+KxU`(4| PT:|ZT8} @P, e@ 8 ,L $9)$e9keN !|$(,4|}x|#x88 L1K!a<`|(|Z}ip|.p|(PT 6|PT:}`XP< x8>}f[xaL1H 4|$(,8!0N !|$?|~x,|#x|+x@Ha|`x}}>})})PU (4| P?T:}|JT8|[֐=|~K֐|,@8?9)?$|8! N !|$(,4|}x|#x88 L1Ka<`|(|Z}ip|.p|(PT 6|PT:}`XP< x8>}f[xaL1H 4|$(,8!0N #, A$8 ( @ 8`N #, @8`N !|}&(,4$|#y|xMA 8x88 8H M,A0,A$! ,@A~8`H8`4$|(,} 8!0N |cyA@c, A48 9+ 8|!)9 })I|Ky@, _A 8`N 8c,ATCUK>8 9+ 8|!)9 })I|Ky@8 ( @ , _@,@8`N !| |x|#xp @,KM,@,A0K ,@ <`8c> L1H 8`H8`| 8!N !| |x88L1H |eyA0p8A 8Tf,Ax8L1H | 8!N !|<`8c>@8L1H |cy@(= iH H |cyA8L1H H |8!N !||+y|#x|3x@ ;|dx8`xH ,@$,@(x8`8xH ,A 8`H@;x>8`| @(>| @ ? |Jx!c|k|8!N !| $(,4,|}x|#xALH )|xp|P|p| 8qk|[x,} &U)/})} HH8T}?xH|+x;,1\}*|&T7}*9A<}>Kxx88L1H ,A;,|&T79@x1@}j1_}*}*X9AHxxH |x,A0,A= iH |A xH xHx4| $(,8!0N 9`| @H= I}#X, @ 8`N })J| R.Tt,@ 8`N 9k| A8`N !| |}xH E|x8HQ|~xxH =8/|}?9`.8 i8`x8H );,@T&h@!_xH5x| 8!N !|`!dAhalptx||zxH 8cHDxH |~x,/@ ; /H; .;}~;Ui>, Ai /|})U)T}*9A(;|h /})|TU)| H9@x|;,A\H;|,/A;|A`k1@}j1_}*}*[yAD|~|8cH x,A$xL1K,AX,}~A, @;H, .@},A,/@cx8Hx,.@Ԉ!@}*h/!@| | KyA,A xL1K,A7A|,/A 7@|~8c8H x|p8}~KLT >, @> x>,/@,/@>, /Ax,/@,/@,/@TU >,@H@xH|u8`H4;xH 8cHxH |}xxH|Exx|`!dAhalptx|8!N !|048<D|#y||xA,/@$xH u8cHxH u|xH,A\xH I|~xxH =8c|~HI|xxH 5|~,/AL8/|;9 }?|~H0xH 8cH|x8.9 /?8xH xD|048<8!@N |cyA,@ 8`N ,/@ 8`N ,.8c@Lc!K}*Yi`/!@| }*y@, .@$h /!I}*I!@| | Ky@8`N !|8/H -1#| |x|8!N !| |xK5,A x8/H |cyA 8cHx| 8!N !||}x,~@ HHxH ]8cHmxH ]|xx,/@xK,A xHxH 8cH)|~x8H ,@,= iL1H!xHyAxHy98`HxH ,} &U)7h/!`| | H9A8/|8c,.@$9?h/||p})x8|Kx|~xH uxHxx|8!N !|$|~x<`8c>LH|}yAxH |xH;,@hxxxH 1|}y@P|h /!i}+I!`| | KyA0<`|8c8H == 8~8i Hx$|8! N !|$|~y|#xAxH =|A 8`H|yA$|9=h:||p})x8|Kxx|H ;|h :})|TU)| H9@|@0|,A 88`H|x8H(P8}H|x|xH 8|x$|8! N !p|c;, +@ ,@<`8c>TH!HU`>,-@ ,@<`8c>XHHX=  Uj>}jR| B.p@8iI- }'Ii@+ ||KyA #})J| B.pA Hr |x,A xH 8cHxH H8`|8!N !|$=H=`9J, 9k= iH@h8` H%;=@?j;>` = 9)>d(} Cx8` H=@= j 9)>h#j }i[x$|8! N !|$?8L1HGԀ$|8! N !|$?,@8`H ??8}ȐT:Ha|`x|xH ,~@= I1}8KԀ9|@8= 9)1]| x9 | P.|A9|X9)A=  |@d=  |@T,@(<U :'5}jJ | I.9JA= =` Ȁ 1=@*9)*= I=`9k1 |8Ah=  9|@T}f[x| x9 | P.|8A9|X9)A=  |@jU:}j.]ȁ&*$|8! N !| = 9)1 |x|A4 |A(?,@ Kـ,AHD8`H@9`| @0=  ȁ^9 | @.|A9k| P9)A8`| 8!N !|Aa $?`|}x,xA ,A=  Ԑ{H?|,@ K|,A,A8`HlTc:H%;Ԑ{|@4?@;z;|X.H{́;|I.;|A,A=  Ԑ= ì$|Aa 8! N !|$?|}x,xA ,A=  Ԑ|H?~,@ K~,A,A8`HpTc:H9||@8<<<9@&ȁe| H.9| Y.'9J|HA,A=  Ԑ= iЀ$|8! N !`||x8`Hi|~x,A$xH 98cHIxH 9~H8`H1~8x|8!N ,M T>,'ApL1HH7h!~i8Hŭ;`|zy;;@8`HӭwcHHCxH >7|yxiHeɁwW hVH5@,9)5@xAX?, A| @(xDx%xH e,@|Ȯ, A, @, A>, A| @(xDx%xH ,@|Ȯ, AlxH |x|A,,A||H8|#xcxH|{x|{xxL1H x~óxK|y@,A8|H8`HA|{x87iD| !$A(a,048<8!@N !|$||x|#x8`Hѽ( 8 AX=`9k>W:}K.= 9)>}JJ}IN 8AH@8AH48H(8BH<`8c>xL1H=H 䱀$|8! N !|Aa $|{x|#x|+x|3x8`H|dx8d \8`KU$|Aa 8! N !| |~x,A<`8c?88H-Hd,A,AL1H5H,A,AL1HHx| 8!N !| |x?xi,Ap @ ,;A(xKHD# ,;@$|~xip @,AKU>ix| 8!N !|= 8 H)|dx<`8c?0L1H q|8!N !|8= =`  L1H= i|8!N !|$|y@<`8c?4L1HH=`+?, A8 H= iL1HapA<`8c?8L1HUpA4<`8c?<`8c?L1H1H<`8c@H <`8c@xL1H H<`8c@L1HH<`8c@L1HHt<`8c@H`<`8c@HP,A<`8c@L1H<`8cAH(,A<`8c@L1H}<`8cAL1Hi$|8! N 8=`=   N !|$||x<<`8cAHL1H?<`8c8L1HA}L1H<`8cA\L1H== I܁h9k|Rh|#, @ #iL1KH=<= gI9k| P<`g8c@L1Hɀ$|8! N !`|}&= |hy8=`= =@ܐ |#x|+x A$,A<`8c@P}CxL1H<`-8cA`L1H@= 8=` H,<`8c?hL1Hq=@=  i|Z =`+9)+A= 8iA\H = 8i@L1H), @?iHxL1K5=(=@9)=`<`쓫ܑ(8c@L1HU= @, @88H }x|} 8!N !| |x<`8c?hL1Ha= iL1HA,A$,A<`8c?0xL1H)| 8!N !|$|x=  |A4=`+9)|H+@?= }H},9@@ =`8 +7| Q9JA=`+8| QkL1Hu$|8! N !|=  ,@= i}`Z ,&A<`8c?dL1H|8!N !0|!Aaēȓ̐Ԑ ! A$a@(!(A0a8؁@ءHPX`!h|}x9A89 9a!aAH %? |~x8~L1HyT.A,;`?,A,%;@;;@,@;;H,d;AA,%A$,cA<`HT,sA$<`HD;`%;H8aUi>8 (AU):9k|`JaH$( AaaHa8xHdaUi>8 (AU):9k|`JaH$( AaaHa8c8p8 HN1|xH ű|~xHta8aUi>8 (AU):9k} JaH$( A!aH!8  |x;H8cAdL1HY3}83|}89AH8~L1H|x|`xL1H š,|A xHC9,@= =` K8|Q|!Aaăȃ8!N !| ?,@(8c?Tc2= iHm= ~H8= i=  |k|A8T0xH~| 8!N !|L1H u|8!N !|$|yAp ,AH}( A8=`9kAT:}K.= 9)A}JJ}IN ,}H}Hـ} H?iKyHAH~Hm,A(}H}KExHAe,@xHAUH}KHp}K }K} HX}H9}HHD}KH,}HH$HaH8}H}KxH@H<`8cA88HExH@$|8! N !| |yA<,AK݀,AK̀ ,AH!xH@9| 8!N !| |x,AH@xH?| 8!N !|$|yA$x}KxH?,@$|8! N !| |~yA\x ( A8=`9kAT:}K.= 9)A}JJ}IN H?-KxH?,@| 8!N !| |x8`H,|~xA xH|`xxH Hx| 8!N !| |x,AH>mxH>e| 8!N !|$|~yAH~;|X@8;>| ,AxH I>~;|XAԀ$|8! N =  ~,A<=  8,@,= ), A ,@)i N =  ,@= i@N = iN !|a $||x= 8 8` K1?`|}x8{BL1Hۥ<`8cxL1HEx88x8H||xxKQ8{BL1HۍHU=x$|a 8! N ( A0=`9kB T`:}K.= 9)B }JJ}IN 8`N 8`N !|$|}x888H=xK$|8! N !| ? ,AKq8 | 8!N !||dx8`8H |8!N !|a $H u?|~xH e;|ex<x8BPL1H |@`?`?x88L1H },A0,|<A 8BpH8Bx8BdxL1H a;|A= <i8BL1H =$|a 8! N !| <`8cB8L1H |y@x8H xH H(@$H McH |dx<`8cBL1H=| 8!N !0|!Aaēȓ̐|vy|+x|3xA=  $,@=  (,@|=  ,@lHy=  ,@= ɀ=  62}vU7}v9Aa ;p@HvL1K,AT2}VIk2|Y}Vy@,A(aKH 8cH|}xaK|dxxH H|}y@l,;A<!;"}6IT|H9Av L1H",TT8A,9=`8=@=   ~:8= ,=` ~ ~= A 8H8 xHH݂,AHCHHH5cxxL1HJa,A$v L1H= i8`H,A ~óxKQ,A=  ,@Kɂv ,A4888Ha|yA 8`H Mv K ,A<,@,p@ `@v+a)@+=  8`,A<`8c8H ,A= |H a88Kq|}x,A$8`H,A= H|}xxH qcxxL1HHHN,A 8`H a8H,@(xH],= iA"|vH=  ~,A xH˹HKpA,A0`aexx8Ky|}xH@aexx8L1Hu=  |}x,@= ɀxH8vL1K,A v ,AL1H1= i8v 88H|~yA(?}L1K8K8`H?,AHq|zxKM߀H;@? ,A HE|yx K!8 H; 2}62|}6yA<`8cBL1H,A<`8cDxL1Hӕ,A<`8c$xL1Hy=  ,vUAHU( A,=`9kBT:}K.= 9)B}JJ}IN =  08`@HU;,A8`@Hq",A 6, A ` pA6 ` vdxxL1H-q|}xH|y= i@!\"}VQ2|Y|P9AX?!0| ADa8HՂ,A =  ~,A~0HȕH~0H|}x,AHUkj|H9A=  ~,A$=  ~,@=  ,@$= i2}V2|Y|P9A= H 8`HH,A6 ` vL1H=|}xHL,A6 ` vL1H |}xH,A6 ` vL1H}|}xH,A6 ` vL1H#y|}xH,A6 ` vL1H#m|}xH|,A6 ` vL1H$|}xHH,A,~óx`exx8HH,A$6), A ` 6iexxKU|}xHĀaexxL1H9|}xH,A6 ` vL1H$|}xHl,A6 ` vL1H'|}xH86iL1HAY|}xH<`8cB88Ha,A Cx888HCxK!,A #xK2}62|}6yA<`8cBL1H),A "?H =  ,@ =  |!Aaăȃ8!N e}`XPc%} HP, #L 8 =),9)B@#L 8N $}ICd%<}+J`B?| #L =)9)8 #N !|!$A(a,048<D;|}xxL1Kx?@?`?C9cZc{cރ|A|AW8|x}+ؖ}kp})np}+HPT8J||W8|}|||x|p}p}@P|p|ؖ|ƖpU(4|0P|PT(4TH,|B}&HPT 02U)H,W8})2}`XP}J|np|cp}JU 029|8PA}kB| P|:, |(P|2|#x P@=@=`ff9aJakfg!| PAU 8|J|JHx| X})p|pP9, @,A|`H8`D|!$A(a,048<8!@N !,8|#x|;xA<`||2|p|.p} PU 6}hXPUk:8=ff|;x|0P9@afg|`} p|p| PT 8})})})@P9)0|y}?Q9J@|;x9J|P,A$|P} Cx|)9J}+P8, @8m|)88=ff|;x9@afg|@|p|p| PT 8})})})0P9)0|y},Q9J@|;x9J|P,A$|P} Cx|)9J}+P8, @,A\9@8.| |)8AD= 9)3 9 (9J}$K9)0}#)h| |[|Y8| P9@A8s|)88|)|+x8! N !|Aa  !$A(a,048<D|#x|sxx|+x|3x|;x}Cx}8Kx}YSxAHH x|ipU)6}#JU)2;@xH;|}x|#x,AT,%@,@8;|A$;@|@xxHш|}x|H,%@<;{;|A ;@|@xxH|}x|H,P@,'}(B| R.9`p8A,9h,|&T/|| }`8U)| Kx,l@ 8T>hR"I}2IhE"@|}2yA}d[x8a~x~xHL,U@}d[x8a~Ƴx~xH0,SA<`8cC L1HH}d[x8ax'xL1Ku|A ;@|@xxH|}x|}8H ax,|x@8<|8CH~cxxL1H ~cxH xH'iD|Aa  !$A(a,048<8!@N ! |a!ēAȓa̓Гԓؓܐ|}x:P|#x:X|+x|3x|;x~x~xH U;:a8`8H )8`~dxH ;a`WlxEx&x~dzxxK58|~x:`tp~xcxH W:8`~xH ;!h8`~ijxH ;Ax#x~xexL1K ;#x8p8tL1K5~xcx8L1K|}x~dx~ųx~xL1K|exxCxL1KCx88L1Kcx88hL1K|}x~x88L1Kq|exxxL1Kx88L1K#xDxxL1K,|xA= 8CLH <`8cChHS|dy@= 8Ct,A<,A0= ipt!AL1K-x|a!ăAȃãЃԃ؃8!N !|}&!AaĒȒ̓Г!ԓAؓaܓ|}x|+x|#x|3x|;x8aH :8a8H ~xH 8`8~xH yTAЀ,@Ā,A=:= ,|@;xH x,@,<`8cCL1HAHHYHҙ8`H!y>`| >>?;a>-A8iK%-|xyHl!8sC~ IL1H}8wxL1H!8v0xL1HA8xxL1H8xL1Hcx~x8L1H 8uͨdxL1HA =), A ` =i~$xxxK A xH ~H uxK8sCL1Hف=,A,@,@X1]| ~J9A`x~$x}{x'xxK,|~xA xH ~x8`8H x|!AaĂȂ̃Ѓ!ԃA؃a܃} 8!N !|!Aa $(,4|}x}# T,||#x|+x|3x|;x|kxAA, &A$, ;AH, A, AH,@ 8`H,&A`=``+~, A$=  x,@=  <,@ =  ,@`x8exFx'xKـ|xpA T=i,A A`xexFx'xH,A8c,A`}+, A ` ?,AHε=iK ,AHΙ=xiexFx'xHLxxexFx'xL1K|xH,A,`xexFx'x8K|xH؀c,A`}kKi=  |x,AH}!}(K i@!||H9@ iI! }(I1|}(9A\,A +, A ` }kK|xH( <`8cC88H;8`Hx4|!Aa $(,8!0N !|!Aa $(,0!4A8a<@DHLT|}x}8K ,@L=  ~,A(=  ~,@= 8 8`H8`H8 $Hx=@* >9)* }}H|{x8wCL1H~x<`8cɜdxL1H1pA= ` ,;A? ?@> >@?:`>:,AHՒqt>~óxHOpAL~,@ ~,A8`H!H$8wCL1HA8 8`9)8 H} K||x~?,@Hʵ,AH=?$, @=`+(, A8 , (@,@$=`+ cx9)+ K<`8cCL1HYxT|!Aa $(,0!4A8a<@DHL8!PN !| |+y|jx|#xA|+x|3x4A,@= i <<8C}ESx8CL1H A?i,A@,A4,A ,A H QH8`H8`H8`| 8!N !|$|x|#x|@X??,}?||H@$8` H A<,|K|IH8` H !;|A$|8! N !| !$A(a,048<D|vy|#x|+x|3x@= 8` H Ht,A=  (}`H9`}jp}IZx})PP})p8 ,}iH8}+xA|[} YP1\H;A|} }iP1K}`H9`,@}|[x, @T,c@D,@4,'@$<`|A ;@H(;@H ;@H;@H;@H;@;`|x@>~x;,@ ]xHx8x~ųxL1K|8c|c@ |xL1KxK8` H 1;{|AD| !$A(a,048<8!@N !|$(,0!4A8a<@DHLT||x<`|#x|+x8cCHF1|cy= ;$A(,A88 8H |`xH8<`8cCHE|cy= ;ɀ(A$,A88 8H H8`Py~= 8 ,;A?i,A@,A4,A ,A H YH8`H8`H8`|L#|&TG||ix,8|Kx@, @T,c@D,@4,'@$<`|A ;H(;H ;H;H;H;8>>?`?@?? xxxxL1K{8C~xL1H %{H 5,AH8`L1Ha,@8` H 8`Ht8yCHD-,A8K,A,@ |@ 8zCH4yA$!9), !A,@?iT|$(,0!4A8a<@DHL8!PN !|$(,4ac8K5,@ 8`HT=`+ 9)+ GgJAHxa L1HSa a,!}(|&T?|KyA$A a Ka8`H= ɇ|H<`8cCL1H<` 8cɜL1HMpA' ` ;?8}8L1HE<`8c|dx8lL1H-=9)=<`8cDHBI|}y@ = ;D?,AH¹a xL1K|}x,AH‘,AԀaxHFapAT=  ~,@,=  ~,A= 8 8`HH<`8cCL1H8`H<`8c8H ,@g Ka|~x=  ~,@HM=  ,AH=`+$, A8 $=`+ <`9)+ 8cCL1HYx4|$(,8!0N !@|!Aa|zx:8~iH ,A(:iKz|{xkHɁ:iz8H(||yAxHH8`HU=@Cx! 9JC=` 8;9:<8(!,SPނ[XYZ\]X!\H!L D = PD.9)D xyz{})Q>}) |}~x9!xPSIiPP݂h9!hQD.PD.;`IiS>S>N 8HtcHl! #HXHP(!,#H<H!L#H(h!lan#cH |{xxK!; <`T88cD L1Hu<`8cxdxL1H,Ah~?,AH,A8>V?8~iH U,A(?iK|}xkHe?8H&|~yA8~,A,c,A ,A8H|}xH8`H||}x8,A 8 H8xdxHh`x2HxK,A4|2||9A`|K5|yxH,,AH,@؃,@cxHY<`8cD L1H#x|!Aa8!N !|8L1H=|8!N !|8L1H|8!N !|!Aa $(,4=`+ |~x9)+ ^; ` >q(A> ` h!(?`!H!~K|x~,@H1|H9@!|(9@p??,AH!~K}||x,AH=$, A8 $H$=`+(, Al8 , (A\=`+ x9)+ 4|!Aa $(,8!0N !| |x? ` K,@D=  ,AHE,A`p AT`H@=  ,AH ,A p A` K=| 8!N !|$=  8=`,9kD@= itA= I=`| P @cHo=  |x,AK?8iHx|~xxK,A!|hH8`$|8! N !|Aa $|~x,Tz@ ~HD,@~L1K|yAH ,@,~L1K|y@~L1Ky|xH,@>8i H|}y@ ?=  ?,A~ Dxx8K> xiH5!C|ATxH HH,@ ~ ;+ ,=@4 ,@( h =!I}*Ih!!@| | Ky@ + ,=@ ,@;>8i H|}y@ ?>xi ?H|{y@|=  ,A~ DxxgxK> xiex8H!C|AxH|A0cxHH$<`8cDD88Ht;8`H=,A !_x$|Aa 8! N !|=  8=`,9kDX= itA= I=`| P @L1K!= i|8!N !||dy@ = 8C<`8cD\H:ɀT<|8!N !|$|#x|+x1 }HI1 |Y}Hy|}x|3x|;x@ ,A|8`H%,@PHxxL1H= 8 xx888Hd,@ 8`H 8`H xxL1HH18`HHx888Hd,A 8`H$=  ||@ 8`H = i$|8! N !| |yAP?8iH|cyA8p A,x# p A `0 c,@| 8!N !|}& !$A(a,048<@!DAHaLPTX\d=  8; ,= |zx|#x|+x|3x) 9:A= I =`| P @= )CxK,}CxA( TH:~i~K1}LI2|Y=`}Ly= 4;|x@ ,A9`2}5Y !| }59A@,@8,A0(, A$), A h%||p}k8, A?}H 8cHrH |px~$xH-,@T~cx`@~DxL1H;,= =`4:@:`A ˇxH88 xH,~cx~DxL1H H58`L1K8`Hp @,?zL1K=zHgݓH zH\|{x,@T-z@ ~&xH8~dx~ExxL1K|yxAH -8`L1K]#xH[H<`8cD`L1H=  ,A cxK;p 9@P=  ~,A(;iH |xx18})I8 }H8}.x,@;iH1|ox<`8cɜdxL1H=  ,AHjx,AJ ,@;.iJ}&Uh%!| J|@9AAl,=`A= 9)DpH = 9)Dt+t?8= =`it 4H|`x,|cx8&L1N!|yxH`=  <1}l}u@9A!},"|| H9A,@,A!3"}5I!| |H9A,@x<`8cDxH/|}yAd;,e9@$<8DxH ="},s:@<x8DH !~xH i=  |wx7A>W:4 }>H., AĀ ,@--A4}H }? |ex|H8`@`}c[xxHHA }xHH 2}}cxH4}? 8`|H@}c[xx~xH !|l,@4 }~H. |@`7;@(=  {,+,??t&AH } &U)!| y| H9LAtHE|xx=1}l2|yH8}ly= I48AA|H,A<!3!},IT|H9AzL1Hl,@KMH Ax}{xcx~gx~Hx~)xL1HH,cx}{xxL1H,|yxAd,@$L1H,|yxA= 8 = i~1}Lq2|Y| P9AH=  <,A8HHH0,@ ; H ,} &U)/})8 )H8}9x#xHV,&H<`8cD`L1H?8<`8cDt=`=  4ktHِ}8x8H|i})p8 |cH8|cxH,&@(?}H 18cHkAH 1|py&Z!cx~fx~Gx~(x~xL1H EaL1Ky A ~xH1<`8cD`L1H!#xd| !$A(a,048<@!DAHaLPTX\} 8!`N ,A A,AH ,AH 8`N 8`N 8`N !|}&Aa $(,4|3y?;M_|~x|#x@L= 9) |H@)!HA, AsAA ` =`+89)+8H=`+<`9)+8c8H yu,A= |H a888K|xA, @<`8cDL1Hx|a8!N !| !$A(a,048<D=` 9kT|X8<=`~a|#x|3x|;x}Cx}9Kx}^Sx ~;@$=  xhT3 }8Y|Kx= 8 xHC,A HHHMHHxxL1H q,A xKcx888HT,A 8`H y ,Ax<`8c8H w,@= iH y,A 8`H yua H8L1Khk}xpZx|P|p| |c8U)|cKxH y5HCxx'x9L1KiH y!|!Aa $(,4|{x|3x|#x|+x|;x}Cx888HS|~yA(?}L1KE8K8`H= 9)|H?@xK=  ɀ HKM,&A(<`8cDL1H<`8cxL1Hu,= 8 A xdxx8L1KH$Cxdxx&x89L1K1|x A= <`8cDL1Hy= i,AL1KA8x4|!Aa $(,8!0N !|=  <,@48`8L1H58`H8`8L1H8`H|8!N !@|}&a!Aađ=` |uxu,}WSxVr|#x|+x|3x|;x}Cx}6KxA<x8/H sI,A(<`8cDxL1HYI= 8 HxHF|}yMAH@xHC.|T} &U)|H9A,@ 8`H$CxH t8cH`DxH vxH,@-HA4V} &U)|H9AcxL1H_,@KK=xxL1HA= ~8 ~,= 8 xA ~óxK,A,cx888HPE,AH 8`H u-A = ~@ <`8cE xL1HW8`H u~x888H5a= |dxLxHH txxL1H H 5A xHā|a!Aa} 8!N !|H= 8 HHYHwaH H>=  ~,@ 8`K|8!N !|!ԓAؓaܓ||x|#x|+xH qH q,Ad8`x8H q,@,T&,@@<`8cE$xL1HVyHH qexHR,@8`Hx8L1H r|yAh;axxdx8PH s|}xxH py,@ 8`Hl@4cxxKp,A <`8cE8xL1HU8`~H8KHxxH1q|}x;]8xT:H]y|~xA W:}  9)7@= i~~WJ:8| .~+, -@ 8 =  ,A8`r8+Hs?`@,AH?L;|@(;;@;|H.;HL|A= i@H?}K8= =`=@ILˇ@*0K<`8ch8H n|!ԃA؃a܃8!N !|$|#x?|x~Kj,@8~,A\=  ~,@L= 8 8`HH4H|cyA,p A <`8cEXL1HS8`HxH-8`$|8! N !| |cy|#xAH m,A xH mـ| 8!N !| |x,|#xA88H oq,@<`8cEpxL1HU,@ xH mm,A,ATx8H o),@<`8cExL1HT,!~}+|&T7}+yA4xH mH(8`8H n,@<`8cEL1HT}| 8!N !|ВԒؒܓ!Aa쓁?0|wx,|#x@8`L1H`0?4,@8`L1H`m4?@,A::;x;`,;A,=A;,@,=@ }>P;i,A$,~ٮ@,(@<`8cEx8H mi,@xH m 8|cHYx|xxH n8 ||ٮ8cxH nxx8H,)@,(@xHy|cyAڀP`H<`8cExL1HNň,)@8,@,8(H xxHڀP`8=|ٮ.;,@<`8cFH|cyALp A@,A4<8F x88L1Kg,AxH}EHH<`8cFH{|yA4<`8cFxH=``9 +PxH<`8cF8H?= `<`8cF$HH i}<`<8cF(8F0H = `;P<`<8cFP8FXH = `P?@?~,A,= <`8cF`H = <`8cFdH <`<8cFh8FlH <`<8cFp8FtH<`<8cFx8FH`P<`<8cF8FHɀ`P<`<8cF8FH`P= ~<`8cFH`P>~, A<`<8cF8FH H?H<`8cF8FH58`L1H.q<`8cF8FH=  ~=`,냤@H)H|~x<`8cFxHxHHYH|dx<`8cGHH<`8cGH|cy@<`8cG H|cyAp AcL1H>=  ,Ah=  ~,A= 8iG0H = 8iG@Kr=?|~x<`8cGPxHxH<8Gh8}G\H8}G\L1H:I= =` k<|`L1HA=  ~,A<`8cGlH|cy@<`8cGxH|cyAp AcL1H<=  ~,A4=  ,A$<`8cGL1H:<`8cGL1H:aHIH1|ЂԂ؂܃!Aa상8!N !| = ;1,@ Kɀ| 8!N !| ?8GH|cy@K|dx8GH`| 8!N !| ?8~GHi|cy@(= ;1,@ K8~GH9`| 8!N !|ptx|=  ~,@?>~ ,/AH?>~ ,/@ ?}~H f18cHRA~H,.@\ ,/@P<`8cFH |}xH e||x~~H e||8cHQ|xxH g倞~|8H gH= i~H4I|}y@~~H3pkAH<`~8cFH|dxxKgՁ>~|}x ,.@Kd|y@PxHP= ;1,@ KꙀH e98cHQIH g9|xHxKi|xxHix|ptx|8!N !|$|x<`8cGH|cyA88 8H dH8`|,?T@ 8H ,@<`8cGL1HI8T=  T9)T, A)89)0! H,cAH=`ffakfg}hX}p}kp}`XPUi8})Z})Z})@P9)09k08a!  H,A=@QaJ}HP} p}J.p}IPP}CSxT`<|T (4|J|=`ff|`@Pakfg}cX|`p}kp}`XPUi8})Z})Z})P9)09J09k08Aa !  <`8cG8H=``9 +P$|8! N !|8`K=|8!N !|(,4H bq?8 8Ha|x8~GHa|cyAT:8~GxH=`B4|(,8!0N !|048<D?~188 H?|x8}GH;1|cyAT8}GxH`B|>1|HA88 H|x?8~GH|cyAT8~GxH]`BD|048<8!@N !@|= ?08}GH8}GH= |~x8aH cu8a8.H _|}yA8;x88H}xx8Hm= i88 H|}xxx8HE= i88 Ha|}xxx8H= x8H <x8F8H`|8!N !|48<D|#x88 H|dx<`8cHHx88 H|dx<`8cH HD|48<8!@N !| |x|#xH u|cy@xxH]| 8!N !|}&Aa $(,0!4A8a<@DHLT|#x; ||sx:;@:@-:;A|@4H.H;,Ax-:@xAx~hL1N!,A@;|W[:A ;P#xxHKU;P|yx:x.W@:~Y.,@:|:AX#xT|Aa $(,0!4A8a<@DHL} 8!PN !|$|}xH|dx<x8-08H ^1$|8! N !|cDk+|`HQ@ }c[xH \Y|8!N !| |dx8`K|yA xKAx| 8!N !|= i0L1K|8!N !|= i4L1Ky|8!N !|}&$|~yMA,;|.,Ap @H-;@$|} 8! N !| |x?q+ A0,A$<`8cHL1H \xHHPq+A,ALx8HAH<,A4<`8cHL1H \x8H)<`8cHL1H \| 8!N !|$|}x},AX,A >TxH Q8cH=xH S= 0L1HF=`+8`>}+Kx= t| A\8 |A4=`+t9)|H+t@?= t}pH=}p= =`ipt|c| PH R-= =` pK88|Qx|8!N !| K |xH|~x,AHр`x| 8!N !|a쓁|{x8`H<5;|}xcxH P 8cH<dxH R } cxH O8cH;dxH Q= 0L1HDѓx|a상8!N !|$L1K)|}xH}`x$|8! N !`||#xp @A4x8H;|x,@ 8`H~xHHH,A<,A xH N8cH:xH PH8`H:H8`|8!N !|$= |#x|~x0L1K|y@$xL1K|xxKH? , A(p @x}(xL1N!Hp A<`8cHlxL1H05HTxxK|~xp A 8xHxHH,AH=  ,A`p A= 8 Px$|8! N !|$|xHU|~xx8HE,AHI`Tx$|8! N !|$= |#x|~x0|+xL1K |y@xKH8p A<`8cHlxL1H.Hpp @xK |xxxK |~x,A x|xxL1N!HxxH5,A xH9x$|8! N !| |x|#xK|cy@xKH8p A <`8cHlxL1H-8`Hp @K%xH| 8!N !|$|#y|}x;AT ,A$?|xxL1N!H?xxH ;,@x$|8! N !| !$A(a,048<D|#y|{xA$,(@$8x8H|y@ Hx<8HxK|zyACxH,|xxH;CxKe|A xH5;,A #xH,;xA>>:,[@x8H|,]@,=A<xcxK5 |x,Acx|xH#xxH,A\h *!i}+Ih@!`| | KyA$,@<`8cHxL1H+IH|dx8HM|~y@x8wHL1H+!H;xHxp @A 8txcxKe |x,A x|cxxL1N!Hx#xxH,A xHƥ;Z,@xKcxD| !$A(a,048<8!@N !| |yAhp AKH(p AHH,AHHp A= 8 PxHՀ| 8!N !| |#x|~xx8H|!c}+h]|T|KyA$<`8cHxL1HP8`H|h *!i}+Ih@!`| | KyA$,@= ~0HHH8xH|dy@ <`8cHxL1HO8`H~H|cyAHy8`| 8!N !|$|}xK|y@ 8`H8p@,A He= 0xH%8`$|8! N !|a,048<D|{x|#xL1H9||y@ 8`H,,A_qHA=`+P9)+PqHA`= i8| @La@H E=8cH1MH G=xL1H:9H=|HixH,AL}H D8cH1H FxL1H9pA`=`9 +PcxH D8cH0dxH F|}x|HxHxKxHxH8`D|a,048<8!@N |ky8`M = k 8}cx!C|jN !|!Aa $(,4= Ip, A= =`)8 t| @| H,A;? ?@?`,A 4H08yFxK|~yAD>, A0; iT, xK;}?., @xH;,@= =` pK88|Q4|!Aa $(,8!0N !|$|}yAxKy@$|8! N !|<8H(L1H8|8!N !`|||x8`H.q|}x8H CxH BE8cH.UxH DE}x|8!N !`||x|#xK|}y@TxH A8cH-xH C= 4L1H6|}xxL1K-}|}x8 },AK},AxH }H]= a@ i, A a@!pTA= 8 Px|8!N !| |xKm|cy@0<x8HhKQ=  ,@``| 8!N |jx|#x9`8c| ,M ,[@ 9kH h]||p9+})x}`8| Kx, @N !| |x_8`UK>8 9+ 8|!)9 })I|Ky@ , _@UK>, A, =A, [@0|dxxK9|8c,]@p|,=AhH`8 9+ 8|!)9 })I|Ky@(8 8|ii_! }(I|KyA8c}, @l8`| 8!N chcTcN !| |dx<`8cKKE|yA xKx| 8!N !|= i0L1K|8!N !|= i4L1Ku|8!N cpchc |`N !|Ȓ̓Г!ԓAؓaܓ|dx<`8cLKi|xy@ 8`HxH; 8cTc:H*|wx,A:=;@;`p A8`8Kr|~xHp @p,Ad;9H =||xxH =8c||H)|}x.H ?;{|}8c~xH ?qp A xH;Z.,@\xHW):8| .~x|Ȃ̃Ѓ!ԃA؃a܃8!N !|}&ptx|l|}xK;|xxH <8cH(xH >|~x|,=@K |cyA4pA(<`8cHlxL1HxH8`H}>;x8~H :e,AxKEHxH !|x8H|}xHy,||xA xKzexH=x-H ;|}xAxH ;H8`8c|}H'|xxH =8=|}|9 #A$,A8cxH =xHxH?<,@8`H'e~<<xH%|}x8~.| ,=@lxL1K}}>.|x}) ;,A xH 98cH%xH ;H8`_x H;|.,@T8`|Aa8!N !| = <|x,8`AxL1K,@X= D,AxL1K}|cyL@0=  8,A = @,AxL1KE| 8!N !| |x,AH8=`9 +P| 8!N !|<`8ch(vh||p9:;})x|X@8|Kx>? @-;`;;YL}@xLU$:;lH xL88L?h 0? K|~yA,At?;@;7lyh8 | A 8 }LT:lH U|h}L|.]LUi:| Q.9k}HSxUi:IA.|h;|.,@xH= i4K!|~yA,At?;@;7lyh8 | A 8 }LT:lH|h}L|.]LUi:| Q.9k}HSxUi:IA.|h;|.,@xHY= )@, AH ,AKxKM~,@,A ,AxL1H Hx| 8!N !|$||x8` H|}x|KE}|H!}x$|8! N !| |y;A$xL1Kq|~x,@,A ,AxL1H!Hx| 8!N !p||x8`HՀ?_ |~x>~^ ?> ( AP=`9kIT:}K.= 9)I}JJ}IN H &Q8cHaH (Q~Km~x|8!N !| |y;A xK|~x,@,A ,AxL1HHx| 8!N !|$||x8`H|}x|K}|K}| H} x$|8! N !|$||x8`H |}x|H}x$|8! N !|$||x8` H|}x|K}|L1K}x$|8! N !|$||x8` H=|}x|H}|H}x$|8! N !|$||x8`H̀|}x|H=}|H1}| H%} x$|8! N !|$||x8` HQ|}x|Kِ}x$|8! N !| |~x8`H|x>?~ ,AK ~,AL1KH8`~,AL1KH8`x| 8!N !|$||x8`H9|}x|K}|K} x $|8! N !|$||x8`H |}x|KՐ}|H-}x$|8! N !|$|y@ 8`Hp8`H Q?_ |~x>^~ ?> ,A Kݐ~ ( A=`9kJ T:}K.= 9)J }JJ}IN L1KHЀL1K HL1KuHL1KHL1K%HL1KHL1KHpL1KMH`L1KHP8`H 9|}x  ?iK}?iK}HL1K~x$|8! N !|=  ~9`,@ = i,@8= i~,A,AK#|kyL@ = 9iJt}c[x|8!N !|$|}xH YcH |ex<`8cJ|xL1HY$|8! N !p| ! A$a@(!(A0a8؁@ءHPX`!h|}x= i?L1Hf9A89 9ap!qaxAtx8pH <8JL1H =  ,A0H|ey@ = 8J<|x8JL1H ?= }<8JL1H }<8JL1H q}H H E!`|a ! A$a@(!(A0a8؁@ءHPX`!h?|{xK|ex<x8JL1H 9A89 9a|p!qaxAtdx8pH |<8JL1H =  ,A 8`H |a8!N !`|a ! A$a@(!(A0a8؁@ءHPX`!h?|{xKq|ex<x8JL1H 9A89 9a|p!qaxAtdx8pH |<8JL1H 8`H !`|a ! A$a@(!(A0a8؁@ءHPX`!h?|{xK|ex<x8JL1H 9A89 9a|p!qaxAtdx8pH <|8JL1H |a8!N !`|a ! A$a@(!(A0a8؁@ءHPX`!h?|{xK|ex<x8JL1H 9A89 9a|p!qaxAtdx8pH <|8JL1H |a8!N !`|a ! A$a@(!(A0a8؁@ءHPX`!h?|{xK|ex<x8JL1H 9A89 9a|p!qaxAtdx8pH H EcH |ex<x8JL1H |a8!N !p||~x! A$ @(!(A0a8؁@ءHPX`!h|#xK= |x,@ = ;J=  ~,A$= <i8JxL1H H=  ~,@L?| @<xxH y,@(= <i8KxxL1H qH(= <i8JxxxL1H I?9A89 9a}p!qaxAtx8pH }<8JL1H =  ,A 8`H |8!N !`|a ! A$a@(!(A0a8؁@ءHPX`!h?|{xH |ex<x8KL1H 99A89 9a|p!qaxAtdx8pH |<8JL1H |H |a8!N !|,= |+x|&T/||8T:9)4| .|dx<`8cKpL1K|8!N ,= 9)4|&T/||c8Tc:|i.N !|$?,@<`8cK|L1H)= | A 8 ?}T:H}8`H9=  = i=@c = i=@c = i=@c? U+:9)|kA.?$|8! N !| ??, @<`8cKL1HA?=`9)?KU):|iP.=`=@ #=*=`# =@+= #(He| 8!N !|$(,4a <`8c8H e,A?},AH?~,AH??89), ?@t??=^U):}iP.k,AH=^U):}iP.k,AH}^Uk:|kP.Hq?9), ?A= i=@ Uk:|k@.HA ,A 88`H$aL1H5 ,A 84|$(,8!0N !`|a|x,xAd,ADjii ! }(Ii` !|}(y@ , @5JA$ ,@, A ,@ 8`HKe;?= xH ?`8cH?xH = =`i{H uH|x,A<`8cKL1HM~,AHɀ{,AHKx|a8!N !|$|~x|#xK;|cyA#U U?rxxKe,A`@$|8! N !`|AaH=  |~xh !|h=!`| | yA=  ,A<`8cKL1H,&A= x?@zH 8cH-H |{xH KQ|~x A,+AA8,&AA ,%AX, Ap, ApH,*A,Hx,/A(A,-AAdx| 8!N !|$He?>|xH(HHI, @ 0H0>9)( @x$|8! N !|$H?|~xHHH%H},+@ H(k-}*p}@Jx|PP|p}cP}kx8|[xh -!I}*Ih+!@| | Ky@x$|8! N !|}&$H= )|}xH= ɀHi-/H-%|x|&T T_}*yA,@<`8cLXL1H),*@ H @ H@||P= )i+*!K}jYi /!@| }jy@h, %A`x$|} 8! N !| Hm=  |x, @@H}HQ|cy@ 8`H,,88cA,|8c@|xx| 8!N !|=  ,!@H K!c|kH ,~@HK|cHH|8!N !| ?>;, -@HKH|, +@HK|xHd, (@0HuK|x,)A,<`8cLhL1HMH8 (A= 造H5H<`8cLtL1Hx| 8!N !`|}&a= ɀ;`,;H0k }'Ik |}'y@ , @7A,@1?})I8|HxH8}>x/9^= =`IK@ =@ =  ꀐˀH89? 8|!)9 })I|Ky@ ,_@d;89? 8|!)9 })I|Ky@8 8|k_ }'I|Ky@,[@Dx8K9|{x|خ,]@8}>;`]U?>H<`8cLL1He8?|,AH,]?}`&H e8cHuH e|h @8H-HKA|}x-= ;A ,AxL1KH8`|h @A xHI=@j= 8H8( AH;8( @89? 8|!)9 })I|Ky@k# }'Ik@ |} y@,_A= i?L1H}=@j= 8i H^k= |,=;} &U)?|H9A ;Hxk! ||H9A ;H\k> }A}H9A ;H@k< }gY}gH9A ;H$i@< |}g9A$,=@= 8 H4; Hi@> |}9A0,=@= 8 ; ;H; Hk& }'Ii@& |}'9A ;Hk| }'Ii@| |}'9A ;H`iI* }'Ik* ||H9A ; H8@0A,<`8cLxH ,A= 逘; H;=` =  뀐= ɀ|a} 8!N !|= ɀ=`kth !I}*Ih !@| | Ky|gxA(h !I}*Ih !@| | Ky@}d[yA= 8LH= 8L|#x=  ,A,@ = 9 L<`8cLL1K<`8c8H !|a $|~yA4,A(,0; ;`@T7A,@ 8`Hh X! }(Ihx!||KyA;;H;;`;,;AL,#@H,A<`8cLL1Kqx8(>@<`8cLL1KQ;;{H9_9 8|!+9 })I|Ky@08 8|k_! }(I|Ky@ ,@@8( A |xHh( A ;HX( A,$A ;H@;H8,_@ ;>H(k@}(p}Jx|@P|p| 8Uk|[x|A<`8cML1Ka|;,@x$|a 8! N = 9)4$ ,A$ |@ iN ,@8`N !|$|x|#xK/r= i}@&UJ0|Y|P9|hxA ,+A,,A$k-0}GIk+0|Y}G9A 8`H|,-,m|`&Tc?hA$A,HA8HL,pA8AH?=>?<>`?`<>@?@<> ? <><`?>= =`I ̐ȐĐؐԐАܐCVW!Aa $(,0!4A8a<@DHL8!PN !|$<`8cM K=|cyL@X= i@, A=  0|}cx,@,?8}`8H m0|;`x|c8|cx|cy@ = 8iM$$|8! N !0|̐<`8cM K|yA xH }8cHxH }H<<`8cM0H |yA xH 8` H]<8M$8 L1H ـ|8!N !|=  @,@8 @H|8!N = 8 @N !| ?8,AL1H%88| 8!N = =I@8,= =` `KdM 88N !|= =` `Kd= ,i8=` 8K@A L1H|8!N !|=  8,AK= 8 $|8!N !|!Aa $(,4|yx|#x8aH ?;a8a8H cxH 8`8exH H,@X88` Ha;?| @0<9=@9`' ;} I. 9k|A=  ~,A@= Ɂ,At?? W:} J ,@X9)7@HH=  ;|@4?| x 8|x|X.,A;|H8A=  |@`?88  T:Hŀ |x@0<8=W:& 9J|I.9k| A?8,Ax8` H W:8|x |XA}i[x| x |H@8 = i8,A,AL1HH = i8|kxH| x ,@= h$9@_=  <=`,K8H$A 89}g[x9@ + ki)# }8I| 8}Jx}Kx@, @,A 8H8H8 K)8_= i Y. ,@$pAxL1HC%H;,A ,AT<H#H8,A0=``+<, A,AHH., A( ,@ p Ax8HM;|;Ax8`8H E$|a 8! N !|$=  |~x,A=  h,@,AH=  x,@8= I W:}+P. ,@<`8cMH8L1K׍=  (=`K |W:P.A=  ,|@H!m= i 8|Y.HpaL1Hq,AK.xHp=$|8! N =  ,M = I Tk:}+P., M ` N !|$|}xx,AHoxHox|@܀$|8! N !|$||x|#x8`H=  8i8| x, 9 8# @ cH(}i[x |HA| x |X@i$|8! N !| !Aa $(,4|wx|#x|+x8aH i?`;8a8H 5;xH I;8`8xH M|@P?@;: |~H.,A$x~%xxL1N!|}y@;|;Ax8`8H x4| !Aa $(,8!0N !| ?$,A(=  |A8H $8H | 8!N !|$?;|@\?;= }?H., A0 ,@$i8H } 8}?X.iH ;|;A$|8! N !|$?;|@h?;} }?X., A< p @i8H u} }?X. ,@i8H U;|;A$|8! N !|KK|8!N !|=  8|ix,A$|x|kx|HA@c|X@}#KxL1H9,A=  Tk:}K@.jH8`|8!N =  9|@h=  |x9@=}* ., A8í }GSx |@ }CxN }'0.k | @9|(9JA8`N !|}&$-|~xA 8aH 8a8H a;xH u8`8xH }xL1K!|~xAx8`8H Yx$|} 8! N !| |x8aH ;8a8H xH 8`8xH xL1K|dx,A <`8cMx8xL1H H<`8cMxL1K}x8`8H 땀| 8!N !|}&AaĒȒ̓Г!ԓAؓaܓ|zy|#x|+x|3xAXx|WxA|@-~Ӱ~HZ}A(A= 8MH = 8McxL1H )A<8McxL1H <8McxL1H ViV}29AV:A YxHx= I }&U_}P.+ i "@||@9A= ;MHD, @= ;MH0yT`>,@ Tc>Hp`/LA|xL1H M|}xH@Tl>, ;@8D9`oa988:}cx(!*8D8o8n8e[XYZX\H!L=@=`{xyz|}x!|h!l= PjM N@9)N09JM})BP})8ePD.aa9!P> IPQa9!PPPD.PD. IQ>Q>8DN 8HH(!*=HHH!L=Hh!l=Hl!a=}HPHD=  ~,A<8MH <8M}cxxL1H iH = ;MA8A09  | @$9| @= ;MH;,A<8McxxL1H ,A<,A(,AxH !|lxH9H9H9}p~@bx|P|p| }8U)| Kx<<8M 8McxL1H }9U >,A q2A<8NcxL1H Q@x2@}r2V}2}rH9A<8NcxL1H !,A<8McxL1H |V&} &U)}29LAK? 9 V:}?H.x |}x,@$ p@<8NcxL1H = I x}~P.H a,A,9 }H.kKy|ex<8NcxL1H Q } &U)2V||KyLAD=  ,A =  ~,A<8N$H <8N(cxL1H  @cxH |AaĂȂ̃Ѓ!ԃA؃a܃} 8!N !|Aa $|x|#x|+x8aH ;a8a8H cxH 8`8exH ,@@= I W:} P.<(Cx8NPL1H dx8`8H,@4= I W:}|P. pAdx8`8H;,W:AP=  (8|A$=  ,|@ 8-H8 H8+<8NTCxL1H ]k|p?= |x|8P}|H.|p9%(8k|KxxFxL1K5= dx}|H.8` 8` H ㉀$|Aa 8! N !|,A |@= |3xL1K8`|8!N !|8L1K|8!N !|$|}xK<`8c x8L1K$|8! N !|$|}xK]<`8c x8L1K$|8! N !|$|}xK <`8c x8L1KQ$|8! N !|}&$|}x|#x8aH ;8a8H }8a8H qxH 8`8xH K-= i~,A-A ,@HH -|~yM@0<`8cN\L1K1K=  8,AK9H}@H !|x8`Kc<8X8`8H =  <,A?}$, @ $x=  | @ H=HH= $xH ,@<`$8cNdxL1Ky@D= }$ |A,H(H$=` $,@=   $HAH E= i4H=  <,A(= $,@ Ɂ$xxH H =` $,@=   $xxL1KmA = Ɂ4= Ɂ0x8`8H ߵx$|} 8! N !|8`8L1H}8`8L1Hm8`8L1H]|8!N !|8`8L1H18`8L1H!8`8L1H|8!N !|= i,@= iH ,A<<8H Y,@ 8`H$=  ,A8`L1H#8`|8!N !|= i,@= iH ܙ,AT<88H ,@<=  ~,A$H |dx= <`T8cNL1K8`H8`|8!N = I Tc:}cP.+ |HA}+Kx| x |X@iN !|a $|{x8aH e;8a8H 5xH M8`8xH UcxL1Ki||xx8`8H 5x$|a 8! N !|$|~x8aH ;8a8H ܡxH ݹ8`8xH xL1K|}x8`x8H ܡ,@ <`8cNxL1K8`HxH|}x8aH Q8a8H %xH =8`8xH ExL1K,A4= I Tk:}+P., A ,@ ` x8`8H x$|8! N !|$;?8aH ܍8a8H axH y8`8xH ہ8`|8@L=`= K 9`}+@., A ,@ pA08c|P9kA,@ x8`8H H8K8`|@H=@?9`* }+H., AT ,@H p@,8AT`~|T,ATc~`cN @ 8`N Tc>N !|= I Tc:}cP.+ |HA}+Kx| x |X@iL1Ku|8!N !|}& !$A(a,048<D|x8aH e>;!8a8H 1#xH I8`8%xH Q6<=`, 8 l@ <88`L1H1= iD>~,A$<,@=  ,AHA;?`??@?xL1K|~y@8zH $x8`8H ׭8xNxL1KKa8`H|,@xL1K-|}x ,@$,A<[ W:}iP. ,@$8\x8L1H8\~,A$<,@=  ,AHU ,@ -A,[ W:}iP. ,AxL1KH~L1KY|xA =  W:}K@. pA= iHAX=  ~,AD=  x,@4>9`U >,AU ~|T , @@TK=  ,AD>U >,@4U >,@(=  (|@8`L1HUHK=  <,A=  W:}K@. p,@~9 T`>,AT`~|T , A\T`~,@P8`H,@(=  ,A=`+9)+H?8` H e}H ӽH$x8`8H !KxD| !$A(a,048<} 8!@N !|a $|~x8aH Օ?`;8a8H aW:xH u8`8xH }; }|H. ,@<`8cN8L1KI8`x8H ExL1KKu|}x8aH 8a8H xH 8`8xH ,A,; }}~H. ,@= t<`8cOH0- ~} &U)_}'9A4= t<`8cOL1Kdx8`8H Ε8`HK< |sx}~H. T A$CxL1Ke< }~H. ` < }~H.@T=  (?|8A$=  ,|@ 8-H8 H8+<8NTL1H ]?>>?< |p}~H.|*xK|8P|p8M|x|P|8|KxA8O<8O4L1H | }>X. |@@= <i8NL1H = I ~cx}~P.H ˑ,A45 =`}YH.jKҡ|ex<x8O@L1H y,= i&<8N(L1H Y @CxL1KADK<`<8c`88 :>@>>!~n!<,A=  x,@ ;H;2Xc1|I|x0|}kx8|[x8`~xxH =2X||x, @sA 8 X-@`xL1Kٹ:|}yAHH|@9 = xL1K,A?8 T:}H.=@ =T }'Kx <(~,/ xx?@9@;9` ,}kx@8=U >,@(;8AAU >h!|}Jx}&8. |@, @\,AP5 8}H., }H.|yx :T< A$=  ,A=  $H5 9@}H.|hxK }'Kx}?8.}p}Bxi|pP|pqn| 8}Y8?`AL1HE }>8. ,A i|L1N!: }~H.l,A=  ~,@=;U >,AU ~|T,@X: }~H. pAD8`H,A4l}L1K= i8h8`HEhHl,AT~,@؁8 }H. p,@;l8`Hׁ,A}L1Kq= ih8`H,h@|=`kD= 9)|HAd= |}x9)|H@ 8`H,@8`H|}xK-,@8`HUH,A8`L1N!X1}.}.yAA,A ,A#xL1K HK=  <,A`8`Hց,AP= ;D,A`:8a8H q;@8a8H a;`~óxH u8`8~ųxH }|@?>>@:;>8 }|H., A\KqG@P=+~,W~@@W>,8A |T,@ ,@ qGA,A=  <,@~,@~,@L8 }|H. ,@~,@ CxL1K=  4|A8 }wH.Hl8 }|H. ,A(Al,A,A\<`HH5~|T }'I}'9AW>,8AW~|T,A`,AXxHҍ,@H~_xK= |ex@<x8OdL1H -Cx8L1KڍH8 }|H. pA,AxW>,8AW~|T,AT,ALx?L1H ? |ex<x8ML1H sA<8OtL1H 8N(L1H qH,?&@KM|{y&Cx8L1Kٱ A8 cx}|H.H ,AHt,?~&<8N(L1H  @K|{y&Cx8L1K= A@8 cx}|H.H ,A$cxKé|exx8OL1H 8 }|H. ` H8cOL1Kɀ;Z|:;A~ijx8`8H ɀD|Aa  !$A(a,048<8!@N !|$H ?,~@<`8cOL1K18`H M=  ~,@0= ?,AKY}aL1He$|8! N !|8`L1Kq|8!N !|<8L8`L1H= iL|8!N !|= L8`L1H魀|8!N !|$=  ~,AP<8$8`L1Ha8`8L1HQ8`8L1HA8`8L1H1K-H`=  <,AP?8`8L1H= ip8`8L1H= it88`L1H= ix$|8! N !|K = H8`L1HH }8H ݀|8!N !|$= |}xp8`L1HA= t8`L1H-= x8`L1H<88`L1H= iH=`kH-H xH A$|8! N !|$=  <|~x,;A8aH m;8a8H =8a8H 18a8H %8a8H xH 18`8xH 9= ixH I,@ ;H = Ɂx8`8H x$|8! N !|}&Aa $(,4|zx8aH ?;8a8H ]xH u8`8xH },A;|8= =` ( ,-@L?`;; }>H., A A ,@x8K;|;A@= i H4 =`Kx8`8H ݀4|Aa $(,} 8!0N !|}&a $|~x8aH a?;8a8H -xH E8`8xH M,AX;|@L-?`;; }>H., AA ,@ xK;|;Ax8`8H ݀$|a } 8! N !|}&!Aa $(,4 ?@|~x,Ah8aH I-;a8a8H ;cxH );8`8exH -@`=  L9@|@@D}*8., A,) 9}i)}&p|Jx|0P|p}kx8|[x9J;A,L#|&T _TG}&9@=  ;|@??? ;< }>H., AX ,@L~,@xL1Ky4|A(< }~H. ` @;,@;|;Adx8`8H 4 |!Aa $(,} 8!0N = 8 hN =  ,@ jH,;A$| | T} &U)/|H9}`[x@|~8cHM}];||ix@@j, @ij9)i 9),;A|9JA8 $|8! N !| |#x8| |~x,A|@ 8`H,'AHA,"APH ,\A 8HP8| 9$0|})x|8|KxH,8xL1HH8xL1H |dx| ,@t8`| 8!N !|a $||y|#xA,@H8`HxH ;}=|{xH| @|}xexH ,A,'A@A,"ALH`,\@X;|9?0|})x8|KxH88xL1H|xH 8xL1H|xH;}=U>>,@X8`$|a 8! N !|Aa $|#x||x|+x,A1fK1,\@}> ,A;Htk[!`| K9A0xxKk|h]||p|cx8|xH4A0|@,A,xxH ,@;,L@`P8HՀ|}x|"xH A8|x$|Aa 8! N !|Aa $|+x|#x,'|{x@,@|xH ;|h '})|TU)| H9@P8}H||x|"xH m9 }<|9~0|}kx8|[x9>:xH,AX,@ ;H4A0|@,A,xxH ,@;,L@P8|HI|}x|"xH 8|ᮓx$|Aa 8! N !|<<<8PH8PL8PPL1Hɀ|8!N !|<<<8PT8PX8P\L1H|8!N !||#x|+x<<|x8PL8PPL1HM|8!N !|<<8PL8PP8L1H|8!N !|}& !$A(a,048<@!DAHaLPTX\d|+y|~x|#x|3x|;xAH,A<,A(,A~óxH ]|txH:H:H:,AH,A<,A(,ACxH |wxH:H:H:,AH,A<,A(,A#xH |uxH:H:H:;;`-A,,A ;H,A ,\@;;-H|@T|~~ijx~xH ,@<|x8~ųxFx'xL1K!!;|cy-H,Ad}>| @T|~Dx~xH %,@<|x8ExFx'xL1K!;|cy-Hx}>| @,|~$x~xH ,@87{A,`-@@8<8P`x88L1Ky!;|cyAH$uH,'@x9}j[x}PaU >i '|})U)T}09A,9J}PU>h '})|TU)|H9@1(})I8 |Hx}IH8}?xH8,"@,8|x}^/ ;;A>@>`,A ;H, \@ ;H,Ai@`||p8H, `@ ;H, $@x}?i,(ik{" }pY|&T?|[yAP8 8 @$<8PPx8PH8PLL1KHx8L1H% H#H , "A;}^/ @$|&T|9?})x8|KxH;@} &U)2|}09A$<`8cPd$xxL1K8`HU1})P}5HP9)8i!H%|}x|"H !8|Ixd| !$A(a,048<@!DAHaLPTX\} 8!`N !| !$A(a,048<D|#x|~x}^; UK>,;`A>>,A ; Hlii! }(Ii`\!|}(yA ; HD, $@ }? ,{@;{;H , }@7{A(H , `@,8<8P`x88L1KHD, $@H}? ,(@88<8PHx88PL8PPL1K]H H,'ii"! }(I|&T?|KyAp8@L|xH;}~U`>h '})|TU)|H9@1+})I8|HxH8H|x}^;/ ;A?@,A ;H, \@ ;H,Ai@`||p8H, `@ ;H, $@t}=i,(ik{! }hY|&T?|[yAL8 8 @ x8PH8PL8PPL1KHx8L1Kq HMH , "A;}^/ @(|&T|9=})x8|Kx;;|| xUK>,@t} &U)?1|}(9A0=  ,@ <`8cPxL1K8`HυP8}Ha||x|"xH 8|鮓xD| !$A(a,048<8!@N !`||~xH ;|}x|@T|,\@<|cii`!I}*Ii`\!@| }*y@ , $@ 8H ;|Ax|8!N !| !$A(a,048<D|#x9@|? 8|~x;`A,A;`Ay8`H}~P,'ii"! }(I|&T?|KyA@P9J}KSxH9k|Xh '})|TU)|H9@|X9+0|})x}`8H 9J}_Sx}^;/ ;A>?,A ;H, \@ ;H,Ai@`||p8H, `@ ;H, $@x}?i,(ik{! }hY|&T?|[yAP88@$<8PPx8PH8PLL1KHx8L1KHH , "A;}^/ @$|&T|9?})x8|Kx| x| @88`H@9JHii\})})p8 iH8};x9J|@ = 8 8`D| !$A(a,048<8!@N !|$(,0!4A8a<@DHLT|+x|}x|#xxH q; ||vx;`;A,A|;`A8`H}=| @,|}x~ųxH m,@8#9Hx}},'ii"! }(I|&T?|KyA<@ 8H}j[x/ ;;A>>,A ;H, \@ ;H,Ai@`||p8H, `@ ;H, $@x}?i,(ik{! }hY|&T?|[yAP88@$<8PPx8PH8PLL1K!Hx8L1KuHQH , "A;}]/ @$|&T|9?})x8|Kx|x|@$8`H,ii\})})p8 iH8};x;|@0#xT|$(,0!4A8a<@DHL8!PN !|}&!Aa $(,4 |zy|#x@ 8`H@,AH,A<,A(,AcxH ||xH;H;H;^y;A<~x0|}?})x8k|KxH y,@8Hy^y|xxxA-1\*x1@}*}*9A0@ xdxxL1H H;>iH ~|}xxxL1H ,@8x4 |!Aa $(,} 8!0N !|<8PL1K-|8!N !|$|x<`8cPKEE|cyA H8 T@.x8L1Kр$|8! N !|$|~x<`|#x8cPKD|cyLA,@8 sT@.@A ,@xL1HaHxL1H8L1K1$|8! N !|}&!$A(a,048<D |}y|#x|+xA}, A,;@AX,AL, @D;, 9)@;, 9)@;}(p} Jx})@P})p8 IH8}:x} &U)?!||Ky@,@x, xA`h ! }(Ih !|}(y@ , @(,A,cxH i,A,@,@ 8`Hx;|,As? Mx8exL1Ku||yA<, @,A|U >,A8xL1HxxK|~xA> ` H|,@t|h h }k})UkU)}hH9AL, AD8yPK|x`H8`L1H%xxK |~xxH]!|H,A8 | x}=X}j[x, A|}}Xii ! }(Ii` !|}(y@ , @@, AH|PcxH ,A$!9)}+Kx!|X}j[x,@}=, @l,A ,AxL1HQaHxD |!$A(a,048<} 8!@N !|a $(,4||y|#x|+xA |,AC, A,|x9`AX,AL, @D>, 9)@>, 9)@>}(p} Jx})@P})p8 }iH8}+x} &U)?1 |Y|Ky@,@}@Sx,AdT >ii ! }(Ii` !|}(y@ , @,, A0xH ,A,@,@,A8`H8x8xL1K%,|{xA|!|H,A8 | x}?X}j[x, Al}Xii ! }(Ii` !|}(y@ , @@, A8|PxH 5,A$!9)}+Kx!|X}j[x,@cx|4|a $(,8!0N !|}&$ |~y|#x|+xAL,A@,A,,AxH Q|~;H;HxH;|@@-h !I}*Ih !@| }*y@ , @,AxH ,@@AH,@<ii !I}*Ii` !@| }*y@ , @;|@Ax8x$ |} 8! N !| !$A(a,048<D|~yH4T >ii ! }(Ii` !|}(y@ , @ 7LA ^, }@Sx@A , @ 8`H;`}^خ;;@UK>, \@$;|9?0|})x8Ht, '@H;xH;|h '})|TU)|H9@|9<0|H , "@,;x}^;/ ;A?? ,A ;H, \@ ;H,Ai@`||p8H, `@ ;H, $@x}<i,(ik{! }hY|&T?|[yAP88@$<8PPx8PH8PLL1KHx8L1K݃H H , "A;}^/ @$|&T|9<})x8|Kx}^K\, A,ii ! }(Ii` !|}(y@ , @P8|Hy|}x|xH i8dx|xK |{xxH H;}^UK>ii ! }(Ii` !|}(y@, A, AxK;}^K,A ,AcxL1HJaHcxD| !$A(a,048<8!@N !|$|}x|#x8[H |yAPxxKL1h *!i}+Ih@!`| | KyA,]A8|A <`HL8|P;xH,|~yA xxxK?8[H$8[<`8cPxL1Kn}8`$|8! N !|}&AHaLPTX\dD|}x|#xKK;@|~xxH ;8cHwxH ||x|,=@-}<;A ,(@Lx8)H ,A88<<(x8PL8PP8(8L1KE;@HA,A|x8~H 9,A(8`~xL1K=,AxK]HxH 8cHvxH |}x<8 8L1H|xxH H xH 8cHvxH |x-@8`Hv|x-8=  ,AX/A$= KYE|ex<x8PH = KY%|ex<x8PxxL1H x8[H !,/APA0<`8cPxL1Kl-A xH%xHHxxK|~y&@0KAxxK=HxxK;|~y&xKY ATA xHxH AhTcH8`dD|AHaLPTX\} 8!`N !|8L1K|8!N !|8L1K|8!N !|$= ;;;;|.,A$K;xK];, |~x@= H,A(?iKxK)|~x,@,A ,AxL1HE!Hx$|8! N = 9)8`9@| H.9c,A}c[x,9J@= )H, M )8c, @N !|, A4= ;T:|~.,ApH I8cHsY|.H IH\= H8c,AD,8cA,@A(?iH 8cHs ?H H8`|8!N !|$|}xK,|xAL1K9H xK|}xxKx$|8! N !|!Aa $(,4|yx|#x|+x|3xKu|{x,xAP9`|1[}*|&T/}*9A(9k|} &U)/1_| | H9@,@ 8`H|1_}*x|&T/}*9xA,9kx|} &U)/1_| | H9@89, *@sJA L1KHsJA L1H K|~xcxKÝx4|!Aa $(,8!0N !p||x8|8|+x,9A}_@UK>ii$ }&Ii`` |}&y@X, AH, A@ii' }&Ii`\ |}&y@ , "@89}_@, @, A<x}L1N!|~yAxK|xxKHD;H<,Ap@xHaHxH 8cHoxH |xx|8!N !|$|}xH 8cHoy|kxAH,Ah  }'Ih ||KyA ]9kK9k,| x@8 $|8! N !|$|~x,xA4?xL1K?ixH,@x$|8! N !|$|~x,xA4?iHE|}xkH?,@x$|8! N !| |x8`Hh,@8H89 #| 8!N !| |x,@8`Hh8HPxH |]Tc<`cHhi|kx,A$9@K ?9k, @8 | 8!N !p||xH {8cHg|~x,@,@ Htx8H y,@xxH }HL?x} Kx,A0,@?, A+9k,| x@8 x|8!N !|$|~x,xA@?xK]?ixHE? ` ,@x$|8! N !||xH z8cHfxH ||~x8?x, xAH T >, @ 9k,A$H , A 9k ,@8 xxH |xH]|8!N !| |yA ?iL1K,@| 8!N !|!DAHaLPTX\d|}y|#x|+xA,@ xH@,A ,A,A$,AxH y!H8`H8`,AA,AH,A,ApHx|@A;@?_,A 8 H8cxxH,@;|@@HX|@xAL; ?@?,A 8 H8cxxHڕ,@;|@@H|@xA?,A 8 H8cxxHE,@L;|@@HxH w8cHcxHxH w8cHcxH8xH w8cHcxH yHdx|@A@?,A 8 H8cxxHٕ,@;|@@xH w)8cHc9xH y)d|!DAHaLPTX\8!`N ,@ 8`N 8c8(;A(=`9kQ T:}K.= 9)Q }JJ}IN |Bx |gN c|x |gN T>,(A|TN 8`N T>,(A|Bx |gN |dTcN !| !Aa $(,4|y|#x|+x|3x|;xA?![}j,|&T?| [y@,AA<,A(,AxH uH;H;Hx,AA,AH,AHx|@A|cxxL1KY,A\|@xAP; ?@?,A 8 H8cxxHI,A䛿;|@@;|@@HcxxL1K,Ax|@A;@?^,A 8 H8cxxH,Ax;|@@Hx|@A|?,A 8 H8cxxHy,A<;|@@H<8`H,8`H8`H8`4| !Aa $(,8!0N ,#@ ,#@ 8`N 8`N ,%@ 8`N 8`N !0|!Aaēȓ̐|x|#x|+x8~H q9,AxK|uHxH r8cH_xH t|zx,A0rA(,AX8CxH r:!:9)|iPH^; |{x;,;A:,AL8,@$,A<`8cP@xH pu,A8\|;;;H8,\@ ;H(,A k`||p98;H,`@;; H,$@h {!I}*Ih(!@| | KyA8<8, (@,<<<8PH8PL8PPCxL1KȁHCx8L1K8$|<;};9 H |9)|H;,@}:};;HmH,"A;Hj;,@p|&T|9}}kx89 };|[xCxxH x,A4r@ ~ijxH8Cx88L1K|~xH;CxHxK|xxK,A x8H|zxxH_xx|!Aaăȃ8!N !|Aa $|}x|#x|3xx|+xL1K ||xk!`| k!i}+I|Kx0|8}8|cxxdx8L1K|}xxCxxL1K||x,A xHx$|Aa 8! N !|!Aa $(,4|~y|#x|+x|3x|;x;AL>DxiexL1K |xK}1|}xxHxxK~||x,@,A$,AxL1H+}|~xHx,*@s+A,xL1KH$s+AxL1KHxKՉ|xxK}x4|!Aa $(,8!0N !|Aa $|}x|#x|3xx|+xL1K||xk!`| k!i}+I|Kx0|8}8|cxxdx8L1K|xK|}xxFxgxxL1K||xxK,A xHax$|Aa 8! N !|!$A(a,048<D|#x|x|+x|3x|;xcx88 H ||yAxxL1K|}xk!C|jk!I}*I|cKx0c|c8|x8|cxDx8L1Kсa|~x h *!I}*Ih@!@| | KyA ,]@p @,<`8cPdxL1KN-,A xH!H|H||y@ 8`H!xGxxxL1K|xxKH<#xxxL1K|yA xL1K칐axH顃,A xHxD|!$A(a,048<8!@N !|$888L1K|}xL1HK|xxK9,AxL1K9H8`$|8! N !|888L1K%|cyAL1KH8`|8!N !|888L1K݀|8!N !|$?|~x,A=  |AX?H i (@ 8| @8|x|HV || P|cH j= i8| =@*9)*$|8! N !|Aa $?,Al;?@;`?|@D?>| ,A xH gm~k=9)=;,@= 8 $|Aa 8! N !|$||x8` HTe|}x<<x8R8RL1H ixL1Kx$|8! N !|}&(,0!4A8a<@DHLT$|vy|#xAx,Al= I~,@\;xH g ,A8Wi: T:|i..88@KdY|}xL1K||y@<`8cR$L1KMu8`HD=  ??$>0$8`Kn8`8Ka-@HHy)K= 8 xKQKn?$@0<`8cRPL1KLxHxH eYxH eQKp@ 8`KnI0xH e5xHHm![8`K xxH f,@$<`8cR|xxL1KL8`H gxH d?,A K9_xH d= i<K~óx8R8HH gQT$|(,0!4A8a<@DHL} 8!PN !@|}&!Aađ|#x|yyV|MT;;`;;:A7{A}) \]A^X9!XPS]IiPP݂H9!HQD.PD.;IiS]>S_>N 8HtHl!#HXHP! #H<(!,#H(H!LaN#cH |xxK|}xxHM~#xxKexH9Cx||!Aa!Aa8!N !|}&$ |#y|}xMAh,A\x8Ku||xK|x-x@ = 8P<`8cSxL1K3]A xHUxKmH<`8cSxL1K31xH-A xH!$ |} 8! N !| |x;,Ah@!i}+Ih*!`| }+yA,Ah<`8cSH Ne,A,AH?9)( A8KIe,@(;xK,@xKJ,A;x| 8!N !`||}xT>,A0h *! }(Ih@!||KyA,@KǕ|xHxT>,A<`8cSH Mm,A,@=8 (Al=`9kST:}K.= 9)S}JJ}IN KSH<= iH,= iH = i4,@;HKHש|~x,&A,A,A,@pH|;xK ,AxL1K}|xHx=9)( A$x88 8H NQKƹ|~yK|xK|cyAppAdc8H|~yAH,A<,A(,AxH M|xH;H;H;HxH M8cH9xH O|x8$8K||y&AxK|~xH;xH˹ A xK,&AH,A<,A(,AxH M|xH;H;H; A xHEx|8!N !|}& !$A(a,048<D|#x|yx|+x|3x|;xx8:H J||yMA 8<x8 \8L1KY;|xxK8EzxHʅ,A,A4A,AH8,A(,@(#xH K|}xHK;H 9;:, @| | x| @ , @ 8`HA;<8 \x8L1Kƕ|x8:xK7}{xHɽ,A$;, @ <`8cTLxL1K/y8`H | |@8`D| !$A(a,048<} 8!@N !|Aa $(,4|}x|#xh *!I}*Ih@!@| | Ky|+x|3x;A!@8xK,Ax88K|yAtp Aha h *!I}*Ih@!@| | KyA ,]@;Hx8L1K;|HH8`HDxKE|yA,p A 8H;|H\x4|Aa $(,8!0N !|}&A(a,048<D$|#y|~x|+x|3xA= ɇtxdx88 L1K-|x,A\a Dxx88L1K-A@a k!i}+I1c| | H9AH @= 8iH8`H,AXA,AH,A\,@p,AcxL1KHLcxKH8xxL1KH!ixH5|}xxD$|A(a,048<} 8!@N !`|}&alptx|!Aah|#y|3xV|~x|+xA,@8(A,AH,A<,A(,AxH G!|{xH;`H;`H;`xH F|}x|{8cH3,|zx@xH H|zxH4xCxH H|zxH8`@H2;@,|zx8AH,A<,A(,AxH Fi|{xH;`H;`H;`x;:X:\H!XHP|||-V>A ;@|@CxxH2}|zx,A|zxxH G}A|zxexH Gek }5U)T| Ky\@(x~dx~x~Ƴx~xL1Ka,@T,A-AP,A4,A xH EU;|@@,H8H8|@@H8|@A|;;>;~H |@HP|@HH|@AD;@A,A,AԈ,AxH D|}|@@CxxH1%|zx|zxH FH|Cxh|alptx|!Aa} 8!N !|!Aa $(,4|#x|+x|3xKa||x,x@ 8`H>$xiExfxK|xKRa|}x~K,A xH ,@s` AxL1KeHxK|xxKx4|!Aa $(,8!0N !| !$A(a,048<D|#y|+x|3xA(= it88 L1K!|yx,@8`H\|xHx;,/@ ;WI,1)})Ic |HxH8}=xcxA4,\@,@H,/A,@;,&A87& A||p9&?cx8 WD8cH+!|}x|H}:, !@}  8}H8}xH @xHAzPA,&A 8 -:@h|,A<<`8cTxH <,A(!:zH,&AT8 HH@}:, }A :@H,,/@$}:i)}1)})I9i~H8}4[x,#@-} &U)_" ||H9A` AX<`8cTdxH ;,A@}:, }@0x8H*|}x8}!9izHa,#@P} &U)_" ||H9A4,A,<`8cTdxH ;M,A}:, }A};, !@l]UD>89$ 8|!)9 })I|Ky@8,_A08 ( @$,A <`8cTH :,}A;8 ( AxK5,@d,@$,A<`8cTH :},@8,A4,@(,A<`8cTH :I,A:=, #@x,Al!}) ,}@xL1KE,AxL1K |xxH,AxHđH= 8iHtU >,@@D,@8W |T26}1|H9A 8/A 8|~xL1K,@ ;HT,-A8}~x%xL1KHx~x%xL1K%|xxKy,Ax8[H 8|~yOA,@@H,]@&A8A,~}$JU)08xHA|}x|}"xxL1H -Qx<x})<~IHK9k}j[xa|P,(@@=  ~,A8 H,<8 8@= 8V\H = 8V`CxK|}y&A$ |&TxL1K|xH; AtxH5Kh8899!?~ Au8Cx~ųx~x9@L1K8|x|&A= 9)|H@4CxHxH @= 8iH= 8iHA,AܒrK8 8<~ Au8P`Cx8L1K~E|xK x~ijxL1K |}x,A xH)xKX}+ , @8 K8 rA= ;VdH rA= ;P@H = ;PAD,&AxxH (y,@$8`HY|x8\H,x&L1K|x A!9)!K@X8 CxH );`!:9)|iPH; ||x}z;,Ah,A(, "A8\|;}|;; H,, \@ ; H,Ai``||p}|{8H, `@}|;;`H, $@h {!},Ih(!|| KyA8?8, (@,<<<8PH8PL8PPCxL1KHCx8L1K18$|鮉?;}<9 H |9)|H;,@}:}<;HH, "A}|;;}z,@|&T?|9>})x8|Kx~鮓,@}:, @ :H:,A,AxK7i;|~xxH-x8888L1K=|yx9|`A=9΁|p@$xHCxHٓxKeH,x&Ke @ ,A$!9)!K4#xL1K,Ap @cH>,A܁>iHAa||x|@8`He||x,@,>iK1~|xkHy>,;A8;|.;K*x`K+|.|}x,@,@=  ,@HHxdxL1H|{x^xH0>iK~|xkHՁ>~xxH;>y@,A CxKY,A(,AcxL1HIHcx|{xcx4|!Aa $(,8!0N !|!Aa $(,4|~y;`; Á>i8{H ,A>iH|zx,Ap;xK)>|}x| @ xH ,@> dxxK*|{x||.;Hm.,@CxHY>xH ~xy@<,A #xKXM,A(,AcxL1HHcx|{xcx4|!Aa $(,8!0N !|}&(,0!4A8a<@DHLT$|xy;MA= :Ɂ;;! >?,~Ap T|,@x=  ~,@hx8~H ,AT<`8cSxxL1Kj,@ <`8cVhxL1Kj,AxK!?ixH; 88x'xL1K)|~x8}A |@0?CxKVxKV@ 8`H8`HG5 ,A0? p @ xL1K|xxKVQHxKx,A$,AxL1H|~xHxxxL1Hy||x@tA CxKU,A(,AxL1HuHx||xxT$|(,0!4A8a<@DHL} 8!PN !|}& !Aa $(,4|cy|#x@ 8`HKes|~xAL1K|~y@=  ,A|x? ;@?`??;Yt?iKa,@(~,@~,A݇8`HEY,@?}KTKTsA8= i1}H1 |Y|P9AxxL1K|~xxxL1KU|~yA@sA(=  ,@xxL1KHxL1K|~xsA=  ,A,A= ;N8H = ;(= 遌,A|= 9)(}H>;? ?@?`;t?iL1N!,@,@(~,@~,A8`HC,@?}KS18x4| !Aa $(,} 8!0N !|a $|~y|#x|+x|3xA,A<,A(,AxH  |xH;H;H;|P|A0|"|pU)>~}$JU)08xH5|}x|}"xxL1H E9 |}=xHx$|a 8! N H8}c U`>h '})|TU)| H9@0 |8d|cx|8|xN !|Aa $(,4|~x|#x}^;/ ;A?@?`,A ;H, \@ ;H,Ai@`||p8H, `@ ;H, $@x}?i,(ik{! }hY|&T?|[yAP88@$<8PPx8PH8PLL1Ki1Hx8L1KnHaH , "A;}^/ @$|`&Tc|c8|x8|cx4|Aa $(,8!0N !| ?,@ 8`kL1H5= 8i| 8!N !|$|}x}HxH$|8! N !|= i,A<8yL1H|8!N !| =  ,AH= ,A8L1H|yA(,A L1K-HxHɀ| 8!N !|a쓁=  |}x,|#x|+x|3xA=  ,A=  ,@KU= xL1H|x,AcH%H,xH 8cHxH 8`HxH 8cHxH }?,8 A? ` ,/A? `  |a상8!N !|TX\d=  |x,A(= ,AxL1HY|cy@ 8`H$# p Ap A xHx,.@,/A8xH u8cH|x8.9 /?x8H ]H xH A8cHQxH A|xxH],A xH|xHi,.@Px8/H ;|~yA0<`8cVpx88L1K 8/|x,@xH 8cHxH d|TX\8!`N 9`| L 99@#9k} I.9J| AN !|$|}x8` H9p}`x|XP|p| 8q)5||xKxW:H |8xL1K]x$|8! N c9 , AU :}+c, @U)~|i|c|cHPN !| |#y|~x@Hl? x9)? H\xxL1K?Tc:H.,A4>|H@xH ,A,@8`| 8!N !|a $|#y||xAxxL1K;>T{:H.,Al<|H@HxH ,@8,AH>|I.>x9)>Hx,@8`$|a 8! N !|$|#y||x@8`L1Ku|~xxxL1K1|y@xxL1K݁>T}:H.,A4,A |xK,A8`Hm|xH8`HY>|}I.~X.8>9)> x$|8! N !|}&!Aa $(,4 ||y|#xA;|@;;@;`<H.,AH-xA(L1N!H HHxH,@ā<;I.;Z|;{A4 |!Aa $(,} 8!0N !|$|}x}HxH$|8! N !|}& <`8cVtK;|cyADHh !I}*Ih !@| | Ky@88 8H I|x-@ 8`H08`H 9`A=  |P|A9`}c[x| } 8!N !|$8`?H }$|8! N !|Aa $?`;|||x@d?@;;\}>@.i |P@$}=@.xiH ,@ xH ;|;;A8`$|Aa 8! N !|x|?>T:}H.8`8H ,@8~P}?X. }j[x}?P.aXi }HSx8}?@. H,>8}_H.8  }H.9 |x|8!N !| |#xK e||xL1K]|yA`8`x8H ,@<<'W:}fH.X }*Kx}&P.P }KSx8}&X. xHH= 選?8}T:H}8`Hq=W:|jI.}(Kx}*@.,} CxX.A$xH )8cH9xH )}HxL1K=x| 8!N =  8|L 8<`88=9c}(X. }HX.9 8|AN !|a $?`;|?@T?;=}H.kH}}?X.i,A Hq||X.;Ha;|A= i,AH=8=  $|a 8! N !||= iTc:}CX.8` 8H ,@48,A@$<(@Xx1|hH8`||8!N !||= iTc:}CX.8`8H ,@48,A@$<(@Px1|hH8`||8!N !p|= iTc:}CX.8`8H ;,@$8|A@<|@@;x|8!N |cy9`AX,AL, A 9`H4,\A(h %!I}*Ih?!@| | KyA N 9`4c@8`N ! |ГԓؓܐK?;1|H 8cH|}x<88VL1H  8/8}H ]x|Ѓԃ؃8!N !|$(,48<`8cVK|~y@L<`8cVK|~yAx8L1KHK|~x8L1KxH Hd;HHxL1K|cyA,A88c|dxxL1KUxH~xxK|y@4|$(,8!0N !@|}&!Aađ>8vVK|yyMA$#xH8cH$xH |yyM>;|@|?;8}|H.K,AHxL1K,A8}|H. |y0g@ = ;V8vVDxKxL1K|}xxL1Ke8 }}|H.K |PL+} &U)G}'@9@,@$} &U)/0|}'9A = ;Vx8K|yA(xKf1|}xHxH}xK=H= 8` H=  ,A8xL1KI,A$xL1K<`8cVDxL1HՀ;|;AA <`8cV$xK#xH|qH<`8cVKā|!Aa} 8!N !| 8<<8ؐ9ؐ=`9k`=@j}~[x8= |;x}Cx9)9@9`| I.| .9J| ., ?!.9k@8`8L1H-= ;|dx~D8`L1H-e= ;؀D8`` D8L1H-A|dx~8`L1H--8``8L1H-|dx~ 8`L1H,= i~ , ` A48`8L1H,|dx<8`L1H,<`<| 8!N (@A= 9)4T`:|i.H = 8iY,L = 8iYN !|a $(,4|~x8Ki|cyAa(@@H?;4̐a8?`T:|.,A|,ApxH,AXT:}=.i, S@H;4|.8Y8H,@,xT:|.8Hu,@ aH !9)} Kx,@!@d8`4|a $(,8!0N !P|!Aa=@ ,A= )8=`= ;K;i ;>;;?|.,A8aH;xH8axH]8`8xH,@H iH(|.H!8cH1|.H!8Y8H1x.8`8H9;,?;@l= )|!Aa8!N !||dx,?A$= 9)T:| @.,A ,@<`8cYL1K}H8=@=` 9k}+@.,9)=@8}+A. AK=|8!N !|=  p @|dx8`H|8!N !||dx8`@H݀|8!N !|=  p A 8`H\p @A8`8H@p A<8H(=  ~,@<8hH <8$8`L1H(|8!N = 9)Tc:| .p BA 8`N p @ 8`N <`8cN !|a,048<D|~x,k@!I}*I|#x&|&T}*yLALxH8cHxH|dxxL1H @$=  ~,@H"QH = ;iW:|.p @p @`=`;|.= 9)`|H@,x8L1H']|dx|}.xL1H'I|.,@|.`|.H= 9)| .p @Tx8L1H' xH8cHxH|dxxL1H<x8L1H&H,xHm8cH}xHm|dxxL1HD|a,048<8!@N !|= 9)Tc:| .p A8= 9)|i.,A$,AA= 9)`|HAHt-|8!N !|$= T:;ɱ|.xp |#x@ L1KY}~.= 9),a`.|.@ a`AHT|.= 9)| .p A ` | .$|8! N !|$= |x;W:|.= 9)`|H@H8L1H%|ixx}$Kx}=.L1H%|.,@= 9)| .`| .$|8! N !|$|x,@ }'|&T?|KyA`@=  p@xL1K= 9 W:}h.= 9)8qgUj<| .}H.Aa@ |.H,?0}'L#|&TG}'9A0=`9kW:}K.= 9)`| H@xL1K= ;W:|.p@HpA@p@= 9)|.xL1H#x8L1K|.T<|.$|8! N !| |x!_}*k@!@| }*yA= 9)W:| .p @A,?1_}*W:L#|&TG}*9A,= 9)| .=`9k`|X@xL1Ky= 9)| .p @4p @@,p @x8L1H"x8L1K| 8!N !P|?= pQ),!@|?}H8cHHؐaT<<``8c8HQ|cy@ K <a8Y8H)aH,@= iHa|8!N = 9)Tc:| .T2| .N !P|!Aa|}x= ;IW:|.|#xpAp@@= 9).=`9k`|XAp@`T|.xH?`8cHܽ?xH=  @9]=` [x8H(A|.p T4;|.AxHn|.T|.|!Aa8!N !|=  p,@<8Y8`@L1K|8!N !|<8Y8`L1Ku|8!N !|= 9)T`:|.L1H̀|8!N !|$|}x= W:9)|.L1Hx8L1Ke= 9)| .T<| .$|8! N !|a $?|}xp A(8`L1K=`9 T<+= ;;i;;|.p Lp OA$|.x,8@L1HHxAL1N!;,?;@$|a 8! N !|<`8cL1K|8!N !|<`8cL1Kр|8!N !|= 9)T`:| .p ATp @@L,A A,AH(,@AHKHK)HK9HK8`H8`|8!N = Tc:9)|i.TcN = Tc:9)|i.TczN = Tc:9)|i.TcrN =@Tc:9J}j.= 9)8ak| .}j.N !|a $9#??}Ȁ|U$:=HȐ||@0<9=@Wk:';{} I. 9k|A$|a 8! N !|$|~x|#x|+x8`H|x=  |AxL1K= IW:,Q.8 @ 8x$|8! N !|$|yA(8`HM|}xxx8HxH8`$|8! N !|a $|y@D=  9i,@ |A$=  ~,@?~|@?`;W:| H.,A xHQx88 L1H|~x,@<x88L1H,@<`8cZ xL1KU8`H;W:|H.?,A$<`8cZLxL1K1;|}H.H=  9i,@xHxH9H=`+9)+=  ~|@~8`$|a 8! N !|a $|}x|#x|@ 8`H|L+}`&UkG}kXxX8}cSx=  |A L1KQ=  9i,;`@ |x!h?|W:|~X.,A Hy|W:|iX.L1KI||~Y.}i[x}>H., A,A<|H.,@ xH-x$|a 8! N !|x||~x8`x8H,@xH8`Hl8x88H,@ ;H,8,A@<( A | 8!N ,A$, @ 8`N 9)d$|kIN !| = iTc:X.,@ 8`HD ?| P|x|p|3yA |8H8 8`| 8!N !|= =@i܁ Uk:}k@.K | A ,@}c[xL1KQH+8 |iP |8!N !|= i=@ Uk:|@.L1K|8!N !|$(,4|}x|#xK,@= 8i0H = 8i<8x88K4|$(,8!0N !|$|ix|#x}(|+x?8L1N!Ԁ$|8! N !||dx8`L1H|8!N !|=  |dx,A<`8c8L1K=|8!N !|=  |dx,A<`8c8L1K|8!N !||`x|#x<`8c|xL1K|8!N !|=  ,A<`8c88L1K}|8!N !|=  ,A<`8cP88L1K9|8!N !|$|}x|#x8` H͑=  ̐i̐$|8! N !| = ,A< ̀,A = 9)|H@L1HxH_E| 8!N !| = ,A4,A|L1N!xH^,@= ̀| 8!N !|a $?|~x,A= ;i?=̀ ̀,@@>|H@ xHލ,@xH^AH8,A|@L1HxH^,@$|a 8! N !|$?|~x,Al̀,@4>|H@0xH,@ xH]yH(|L1N!xH]],@$|8! N !| |x,A H] xH]| 8!N !| |x,A L1H H\H? xH\| 8!N !|$|}x|+x|#x8` H,|~xA8xH,~@xHHxxL1HiH<`8cxL1KA$|8! N 9 ,8cA,?ApA0,!AlA,ApH,*AL,+ALHp,[A(A,@A4HX,\A8,]AHD9)H<, A48`N ,(@ K8c,@ 8`N 8c,@P8`N !| |x|#xHܑ8cHȡsA$,@,@ Hl9@,9`APs9\L|P,@ A}* ,/A}YH|Y9k9J|P,@8|Y| 8!N !|$|}xHTc<`cH͈|hx|;x, A|8 (8, A8}=Kx,A|xHU ,@~HU8~ ,AHT8  A,A#xHi;8cHu;$xHa8~ ;H;]|A ; W<|~T:H•~W<|>T:I.cxH}>8}?J ,A~||cL1N!]x#xxKE|{y@lW<})~U):iY.|!Aa8!N !|HK|8!N !|8`L1HqKـ|8!N !|A(a,048<D=  ,@= 9)h; !xH;8aH;= ;5|.xHԩ;(;@= ;5;_x;?;8xHu~!,?@$, @x8HIKU|.,@(,A,A8`x8H;|@;@= 8 ؀D|A(a,048<8!@N !|$?~,AK?8}XHԭ8X8`8Hӵ8}X8HA8`8L1H~,A(<8$8`L1H8`8L1Hu$|8! N !`|=  ,Ad88a H= ;5;K,@,K,@88HХ;|@@|8!N !|$=`+;, A8 , ;@0=` ?` KE=T, AH T,@= i?Kq<88X8`HK-~,AHZKhK̀~9`3|1|9<==@= ij$h(g A4= i?H9}<8[L1H }H~,@<=  ~,A=  ~,A,A8`K,A 8`H8`H%$|8! N !||dx<`8cH !| |x,@8`K},AK= i~k0}Y0|Q}9AHH= i~k }GQ0|Y|P9AKKKgK x8L1HuHexHŀ| 8!N !|=  ,@ 8 =  ,A8 K]|8!N !|048<D||x88a HЭ;8aHСxx8HyaD|048<8!@N !|$=  ~|~x,|#x@(= KM|ex<x8[L1H͡= i?}<8[L1H}}xxL1Hi}<8[L1HU}He= 8<` 8c8Hɔ!|<`8c[8L1K!|8!N !||dx<`8c[L1K|8!N !@||x|#x,@H!88`Ht,/@\,d@P?x8[8H,@48[8a8 L1H=88aH x8`8Hxx8`H̑|8!N !|||#x8L1K,@ 8`H=  1,@,@p!q*I@d= i1 |X@W02!H(a$K}0c|cW8|x8!|x}*9@H8 8`H8`||8!N !|= =`I | AKH|8!N !| H<=  0|@T= IU :}+P. ,-@8 ,o@, ,@ 8K0||+xx| 8!N !| H<=  0|@T= IU :}+P. ,-@8 ,a@, ,@ 8K0||+x8| 8!N !|a $??~?| A Ka~= Uk:}+8.?` ,!@ ,@^;| @?`??@\UI:})8.HD ,@D8 |@AK[#| @@>UK:}+H. ,!A,A4K |eH=  =`KU :})P. ,(@ ,@= i8|XAKUKI={U):|X.|x,@<`8c[8H$,)@,A<`8c[L1K9=`+9)+H= )=`K8 |PA0=` U):})iH ,AH|xH= i=@ Uk:|k@.,-@L,@@H u,AH|xHT={U):<`|X.8c\L1KuH0<&=`U*:} 8.|T9)&x$|a 8! N !||#x|+x8L1K,Ax8xL1K,A,A A,A,H|,A8HpX!|H|`&Tc/H\X!|H|`&Tc7HD!x8`| @0! || @ !|Jx!c|kH8`|8!N !| $(,4p|x|#x|+xA@;xK5a ,A(xxKa,@HHx8 Kq,@xL1Kx8KQ,@xL1Kq(A=`9k\0W:}K.= 9)\0}JJ}IN  a|x!|hH !|Jx1|hHp !|H|`&Tc/HX !|H|`&Tc7H@ !|HL#|`&TcGH$ !|HL+|`&TcGH8`4| $(,8!0N !| =  |ix,|#x|+xA 8 H8}$KxH',@!C|jH1C}j}c[x| 8!N !|CT, =@p,A,=@\,@P,A|#x|+x8L1K9Hh$8`| @T|#x|+xHu |gH,>h< |c} &U)?}'yA@, @8@ |#x|+xH)|`p|PTH|#x|+xH TcHU@>,!c@hU`>,=@\,@T,A|#x|+x8L1KeH$8`| @|#x|+xH¡ |ghcHdTc>,t@U`>,lAXA,gAdH8,nA,oA H$|#x|+x8L1KYH|#x|+x8L1KAH|#x|+x8L1KH|#x|+x8L1KHU`>,e@H,fA,qA H|#x|+x8L1KH|#x|+x8L1KHx,e@l,lALA,gA(HT,n@L|#x|+x8L1KuH8|#x|+x8L1K]H |#x|+x8L1KEH8`|8!N !|$=`=@+ U):})_, =@$,A,=@,AUK>ii> }'Ii`< |}'yA,Ah, !@,=@,AHU@>,-@ ,@xH,@ <`8c\HxL1Ke8`Hh >!I}*Ihh !!I}*Ih=!@| | KyA,=@,A, -@#, A,A 8`N , tc@4Tc>,lAPA,gADK,oA,n@0KTc>,e@, fA, qAK, e@,lA@,nAK8`N ,-A 8`N #8 (3A0=`9k]@T:}K.= 9)]@}JJ}IN 8`N 8`N !|= i=@ Uk:}+@.}kB ,!@$ ,@+i |gHt= i=@ Uk:|k@.,-@$,@K%,A KIH0= i=@ Uk:<`|@.8c\L1K!8`|8!N !|$?>?U):})i?Ka,AKu=  |xH]T :} R( ,-@ ,@ ,aho |} &U)?}'yAl@,}+P.; ,A@( |TH,}+P.; ,@( ,A;=  =` H=  =`KU :})P. ,!@< ,@0= i8|XAKmK H= i=@ Uk:}+@.}KB ,(@4* ,)@$*=` K|Б\TH0=`+=@ U):})<`8c\HL1Kx$|8! N !|= i8 (A=`9k^T:}K.= 9)^}JJ}IN =  =` 8`H= i=@ = |АTHK=  =` HlKEHd<= IU :}+P. ,!@< ,@0= i8|XAKK |fHKꥀ|8!N !|$(,4a <`8c8H,A= iH8a = i+, A ,[@ ,@xa9k, aA = 8<` 8c8HaU`:a }+., A0 ,]@ ,A<`8c^$8L1Ka8|X??}A= <` 8c8HA= 8 K>|x| A<`8c^08L1K= !| <` 8c8H4|$(,8!0N !|=  6p8i6p,@h=  ,A0= =`=@<ˁ8^L1HH,= =`=@<ˁ8^L1H<`8c6p|8!N !|$|}xKI|dx<`<8c^8^L1H5,A<`8c^L1H$|8! N !| ?,@8`L1K| 8!N !|= ,AL1K|cyA cH8`|8!N !|=  ,AL1K|cyA cH8`|8!N !|TX\d=  |}x,|#x@K;HxL1K-|x,AhH1xH98cHIxH9xH|ch !i}+Ih !`| | KyAȈ`H8` H|xxH8cHxHѐxH8cHxH8xH|ch !i}+Ih !`| | KyA`xHU8cHexHU= L1KMd|TX\8!`N !|$|}x}H0M}H0ExH0=$|8! N !| ?,AL1K|y@ 8`H(L1KmH/xH/Ɂ>i| 8!N !| ?,A(<8L1K5L1K18| 8!N !|}&Aa $(,0!4A8a<@DHLT>@2; |tx|;;@:@::2, A |@)H.H;,Ax-:`~xAx~L1N!,A@;|W[:A ;P#xxHy:P|yx;x.W@:~y.,@2: :|AH#xT|Aa $(,0!4A8a<@DHL} 8!PN !|$|}xHo5|dx<x88HQ$|8! N !|cDk+|`HQ@ }c[xHy|8!N !| =  ,@ 8`H(8`L1K|yAxL1K%x| 8!N !p|L1K1|yA HI8cHYHIH8`|8!N |ix8d| }i ,M T>,\A|X@ N 8c8c| ,@N !|a $|}x|#x|;,;AT?`,A ;H0T>h ! }(Ih !|}(yA ;H,\@D}?)9i8 8|!k9`}kY|[yA ;H;Hh'! }(Ih"!|}(yAlxxL1K|x|,A}?)9^9i8 8|!k9`}kY|[x0|}Jx8|SxH4,@,,A4<`8c_ H,A ; 9); ;|,@x$|a 8! N !|$|~x|#x||#xUi>, Ai i) })|U)T}*9A?U`>,A8}_H,@|,\@ ;HDh "!I}*Ih'!@| | KyA$xxL1KQ|x|,A<;}~Ui>, }d[xA$i i) })|U)T}*9@\x$|8! N !0|!Aa!Aaēȓ̐|xxH;@;xH>`|{xxH:[8|vx :> >@^xxxL1K|zx|@ |Ю,@~óxH(cxHdcxH)P||x8||A(| x82| @cxxHm|{x|x|{HuWx|~2 ;҂ , ;@$|,A<`8c_ H,A;3 ^x1I| I|xxxL1KU:|zxQ@|Ю,A ;;Z|~óxxH~~óx8\HU0c|c,98A,@,A~óxL1K|cyAxH|xcxH|~x8||A(| x82| @cxxH|{x|{xH1Y}*1_| }*9A,}? h !K}jYh !@| | [y@,Al:HdcxH5P|x8||A,| xx82J| @cxxHq|{x|{|xHy~8 Kd|!Aa!Aaăȃ8!N !`||}x|#x8`Hu,|xA$xHE8cHUxHEH8x |8!N !| |x,AH%5xH%-| 8!N !|$8`H|}x89 == 8`8Kcc }x$|8! N !|$|yAL?|HAxK?|H@)) 89  ?? $|8! N !| |yAxKaKxH#| 8!N !|$|}y@ 8`HK|x=?= ? }|XAH~K?i k_  ?i =|H@x$|8! N !`||~y|#x|+xAxxK|@d>i k^  >i HlKMH"xH58cHExH58`H`>|HAL|A@0? i   >8`9)>H|H@8`|8!N |hyA,@ 8`N (i|HA\| @Dc C #*h|9khL # N c|H@8`N |cyA,@8`N iN c#| A | A)| @8`N !|}&ؒܓ!Aa쓁|x|#x||+x|3x@ 8`H~x-HUx|yx;;1~~,@8`@HE;@|{xz,AAK%u|~xxH||x9=|})| A | @cxxHQ|{x|{xH1~| ~9A xH |A|{~xHZ|@H8|cx|؂܃!Aa상} 8!N !`||cy|#x|+x@ 8`H,@8`H=@_!x! 9J_!=` 8;9:<8(!,SPނ[XYZ\]X!\H!L _0= PD.9)_0xyz{})Q>}) |}~x9!xPSIiPP̂h9!hQD.PD.;IiS>S>N 8HH! #HpHh(!,#HTH!L#H@h!lan#cH$H|xdL1K|8!N !|}&̓Г!ԓAؓaܓ|wyA,@ 8`Hp8`H;|zx8(7; |HAxH'|{xx,AH||xH;-AH,A<,A(,AcxHM;H; H; H;-AH,A<,A(,AxH|H8H8Hx;||xA |@CxxH1|zx8[|>x|zdxHAD,A8,A(,AcxHiH;H;8]|;9 =}:;AT|zxH=AD,A8,A(,AxHH;H;8| A8 |;A cxHA xH|@;|A ;|@CxxH|zx8)|9 }:Cx|̃Ѓ!ԃA؃a܃} 8!N !|$K|yA xHu|}xxHQxH8`$|8! N !|$|}yA,@ 8`Hd=;|HA(K xKq|~x|@,A ,AxL1HXeHx$|8! N !|$|#y|}x;A(?xxK);,@x$|8! N !| |yAKxKuH8`| 8!N !|$|}yA=, A,@ 8`HD|HA4K|~x,AHe|@x$|8! N !|$C, }LSxAtc,Ah|A`J!d}kUk}@bx3}=}=X99A0}cx9J| }@:x3}}} &U)/}}H9@| `@ 8`Hh|(}@bx3}}} &U)/}}H9}CSxA0}cx9J|(}@:x3}}} &U)/}}H9@<}DSx8_PL1K$|8! N !|Aa $|#x,|+x|3xA,@ 8`HK|}x=|HA@DxexxKPq|~x,AH|@s A xK<8_Px8K|~xxK!x$|Aa 8! N !|!Aa $; |{x;!x8{L1Hm!|}x8iHu|zxdxH8`:HU,{||x\<@t!x;cx8}L1H ,@,CxHUcxH8cHdxH|H a|P8cHအ|~x|(P|HM9@|P>}~P, }`[xAD= )T>,\@ 9JH |HA9J}~P, }`[x@, @4xHCxHcxH=8cHMdxH=|Hlx;L1H|xxxL1Ha||xxHIxHV]xK-|xxxL1H1||xxHV5x$|!Aa 8! N !| !$A(a,048<D;|yx;;>:#xxL1H)|zxa|P8cH-|{x|(P|Hcx|P~K=,||x@ xH|xHT|}xxHT|x8|"xT:H)9@| |~x@(9`W:| .9J| | .9k9)A|RT:9 }>.xHcxH!,9)}?Kx!@xD| !$A(a,048<8!@N !|!$A(a,048<D|#x||x|||+x,;`;;A,A ;`H,\,@0} &U)?k"!|}(y@ ,`@ ;`HA |`x|p} x})@P})pH8Hthi"! }(Ih`'!|}(y@ ,`@ |}xHD,$@4}_ ,(@$8x8KHEH |ix! }(I!|}(9A@,{@x,}_A4j! }(Yi` !|}(y@, A , @|}x|J HxH=  |}x= 8<` 8c_L1KX!x|8!N !|=  ,@H|8!N ,A<= I=`+T>|PA |H@ 8`N ,@8`N !|a $(,4=  ||x,|#x|+xx@ =  ,AxL1K],Ax8HI|~yLA,AL@<`8c_L1KiqH0=  ,@ = <i8_L1HWk!|yA,aH9=  1}h}h9A<xH,= ik! }HQ1 |Y|P9AaL1KM8`H<,A,=  ,A,AxL1H-x4|a $(,8!0N !| = i`=@, 8 |x;A=  ,A0A,AH,A<,A(Hl;Hd?i) 1)})I;HL, A@HqH|cyA(c?|H@xH,A;H9,A$xL1H=,@xL1H| 8!N !|a $=  |{x,;A=  `,@=  ,@Kf|~xH = ;_HH||yAЀ|H= I2|x, @4}+, \@ ,\A= K;_;cxHE;xH5|}HnE|}x<xgx8_L1HHxH|xxHM,A,AH5xH-;,A(= 8 cxH=`+9)+H$|a 8! N !|HM<`8c_K.e,AH=  |`H8`|8!N |cyA4,A(,\A,&@8`N 8c4c@8`N !| |xL1K,A`8`| 8!N !|<`8c6K%|8!N !|$HAHu|}xH5x$|8! N !|K|cyA cH8`|8!N !|!Aa $|~xKU|yy@ xH8cHkxHHpyH|xxxH|x;xHky||xxA0;U >,A ,&@؀yPL1H ,@y8\H}],A`yKI|}xH|zx||A |@xxHkq||xxxHxH1HHyH~||A |@xxHk!||xxH;{H<,\@(ix h&||p})x`8|Kx;>;{;,@8x$|!Aa 8! N !| !Aa $(,4? 996 |xx,@ 8`H;|;@@}6Kx>;`;v}> p A|~.L1K}|xH.,A 8 H8xxHߕ;6<hc};J 1cp A xHu,@;Z|;{ ; Ahx4| !Aa $(,8!0N !|,A$<`<8c`8`H = 8H = 8(<8n8` H|8!N |cyA4= $=`9k`=8= =@ iN =  (=`9k`= =@=i jN !| !Aa $(,0!4A8a<@DHLT?,@p<`8c`K(?=  =`=@j 눰= 9)`$=`=@=<`84 (x8c`,8?H848`8VH?<`83h8c`@8H?`83h8`^8VH?<`<8c`T838H><`<8c``838Hy?@<`<8c`t838H]? <`<8c`88HA?<`<8c`88H%><`8|8c`8H >8|8`8^H?`8` 8VHA>8` 8VH1>`8`8fH!>@<`8@8c`8H> 8@8`{8VH?@<`8?8c`8H>8?8`/8VHU? <`8ca8?8HY=8?8`/8^H)<`8ca(8?@8H18?@8`~8VH<`8ca<8?h8H 8?h8`~8^H<`8ca\8@8H8@8`@8VH<`8cap8@8H8@8`@8^H<`8ca8A 8H8A 8`$8VHu<`8ca8AH8H}8AH8`$8^HQ<`8ca8Ap8HY8Ap8`!8VH-<`8ca8A8H58A8`!8^H <`8ca8C08H<`8cb 8CX8H8C08`*8^H8CX8^8`gH<`8cb$8>8H8>8V8` H= =`=@9)9k99J8=<<<(gԑF88`v8fHY<88f8`@HE=`=@9Jb@= k IL1K5=` ~== =`=@,9bD9)E9kC9J<<<<&eD A 8`K8T| !Aa $(,0!4A8a<@DHL8!PN !|Ky= =`=@9)9k99J8<<8=<&ܑhԑG|8!N !| ?4,A(Hq-4H= I,8=`4K| 8!N !p||~x?4,AHYxHu8cHbxHw=@ =`49k=  ,j8`|8!N !|$H?8`K8` Hv}Ht=HHeH2$|8! N !|<`8cb\K"9|cy@ <`8cbhK"%|cy@ = 8ibL1H =  8,A=`+<9)+<|8!N !`|a?=@*8 |H|~x@4}$pT.|"T48 ?Ā}8T:H`Ȑ}88 ?|8U}:xHtI8cH`YxHvI|}.?ȁ|8U):8| Y.|a8!N !|!Aa $(,4<8bHt|zyA ; H;x,;A\x}jii }'Ii` |}'y@$ii }'Ii` ||KyA;| ,@|h # }'I ||Ky@T<8bx8 Hsa,@ 8} ,A4h }'Ih ||KyA,@ԉc|jxHj, ADii }'Ii` |}'y@$ii }'Ii` ||KyA*L1KmH}<9)( A`}~xH ;}j, A`ii }'Ii` |}'y@$ii }'Ii` ||KyA|,Ax;H;}{ii }'Ii` |}'y@ii }'Ii` ||Ky@}~,ii# }'I|&T?|Ky@xxAXH;}h, ADii }'Ii` |}'y@$ii }'Ii` ||KyA|PA(P|RxxHr<xL1K|,@8a8ExHp,@ CxHqq4|!Aa $(,8!0N !| !$A(a,048<D?<|wx,@K<,@ 8`HT,@`?};8cTc:H\|~x|@0<=9@'8;| H.| .h9J|XAW:H~xHo>;||tx;;;@>;; ;@;`V8}:P.i|X@`|P.~x~xHo,@H8|A(pU)'>}=JU)6;xW:H[|~x68;|H.|.;{;|;;9;ZAt,AW:8| .xD| !$A(a,048<8!@N !| ?@,A= i8|`PH = I,8=`@K| 8!N !| 8`HsYH|xH9,A= =`I | @=`+9)|HA= @H8=  @=@ = 9)=` ,*| 8!N !p||~x8`Hr=  ,A08`&HYu|x<<8b8bxL1HnH\H= i L1K<`8cbL1K=`+9)+H8`HY<8b8L1Hm|x<x8b8H= i 8 |8!N !`|Hva 8_9 ! 8aL1K|yA,,A xHlU8cHXexHnUHp8`|8!N !|}&!Aa $(,4|#x= 79)8=`=@9kbБ*|~x|+x;A8= I | h ! }(Ih !||KyA 7@,;@$= =`IT X}\x!H?`; |,A}c[xHiu,A{ ;}C}?, &i@$ii!|}(y@XiI|! }(Ii`>!|}(9@8iI{! }(Ii`$!|}(9@xL1Ku,A;T1}(}(9AL= i |,`@8,`A8<8b8L1Kͭ|hp}x|@P|p8,`@X? ?`Dx8bL1Kq,A4 $x8bL1KU,A<8+xHI|}x-@,$@<8-lxH!|}yM@t,~@0x8/Hg,@<8xH|}yM@8=  ,A(,@@<8/xH٭|}yM} &U)_1|}(9A0<8"xH}|}yM@X= 9)9=`+@DxH,A4<x8BDH=|}yA,AxH)E;x4|!Aa $(,} 8!0N !0|!Aaēȓ̐|#y|xx@\?|D,AH= ? `LxKl|~yA,~@xKq}HxHg8cHT xHi|D= iD?Hg?P}X,A |xH|DHg8cHSŀDHi=@9 =`8P*` \HxHg}?8cHS?`xHiu?|DHgY}X<`8cbKQh= ,=`iH߂d˂TA |xH}K(q?l{h,A |xH]K1l=  `,AA,AH,A<,AH|?`l?,Ad?_d{lUI:|iX.,AH?D8 d}$| H@XxHf,Al,@=@*`=`9)8 d*`?d= 9)2 T8}i.?@, A`}?`?dZT <})U#8}cR ,A< pA0?D|cP.$|H@XHd,A>d9)| >dA=@*`=`9)8 d*`? = iL=@2|Y, \@l= iH,A= iT8T|X,AKj||yAxT>,@xH98`HO8.=`x! 8b戫b8.;89:<8(!,=`FP[XYZA\]X!\H!LS b= PD.9)bxyz{})Q>})A|}~x9!xQ\PIiPSh9!hQD.PD.;.IiS>S>N 8HtHl! #HXHP(!,#H<H!L#H(h!lan#cH c||x,~@xKk|}xxH}x= iP,AHexHb=`+X9)|cJHN=`= ˂D<iP8bxL1HcxH?= iP\?@Hԍ?,8\zL@|DKeu,A<8`H̀|DKe],A?DzLXHa",~@TyLHa9|{xxHa-X||xP8||}HM-|xxHcL||| PHcH yLH`8cHLLHb|x;HlyL8/Ha|yAP= DX;xH`",xAxH`8cHLxHb|xH ;;,AD= iLH.,@yLH.,A yLHލ= 9)bȑ9LxHp,A xHi= iLK@?dwU=<J9)W8?d|}X.H_8cHK7|H.HxH_8cHKxHa|!Aaăȃ8!N !|,|}x@= ix,AHݝ= t,`@ ;H,,$@$9=h(||p})x8|Kx=  t=`|P xH^?8cHJ?xH`ـpx,A |xH x<8"H= 8~p |= ip,A=`+|U):|i.,@= 8 8`HH^Q?8c|`HJU|x,= @)t HtxH_?}|=  p=@Uk:j|@.|H_=|x9)=||8!N !|Aa쓁,|x;@?@z,AH?= ,$ @ 8>|H,{@8 | x|JH])?`8cHI5?|"H_zH]},A |xHIK= {?,A???~U):| X.,AH= i|x,A0H\,A?,9)?@= I, A= iUk:| P.,@ 8`H|H\18cHHA=` |x,A$=  k, @ 8{?}|H],@<8cxH\E=`+x9)+|Aa상8!N !`||#y|~x@\?,AH٭=`= ,@ @ 8 k      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~|~L1K= ?~,Al??U):|i.,ATHZ8cHF=  |}x?^=`U):k|P.|}H\?x9)?H8`|8!N !`||}x88L1Kԅ|x|@xHZ58cHFExH\5|8!N !|$?<8cL1HX?} 88L1K |AH 8` H[H-$|8! N !|$= |x HW,A\?? 8`888HT1 8`HUa8 xHS8`888HS$|8! N !|a $?`? ||xx!]L1KxH,A HL|@@= i | h h |})TU)| H9A8`8HW}$|a 8! N !|= i L1K|cy@K8`HL1K8`|8!N !|= i L1K1|cy@K8`HL1K8`|8!N !|L1K,A 8`H8`8 HZ8`|8!N !`|?} 88L1K9 |}x|@HV8cHBxHX|}x,A$xL1K|xxH,@K8`HxL1K8`|8!N !|a쓁?| 88L1Ky |x|@HV)8cHB9xHX)|x,A@xL1K|}xxHQyA = =`Ɉ xx!hL1KExH| HU8cHAŀ HW|x8K|}x,A xH,@8`HA|xHxK|xxKxL1KxHӝ,A=  =` H\=  |@L= I =`ˈ | h h |})TU)|H9A8`8HT%HKɀ|a상8!N !|Aa $|~x|#x,@,~HL1N!|y@(~HҭH;9 9)| .;,@8}Tc:H@9;|{x>, AP;;|.HL1N!,A|.;|.;H |.H%;|.,@,W:;.@~HH\,@~HH<9`,A$9 | .| .9)}+Kx| .,@8| .cxHё$|Aa 8! N !|$|~xHR= 6|}x,AT|@8,@0}`P#|X| @|ZHQ=,@ 8`H |x,@8`$|8! N !|$?|x8}6Kz;6,A<x88L1Ku$|8! N !||K[]|x8`x8HP,@$xH!aTc&hc@ |`HxH8`||8!N !|<89(L1K̀|8!N !P|!Aa|zx; xHQ!8cH=1xHS!|xx8$HO),@x8`HO,Ax8K|}yA\xKEz>9`| @|dxxHO=!C}jxiyHxHxKH,xHxH8`H,Al= i ,A4?;;>;|}H.;H5>|H.,@?}?H8= А Hgu|zyA܀?,A;}<.iH|{yMAx?; }x,A`_Ё78 |H@$8 ~T:H:~_Ё~UI:} Y.8 }j[xT :)Q.;@cxHM;|.,@`= =`<i8Lp8HM4| !Aa $(,} 8!0N !`|a|#y|x@(= K?= 邸xHM9}??`,A???=[U+:| P.,Al8 ||P.HM5,@@=U):})iHL8cH8Ձ=U):})HNH,@8`|a8!N !| =` = 9)>|H=`=@= ܃ʄ9)=8+ܐ @ 8`?H8` He= =`ܓ˄| 8!N !|8` L1H=|8!N !|8`?L1H|8!N !|<8L1Hـ|8!N !|8` L1H=|8!N !|8`?L1H|8!N !| !Aa $(,4???`?@= =`=܃Ԃڄ89)9kc0=ܐԑzH=ܓԒڄ4| !Aa $(,8!0N !|8` L1H݀|8!N !|8`?L1H|8!N !|8` L1H|8!N !|8`?L1H|8!N !|8` L1H|8!N !|8`?L1Hm|8!N !|<8/L1H|8!N !|<8-lL1H}|8!N !|<8"L1HQ|8!N !|$|#y|~x@L?= ,8 AHxKm= 9)|H@= = i= ,A)U):|i.H8`=`+9)+$|8! N !|<8BDL1He|8!N !|8`*L1K|8!N !|8`?L1K|8!N !|Aa $??}܃\8ܐH}ܓ\$|Aa 8! N !|$|}x|#xHG 8cH3y|jxAU >, Ax, \@  =9J, AXHL,A| @4;H4ii' }'Ii`" |}'yA }|[xH 9J7@8 $|8! N !|a $|}xHF!Tc<`cH2-|~x|#x,xAl?`;\T>,\@$=;, A,"ɂ0@ ;Hx,'@ ;Hh,@`= ik }GQ0|Y|P9A<=  ,@,x8!HB0c|c|`8T|~x,"@T= ik }GQ0|Y|P9A0= ,@ x8!HB=,A ;,A4A,A-H<-A(H0xH]-HxH]9-H xH^||x|A xH} &U)_0||H9A xL1K9|xxHxxHCe|}x8}H/q|xxHE]k+ }gYk0|I}g9A}=8 xHux|!Aa} 8!N |cy9 A#|ix|y@}#KxN |cy9 Ac9),@}#KxN |cy@ |#xN |ix,A) ,@N !|$|y|+x|3xA,@ 8`H8dH.-|dxx|#x,A|x,\8c@,A|;x8(Q8cA`=`9kc@T:}K.= 9)c@}JJ}IN 9H@9 H89H09H(9 H 9 H9 H9 HC98 (8A,8AU 89)Ѝc} J}j[x8 (KԉC= )UK<| J.8p9A`}%Kx,8AP8 (U 6UK>A 8 H8 (A 8 H8 }ZCUI<| *.p@,@<8\89xH(,A9 ,=H$8\88,@P,8A |0P|#x$|8! N |kx 8`,M 9 9)| X.8c,@N !| |~yA,,A ;|.;H |.,@| 8!N !| |yAxKxH| 8!N !`||~xK8cTc:H+=|}x,9 A8;|.H?8cH+|.HA|.;x| .,@8| .x|8!N !|cH?|8!N !|$|}xKY|dx<x8Lp8H>u$|8! N !P|}&Aa|}x|+x|#x|3xL1KA;8|cTc:H)|||x@ 89 ;|| .9)A,xA\-W:A,=iH=8cH)=H?~H= ;,;@,W:8| .Ax|Aa} 8!N !|}&!Aa $(,4|zyA,@ 8`H;`9 9)| .;{,@|+x|;@\-? W:@ |~.H8ydKK|xAH|.xxKLI;|||x;A,A ,AxL1K=Hx4|!Aa $(,} 8!0N !| !$A(a,048<D|yx|#x|+x|3x~xH;;|vx~xH;y;|zx,;`;;Ap}tx~XP,A}9خ| @x|y~x~ųxH;u,@`||A$}:J|@xxH'q|}x~x ,A|ᮌ ;,@{VH<;|A ;|@xxH'|}x|خ;{|x|خ,@48|xD| !$A(a,048<8!@N |#yAH,A| , A,H0| h !i}+Ih !`| | KyA 4@}$8 N !| !Aa $(,4|#x?x}(B| Z.|zxpA = IU :kP.HxH}CxCxH9Y;|x#xH9I||x|Apx>}Zx}*R| Z.pA7UK:| H.|AH(| @ x$xxH:y,Ax;|;@8`4| !Aa $(,8!0N !||`x|#x|xL1H9!|8!N !p|<8d8`H7Y?,AH858cH$EH:5܀|8!N !|<`8cdK,@(= ,A,A 8`H6<`8cdK,@(= ,A,A 8`H6<`8cdK,@(= ,A,A 8`H6]<`8cdKI|~yAD,A8?,AHuxH78cH#!xH9H7<`8cdK|~yAP,AD?}?,AHxH68cH"xH8|dxH6i|8!N !|TX\d|#x,T@ ,@X?~,AH,A$xH6%8cH"5xH8%~H= iH68`H?~,AH=,A$xH58cH!xH7ѐ~H= =`iH5q8`HPT >, A@?~,AH,AxH5e8cH!uxH$?},A H5A8cH!QH7A~H8`H!9~x8`H, C@h#, T@,= ), A ,@x8`Hp, O@,= ), A ,@`x8`H@T>,M@H,E@<= ), A ,@ x8`H3q1C} }CxH8`d|TX\8!`N 8`N !|=  ,@K|`y@ =  |x|8!N !|a,048<D||y|#x|+xA,@,A 88`H8{H|~x<`8cdKU|cyA@#, A4, C@,A , P@ <8dH1,@ xH$8`x8H4E|x|@ xxH5,A@}H8xHIxH2||x8|H|~xxH4,AxD|a,048<8!@N !||dx8`8H1,@ 8`HAU@&,@@ 8`H|=  1,@U@~UI~|Kx}@xp@P= i1 | @ qH@@4a$K=,Ap@p@ 8`H8`|8!N !|L1K%pchc |`|8!N !|L1KTc|8!N !|8$L1H|8!N !|8L1H|8!N !`|}&|~x|#x<`8cd8Kܭ|yMA H8,A,@ xH08cHxH2H4xxL1H i|~xAp A xKx|} 8!N !|L1K|8!N !`|K6|cy@ 8`H,@HE8`H8.=`x! 8dꈫd8.;89:<8(!,=`FP[XYZA\]X!\H!LS d= PD.9)dxyz{})Q>})A|}~x9!xQ_PIiPSh9!hQD.PD.;.IiS>S>N 8HtHl! #HXHP(!,#H<H!L#H(h!lan#cH |8!N !`|}&|~x<`8cdK;|}x,1@$xK1,@xL1K|x-AX=  ~,@=  ,A4xL1K,A xL1Kx;H-@xK1M,A$xH-Q8cHaxH/Q|xH-A4x8$L1H|xpA xKHxL1K|x,A@= i}@&UJ_1 |Y|P9A = xx8L1KYx|} 8!N !@|}&!Aađ,|{x|#x@?,@= 8 8`H%>9@| >@0<8=9`&9J|I.9k| A?;cxK/? |~yA0cxDxL1HU;=@*ijHHcxH+q?= |vx<߂ɂ8d8`8H*q<`8cdKE||xx-A?x}<, Ax8xL1K|yAcxxEx~Ƴx8L1H!|~xxH5,AtX58 |H?@$8 8 }T:HY}}UI:Y.8 }j[xT :;Q.,AH߂@8= 8 <= IU :P.,A 8xā|!Aa} 8!N !|!ԓAؓaܓ|zx|#x|+xH)|{x;|{H||xDxH+8/|||ٮ8c$xH+x|!ԃA؃a܃8!N !p||x|#xL1Kp`A8s@sA(p`A xH(8cH xH*H8`|8!N !P|!Aa|#x|yx,~|+x|3x|;x@xK1|xHx?,@0,.@$<`8cdxx8L1K$e}$xExxL1KA|~xL1K}||}xA xHYsAs|@sA0si A s@ ?,AHH`siA0?,@ xH'8cHxH)si @si AsAxH8`Hx|!Aa8!N !| !Aa $(,4= 8||x |#x|+xK*|yAxdxL1KH,A,@ xH&8cHxH(H?@xH&|xx<8d8`8H%|,A>;!,AKSx$xL1K|~yA|xxexx8L1KM|xxHa,A<xL1K],AxH=Hz,AH)xH}=, @d= i4| !Aa $(,8!0N !`|}&|~x|#xL1Hy,A=  ~,A$=  ~,@=`+9)+~He=  ~|x,A$=  ~,@=`+9)+-@\>iH$8cHс>H&|yM@08`H|x8-H~Hi|yM,AxH!||}xA8` xH"uxx8xH"xH,AiHI,@,A ~óxH= xD| !$A(a,048<8!@N !|a $|xH|cy@ <`8cLxL1H8`HH|}y@ <`8chxL1H 8`H<`x8cL1H ;?`?x,A\<`,A 8H88cL1H ;,;@W:}=., A<`8cL1H xKa8`$|a 8! N !| |~xH|yAH|dxxH8`H<`8cLxL1H8`| 8!N !| |xHE,@ 8`Htx8HM|hyA,<`8cL1H!=  =` $8`H8= i =@|X8`L#|&TG|}kx}8|[x $| 8!N !| |xH,@ 8`Htx8H|hyA,<`8cL1Hu=  =` $8`H8= i =@|X8`L#|&TG|}kx}8|[x (| 8!N !| ? ,@<`8cL1H | 8!N !| |~y@ 8`HP>xH |kyA = }ht~L1N!H<`8cxL1Ha8`| 8!N ! |a̓Гԓؓܐ||x|#x|t,@$8`K;|~x8.H4,A,~@xK1|~xHxxH|xcxH8|cK|}xxH }? ,/A8/|;9 }=|}dxH e|A xHx|ãЃԃ؃8!N !|}&$ ,A(?8<`8c(HH<`8c(H|}x?<`P8c,K-||x<`8c0xK@4P,A(p A<`8c8x8KQP<`8c,xK@8=  P,A(p A<`8c@8xK P,A xHa8`$ |} 8! N !P|!Aa=  |x,A<`8cHH= HH0,LA,P@;H;HH8`Hp<8TxL1H|}x,@= ,@H<`8cXK!|{y@<`8c`L1HKcxxL1H,@HȀ# ,-@ ,@<`8c0K|{y@<`8cxL1H K@cxxL1H=,@,HcHm|ex<`8cpdxL1H uK=  ~,AX<`8cdxL1HH@ccxK|y@(<`8cK|yyAx;AxHЈx|Tdx8L1K|~xxH-8`x8H,AT&,@@txxL1HM,A\,A,,A xH = @<`8cL1HxH=  ~1\}j1@|j|c[xHLxH#xDxK |y@$=  ~,A,A 8`HcxxL1H,@=  ,ADcxK|~yA4xxL1He,A<`8cxL1H%H=  ~,Ah=  ,,AXcxL1H|~yADxxL1H,A$<`8cxL1HxHH4xHyHQcH |ex<`8cpdxL1H KxL1Kр|!Aa8!N !|}&$=  =` 0|xHH@,LA,P@$= 8 0H = 8 0HH y8`H<8TxL1H,@=  0,A\8`K)|~x8H|yM@\= H%cH|ex<`8cpxL1H xH!H<`8cH|yM@ 8`H0<`8cxL1H= iHQxH~8`$|} 8! N !`|a,||x@@?`@,@,<`8cHE|yA xH~U@,A= @xK1HxH8cKxH|xxK|~yA$,AxH}HxH}xxHq,@pxH};H|xxHI||y@@= i@;,A H}@<`8c(He|~yA4xH}uH(H ;= i@,AH}Qۃ@xHxH!c|k|a8!N !|$|}xHTi<})9)U)~8iK|xxxL1HI,AA ,@xH|8`Hx$|8! N !|a     $||x|#xxx;`,/@;,/A~}`t,@P,@(,@,.A,.AxxH0||3xHT>h /})|U)T}&99A8A<9| @@@ j9J~}i[xi /|})TU)|H9@Лjx8L1Hm,@ 8`H8!9A } t,?A*9J} t,?@K̀ $|a    8! N !`|Aa|#x,|+x;@ = 8iHU||y@\8`H;xDxL1H|x|k1@}jL#} &U)G}*X9AxcxHyAxH|cy@xHň,.@,|t| p}Ix})PP})p}+HH8Uk}=[xx|Aa8!N !| |~x|#x>H|t,AЍ>} Kx| XA}*t, A}kt, Al| t, A@|t,A0| @(| X@ 8~8Hq,@ 8`Hd8~8HU,@ 8`HH8~xH9,A,A$x8H,@K8`H8`| 8!N 8`N 8`N !`|a|x;;H}HL,pA A,VAH(,vAH;H ;H;HH8`H<8xL1H),@= ,@ 8`H,AX;?`?xi8He|}y@?8{L1Hi,@ |gH@,&A,=  ,A<`8cL1H!8`H <`8cL1K A?8~K|}yA xH8cKxH|}x<`x8cPL1KEH%|}x,x&@ = 88~K A xHvK|}xxK=9@i}<`K`0(8cPa)0(xL1KxK9||x<`8cL1KYx|a8!N !| |yA <`8cxK-xHvH<`8cKE| 8!N !`|8`88H|yA08Ka|}x8x8`xHxH 8`K5<88L1H|8!N !p| ! A$a@(!(A0a8؁@ءHPX`!h|~xK?|ex?8 L1H!= t,A ,A8 L1H?9A89 9a}p!qaxAtx8pH<}8(L1H|8!N !|$= t,A(,A= <i8,L1HE= i?}<88L1H!}H1$|8! N !|,A<`8c9)( A0xK,A x88 8H8cH@;|t,+A0A,A$,%AHT,-A,?A;||zx;`@? ;9 }=H., Ap-AxK,@,>|H@$xExH,@,@Tx9 }}H. |@;|;Atcx4| !Aa $(,} 8!0N !|}&!$A(a,048<D |~y;@P-;? &W_?@?`xKM|x,S@88H,A,U@x88H,A~1}(}(9A8,?<`@= 8dH = 88cxL1HHP<`8cxxL1Hu;,A<`8cL1HYH<`8c(L1HE;;,?@= i~}@&UJ_1 |Y|P9@ ,A<`8c(L1H8`HD= ;iT;>xiK,AЀa,@8|x(?@$><`8cL1K!;HK|x,S@<88H-,A,U@ <8x8H,A|=  89|x|p}x|@P|p}k x 8<`|[x8c8H<>iKa|dx,@><`8c K8<`8c,L1HŃ,@xD |!$A(a,048<} 8!@N !|!Aa $(,4= i;;||{xA?@1D*!}<U+})Z}?pW<|zT8|~X.;})t|t}IQ@DdxH,@4|~#, A8p @,T| y@$H@ ;H;|@p8`4|!Aa $(,8!0N !|8K,= iA cH8`|8!N !|8K,= iA cH8`|8!N !|8K],= iAp A cH8`|8!N !|c+})t|t|`HQ@ }c[xHu|8!N !|= =`<i8Ƥ8H|8!N !|$|}xHqTc:`cK}y8'9cA@9 \|t,A,,' 9k@+  9k7@9 '8 +$|8! N !|$|}xHTc<8cKy8"9cAX9 \|t,AD,$A$A,"AH,\A ,`@ +9k7 9k@9 "8 +$|8! N !| |xHTc<`cKy|hxAx|t,Ah8(tAL=`9k@T:}K.= 9)@}JJ}IN 8\H|@8\994@8| 8!N ,|hxA|#, Ap8 |t(uAX=`9k T:}K.= 9) }JJ}IN |@A$|t,=A,:A |@@ 8`N 4c@8`N !|8L1He|8!N !|=  8,@<`8cL1K8`H8L1H|8!N !0|}&!Aaēȓ̐ԑ||y;|#xL:9@:Ap/<?, -@,-@,A}+tU`>h -h+|})TU)|H9@, +;@ 9!H9!,A}`&Uk<9|thp"||X9A9J;H,F@ :` ;H,f@ ;` Hh,x@ ;` PHL,r@ ;`H0,i@ ;`@H,a@( ;` ,@4,@@,A`= 0<`8cFK|~yAl,A ;|.;K|.,@xH_H8,K,@8`L1Hr]H~ųx8`Hx= iH8`H, AT;?<~ijxiH~,A<88;L1KŃ,@2|tHD><iH8cK̕<H|}xK-|zyMA8}=|Ѯ;iH;uHx8[Ha; |yA?;H;xK=,@ <`8cLxL1K:H8=  8,A(T|yAxK%H xK5p A@8xK|~yA^}ISxq4A,pA <`8cxL1K;Ha, @L,@@,?`A Hx8KI|x8{xL1HߥHX})[x>} xH@;H8xKm|~y@0T|yAxKAHx8HK9|~x^qT}KSxA,pA <`8cxL1K;HUi2|}49A <`8cxL1Km:H,&@p@ qtAPAL,(@$cx8)H9,A; ^H <`8cxL1K:H(pA(qTA <`8cxL1K;H @pAqT@xKa|~x^2}t}@x!}t9|HxAdxxKH4A0TdxxK|x~,AH[}pAPpAD95H|p~"x|P|p})x|8~|KxKYTxKxKxH[,@,@L2|tHD<`8c L1KK8`H(<`8clL1KxHZ8`H8`ԁ|!Aaăȃ} 8!N !|}& !$A(a,048<D|}y;;`MH,-@8;9`|X,AiL1H-hc|hp} x})@P})p8 ,H8}=x@HLW8?>xiL1H},@>8|D;L1K,@x$|8! N !|}&!Aa $(,4?`;|@pj?? Npj;;Mpj?@M|}?Z ,A\ p @PA p ADAp A|X.8yH$A(|}>Z p @|X.8zL1Hօ;|;;A4|!Aa $(,} 8!0N !| |#x8K|cy@ 8`H(,AT9) a})R8c})||9`uA9!QP8c iPPA9!PD.PD.9_ iP>P>N 8HtHl!#HXHPX!\#H<!#H(a!#cH ~xxHI|y@0H|fx<`8cx~xL1KۑxHPHxHPrTA `#x8KM|cyA<?_ #cC ?#;ZHW`:.;{,@h,"z}3|&T?}39A~óxHP~xH8`HA?=?8T<|cTc8K;@|xT<|T8L1H |@h<8}F.|T  W@>,AHH<,AcxL1KՐHHcxHy8cKdxHyH(,A L1K|}xH<,&A ;H8`KY=KE= L=  ~,A=  x,@K6K=  x,@K xxxKK; @ 8`KXxK,@0H;~cH|ex<`8cTxL1KƕH xK5A xH;=  x,@$=  ~,@=  ,@ xK1,A xK}KYKK Ex|!Aa} 8!N !| =  ~|x,AD=  ~=`,kA= 8lH = 8tL1H5= iHAxL1He| 8!N !|=  ~,AL1H-H<`8c|L1K18`|8!N !| =  ~9@,A<=` 4= 9)P|HA$= 9)|HA= 9)T|H@9@, @P=  9`| @<=  |x9@}*8., A ,A,9k| @9JA,AL8Km|xHD= i<8L1H= 9)P=`=@+8*48`HT= 釈=  ~,A,=`+X9), +X@<`8c8KE= 釈8`K݀| 8!N !|}&,0!4A8a<@DHLT(|xH:= ;;;; H<8xL1H,A8(AT=`9kT:}K.= 9)}JJ}IN :H4;H,;H$;H= )HK8`H= i=`kL1H,A`.= A4,-@(|t|p} x})@P})p9iH8}>[x,A,;`&A;@;?8=iHQ||yA|\8` K-;|}x?iH8cK ?H}xH8cKxH,}A}x,&@t,&A$,AcxL1Ku|{y&HM|zx A?iH8`DxL1H|}y@X<`8cL1KQ AT}x},AH6u},AH6exH6]y@H A\xdxL1H|xxH6-}x},AH6},AH6xH5y@x= i<8xL1H1xL1H<x88K)H|H%|zyA`;,A9 9)| .;,@=`+,9)PAT?DxiL1H|{x,A ?DxiL1H|~xH<-A0xH,-Ax;~`|p{8H x~xW`W|Ky@ ||&T 7T|KyA<`8cL1KmHt|-@x~xx;@d8`H:|}xHe<8x8aL1H<8$8aH|y@$<`8c(8L1KH= 鈬-A xH}xH|A=  ,,&AK) A$= <8D|*xL1HA8W:}:.i, A 8*H8 <8HxL1HW:}:.<8xL1HA ;H;AL|@LA 8`H xHA8#xH|}x8aH8}K|}x<8L%xH(8aH8cK|}x<<8L8T8L1H-<x88K1,@t;?`= 8{pL1K)?<`8c8L1Kŀ8}8L1K哝8aL1K|}x8{pL1KMxH8aH8`T(|,0!4A8a<@DHL} 8!PN !||cyADC8j#9c})ti)-}(p}Jx|@P|p}kx|c8|c[xKH8`|8!N !|a $|#x|}x,;;A9 9)| .;,@= i,8PA|x,-@ ;8},Ad#9)( AT88 8H|c= )|J|A|,@|8cHlA |iPH`xHXxHEy|{xA@W:}>.}| @xexHa,A7;@8`$|a 8! N !`||#yA@xL1Ku|cyA,T}:}=.iH8cK}=.HH8`|8!N !|a $|{x;;;H48|A;xxK|}x, A@;cxH|~x,@,@0,A xH/%8`HL;8|H48|Ax8K|}x8 |;9 }=x$|a 8! N !`||}x|#xH-8cK=xH-y|xA4x8Kt%|}xxH.Mx,@x|8!N !|}&$|~yMAĈ,AHY|cyA;,A9 9)| .;,@= i;|cH,AhxH1|c, @ 8AD,A8xH]|yA,AH-ExH-=xL1K*$|} 8! N !| |xH|c, @ 8,A,AxL1K*A| 8!N !| =  <|x,@<`8cL1K58`HxxK9,A 8`H`,xA ,A | xK, 8A$)) ,&@ !`|xhL1H| 8!N !| =  <|x,@<`8cL1Kq8`H,xKu,@x8L1H!H8`| 8!N !|}&$ |x|#x8aH;8a8HxH8`8xHxK|dyA,=  |@= I T:}+P., @<,A,A?H = 8<`8cL1KeHx p@<`8c8L1KAHT-@ = 4 4|#xxKܵ|yAx8`8H1xH$@ = 4x8`8H 8`$ |} 8! N !|}&$ =  |}x,@<`8cL1Ki8`HP;;HH4,pA,r@;H= HK=8`H<8$xL1Hm|~x,@= ,,} &U)?&|&T| H9OA0H,@= <`t8c(L1H%8`HAK}; Ap-=A xx88L1KH8xK1,@(x8L1H]0c|c88|~x,@= iHx$ |} 8! N !|}&$ |x|#xKV;,@xK,@txKx|~yMA4xKw,A$= xx8L1KH$,@<`8c@xL1KA;A xH'ux$ |} 8! N !|!Aa $(,4?@:, @ 8`H ;`|;@? ;:, A |@)H.H;,AD,?@8yPL1H;`? 8|`L1H,@:; ;|A|cx4|!Aa $(,8!0N !|Aa  !$A(a,048<D|zxH<HK8`H8Cx8hL1H,@= I,&@8`KiHI8`H:iH,AT,A= 8H = 8h<`8clL1H<8CxK<`8cL1He= :h: AL>@:~xH2|sx,A>;; ;`=  ,AK~xx~exH,A4=  ,A 8 H8~xxH,A4<`};J8cxL1H4};Ji ,AT?=x>;;<8v}=Ji ;|X.;L1HM<}=Ji |X.,@:2;H.;9,;{@Z,@,A= iH58`H<`8c~xL1Ka8`D|Aa  !$A(a,048<8!@N !|@DHLP!TAXa\`dhlt<`8cL1HA? ;|@>?@; >;`;:>,AK :}h`|T!#})I})}(9=`A$,A<`8cL1K8`H$s@AH,@ 8`HsA,AxL1HKs A,AxL1HMHsO@xL1HK,A?H<`8cKN|~xs;AxL1KA|xHdsAxH|xHLsAxH|xH4sA,HQ?8xH|xH5H͐}1|h$|8! N !|Aa $|cyA8K;|~xH ;;H|}yAԀ;,A9 9)| .;,@})p||Hx,H8}>xA Q@;W:| .,Ap}>Kx?@?`?,AK}>.ȁi|, A 8*H8 }>.8|;L1H;|.,@$|Aa 8! N !| H|cyAH;,A9 9)| .;,@= i;|cH ,@ 8`H0xH|yA,AHxH8`| 8!N !|$=  |}x,AK-,A xKm|}xL1KxH9$|8! N !| $(,4=  |x,AK,@ 8`H,;At???8iHI,@ ?8|;L1KQHaH!8` Ha,AHi,@= iHx4| $(,8!0N !|!Aa $(,4=  <|x,@=  ~,@ 8`H;`;;;HHx8( A`=`9kT:}K.= 9)}JJ}IN ;H@;H8;H0,@;H ;H;HK%8`Hl<8xL1HU,@t,= AxL1HaH0,@d,A,A,AK,A KxKKxK%KxKK<`8cL1Km8`H;x? ?@8aHe8a8H9xHQ8`8xHYxK,A y , ATi:| X.,@ ?8z쀉;{L1KH ,A|fx8`x8K8`x8H,@X1|h4|!Aa $(,8!0N !|a $|~x,xA?`=i ,%@\xK|cyAL|@@?? T|:|H.,A(=iH1 }, -@܉?, @,l@;ZH, -@}'uL@p,sA@`,n@X,A<>,0@,@ ;KxK||xK<`8chxH}`t,-@,}'uL@,-A@,?A}`th- | }'|H9A$;xK];{||x,@,Ax8KUHx,@ <`8cxL1K58`HT,@K58`H@K)8`H4~?9_})ti)-}'p|Jx|8P|p}Jx8|Sx?, ALxK,A<>8i8 8H|xx8Ka,AD;9H~h %})|TU)|H9A<`8cH\,AD=  ~,@=  <,A$8aH5;8a8HxH8`8xH%xK|hyA,=  |@= I U :|kP.,@8,A><`8cL1Kx8`8HHpA H #x8`8Hxx8KHic,@<`8cxH8,@<`8cxH <`8cxH<`8cL1K,@ |g4|!Aa $(,8!0N !|$|y@<`8cL1K8`H8;?xiKa,A܃,@!c|k$|8! N !P||~y@x?h,@<`8c@L1KH<`8cTK|}yAh=@; `W:@.A.xL1H |xxH܃H;~# ,-@X ,@ ,n@ cH# ,-@( ,@ ,-A ,Ac|t,+A ,-@p8c8Ku,A,-<`@!h| Pch|A ,@>L1H YHc,@sA<`8cTK|~x,@(s@L1H U|xH;xH<=hh`T :7})ZA(=@W:*`7| H.}+J 9k@`W:})ax9k, a@s@xL1H |xH;xH xH,@ 8`H<`8cTK|}yAs@xL1K|xH;,@|sA(>iHE8cK|U>HAHxL1H u8`L1HsAtxHaKh~= i\L1KKH xH58`|8!N !|$(,4|y;9`;+A# ,-@L ,@ ,n@ cHd# ,-@ ,@ ,-AHc|t,+A ,-@,8c8K,A ?i,@d=  ha|A,@0,@(}d[y@ = 8\|xL1H]8`HD,+@ ,A,-@=  h|@ts@0=`+h=@ `U):})iL1H|xH;,A xH=(h=`9)(hK`U):|iP.H eH@8=  hPH,= i\L1KK8`Ht|x= i`W:|~X.H =@*h9)|H*h@4x<<F`;}(R |Q.gh9|XA8`L1H%8`4|$(,8!0N !@|}&Aađ|}y8= ;\;;9`A}# ,-@܈ ,@ ,l@ cH@# ,-@ ,@ ,c@ cH# ,-@| ,@ ,v@ cH# ,-@L ,@ ,p@ cH# ,-@ ,@ ,-Ac|th -! }(Ih+!||KyAT;x8KQ,A =8i ,+@ 8H8aL1Hm|kxH KH,@sA H}H,AT,A= h| @ = ihxL1H8`H} &U)?h!||H9A<`8c`K9|}y@$8`Kw<8h8L1H|}xsA8s@xK|exHx<`8c8L1H-H0s@xKQ|dxHx<`8cL1HxH,A= 8` HHsATs PA= I`Uk:|P.H= I`Uk:|kP.K|ex<`8cxL1HHXsA= I`Uk:|P.H= I`Uk:|kP.K|dx<`8cL1H9H}= i\L1KK8`H?`UK:|kH.K|ex8HD?A ;H;A~`T :|X.H>`T :|kH.K|ex8xL1HE!9)}*Kx, !}@Sx@\?8` H}HQ8`ā|Aa} 8!N !|,@<`8cH(,A<`8cL1K-H<`8cL1K|8!N !|$?h;|@,?;<`;|~H.;Hh|A= 8 h$|8! N !|$K8KA|}xL1Ke||xxKũx$|8! N !| |cyAL1K|xH;,@8`L1Kx| 8!N !|$?= h d|~x|@$8 ?d}`T:Krဟh}`= I`8T:Q.h$|8! N |+y|kxLA,@ 8H8|p|PT!K}*Y}*9A 8`N = ih| @$A,@ 8H8K,@ |kPN }c[xN !|$;|t,-h+!|} &U)?}(yA@;8c8K~,AD8a x8 L1Ka , A@,A=  h|@ 8`H@} &U)?i`!||H9A<`8cK1H= I`Tk:|kP.$|8! N !`|a|}x|+x8L1KM!}T`y@H=  h|A8?=`T|:||H.H}`xH-8cKp=xH-||.|a8!N !|a $?h;|;@ W >@~y@ = 8i L1Hm;|zy@:a 8| =@*<`9)*8c$L1Km~x,Ax~cxK+|y@~cxK/Hp@xK1|xKɀa ~x8K|~yAxxK3xK]a KkH,@d,A4a K|~x<`8c8xK0)|xxL1HH<` 8c8K0|xTa HA -^xHH|th ! }hYh ! }(I}hKy@ , @(~xH|M,A;A,@ ,A,:1(;xKx,@xKa,A! |u&A8a ~x8K|~yMA !1||9A4xKy|}xxxL1H|xxL1HHDxxL1H|xH,<8 xL1HW> W@>|x;AxL1HY,AxKMT{;, @;iKv,@,;iKE,@;<`8c@H\a ~x~ųxK,a A\Ky;|~xixL1H|xxL1HHD<`8c@xL1KMCxL1H8`HL;|dxiL1H|x;iKL%,ATCxL1H9xd |!$A(a,048<@!DAHaLPTX\} 8!`N !| |x|#xK,AxxKQHxxK,| 8!N !|$=  |x,@KxHg|yA8xHz|}xx8KgM|x8 |;9 }?H8`$|8! N !| |cy?A8K|H=  |=  ,A<`8c8Hx<`8c`L1KE8`| 8!N !|Aa $= 9)HH |~x,Ad}=Kx;}x;}?.~ | @0|.xHxA,@|.K|M|cyAcH;|.,@= 9)H؀ ,A|}=Kx;} ;]x;}?.~ | @D|.xHw,@0|.,Ax|L1N!H$}?.iH;|.,@8`$|Aa 8! N !|,|`x@0,A= lH = p<`8c ||xH$,A 8-H8+<`8c |xL1Hx|8!N !|}& $(,4= 9`9)HH| X.|~x,|#xaAd-}?Kx;Kz|jp}@x|PP|px|`8|KxA|@xL1K,@= 8iH؀,Ad-|x ,A|L1N!|dxH ?A | @xL1Ky,@4| $(,} 8!0N !|$hc-!c|k?= }\8i hK0y\,A<`<8c 8 K()H<`8c K0I<`8c L1KJ8`$|8! N !|hc- |`,= i~@<`8c K/H<`<8c 8 K'<`8c L1KK8`|8!N !|,-@0<`8c HM=  ~,AK= 8H\=  ,@,eAH@,v@4=  ~,A= <i8 K = 8 ~= i~ c|8!N ,e@0=  ~8`,L =  h!c|kN =  ~8`,L =  !`|kN !|,-@ KI=  ,@KHK= i c|8!N !| !Aa $(,4= 9)H؀ |xx,|#xA}>Kx;^;>x;k-!]}?.{ | @H|.cxHr,@4|.,Ax|dxL1N!H}?.H;|.,@>97HH ;@,AT}9Kx;;}?.{ x| @;HH|.cxHr ,A8;|.;,@,@(<`8c dxL1K|QH49>I.KCxxKv ,A 8`HcxK~8`4| !Aa $(,8!0N !| KQ|yAxKxHKa|yAxK}xH| 8!N !|= 8iHH;,A@|xKt|cyA ,A;Hr,@= 8iH؀,A\|x ,A |L1N!,@H$? ,A;Hq,@8}K];||x= 8iHH|.,AT|x;:Kt|cyA0,A$||HsQHq9;,@= 8iH؀,Ap|}x;: ,A }|L1N!,@H4= ,A$||Hrр}Hp;,@1>})I8|HxH8}>x9`<`}|8c K|cyA#U U?H;<`8c xK!ŀ=@`*k0|I|X9AqA U<xHa|8!N !|$(,48|}x;HK)xH xxKv9|y8`-x@܀4|$(,8!0N !p|,@l<`8c K|yAXp ALp @$Ho-8cK[=Hq-|xH;,AxL1KxHQK|8!N 9=@8= =`  \ ~N !|}&A8a<@DHLT4||yM@})tU >h +h-|}kTUk| X9@, -@t|t,A,-@\,AlHLxKpU,@<,oA4W@.8aKx},?@KwW>hc?|cTcH|t,@,@4;`;@AL<~,-@T| t, A, -@<,@0, -A8`x8+Ko;`8`v8+KoH|}t,A-+k-!I}*I|&T_}*yAH,?A0,o@t|, A4+,A$|t,A,-A ,+@8`|&T_K H<}|[xxK,A$K8`HdxxKo ,A;`|t,@\,@1\| | yAx8Kw,AK]8`T4|A8a<@DHL} 8!PN !|}& !Aa $(,4|~x;;@;;`HWH4,fA,vAH;`H;HKuE8`H<8 xL1HSu,@k9= ɇA<`8c L1Ks8`H,A-> &W9_>@4xK 5,A4x8[Hh;Z||x|;H=  ~,A4xKd,@ <`8c 0xL1Ks];H(AxK H xK1c| | 9Ap A<`8c PK,ADp A8<`A= 8 H = 8 8c dxL1Kr;H1c}+1z| }+9A(p @<`8c K8xK"H A 4H = 0xK#,|&T?| 9A,@4xK#e,@ ;H@ xK9A,@\1}|k4| !Aa $(,} 8!0N !|88H=|8!N !|88H|8!N !|}&a  !$A(a,048<D|~x|#x|+x;::::HTyHT,fA0A,aA,H0,nA,pA,H:H :H:HKq8`H<8 xL1HP,@= ɇ,As*A= 8 P-A$s*W)|&T|})x 8|Kx-3>APxK|cy@ <`8c xL1Kp1:H,@|xH |8H xK&|zy&A~ѮxK`,@0<`8c xL1Ko A ;H:H A,8=|ѮA`~<`8c Ku||xxKva|}xL1K0c|c8|x8|xx~xKqxHH,xKQ|jp}@x|PP|p98})x8|Kx8|Ѯx$x~xHq,@HW | yA(Kk) 1)})IW |Hx)H8}9xHK=|~xs*A$k)1)})IW v|Hx)H8}9x:,A~,A,= =`&;I";k"\?; Ap A<| 9A0p @(88|A |@8~exH;|.,@xH=,@1V|jH8`D|a  !$A(a,048<} 8!@N !|$(,4|#y|x|+xL9`A=  ~,@x?q*A8a9`q* 8A8f|Y?9kq*@A8i|Y?9kq*A8r|Y?9kq*A<8xH,?q*A8a9`q* 8A8f|Y9k8|YA=  ~,@(, A |+xH = 8 <`8c H8, A = <`t8c L1HcH= <`t8c L1HcqjAx8K H,@(Ui1^| }*9A =  ~,A<`H$qj A,8K|dx<`8c L1Hc-H@,@ = 8i K||}x<`8c xL1HbxH8`4|$(,8!0N !|$|~x|#xK(|y@xK|yAhp @\=` 8= 9)"|H8A= 9)"\|H@8xxKAp A xK8`H8`$|8! N !|}&$ -|}x|#xAK |xHpxK'|~yA0~,@ = 8 K|xxKHxK }|x,@(x8Ka|x`,AH@|xH |xA(p @ sA=`+P9)+P$ |} 8! N !`|Aa8Ko]|~yA@<`8c (H(KE|@,=  ,A<`8c DL1Ki8`Hx,;@= ;x?;`},AH 9`9: 9k,  9)@H,AD?iH_y8cKK?Hau|H}$ xHKH$x,;At8`|Aa8!N !|Km,AKm}KmHKl|8!N !`||}y@ <`8c `L1KgKh8`H(xKi,A 8`H=  ,A<=8/iH\,A$=<`8c |L1KgQ8`H=  t;,A=iK,|x,@(=iH]8cKJ =H_|x?8~ L1Kz<`8cxxL1K{],A(Kk<`8c, 8L1K{9}8KiYKlxK|}x8~ L1Kzx|8!N !|= x8`L1K|8!N !| |~xHIq;H,f@;<8 xL1HEU,@=  <=`,ˇ@<`8c H,,@@xKga=  ~,A(<`8c L1Ke8`H@Kf8`H4<8-8`L1K= ix=`k8H[8`| 8!N !| $(,4|cy@D= )t ,[@( ,@<`8c L1Kd8`H48`H,8KgM||xaxK|}xxHx4| $(,8!0N !@|8`8HZ1?;X8`xHZ}8L1KR8` H\}8L1KRm8` H\u}xL1KRQ8` H\Y}8`L1KR58` H\=8`|8!N !|a $|~x;;;`HFH4,lA,pAH;H;HKdu8`H <8 xL1HB,@,= ɇA8`8Kn!H1}(!|}(yAxL1H H>;,A@|t,A0,-@,AxK],A ;H`|t,@ ;HD,-@<|t|p} x})@P})p9iH8}=[xH>iK]-|x,@$><`8c L1Kb);`H,A0A,AH,AHxxK`HxKd]8(A=`9k T:}K.= 9) }JJ}IN =  ~,A<8$H <8h8`L1KH88`H=  ~,A x8L1KH xKe,@cx$|a 8! N !|}&$|}x= 9)W:|i.,A,AKq-|xH;xK[e|~x,S@<8 t8HW,A,,u@D<8 |x8HW,@(-x@ = 8 <`8c xH$-x@ = 8 <`8c xL1HWA xHY$|} 8! N !|$|~y@(;xL1K;,@@8`H\;?>iKZu|x,@ >;8| L1K_qHxL1KM,@x$|8! N !| !Aa $(,4||y@ 8`H;;`;@:x=,-@\;,t@<8 xHT),A(,-@(<8 xHT,@;`;@Ḧ,p@<8 xHS,A(,-@(<8 xHS,@;@;`Hx~, a@89+@(>, l9)@>, l9)@>, A$, -@$<x8 HSE,@ ;HxH4|@xH 9 =xKჹ,@H@HP,pA(A,aA(H,,t@$;`;@H$;@;`H;HK^98`H<8 xL1HH8H,|yx;;@@d= 9 IH9`aHwH|;x8S 9 H, +9k@(} Cx9; * , 9kA8 ?>,@88`?K9ِ}|8?`>H:?H,SA,A,?A0,HA H0,a@(;ZH|cHtcHlKW8`H܁6?| A |~|T8K9;~|^|U)8Q.{}@SxUi8]})9kI{#x8HL1H5a|x,@@,= )A,p~x|cP|cp|`8T|cxHH(=  ,@p=h|8f ;,U 8}j[x9)}`R;A<9 H0>|<`|H.8cL1KUU8`H8`H+=  ;|@8?;>||H.L1K,A;|;A=  ;|@P?;>|,}J|H.|&T7xHe,Ad;|;A8`D| !$A(a,048<8!@N !|Aa $(,4|#x|+x|3xL1K3_,||x@,A ;H;xx8H,@ HIcHI|dx<`8cHX,@  xgxH8`H@,u@,<8xHI,@<`9H4xKC,@<`8cxHxK>E|gx|#x<`|@ ,A= 9)IH9)W 6| .H8| x| p|P|Q|I}j9||Z,A$|3y};x3@}z} &U)}:X9A <`8c|;x}CxL1KRH@xxH,A 8`H(HHcHHY|dx<`8c L1KRe8`4|Aa $(,8!0N !|(,4= 9)IHTc 69)|i.|#x,|+x@,AHA,A$,A\Hp, A@,AH\8aH1HD8aHQH8HG|dx|cpaHhx8HHx8H1,@DHHG88`H88HF,AsA H8`4|(,8!0N !| $(,4= 9)IHT| 69)|i.|+x|3x,|;x@,,A,@,HF88`H8HE,@ 8`H<= `i1|1K}*Y8@ !@| }*9A4!| A$@! | @AH xxsA  sA = 9)IH9)|i.8HEI4| $(,8!0N !| !$A(a,048<D|x|#x8`8HD,A4sAAa H Aa8`8HD,@ 8`HsA H Jpp}ISx}cxU&UUhU88}[0}:)}@}~9U;UFUhU}3x}x}cVp}=,Ax;|t,gADA,aAHHH,oA4h u}*p}@Jx|PP|pc}kx8|[xHc8HcHc,@|;|t--A(A ,+H,=A<`8cxH?@,Ah|t8zH=m,AT;|t,wA(A,rAH$,xAHc$HcHcI,@~}dt!D}*!h,!@| }*yA\1?})I8|HxH8}=xA A,+A H ,=AH{xH {x{x, A$;K@<`8cL1KGy8`Hcx4|!Aa $(,} 8!0N !|$||x8`H<|}xH<<iL1Kq|cTc$|8! N !|a $|~xKH,A 8`H = i?Zx0|}kx8|[x8|L1KZ9?8}8L1K_ =,9)=@Ka8|L1KZm8`H;A?`>}8 ( AX8}K61,A$x88 8H<`8c L1KEx8`8H<%;HXx8`8H< xKg1|}xH8}`t,%@<`8cL1KDHx8{L1KD;,@|<`8cL1KXx$|a 8! N = =`8i N !| |x|#xK5-,A4xxKq|cy9 Ap A9 }#KxH<`8c4xL1KC8`| 8!N !|}&A8a<@DHLT4|~x,|#xAKD8`H샟;h: |-;A= I8 ;,@@xL1H"I=  xxxL1H铿|~xHd=  H,@X= ;;9 | .,A;, 9)@xL1H!xxxL1H|~xH= 9);9`| H.,A;, 9k@= iH, Ak;, @8}Tc:K%1;= |x9)9`| H.,A;, | .9k@= iHW:, A,}*Kx+; | .k9J, }ISx@8| .xL1H xxxL1H|~xxHA = I= i9), A$)89)0!;8HX8;8=ff|#x|}j[xafg| @}Kp|p| PT 8})})})PP| y9)0;}'@<`|8cTKQ,?@D= ), @ ;H, |t|p|x})0P})p}+HU)Uk}>[x,@ <cx8\L1KM8`H,@D<cx8\L1K)|~xA=  <`T@.8c`8KH|,@|AD<cx8hL1K=  |~x89 <`$8c`KUH0<cx8\L1K|~x= <`08c`KxH4= <`8c`K 88cxL1KMT4|A8a<@DHL} 8!PN !| $(,4|}yAH"<HK@58`HPx8lL1Hi,@= i8KAm||xaxL1K-|}xxHx4| $(,8!0N !| |~x;H!Hh8(AP=`9kT:}K.= 9)}JJ}IN cH0cH(cH cHcHK?A8`H<8xL1Hq,@W,= ɇ@<`8cL1K=8`Hs ,@xxL1HH,A4sAHsA 8`-H8`+xWzL1H%HpsAxWL1HHTA$sA$xWzWL1HH0s@xxL1HMHxWL1H| 8!N !a  !$A(a,048<89@? <?<><>`><=><`?`>??@=`?=  ԑI ,C UtА̐БZa  !$A(a,048<8!@N !|$= 9)J;| .|}x,AL}x@?xiL1Ka,@|x$|a } 8! N !|$= 9)J ||x,|#xAHkT}?Kx?"x!`| 9AxL1K ,@8`$|8! N !|}&a $|cy@ p@8`TKM8`Hp|x;Mp?`?M??iKE,@ ?8{@;L1K7MHx|kp}ix})XP})p8 H8}>x,@TA(<`A 8-H8+?8cXH$?<`A H8c4L1H.M,@Tx$|a } 8! N !|p@ TK%8`|8!N !|$|#y|}x;A@?xKhc|kp}ix})XP})p8 ,H8}>x@K}x$|8! N !|KM8`|8!N !| ?,@= i~K= i8`| 8!N !|,0!4A8a<@DHLT= 8 |xxH}<x8pL1Hu,a @=  ,@K6 8`Hā8,AX,ALxH+|dxx88KE|zy=  A,@a, @ 8`HXa, [x@; |t,%;A= H,H~x|t,%@= 8`%H,}H,A(?|t8}tH),A,@䈛,*@H ||xH;,A(?|t8}|H(,A,@䈛,.@$,*@H |xH;,A(?|t8}|H(u,A,@䈛|tiil! }(Ii`L!|}(y@ , h@ ; |t,@<`8cxH\8| t;( 38}7tA4=`9kU@:}K.= 9)}JJ}IN H U|ft1}(1|}(9@h,|&T?}(9@H8H Q|fx1}(1|}(9@0,|&T?}(9@@x|3xL1H)HH |}x8 H)|dxx8 8H5|}yA$xxxxHxH% ,AXHH L1KC|}yA@xH(|exxxxxHxHH,@xH,A8aH ,@1}(1|}(9@,|&T?}(9@@H`,@xH!,A8aH ,@p1}(1|}(9@,|&T?}(9@@؀xL1H(AHHH 1}(1|}(9@,|&T?}(9@@xL2BH'HxxHxxH xx|3xL1H'HԀHH,H<xxxL1H'HxxL1H'HxxL1H'iHpxxxL2BH'QHXxxL2BH'=HDxxL2BH')H0<`8cL1K/CxH= iH%A8`HX!;{}+Kx|P|XA= ), A| @CxH= iH$=`kT|,0!4A8a<@DHL8!PN !|}&Aa $(,4|#yA,A#9c})ti)%}:p@Jx|P|p}kx|`8|[x;|tiI##I}:Ii@-#@|}:y;;|#x@, +A, A , 0@l|th-|pIx|t})Pi ##J}ZQ})p8 i -#K}zYH8}Z[y}<x|#x@,+A, A,0A| t, *@|3xHp= Ɉ}jR| 2.pAX;|t})J| 2.|#xpA8W8|t})J}I2.}k}kqZ}t9k|#x@,.@| t, *@ |;xHh= 鈼}jR| :.pAP;} t})J| :.pA4} tW8} t})J| :.}k}kp9kR@|(p|PTL#} &U)G|H9A xH|+xP|p81|}kY}>})XxX8}~KyM@ ?78` MH$A;|@$?|{|ctH$;|A@?8` H$i7A4|Aa $(,} 8!0N !|Aa $|y|+x|3xA,@,,A 8,A 88`HH8dKi||xx|t,A |x,\;@|t,A|3x8(H;A=`9kT:}K.= 9)}JJ}IN 9H9H9H9 H9 H|9 Ht9 Hl9 Hd88(9AL,8A@|tU 88(9)} ZKԈ98(8A,8A|t|x9gU 8( 9)} RKЉ_=`k}It})J| Z.8p9Ad}g[x,8AT8 (U 6}KtA 8 H8 (A 8 H8 }Z_}It})J| :.p@,@H<`8cL1K)8\;9xH$,A,8H 8\;;,@,8A |Px$|Aa 8! N !|!Aa $(,4|zx|#xH||x?;d;|DxxexL1H =8l|ٮ=;8|x4|!Aa $(,8!0N =@*, A i +i |ctN 8`N =@j, A+ i N <`8cpN !|$(,48aHq,@Ha<`|@8= I8`"jH|ex<`8cxL1K'8`4|$(,8!0N !| $(,4?<|~x, @>8`H)i |th "!I}*Ih'!@| |KyAHѐ~8`HH|x|8+iKI,@$<<`i8c쀋L1K&HX,"A 8`, A ,@=`+]9)+,:@=  ,A,,A = i=@9k iH= I| @l=  ,A$= <i8,xL1H= 9)T=`=@냨*,:@ 8`:H8`?|xHU@:}{.9J= i\= 8 x4|!Aa $(,8!0N =,M =  =@T:}#.j})Z(N !|a $9d|th+|p|x})8P})p|cy}kHx|H8|[x@=`= ik8`Hh=|A(=@9 ?=`8*Đ h?`?,@, A(+) ,-@ |t,@(= I=`8=  I8`H,-@, |t,@ =  8`H?=?iāK= | @|t,:A|#xxHA|cy@|<`<8cX8`xL1K >ā9)H>āj| H,@(8đ?= , 8 A =  H؈c|`t,:A ,;@^ā( }Jj, A8 =  hH,Aā9)H>āj| H,@8ā(?= 8 x$|a 8! N 9 =@<==`8* đ('N !|$=` = ,i$AXHm= iH=` = i4|L1N!HH]=  |}x|N!HAxH8 8`$|8! N !| = =`=@ ,= ? A |N!=  ,@4= $,AT<8L1HH H4H1=  |N!=` ,@8`8H;=  ,A |N!| 8!N !|048<D|xH*,Ap=  H,At?}LH8cL1KLH||x8`8HH)퀝L8H,L1H!}LxH]xH=  H,AH ,@(?}LH8cL1K)LHH8`D|048<8!@N !|$= )=@!9`= 8<`j8 <8c8H=,A=  |N!= ,@H = He,@ =`+1)})I} Hp }#x=  |@=  8|@ ,@(=  ,@= 8 8`H= =`̐k8L1H= ), @=` ԁ|@+=  ,@ =  =`9kf|X@H=E? ,@=  |N!=  ,AL ,A@=  =`9k\|X@(=  ,@=  ,@H8`$|8! N !| ? 8`,@K ,A| 8!N !|KKL1K|8!N =  8=@= =`  LN =  =` LN !`|a|x|#x8(Ad=  ,,AT,@<=  L?,A8`L1H>{9)>WnKH"8`H=  L,AxL1HW8};}<t,;AA,AHX,AHL,A= 9)|H@H= I}| R.pA$8(A= IW:|kP.Hx|xK= I?= 8=`ik|j|xL1N!=  ,|}x@= 9)D|HA=  Hx,A,=`+9)+HiL1K|}xHDH8`H~,A,H 98cL1KEH5L1H 8`H`=  ,@L=  =`9kf|X@4xL1H"5,A = =`؀xL1H!x|a8!N !|$?D,@Hm=D9)=DK;=  H9H)=  =`,= (@H 8`$|8! N !| <`8cL1K9=@ =`,0}&+H@=  =` ,@=  ? J,= =`I @ = 8 $8`L1Kq 8`L1HHHLH 8`H=  ,A<=  H,A,=<= h|lI\9k| Ph|lHYH=  ,AH=` ,@=  | 8!N !|= iH\|8!N !| = ?88H|cyA= 9)|H@`<88L1H<`<8c8L1H<`<8c8lL1Hi<`<8c8L1HQ= ?88Ha|cyA= 9)|H@`<88L1H <`<8c8L1H<`<8c8lL1H<`<8c8L1Hŀ| 8!N !|$?=`9kN}K= 9)f=K̀$|8! N !| !Aa $(,4H;`= :;?? ;><`B@| @ ܓHHH8`HD?@<`|I8cL1H ?H1|x}W8| X}IZ,x@4 |@(,@T:KlH|xH= IUn}hB| R.pAL=` 9^,A T 8})})})B9)H9(8* ;`K,-@$,@;8K,A$>, @=` ,@+HHɀxL1KՀ4| !Aa $(,8!0N !|= K|8!N !|HHIH8`|8!N 9@=`== 8Kؐ ܑH8`N !|=  T: Ku|8!N !|$|}xH?^= |x $|j|A Hف^=  }HSx|A,<<fL}H}+@9}+Q |@= =` Lk x|`xH)=  @,@p,@P= iH, A@ ,@4=  +| @ |HP,A8  H=  8`|8H<<' f=@}k}) L' f8|Yx$|8! N !|$|x|#x|@xx|x?|@(|x|L#|&TG|x8|KxxxHPx|P|@0<<EL}(| H| Ag9}}XP|XA=  @,@|fxxx8`HHH9=(=`}=HPKL(8| Ix$|8! N =`= ) |H@ + H,@ 8 ,M =`= ) |H@ +N ,L 8 N !|a $|#x|{x|+xH8xK1=  cxKH%$|a 8! N !||cy@|cHaHH@D=  ==`K( ||i}@PP|P@H HHh 8`|8!N !||cy@|cKqH0@,=  |@8 H5H |P 8`|8!N = 8 8`N =  =` 8`N !|a $|~yL@|~H%HA?`?{ | A? L})i|ctL1H,@? 9), ? @̀ ,A<> L})i|ctL1H,A> 9), > @7@H8`$|8! N !|= =`I $| @(=`=@ J|= i| P| PH= =@i ||XP,@=`+|} K8iH8`L1Hҹ= L8`L1Hх8`L1HH= 8 8`|8!N !|=  ,@HqHй= 8 HK8`|8!N !| |xH= |dxI}d"| R.pA$8(A= IT:| P.H|#x,BA4A,AAHH,CA(,DA,H4xHMH,xHaH xKHxKEHH8`| 8!N !|048<D|~y|#xL@8(AL8~L1K59 | |x@I9)| A8|IxKxHzAH,@X8a|`x9!9)| @Ad|}x;,A xH;xKaQ@H0H,AxL1HHW@.8aK)8`D|048<8!@N !|$|}xH|dxxK$|8! N !|8 K}|8!N !|= i=@, 8 @ H%5H=  ,A$=  ,@=  ,A=  ,AHٹ8`|8!N 8`N !|$|cy@|cHH? ,@H-8`H,A=  ,AK xHQHp= 8iL} | x|tK=  |@<= I}~| R.p@A$=  ,AxHЩL1H8`$|8! N !| |cy@|cKHh?=  |@H)8`HD,A=  ,A K xHM 8`Hx8K| 8!N !|= i, A=  |X@ K1HK)|8!N !| ? ,AP=  L<G }*B |th }fYh ||[yA8 , @=`=   |@P=  L| x<g |X|th }&Ih ||KyA8 |P A=  | AxK 8`| 8!N !|= i, A=  |X@ HKHKՀ|8!N !|8`K = i,@ = 8iK=  |N!8`8 K8`|8!N !|8L1He|8!N !|8L1H=|8!N !|8L1H|8!N !|!Aa $(,4|}x?|#x 8K-, @xx|xxxHE|8`@\,?? &?@?`L || tAHA,AH,AtHy}*R| Z.pAP8 (Ah h |})TU)|H9A,| 8@$9kd }(X})t})J| R.pA$ | H|th # }xYh #||[yAL] <' | @@49)$ | H|th # }xYh #||[y@,8c@8`!Aa $(,8!0N !,;A= =`i <=?F , @Ёl }cx| Ph h |})TU)|H9A8}*Z |th #}}Yh #||[yA 8  & 9@}) |t}`}+".q=@q=@q=@ ,_@9@& |H|t}`}+".q=@q=@q=@ ,_@ , AD& |H| t}kZ}+".q=@4q=@,q=@$h_|T|P9A& 9)&  ,@L =h | X|th #}=Ih #||KyA8 , Aȁf , @@' | X|t}`}+".q=@q=@q=@ ,_@t=@* 9), * A <% |H|t}`}+B.q=@q=@q=@ ,_@* 9), * AK=@* 9), * Ax <e |X|t} })B.q=@Pq=@Hq=@@,_A8T>h h |})TU)|H9A8 , @& 9)& ,;@,8`8! N !Г!Aa $(,,;A?<`?C };$=?l |#x| @|X|fxh h |})TU)|H9A8 \| x | P@ ^<g |X|th # }8Ih #||KyA8 |P Aȁl | @<& | X|t}`}+.q8@q8@q8@ ,_@x=@* 9)| * @Ä <% |H|t}`}+:.q8@q8@q8@ ,_@* 9)| @* @K=@* 9)| * @|Ä <e |X|t} }):.q8@Pq8@Hq8@@,_A8T>h h |})TU)|H9A8 |@ A, ,9), ;@8`!Aa $(,8!0N !|$|#x8`K}x8`H8`$|8! N !|=@= j | @ 8  8`H8`|8!N !|$|#x8`Kx8`K8`$|8! N !|8`8 K۹|8!N = 9)n=`=@+̐8`N !|$|cy@$=  ,@= ikH= P ;|A4pT.|"T48 ?|"}L1K9}=  ?}|xH5=8}?J $|8! N !| ?p,A0Hӑ= iH8pkL1K= 8Hd=  ,i@ = iH,AL1KH=  ,C@H)?HHD,A= 8 || 8!N !|=  ,@ 8`KI= 9)f=`+K 8`|8!N !|,0@4=  ,@$=  ,@8`80KAHK9|8!N !|!Aa $(,4??< |~x| ;@,;A?? ?@?`< | @x Y| H|t} })R.q(A :Hq(@8`xHL;T :| H.|t,A,H98`xK8`xKHaHH8`8KQ,;@`8`4|!Aa $(,8!0N !| =`|#xK}?| R.p@$=@* =` 9)| A* 8`xHex8`K%8`| 8!N =@j , A=  | @ 8 8`N !|=  |@8`K-H8=  8`|8!N !|!Aa $(,4? ?|#x|yxHۉ|x,A= iPxHϑ,@= I}| R.pA4?9?Ѓؑ=H5|֐H%|xHX|@kd }&Iky |}&y@ ,c@=  8`xK= 鄈H??` = 鄈8 |9}[ |;@JY= xL1K={ K= i | @ | x =  |X@ 8`H = i||Z.pA48(A= IW:| P.Hx,WAHh,W@`= =` |@H=  |@8= i | @h h |}JTUJ|P9A 8 ,c@4= =`I | A= i|Z.pA48(A= IW:|kP.Hx,WAH,W@= =`k |X@P=  }j[x<g |X|th }&Ih ||KyA8 |P A= =` |AL,AL=`+9)|H@8= i | @h h |}JTUJ|P9A 8 = =`) | @ > 8`4|!Aa $(,8!0N !|!Aa $(,4= ; ? ??@?`?;8z|!8L1HqHי|x{W8| X} Z,x@ |@T:K|UJn}*R| Z.pAD=` ,A$T 8})})9)})R>H 8 АؓKPHxH]8`4|!Aa $(,8!0N !|$=`|#xK}?| R.pA 8`$H=  ,A= iHx8K,AH8`HT<`8cHm,@$=@= j | @ 8  = =`i H8`$|8! N !| $(,4= |#xi|Z.||xpA 8`$H=  ,A= iH= Ɉ x8K,AH8`Hp<`8cHɁ,@$=@= j | @ 8  = I}hB| R.pA48(A= IU :| P.H}Cx,WAH ,W@=  |@Ɉ =  ,A`= ), A ,AHȝ= =`i K= i,Ax,AlK5HȩH`H]= =`i H= i|Z.p@= 8 p= xxL1KEx8`K8`4| $(,8!0N !|$(,4=`K|#x}=| R.=`p A 8`$Hx8K,AH޵8`Hd<`8c(HǑ,@$=@= j | @ 8  HA?= } HHmH9 8`4|$(,8!0N !|$?>|`x, |#x@H8`HX?} ||H|&T/|})x|8|KxH= , @| @x8`K58`$|8! N !|8`Ka<= i |X@P=  }j[x<f |X|th }%Ih ||KyA8 |P A8`|8!N !|8`Ke|8!N !|$|#x,;k,!I}*I|~x|&T?| KyA$=  h=  lA|А lH=  ,A=  =` dH$= i?H= |`tid,TA,A,FA0H@,fA,t@08H8H8H8= =` h l= d=`lx|tL1Kԙ$|8! N !|!Aa $(,4= ?Ɉ | |#x|k;|ctH?|}yL@d? ?@H$: 9)|H@48`dxK-| 9 |kH|ctHM|}yLOAA= Ɉ H= Ɉ @h,A}7A< |i|ctH|A,|ix}*p}@Jx|PP|p9}kx8|[xH;,@H,Ax?@}Ѐ;|@L< |i|ctH|@ ;H8|ix}*p}@Jx|PP|p9}kx8|[xHH8`H,@= Ɉ 8`4|!Aa $(,8!0N ,[APA,(A4,)A4HX,{A@A,]A,H@,}A0H48`N 8`N 8`N 8`N 8`N 8`N 8`N !|$=  |~x,A= 鄐H= i?HΩ|xk!i}+Ik!`| }+yA 8`Hl,;A\??< | @DHi8`xK%8`xK,@8`xKH},;@8`$|8! N !| |#x|~xH= I}| R.pA 8`xK8`xHH= i |KH= xxL1Kؽ=  ,A@= i=`,@8 @A,AK= @H H9= 8 px8`K8`| 8!N !|Aa $=  p|}x,|#x@8 pH;|@X??@?`xL1H=  Ԑa,A8a|L1N!aH||xxH||8cL1K|}xH}|}8/|8cxHexL1K||xxH%~H$xL1H|`xL1K||xaH%i,A= xHe;x|A؃a܃8!N !`||}x|+xH?8cL1K<|x x8H,A< x|8!N !| !$A(a,048<D?? ,Y |ux|#x:;;A|;`;@,A ;`H?> | |t,\@;`cHx,A|@h;Y H\xH,AL> 8}i }|t,'@ cH(k"}*p}@Jx|PP|pc}kx8|[x;|AP= ) !\}j} x!@| | X9?A8 ,? Ax>?1]j~ 9 w|H|tH,A48 1I| I| 9A4~ }( L1N!,A? 9), ? @= i =`=  ) | , |tAD,;A}(L1N!,@<= ixH-0c|c;H= ixH 1C,A|= i,A<xH,A,=  |P,} &U)/})Hx~H8}6x= i,AxH,@=`+ 9)+ ,A,AxD| !$A(a,048<8!@N !|a $=  |}x,|3x|;x}CxA8|L1N!|y@=  ,A= 8 Hl,;A@= 9)|H@0=  ,A x|dxL1N!|~xxxxH,|xA xH x$|a 8! N !P|a|~x~8,A9 9)| .8,@,A <88x8~8H~H;8cL1K;H}|{x,A@xH,@HH;;,@8}Tc:L1K);|x,A8x9 9`| .|PA| .9k;9)| .,@W:8| .~|AH ,@$cxH-|~y@Hx|a8!N !`|a|#x,|~x|+x@>8>8`H8|?c@=  0=`= /k8A|9@H<'| P|t}`}+.q;A T :| .,A|@9J|P|t} }i.q{AT :} .H|x,APK'9@| P|t,A4g| P|t,A |@9J| P|t,@|P8|L#|&TG|}Ix8|Kx8A#};3||};9A4,A(xH8cL1KŐ~xHH08L1K|`xxH>8| x|a8!N !|a $=  |{x,|#xA xL1K |}xxHQx= i1}H1 |Y|P9A܀;,A9 9)| .;,@=  x|L1N!,A,x@xH88`Ht8,A9 9)| .8,@|/|&T /T|H9A(8xxL1K,A xHU8`$|a 8! N !|Aa  !$A(a,048<D= )|: ,|rx|#xA,||Jx|p|x})8P})p9x}kHx H8}8[xp|x})8P})p=@9i  H8}8[x8,|~@<8x8r~dx8HH=  4,@;`|AX:;|yx@V:|Ap|,AdL1K=;L1K|@0àP;|@ ?@8` H;|Ax|9AHA;{|:@dH;`,A,;@&WZ7}L1K񡀝L1K,AX0||9A|||@ HH0àP;|@ ?8` H ;|A;{,@|HD|Aa  !$A(a,048<8!@N !|a $|{x= iL1Hn,@0{L1K|}xH倛xL1KHH;;;|}.;L1KQ;H|x|}}.L#|&TG|x, 8|Kx@=  ;,A cx|xxL1N!Hp=  |A@H5?}<8|xL1H̀}HK-,@ HHcxxxK!HlE= 8 $|a 8! N !|a $|~xy|#x|+x9`A4=  ,A$=  ,A=  1@}j, A,;A0|t,A = i,AH=,A;,At= ,AxL1K1C}jH9`, A dxH8,A,=  ,Ax|xL1N!||xx$|a 8! N !|}&a $|3y|#x|{xM|+xA|tH;cxxL1KY|}yAA1_}*|T| H9A8= i }Z |(| t@|t|H@ ;HhAdW>|x|T1_}*| H9AD= i }Z |t|@(9?|t|x0|})x8|Kx=  x8xL1K|A xHy$|a } 8! N !`||+y;A8=  ,A(= i }`Z |t|(A x;,;xA |H =  $9i$,A |;=  9`,};AL1H|}x8`x8HU,@LT&,@@<=  ,AL=`=@ * |H,/A0<`8cH = =`I | @ xKxHH$= =`I | @ xKax|8!N !|a $|+x|~x|#xHE,AX0}'|T|H9A<=`+ 9_}?J }x|t|p|x})8P})p}JHxH8}?Sx? xK ,AX?`;|.8xL1K|}xKq8{Ki|.|A xH;|.,@H@~x8L1K|}xK%<`8cK|A xHHy$|a 8! N !| |~x,A ;|.;H5|.,@xH!| 8!N !@|!Aa? |{x,=9`=@8= h iA(|;xHI8cL1K~U HE||xH;= Ʉ,@ = ;? 8yA8a8L1K뭃] a CxxH{)|}x}txxDxL1KaxH,@H,AH=  8aL1K%|y@$H,A xH= pHd,*AA, A,!AH,?AHȀa# ,A4,A 8H8}#KxDx8L1Kqa,A(,!A`=  ,AH݀aHc|tL1KaHlaDx8L1KaHPaL1K)aH<= i<8exL1HHe,A xH}8`H@L1K ,A,= i xH3#|=  pxH=8`|!Aa8!N !|!Aa $(,4|zx|#x8`,L1K{;|~x;` ;H@;|@ 8 xT:L1K{; |~xxW:.}) Cx(xL1N!||y@,AxExxL1KHxH 5;x4|!Aa $(,8!0N !|,|x@p?~(,AH ?|th ~!K}jY=  4|Z}8H9?8cL1KzA8|"H-~(H|0H?H@= 0,AD= )(i| @}#KxH!,AH,= i,@= i,,@H8`H\cH8cL1Ky|}x=`>,k8|}Hq=  4,~@= 8 x|8!N !p|p!tAxa||#y|x@?@z<,A Hœ@ | @0;xH倽L|(A~@xH,A<,@,@l= iJ ,/AP8/|;9 }?H8?}HH|~xxH8c|~L1Kt|xHH}|xHqH$xHU8cL1KtaxHQ|xx|p!tAxa|8!N !|a $(,0!4A8a<@DHLT=  =`9k|X|sxA>wP,AH?xT, Ad= 8 Xk, A@??=X\TU):|iP.H}X\T9kUi:}X| P.,@= iTH= I;`,? =>>=@9 =`8%:T* hXu\yTv @ = ;I? = | y??8lilda|hA8aL1Ka |hd? }c[x}`HoՉh= `diPFx}tL1KQ, xTA~xL1K,@>;,};X,A$8 (AU)n,@;|P@DU?8||t,A ,@ ~HKa~}?H(U?8|,@ ~Hy>_鮀x| x| P|T.|@P|;H;}\=`k}It})J| Z.8p9Ah}f[x,8AX8 (U 6}KtA 8 H8 (A 8 H8 }Z;}\}It})J| 2.p@h|pIx})P})p}+H} H8Ukx}([x}pTF>|T.|@P|;H};;||t,@8|8`4|Aa $(,} 8!0N !|hx8(8A0<9 \9fL&L9@M8- K8UnHl(A4= a@<9`\鈼fL9FL8-89C}#  | :.}i:p|ex8A88(A= ITk:| P.H|`x$|})H}i[x pA\= I}e*| R.pA,8(A= ITk:| P.H|`x|x8(AH= IH0= I}e*| R.pA,8(A= ITk:| P.H|`x|x|hxH4,@,<9 \9fL&L9@C8- K89?,<@9&L8\| 989eH4i \#}=Ii"#|}=yA9&L8\| 98<`8cL}988|98! N !|Aa $|}xHyeTi8}#HP8iL1Kei|{x,hxA8\8`-;C=??| t8 (A 8Mh9UJnHXiI!j9`}kY3I|I}z9AhaJ@}*R| Z.}FSxp|Z98A48 (AlUI:| X.H}@Sx%|})H|;x pAl~}&2| Z.pA,8 (AlUI:| X.H}@Sx| xH}KSx8 (A= IUk:| P.H@}`[xH8~}&2| Z.pA 8 (AlUI:| X.H}@Sx| xH , @h99@?, @99@eH,iI\#I}:Ii@"#@|}:yA 9H9,@08cx$|Aa 8! N !|a $||xK}?=(?` ,AP;;;(x}H.kHw,@=(}H.kH =(;|H.;,@8`$|a 8! N |#y@ = ,9A,O<|@|t,A| x8 (A8,,A,|t,AAdN U)nU)8| }I"| t, @}( ,@AejN 9@l8`N !`|!Aa|x|#x8`x8Ht,Ahx88L1Hu|zyLAHa<8x;|@|@8{|@@$A CxHsHt588`HXL1K`||xCxxxHv|}xCxHse,@xHK,8|ٮAx|!Aa8!N !|$8`H-|}xHx$|8! N !||cy@4= it,@$<`8c $L1K!I|cy@ = 8i ,,@ = 8i ,8L1H|8!N !P|Aa|x|#x= =`酀˅L1H-|}x8L1K||xxH,@Hr}cH,,@@?~t|A0,AHuxHs8cL1K_xHu ~t=`|@9 +x@;@?`|;A |, A;||@_鮉H0|th !I}*Ih !@| | KyA;, }`[x@}`[xh #})|TU)| H9A xH58;|@9);ATxHu8`|Aa8!N !||gx= =`=@<iʅ8 8L1Hpm|8!N !`|= i= 9k| |xA@?~|,@8 8`L1K]]H8L1K]~|<== gI|(| Y((9k, g@9@}P, }`[xAHh h |})TU)|H9A9J}P, }`[x@, A 8|Q? ,A<8 \x8Hr|}y@|| Hpq8cL1K\} Hrm|~x8-Hny|cyA;xxHqm;,A xHqU0= (xHaH<8 dx8Hq},@l;<8 lxHq ,@ 9@H(<x8 tHp,@ 9@H9@=  =`}@x0}&+(H4= xxHp|cy@= i(H= 8 (8`|8!N !|= ), @<`8c xL1K8`HP8 9`| @(= I|| x| X,A9k| HA=  (8`!| (|8!N !|=h, A$= 9kI|h| X=  (H<`8c L1Ke8`|8!N !|!Aa $(,4= (|~x,A 8`HP?? ?@xx8 Hk|cyAx8L1Kx4|!Aa $(,8!0N !|$|jx8`H8c}j}`th ! }(Ih !||Ky@, }`[xAT>h h |})TU)|H9A8c}j, }`[x@, AD8| H(|th ! }(Ih !||KyA8c| ,@= 8v,AD|#xxHm,@ x|L1N!8`H$,@<`8c L1KE8`$|8! N !|}& $(,4|~yLA$|th #}h h |})TU)|H9A;|,@8|@,"@xHhQ8cL1KT]|x8`}^9}ISx, 9`AL,@} t,\@}_Y}&U?H,"A }?Y9k8c}>, }*Kx@;Y|th "#}@;xk"!~|}.H[8cL1KG,|x@<8#HL1H\Hd(A<c@g}%*| Z.8Ljp|+x}IZ<A48(ArT:| X.H|+x&|})H}ISx pAlg}(B| Z.pA,8(ArT:| X.H|+x| xH|+x8 (A= IUk:|P.H8}e[xH0g}(B| Z.pA8(ArT:|X.8#LxL1H[yHH,@<8#TxL1H[YH(~yA8\?H |.xHY|}.H8|@;Z cxWD:L1KE|{x.;~8.;|.:,:;9@xHm;,:s@(cxT| !Aa $(,0!4A8a<@DHL8!PN !|= KI|8!N !| !Aa $(,4|vxKU?`|wx{<8#\L1HVჷ,A;xK= K,|~xAd,@<{8#`H`,A@?;|.{8#txL1HVm|.;H|.,@H,@ <{8#xL1HV1H{<x8#L1HV;,Ah? ?@?x{,A 8#H8#8#L1HU;,?L#}`&UkG1I| I| X9@,@$,A<{8#L1HUy,A ;|.;H|.,@xH;.,@l4| !Aa $(,8!0N !|=  ,A= <i8#L1HT= iKH)8`|8!N !|}&0!4A8a<@DHLT,|xy|+x|#xM;`? |t,A@,@cxL1K|~xzL1K= ,|xA@ix<@8#p}Gx|PP|p8#|8x88|x8#H iPP89!8PPSD.PD. iQ_>}QL>8'N 8HtHl!(HXHP!(H<!(H(8a(hH <`8c%dx8L1H#cxH)=  |N!tX|a\`dhl} 8!pN !`|X\`!dAhalptx|!Aa= ) |ux!LHcVaPHc= )9, P|x!TH@= 9)%!TK[e;,A(,A9 9)| .;,@x8oTc:L1K6;|x|rx@$9`}+.; |x| .9kA= )@, A)W:}2.H4?} HJI8cL1K6U aHHLAHW:}.H#U;8`L1K6)9|tx8,=P9A,8`H(xHS,P&|@&H8`|ux~x~$x8L1KQ= i ~cxHI=  |vxH,A88 8|!=9 })I}(y@ ,@ ,@l,A(A,ATH ,A\,&H,Ad,P&A ;H|A ;HH^H~VP&HxP?U:|.} ?HJŁL= } HH|H"UH8|pA9~x}sxL1K4|tx;8|P;@:W:;}H@:HH|@@4|| @~x|xHHi,A A,@/@=xV:HP~}.~cxHG=h|vx, A(|.+| @}c[xHFE,A |@4V:9ު A,AK|x@;Z,@(P A xK;K,AH\q~xHAW:|.=  |xHG?`=  $|}x|AH0= i |.xHHP= |@ A ~xH8~x~$xL1KaHP= I|}xW8| P}+R,@Di= 9)<| H@,A$;H = 9)<| H@,A;aTxHDm,A,,P&|@&@HM,A 8`HOP= U:i |.HHH~xHE @P8|p@PKYyHP8|hPKX @= i HE|x=  H=H,A }CxH~CxH8`|X\`!dAhalptx|!Aa8!N !`||x|#x|+x8HC,@<xHD8cL1K0xHF,|xA HD~xHxHD8cL1K0y|x89`8Ax8 }t,Ad,@ 9kHL, A,@9`8H0}|pZx|P|p9'})x|8|Kx8;5J@,8A,A|8!N !|!Aa $(,4?@|~x,A |xH? y,AH,;`= ?; ;ܓiyؓzԓ}A,@ 8`Hx8 HC|yAT;xxxL1K?zԋtx88L1KŐy؛|H$xxxL1KzԀ}ܓ؀4|!Aa $(,8!0N !|}&(,0!4A8a<@DHLP!TAXa\`dhlt$=  ,A ?,@= 9)%== ,@? y=L1K-;`oyL1K-ـ=|l@8<8<9=@%|ٮg} ٮ ;{|A8`H?x8`H >@88rȐ HA=  =`,K: ;=?>@A4HY,A(=  H,A8*;9 }:= =`I |A= 8 = =`i $|A= ԑ,A=lԑ,AH@y|{xH;`= ,A,=  ,AxH@E|dxxL1HT],@?;9Y| AP}IpU)U}*JU)*?9)|}$Kx?L1K,e?|}L1K,M}|zx= |zexHAM>x8|=`+>`})PH8 H@U? |y@ H8=  ;,A$}|PL1HS}, AH xH?=|{x= ~ 9W| AP}IpU)U}*JU)*?9)|}$Kx9L1K+q?|}L1K+Y}|zx|zxexH@]~x8|>`9 3= i;= I>|P|<AL<<<|,9}H@ }J}Cx'W:}KI.|P|@>:|;`@? =>>Y= 8i |PخA8| Rv|xL1K*UvwL1K*A|zxw |@ xx8(Ah=  0,@<8%x|zL1H?-5|8|HA$}]HP;xW:|R| Y.#H|x;H, @pU)~}=JU)8})P9)} P|@PU||:|PA@}]PP;x|@W:|R| Y.8P@t8 |;|@AH\|@@9 }:;|@A|xH8, @D=l, @4= ), A$ ,A}z;x;H(k!},IL#|&TG| KyA8^|;;||A;xW:Y.;x;AP=`c@K}%*| R.p A,8(A= IT:| P.H|+xH|+xH8?|A|;H;;||A;xW:Y.;;{|AT,8|@ xx=` W:})=`K, @= ), A ,A=  ,A=  ,A= il;|X9k||&T/|}kx= 8|[xI>>AT-=; :;@|A2ȁo|H.Hx|kH= 8i%W:8āv=}WH. |X|RA2}hJ}HH. |PH8x,}9Z |X.`&|PxxL1H h |&T T_},9LAL|@@s| @0=  |@ ||ZQAxL1Hh @$=`@8Ā H |P ;|;9:;Z@=  |@t|AlW:2ȁo|H.xL1H8`xL1H |@xH8Hu|L1H5;;|@=  =`|녴A8~xL1H ,@$= i, A=  |Z = =`k -Z@x, @p= i, @`=  | AP= i,A@=  @,A <|x8 8H7큁lxL1HL!Ѕ=  =`KV:}`&Uk_1| AP.| X9߈PA$= i|@|~PL1HKЅ=  |A= x|L1H QH=  =`=@ *|P|,=`8 A }PH|3x= i|<UU`UV| 9+|H}kp}KP@}*RP|p8H(|H@ ;Hh,AX8|SQ= ip|PT1},Y},9A0|8L+|&TG||x8|KxH = ,&@ 8<| A=  |}_H= =`I |}J| @}*8> =  ,A$=  ,@=  |A0=`=K= ̀Ɉ|<?'|j}=@8|}fZ |3x @=  |}f[x89L1H= I @ =  }}@PP|XAHD,@8=  |@(=  | @= i||jPL1Hu}P=@ @=  }`XP=  |j| @ = |P|L1H= = i?H3=  <<=@<,Ȁ &8`=` $ȐĐkA=  ,A }H=  =` t$|(,0!4A8a<@DHLP!TAXa\`dhl} 8!pN !|}&!Aa $(,0!4A8a<@DHLT= I=`, |wx|#x|+x|3x|;x}Cx녬>`@=  P=  ||@=  H,A=  ,@t8| @h|t,A= H= 8` H4e=h=@9k8 h7, A,A,~x~x@D,A89`<| @$9k| ;;{@,@7P|)xx@ ,A9)| ;A}4P| zx@ ,A9)| ;ZAx")}1I`x" |}19@;;|||}?})I})|H99AP?| t|H@<;;}}}kY}k|||}q9iI 1)})I}H8@,Ax_xHL?|t})t|HA41`}kY1I}JQ89?|Xx})PxX8P8}}x}_Kx-@= ɅH:=  |A4~xL1H@$= i, A=  |Z = i,AH0|~xH;@=  ,@= i@,At=  |@d= i|}`p| PT} &U)7|H9A<=  | @,<8 8H0 = ixL1HD=Ӆ#x~xL1H;P|PXP8|HA$=  H,A8=  ||@(= i@<8 8H+i= 8 = i|@,|x?|||ctH,;|AH@|~PL1H?= Ʌ$|8! N !|a $= i|}x| A=  \|AQ@T;|@ ?8` H,;|A= i@<8 8H*a= 8 HP?<, A@ ,A4;|@$?`|88 H*;|A= $|a 8! N !|$|x8(;A4=  0,@$= i<8%L1H(];Wn(k 1}hLb} &U)'&}(X9= L@ ,@ti<8%L1H( ; AL=`c@K}#| R.pA48(A= ITk:| P.H|`x|xH8`?|x?xH*U}H'x$|8! N Tk>qhA=  0,@d8`N , @8`|`PN !#9 })Ih`!|}(yA 8`N = I}kZ| R.p@A 8`N 8`N !p| ! A$a@(!(A0a8؁@ءHPX`!h|dx9A?89 9a8}\p!qaxAt8pH%=  =`|;\N!8`|8!N !|= I=`}H $=  N!8`|8!N !|K = I$, @ = 9I%=`8= I 8`|8!N !a ?`?<`?Ԁ݅؀쀜8= =`=@=˅ؐԐ܃a 8! N !| ?~,AH}?,AHi= =`=@= ʅ= =`ԐؐɅ쐫܀| 8!N !|48<D|~xK= i,@h= i$,A,AH%m|}xH;8}L1Km,|xA= $H'M}=8 H,AH%|}xH;8}L1K,|xA= H&}=8 xH$?8cL1KxH&= I=` 9J= =`}Ԑ KxD|48<8!@N !|$|~xL1H8;|@ ?8` H%;|AxL1H8q;|@0=@=8*;9)h|*| IA=`+9)+$|8! N !|=  p,A<|x8 8H#eH,A L1H|8!N !|$|~x;|@ ?8` H$;|A=  | $|8! N !|= id,A<8 8H"HH7|8!N !|a $=  t|{x,|#xA8|x8xH <8 8H"5cxxL1H6mH= iL,A ,A<8 8H!?=x, A< ,A0,;A$?}x88 H!,;@cxxL1H5= iP,A ,A<8 8H!q$|a 8! N !|$=  ||x|A= iD,A0,A$xxHy<x8 H HL?>h, A< ,A0,;A$?~h88 H ,;@$|8! N !|$<Ņ;,AD=  ,@4= T:=@} 8.*| @,@8;= iL1K,A=  H,A=  =`KT:}'R? |P.||`@P|X@T= i=@|X.8cxL1K8`L1K?|=`})i|ctH =`8 H4}= iH==`+9)+$|8! N !|= i@,A <8 8H= 8 |8!N !|!Aa $(,4?}@,Ap?88 H= ip=`,8 @= i|L1K)}@8 8HU=  ,@8`L1KQHH3U?8 H |cyA@??]ԃ<88cԐKm]ԓH,A,;| h h |})TU)|H9@;= =`I kxH |X@0;| |th ! }(Ih !||KyA= i | |th ! }(Ih !||Ky@=  |A;?< | ,~@`P;8}L1KI ||xx|H8|xL1Hd|}xxHYxxxL1K8`$|8! N !|Aa $|zx|#xcxH;||xCxH|A<|~xxdxxH,@ xH;|;@8`$|Aa 8! N !|cH|8!N = iTc<|cZ.TcN = iTc<|cZ.TcN = iTc<|Z.8`p @ p M 8`N = iTc<|cZ.Tc8N =`K}#| R.pM 8(M = ITk:|kP.N =`K}#| R.pM 8(M = ITk:|kP.N =`K}#} R.9cq|&T|}kx|c8|c[xN !`||}xH8cL1KxH|8!N 8`N !|Aa쓁=  |{x,|#x@?~ ,@0= 8 <8`L1K1;~ ;H=`=  <|@DcHA9|@L<9@' 9}jJ || I.9JAH 8|x x||&T/L1K=`+8`9)+Ԁ$|8! N !|8`L1KA|8!N !|$8`L1K |}x8`L1Kx$|8! N !|}&$-= =`ˈ |x@8K UHx8K =  =` @x8K yHx8K 8`L1KM= =`ˈ $|} 8! N !||cyA8L1K!H |cH|8!N !||cyA8L1KH |cK|8!N !| ? ,A4= i L1K=`+8_ U):|iP.K8`H Ki8`| 8!N !|$=` = 9)|HA= 9)|H@?| , A?>8?U):|iX.H5 |exQA>8\ U):=`|P.k $||H@\|cHE,@L xK!>8 9), >8@=`+<9)>88`8K8`H KQ8`$|8! N !|}&a $|+y||x|#xMA ;|@H M;|AH =|}yALA ;|@H U;|AH Ex|dxHC|yA,@H8`HHH=  ,@dx8`K/}<`8c&@KixKaxHH8`$|a } 8! N !|8L1Kŀ|8!N !|$=  =`9k|X|x|#xA8= <9`= =@=8f$(,0HX=  4,AH,A=  0|А 0<= $i0|Z,$@ 8$=  (,A= =`i,$xH= $x8`$L1K= #| 4$|8! N !|Aa $|}x|#x|+x|3x8`L1K= cC HiH$|Aa 8! N !|$=  H?,A|9)>||?\=`|I֐ l4|$(,8!0N =  H= ,=`i\|@ 8 | |= |֐ lN !|=  ,A = iH8L1KK%|8!N !|$= ;xD;|~xxH?;|@i@= 8 $|8! N !| !$A(a,048<@!DAHaLPTX\d||y&@<`8c&L1K||y&?`,@8`L1K!{?@|,@8`L1Kz|: =`>= )p+d0@ @ = ;&z|xH,A<`=`9k&>;@? ;O?`8<8h>?<=@>`>=>@>?<= #DU|ۈ\lp@)*t$x8P4L(7h3'=62H8aL1K= )`=`, 8A H8=  @=`=@ Tꈈ,= =` @= 9)&ȑ0@= i,AH||xH;8= =`<` | \8c&H-;,A<`8c&H1= Hx8L1K=  t=`,9k9@@$=  L,@=  x,A9@= <`;K8c&H;,@<`8c&H,A;=  ,@= =` ?> = 9)N>@q=8L1K>>`t8L1K>>v8lL1K?>x8L1Km?@? z8DL1KU??`|8XL1K== 9)fq=8L1K!t8L1Kv8lL1Kx8L1Kz8DL1K|8XL1Kђ8`d| !$A(a,048<@!DAHaLPTX\8!`N !|!Aa $(,4=  |{x,@Hh9=}i.kH\?@;:xD;;;}?.{ |X@;xD|}.dxH,A;(;;@8`4|!Aa $(,8!0N !|L1K8`|8!N !|= H]|8!N !|= |#xɈ8H}|8!N !|$?T|~x,A4;|@P?}T88 H=;|AH,;|@ ?8`H;|A8`$|8! N !|= 8` HU8`|8!N !|$=  ,Al=  ,A4@P,@H= i,A<8 8HMH$?}<8&L1H }H8`H8`$|8! N !|=  ,A$= i,A<8 8Hŀ|8!N !|,A= iH = i,A<8 8Hu|8!N !|<8&8`Hy|cyAl| t, A\, C@,AH, P@<8&H,A,9@==`8=  ,I0H48`H8`|8!N !|8`L1K=  =`+=@# =`K9C =  ,A 8|8!N =  āC=`K=  C =`KЀpM = 8 N =  =` N !|$?;,?A4;<|H.,A c;H繀,@x$|8! N = iN = iTi|X|&T7| Ky@=  ,@ 8`N = i8`N = iN = =`I | A = i,AUI:|i.N 8`N =h, A 9k= hIUk:|kP.N 8`N == h | A 9k= hIUk:|kP.N 8`N = i=@ |kP|@|`T} &U)/}'9A = i, ATi:|iX.N 8`N !`|=  |~x,A?=  | @, AX?=Āi,AcHd=ĀiHd 8|X@4<<9E8}(R |Q.f9|XA=`+9)+Hx=`?,@(82 8`L1KM?8}H0|})x8|Kx4|!Aa $(,8!0N !P|!Aa?? 8;xL1K;||x|?@@؁||t,&@L9?`|J|A |JxxL1K||x||H]Hl,\@4}B+9_})ti)&}'p|Jx|8P|p}Jx8|Sx|A xxL1Ki||x||;;|A08|?}HV= Ɇ|!Aa8!N !|!AaĒȒ̓Г!ԓAؓaܓ|ux|#x|;x8`L1K}? |nx|t,AP<`8c'H,A|~y?Aw,AHQ׆Hh,@\?~,A8,A,H]8cL1KiHYwHAxH8=`=  = i,AHQm<x8~x8L1KU|8&H ,AKH8?=  ,A#xHұ|~x|A;:>>@9}9| @YCxHҹ,@>P8|L1KY:|{x$xxH=耲xHӭv|"|}|"|PHӑ#x}HPIyx,A0#xH:s|~x;||@,,@ :`H,AHx!9)!| |#x,:AT,8A,q@#xL1KH,x@`#xL1K=Hl~x~$x8H~x~$x8L1KUl}sxHOY#xHOQ8`H#xH8cL1K$xH|x#xHO!x#xHй|dx,A}sx8L1K|nx}sx$xHҝ#xHN၁a |!AaĂȂ̃Ѓ!ԃA؃a܃8!N !|!AaĒȒ̓Г!ԓAؓaܓ>@|yx,|#xA88`L1K;|{x8#xHϑ:= iՈ|vx|X:`@D8vL1K}:r|zx8:9 sz:z8z$xHEH:x|;,9`At=  } | t(, }=tAx|X|t|P@h, A4,AT}><`8c(|tH,A0x|X,A8 | x}9X, @H|2| t}$t| @T,A= ixHy,@=  ,A#x|L1N!,@\Hx=  ,AH, '@ 8#x8L1KH$, \@,'A | @ 8!9)}>Kx|!,x@!=`}YH | A4cxHK#xH}8cL1K$xHyt8`HX8|;;;@:|,|tA<;8|A;@cxxL1K|{x;H|t|@ ;H4=  |tx|p~)x})P})p}+HH8Uk<}=[x,AtA,A8H,'Al,\8A4|A ;@cxxL1K݃|{x||H$;|A;@cxxL1K|{xH= ,A8Cx8L1KŃP;xL1Kx|aHiaH˽|~x|A$;|@cxxL1K |{x|{|~PH͍aHIH8|A ;@cxxL1K̓|{x||;H,A,}> |t,A<`8c(H5,Aa|cP8cL1K a|"HaH|~x|A$;|@cxxL1K)|{x|{|~PH̩aHHH4}> |t,AX= ixHȍ,A@8|A;@cxxL1K|{x}:};;~H̀Cx88gxL1K|}y@,cxHHI|A CxHH98`HЀa,A`:,ALHɵ|~x|A$;|@cxxL1K|{x|{|~PH˅aHGɀk"3~q!9)} Kx|!|xA|tA CxHG,@25|qHcxK8`|!AaĂȂ̃Ѓ!ԃA؃a܃8!N !|a<@DHLTE|gx}P|#x,:9`8;@9J}P9`}t,%@8 ?,A HE8cL1KQHAH8`L1K9=@) x!9J) =` !SPނؘۛ٘ژܛ݀ء!ܐȱ!̀ )= PD.9))})Q>}) 9!PSIiPP̂9!QD.PD.;IiS>S>N 8HH!#HH!#Hȡ!̐#Hp!a#cHT,*@8 |3x8`8$HY|}x,@(8`L1K}=@) x! 9J) =` 8;9:<8(!,SPނ     ! H!L )0= PD.9))0()*+})Q>}) ,-.(9!(PSIiPP̂9!QD.PD.;IiS>S>N ! KX(!,KhH!LKp!aKxH,$@ 8 |3x8`$8$HH,-@ 8`Ht,^@ 8`Hd8T>( L#} &U)G};X9A<8`A<}t9J}PTi8})9h})( 9)|i@H 8`H(} t,^ii*#i};I|&T?|KyA@ 8H8$9JH, -A |dxH9J}gP8 ( }h[xA88}t9J}PT8})"9h})"( 9)|@HD}`t,$@9J8$H,h :#k}{Y#`||[x0|| 8}$8|h$#i};IEL+|&TG|Ky@ ,@|3xH=|}xy@ = 8iT|a<@DHL8!PN !P|!Aa||x|#x|+xH |yy@ 8`H;@,A9 9)| .;Z,@,@ }:;i,@ }:;ki$}'p|Jxk$|8P}p|Bx|p9z})8P}jx})p`8}kHx|SxH8}<[x;{|L+|&T GT}'y@WWi|Ky@ |@ ;H;x@(W:|~.;H;|;A8}L1Kx|||x8;@H: ;W:|.||Hé|}.H;|@~;xA;|@ ;|~.;H?;|A#xH?x|!Aa8!N !|Aa  !$A(a,048<D|}x;||#x,|+x;;`;Ap; :0~F|;,|#xAL|th }&Ih ||KyA;|,|#x@|t,A=  |t|AxnA8<`8c)PH-,@||t,A<`8c)TH ,A|'}}}(ti$0}F}kt} Zx }&I}&P9A<,<@|'9})ti)-}&p|Jx|0P|p}kx8|[xHL,&@$ii> }&Ii`< |}&y@$,>@ , &A,(@, $@;HD, $A ;H4||t,A$>8w)\H,A|;|t||#x,A,\@}? , ALk'0}f|th\ }&I}&X9A0,"@ ,A <`8c)`H,A ;Hx,|A$|t|x|p|x})0P})pH8HL|t,A<`8c(HI,@@||t,A8w)\H),A ||t;|,|x@j0}&~FH9A(|L+|&T GT}&9As8|PA; xW:L1K||x8~L1K;{|v.|y.|xH:}y.8| Wj:9 }*.|;9,@xD|Aa  !$A(a,048<8!@N !|88L1Kŀ|8!N !| $(,48L1K!|}x, @ 8`Ht;|HU :.@$;|~.;H:;!|HA;W:| .,A }?Kx|.;H:y|.,@xH:ex4| $(,8!0N !|48<D|yA(xH8cL1KxH|xH;,@t<`8c)pL1Kh|}y@= ;)x;HxHe|~x8~ L1Km|xxHY8/|<|8c8)|8 L1HxD|48<8!@N !|88H|8!N !`|}&!Aa||#x|+xL1K;|xx88L1H1|{yMA8`dx8H,Ad<8x;|@|@8}|@@He8H(L1K1||xxcxxH,@.;i;H;]|ACxL1K;=  ||xP|@H: W:}>.||;Hu}>.;iHU~鮀;|AEx~xxHxH3~xH,A #xH3i8`|!Aa8!N !||`x|#x|x8L1K |8!N !|= 8L1Kـ|8!N !|}& !Aa $(,4|zy= |+xɈTA,A= i, A-Zx!I}*I|&T_}*9@`A(Zx}jp}@Zx|PP|p9>})x8|KxK̉|xxCxH||xW*9@@$=  |@8`H;KW:}8.xHa|x|AD,@H:| @,xCxxH},@= Ɉ8`H@;KhA@QA:|| @Cx|xH-,A\7@K}6H#|}y@ :Hx;;@,&@#xL1K,@ ~xL1K,A~xH|~x#xH|~8cH#m|}x#xH8cH#Y }'||x |}'yA :Hx$xHxL1Kx~xHu8/|;|}xH]8`x8H,A0xH%;9!U>6^xHxH%]xH%U;@,& @~xH|wy@<`8cH>,A ;@H;@= icJ1k}kY}JXx=(KX8}zSx1)})Ic@ |HxIH8}:x>,@~xH-|cyA,@`|t,.AD,\@,.A0,.@$,A= .T|HA,A4,.@(|t,.A,\@\,.@P;#xxExH,A4!x!8T6~H}8cH!!|}yA,xxH];8xxHyK:~xH),@(8xTc:H ,@8H{H#m{,@=  ,AKҍ8`H<9 | @@$9`9)| @| .{9kAW :8| .a |ЂԂ؂܃ +Kk샋}a[xN !|}&!ԓAؓaܓ|{x|#xH1|}y@ xH }= ~h/, |T8`A9 9)| .8c,@8cTc:H||y@ 8`HȀ9 ,A|-; /;|.HA}#8iH }=8iH5,|.AdxHA }?.)|.|.|c|cHe;x| .,@8| .>, A ;|.;H!y|.,@xH!ex|!ԃA؃a܃} 8!N !|}& !$A(a,048<D|? x|{x8`H1;||yMA0;@\cx8/H)|wy@= wx;*;H@}[P8 T8!|}!n9a;U~6cxxxHA:^xL1K,A|,/@ 8xL1K|}yA<>;ֈ|@xH xHh,@xHxHxHDW:;;`Yx|.~xL1K|dyA8|A|~.L1K|~x9`,A9 9)| .9k,@|ZxT:H!%||yMA,A49`}Y| .9k }+.9J, ;Z;9;@}:8 xH ;{|.~x,@(,A ;|~.;H|.,@xHxH |t,@Px8H a||yMA;xH|dx,AxxHA|xH,&AxL1KYxHA A xH = 8*~xL1K|dyA= 9)|H@ |#xH`xL1K-HPA4,A ;|~.;H|.,@xH=  ,AK8`a |؂܃ +Kk샋} }a[xN !| T~>T>|@ 8`H,= =`8i8ɇH|cy@|P| 8!N !|L1K |`|8!N !|$=  y|}x,|#x;yAH=|H@(xxHe,@?| ,A ,@,A8`HH}|ct$|8! N !|$|#x!}+|~x!~| }+y|+x@8xHmxHa|xxxxL1H-H8`$|8! N !|}&Aa $(,0!4A8a<@DHLT|x"_}2|+x"^|}2y|#x|3x|;xx@|@@sr>>NsrWwMss M;|tA0W>u}*R| Z.pA4UK:| H.|tHx|@||x@|tH8|#xA,(@8T> 8|hi?"I}2I|Ky@$hi@"I}2Ih`!"@|}2yA<x0|Wh}x`8|Cxx%xxxL1HH,?A(A,*AHX,[A,\A\HD,AWih/"@|}29@h."@|~9AL|At, A<,/@0H\|ATsr@P;|@|tA8A0W>u}*R| Z.pA4UK:| H.|tHx||xW>A0T>u}*R| Z.pA4UK:| H.|HT>|AH|Ah."@|~9A|AA,/A;|t-?-*|&T T_}2yAWvWwk@/"@|~9@D@,,A8;|@@|tH8|x|&T_~9Ah,(@\|@x@8xx%xxxhxL1Hu,A;|@Axx8L1H |~x|A4;|t-?-*|&T T_}2y@ |@} &U U)_|Ky@Pk`Tk\"I}2I|H9A HW>} CxA,u}*R| Z.pA4UK:| H.T>H}Cx|@;@W>h[ki |U)T}29->~&sr?@W{M>~ A@A,T>w}*R| Z.pA:UK:| H.HT>|@Ah,(A\8u-|tH!,@D,[AA,T>u}*R| Z.pA4UK:| H.HT>|@4|@;A`|AsrA,/@ 8`H8`T|Aa $(,0!4A8a<@DHL} 8!PN !|$;;||#x,A,x,.@ ,]A ;,@xxL1K,|A}8d$|8! N !|}&$(,0!4A8a<@DHLT |+xr|xT>A4= I}w| R.pA= IV:| P.T>H~xx9x|th ^ }'Ih! ||Ky-[7xN|&T|}kx8|[xr?;M}=t?`>YH|ADW>{}*R| Z.p@H(,.@<;xxL1K5|x,A H8|t||xV~iTk\ }'I|H9A|t,AD||x;A,W>{}*R| Z.pA6UK:| H.Hx,|tx@@xH;|tA0W>{}*R| Z.pA6UK:| H.|tHx|xVk/ |}'9@,-@|t,]A|xiTk\ }'I|H9;A;|t,AD,[@H,.@<;xxL1K|x,A H8|t|#xA0W>{}*R| Z.pA6UK:| H.|tHx|#x}txL1K;,@,]AKx#xL1Ky,Ax#xL1Ka,@T,]AD,[x@?, =@Ĉ,=@,]@A,_{}*R| Z.pA6UK:| H.H#xL1KI;,@̈;|t,@ AHA0W>{}*R| Z.pA6UK:| H.|tHx|xK,@} t,:@8?, a@t;<8-x8H,@;;|J.T(H,a@4<x8-8HM,@;;|J.TzH,b@H<8-88H,@,k |k) }'I|Kx;H`,c@4<8-88H,@;;|J.TH ,d@4<8-88H,@;;|J.T8H,g@4<8-88HI,@;;|J.T0H,l@4<8-88H ,@;;|J.THl,p@t;<8-x8H,@;;|J.TrH,,p@4<x8.8H,@;;|J.TjH,s@4<8. 88HU,@;;|J.TH,u@4<8.88H,@;;|J.THx,x@4<8.88H,@;; |J.TH<,a@4<8.(88H,@V1;|&T,@(;|t,A`,]@L@H,[9@8|th = }gYh : }'I}gKy@ ,.@9W>h]|T }JBL@/[jT,@ AH;|t,[@@|th = }gYh : }'I}gKy@ ,.@5JLH<,]@5JLH(k\ |}9A,A;Ah@ xH8`T |$(,0!4A8a<@DHL} 8!PN 9`|t,9@A/|,[ADA$,(A\A A(H,)AlH,]A ,|AH8`N 9kH1+})I8 |Hx}iH8}+xHp}hp}Zx|@P|p9*})x}@8| KxHL}hp}Zx|@P|p9*})x}@8| KyA(8cN ! }(Y! |Q}(9AA|t,L@8`N !|Aa $|#x|3x8tt|+xHM,@ 8`H8`$|Aa 8! N !| !$A(a,048<D|x8(|#x|+x|3x|;x}CxA=`9k.0T:}K.= 9).0}JJ}IN ~xDx8L1K|yyA,*@(~xdx%xFxxL1K-,A;xDx8|L1K}~x|@|~xA~xxx8xL1K"A\xdx%xFxxL1K:,A0|A,xdx8FxxL1K,@:2|9@;|@@h|AxK4~xDx8L1K|yyA,?@(~xdx%xFxxL1K,Ax|;&xDx8|L1KY|~x @ xHX~xHP~xxx8xL1K,@(xdx%xFxxL1K,A;|@@|AxKp~xDx8L1K|yy@ 8uDx~xfxL1KH~x|@A;H|ALxxDx8|L1Km|~xx~xx8xL1K",A@(xdx%xFxxL1K,A;|@@xH 8`H8`D| !$A(a,048<8!@N !,@P8 |@= =`9)H9k9@0| 8,@| X.,@`8|9JAHL8, A@= =`9)H9kT:| 8,@| X.,@8, 9J@, OzÂ|&T 7T}=y@|89#|H09g=@|X09J<*=`9kT:|8.9)*|#Th:| 9.|A.9 T4&f@|"|xK88! N !|a $||x8aH;acxH8`8exH 9<8|H1A= 9)<9)W:}i.8(9k}i.A$xL1K!= 9)| .,@= ) |HA}#KxH(|K|I|`Q@ xH |J|cP;= 9)|S}`Q|xU>|)}+PU)T`>})x| 8@@$})B| @@8A| 8@@ 8})B}'HP| S}`Q| x|)| HPT T`>} x|8@@ |B|@@9JA|8@@9JT| SxH,@ 8}S;c|@A(@ 9@H(9@H <`|@A 9@H9@~} T0| H|R ,@P8U >H |i404080|Kx|c80}80U >|c}`a|xU>|!}+0PU)W>})x| 8@}cx@$})B| @@8A| 8@@ 8})B}'HP| S}`Q| x|!}+HPU)W>})x| 8@@$})B| @@9JA| 8@@ 9J})BT|SxHP|c}`a|xU>|)}+PU)T`>})x| 8@@$})B| @@8A| 8@@ 8})B}'HP| c}`a| x|)| HPT T`>} x|8@@ |B|@@9JA|8@@9JT| SxH| @@ 9H;c| @A( @ 8H(8H <`| @A 8H8~}I<0| H|: ,@,|P||}(9 })I|KyA|9H\ |k40} 4040}J8080|[x}JKx|c80}80UG>|;}`9| xUD>|!}+0PU)W>})x| (@@$})R| P@9A| (@@ 9})R}%HP| ;}`9|x|!|HPTɀW>}&x|(@@$|R|P@8A|(@@ |R8U|0P| ;xU>U >|QU>}kAU>}IQ})AT>}k}kR}JX}JQ}JS< |PxUh})P8})xUk>T>| Z}:|0@A$}(})I})|2x#||H9A98}cx,|#xCxdxA |3}8Pxx4|!Aa $(,8!0N 㸔!|$(,0!4A8a<@DHLTH,:@$}|2}5a}iP}c[x}cx:,@ }|2}5A|P|;x}Cx|+y:|3x|#x|}x@H| @@:b| @|3xA( @ 9@H(9@H <`| @A 9@H9@~|T0| H|R ,A  0 0}=x} 0 0Hx, @ 8}:b| @A( @ 9@H(9@H <`| @A 9@H9@~}T0| H|R ,@PU>H d 00 0|Kx} 0 0U>|;} 9U>}@)}i0PUkW>}kx| P@|;x@}kb| `@A| P@@}kb}jXP| C} A}@)| XPT W>}`x|P@@|b|`@A|P@@|bP|;}`9U>}1}KPUIW>}*x| @@@}Jb| `@A| @@@}Jb}HPP| ;} 9}1| PPT W>}`x|@@@|b|`@A|@@@|bP,A$0;@Ht|@@|#xxAa H`:b|@A(@ 9@H(9@H <`|@A 9@H9@~T0| H|R ,@T|||},9 })I|KyA }lP| ||}?PHP}|[x,AxxH d }000 0 0}=x}_[x} 0 0W>|C}`A| xW>|)}+0PU)W>})x| 8@@$})| @9JA| 8@@ 9J})}'HP| C}`A|x|)|HPTɀW>}&x|8@@$||@9A|8@@ 9||0PUJ|3x}JCxUK>U>|IU>UJ>}kA}*I}JAT>}k}kJ})X})I})K< Uh|Hx}JH8}JxUk>T>}JZ}:| @A$}Ix"}5I|||}59A }l@P| @||}?PP}@HP}h[x,A4}hP}*0P| ||HP0}k$0}[[x$0Ww,A(!A *})2|HP! a T|$(,0!4A8a<@DHL8!PN !| =  ~p;~p,A|N!,@| 8!N !||8!N N !|KKK}|8!N !|KA|8!N L  ~/.bashrcwordexpversionverboserestrictedrcfileposixnorcnoprofilenoeditingloginhelpdump-stringsdump-po-stringsdebugPOSIXLY_CORRECTPOSIX_PEDANTICoption `-c' requires an argumentTERMemacsEMACS*term*PS1PS2option `%s' requires an argument%s: unrecognized option%c%c: unrecognized optionSSH_CLIENT/etc/profile~/.profile~/.bash_profile~/.bash_loginBASH_ENVENVrbashPATHSHELLrun_wordexp--wordexp0 0 %u %u %s run_one_command-c%s: is a directory%s: cannot execute binary filebash/bin/shI have no name!/, ,4HPdx??host??\s-\v\$ > GNU bash, version %s-(%s) powerpc-redhat-linux-gnuUsage: %s [GNU long option] [option] ... %s [GNU long option] [option] script-file ... GNU long options: --%s Shell options: -irsD or -c command (invocation only) set -%s or -o option Type `%s -c "help set"' for more information about shell options. Type `%s -c help' for more information about shell builtin commands. Use the `bashbug' command to report bugs. reader_looptimed out waiting for input: auto-logout PWDeterm/%s PROMPT_COMMANDTMOUT\s-\v\$ > *(23/).-0,1  !"#$%&'+4444556666666666666666666666666667778899:::;;;;;;;;;;;<<<<<<======>>>???@AAABCDEEEFFGGGGHHIIJKKLLLMMMMMMNNNOOPPPQQQQQRRRRRSSTT  lll}"#Nll$')|*,0-621345nuv^llllw~  "(%+lloplxlm]_hllllOzl ! MI&stylllllllllllHqr{llJab`Slllll./FLcdefgEYTC[7jikl8=l>GKllllZDl9:?@Pl\UVlllllRWXQ;<AB ] !"#$%&'()*+23hi4,j/0ހ !q*/$@BNQT\YM_caMd,8ihHHMXtMXEEMO HHM44ǀGGGrۀC€.' 89<\-X1gW._`;Yabkmo5sgeggg6g7>uKgL:ggNOIgy?zJM|}PQR{_`S~TU..Vc^XfXlnpqr..tvwxXX..Z     [=XX  g   d  g @ABCDEFGH s" * *0,()X3567:*0****2020=***0]00*2,0_`/c3/ln/d)*+fv/bpqab,()**))23133 # !"$%&'11-.#1111   !"$%&'*+-.02  !"$%&'*-.02  !"$%&'-.02  !"$%&'-.02  !"$%&'-.02  !"$%&'*-.02  !"$%&'-.02 !"$%&'-. !"$&'-.parser stack overflow"$@"$@parse error

;&|()<>;&| readline stdin]][[!}{timefunctionindonedountilwhileselectforesaccasefielifelsethenif%s _PROMPT_COMMANDunexpected EOF while looking for `]]'syntax error in conditional expressionunexpected EOF while looking for matching `%c'expected `)'unexpected argument to conditional unary operator-nconditional binary operator expectedunexpected argument to conditional binary operator\`$" #: %s:%d msgid "%s" msgstr "" stdin"%s" ; PS1PS2%s%s.%dPWD77777778<0=<<$<<=<=<=<=<=<=<=<=<=<=<=<8@8@8@8@8@8@8@8@=<=<=<=<=<=<=<=<8=<=<=<=<=<=<=<;=<=<=<=<=<=<=<=<=<=<=<8=<::=<=<=<<<<=<=<=<= =<=<8= =<=<;=<=<=<=<=<:=<=<=<9:h8;:: ;|&syntax error near unexpected token `%s'`%s'syntax error: unexpected end of filesyntax errorUse "%s" to leave the shell. logoutexitgetcwd: cannot access parent directories0%s %s%s%0dm%0ld.%03ds`%s': not a valid identifier/dev/ttyHOMEPWDOLDPWD=~:~:make_here_document: bad instruction type %dmake_redirection: redirection instruction `%d' out of rangeffffg,g,g,g,g,fgfg,g,clean_simple_command%s( time -p ! %c && || ; print_command: bad connector `%d'print_command )ijjj8jhijtl0j(l@jHjX%s%s''%sfor %s in do doneselect %s in { }case %s in esac | ) ;;whileuntil%s do if then else fi(( ))[[ ]]DEBUG: %s '' %s ]] )) %d>%s<%s&>>%s<<%s%s -%d<&%d%d>&%d%d<&%s%d>&%s%d>&->&%s<>%s>|%s{||,|@|l},}8|h}}}}}P}hfunction %s () { () cprintf: bad `%%' argument (%c)dispose_commandH0||execute-commandpid %d open files: %d (%s)closeopen /dev/nullcannot redirect standard input from /dev/null: %sloop_redirectionsexecute_commandLP,`bad format character in time format: %c%s real %2R user %2U sys %2STIMEFORMAT real %3lR user %3lU sys %3lSpipe errorpipe-file-descriptorsexecute_connectionfor%*d%s%s) LINESCOLUMNS%sREPLYselectPS3#? case0L((execute_cond_node[[_simple-commandbgfgauto_resumeexactsubstringeval_builtinbuiltin_envfunction_callingsaved redirects%s: restricted: cannot specify `/' in command names%s: command not found%s: is a directory%s: cannot execute binary file%s: readonly functioncannot duplicate fd %d to fd 0cannot duplicate fd %d to fd 1cannot duplicate fd 1 to fd 2() {error importing function definition for `%s'PWD.shell-initOLDPWD_PATH/usr/local/bin:/bin:/usr/binTERMdumbPS1PS2PS4+ IFS HOSTTYPEpowerpcOSTYPElinux-gnuMACHTYPEpowerpc-redhat-linux-gnuHOSTNAMEMAILCHECK60OPTIND1OPTERRBASHBASH_VERSIONPOSIXLY_CORRECTPOSIX_PEDANTIC~/.sh_history~/.bash_historyHISTFILEHISTSIZE500IGNOREEOFignoreeofHISTCONTROLHISTIGNOREHOMESHELLSHLVLshell level (%d) too high, resetting to 1PPIDUIDEUIDBASH_VERSINFOLINESCOLUMNS%s= %s%s=%s '()'()SECONDSRANDOMLINENOHISTCMDDIRSTACKGROUPS%s: readonly variablearray assign%s: bad array subscript%s: cannot assign to non-numeric index%s[%s: bad array subscript[%s]: bad array subscript%s%s _=TZLANGLC_MESSAGESLC_CTYPELC_COLLATELC_ALLTEXTDOMAINDIRTEXTDOMAINhistcharsHISTFILESIZEHOSTFILETERMINFOTERMCAPGLOBIGNOREMAILPATHMAILignorePIPESTATUS L | \ ! l bash-maintainers@prep.ai.mit.edubash%s: %s last command: %s (null)Report this to %s Stopping myself...%s: %s: warning: : %s stdin%s: %s: line %d: %s: line %d: TRACE: pid %d: bad jumpbad connectorbad command typeunknown command error%s: %s: %dexpression recursion level exceededrecursion stack underflowsyntax error in expressionattempted assignment to non-variablebug: bad expassign tokenexpression expected`:' expected for conditional expressiondivision by 0missing `)'syntax error: operand expectedbad array subscript*/%+-&^|%s%s%s: %s (error token is "%s"): bad numberillegal arithmetic basevalue too great for basePWDjob-working-directorydeleting stopped job %d with process group %d[%d] %d describe_pid: %d: no such pid |%5d DoneStoppedRunningDone(%d)Exit %dUnknown status%s%*s(core dumped) | & (wd: %s) TTTTTTTU%d [%d]%c forkchild setpgid (%d to %d)[%d: %d] tcsetattrwait: pid %d is not a child of this shellwait_for: No record of process %dwait_for_job: job %d is stopped%s: job has terminated%s: bg background job?%s%s | (wd: %s)SIGCHLD traptrap%s: line %d: (core dumped)(wd now: %s) notify_of_job_statusinitialize_job_control: getpgrp failedinitialize_job_control: line disciplineinitialize_job_control: setpgidno job control in this shell\`$" $(()$[[]`bad substitution: no `%s' in %sbad substitution: no ending `}' in %s IFS %s: bad array subscript%s%s=(%s) %s%s=%s %s: cannot assign list to array memberèddddddddàèdddddddddddddddddddÈèddddddddddddddddddddddddddt%s%d/dev/fd/cannot make pipe for process substitutioncannot make child for process substitutioncannot duplicate named pipe %s as fd %dprocess substitutioncannot make pipes for command substitutioncannot make child for command substitutioncommand_substitute: cannot duplicate pipe as fd 1command substitution%s: unbound variable=~ ,4HPdx%s: %s%s: parameter null or not set-?$!#xlX`%s: substring expression < 0#%:-=?+/}-=?+-?#%:=+/#?@*#-?$!@*%s: bad substitution??$%s: cannot assign in this way$%c: unbound variablel`Tt|<(>(\`$:~.MAILCHECK/var/spool/mailMAILPATHMAIL_You have mail in $_You have new mail in $_The mail in %s has been read DEBUGSIGJUNK(63)SIGJUNK(62)SIGJUNK(61)SIGJUNK(60)SIGJUNK(59)SIGJUNK(58)SIGJUNK(57)SIGJUNK(56)SIGJUNK(55)SIGJUNK(54)SIGJUNK(53)SIGJUNK(52)SIGJUNK(51)SIGJUNK(50)SIGJUNK(49)SIGJUNK(48)SIGJUNK(47)SIGJUNK(46)SIGJUNK(45)SIGJUNK(44)SIGJUNK(43)SIGJUNK(42)SIGJUNK(41)SIGJUNK(40)SIGJUNK(39)SIGJUNK(38)SIGJUNK(37)SIGJUNK(36)SIGJUNK(35)SIGJUNK(34)SIGJUNK(33)SIGJUNK(32)SIGJUNK(31)SIGPWRSIGIOSIGWINCHSIGPROFSIGVTALRMSIGXFSZSIGXCPUSIGURGSIGTTOUSIGTTINSIGTSTPSIGSTOPSIGCONTSIGCHLDSIGJUNK(16)SIGTERMSIGALRMSIGPIPESIGUSR2SIGSEGVSIGUSR1SIGKILLSIGFPESIGBUSSIGABRTSIGTRAPSIGILLSIGQUITSIGINTSIGHUPEXITbad signal numberunrecognized signal numberSIGtraptrap_handler: bad signal %dexit trapdebug trapinterrupt trapcannot allocate new file descriptor for bash input from fd %dcheck_bash_input: buffer already exists for new fd %dU8UTUTUTUTUTUTUTUTU$U8UTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTU$U8UTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTUTU$U$U$GLOBIGNORE %s: argument expected%s: integer expression expected/dev/fd/`)' expected`)' expected, found %s%s: unary operator expectedhlhhhhh%s: binary operator expected1o(qqqqpqo\nqqqp4qqqqqqqqqqqqqnppdonoqXpqqq|qqqqpqnoqq4qnnqqrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrru0uHutuumissing `]'too many arguments2.03release@(#)Bash version 2.03.1(1) release GNU%s.%d(%d)-%s%s.%d(%d)GNU bash, version %s (%s) powerpc-redhat-linux-gnuCopyright 1998 Free Software Foundation, Inc. ;|&( ;|&()$,@H\p {,HISTIGNORE;&()|<>HISTCONTROLHISTFILESIZEHISTSIZEHISTFILE%s: cannot create: %s%s%s %s%s%s "'@><=;|&(: "'><=;|&(:comment-begin#$@$TERMBashshell-expand-linehistory-expand-linemagic-spacealias-expand-linehistory-and-alias-expand-lineinsert-last-argumentoperate-and-get-nextdisplay-shell-versioncomplete-into-bracescomplete-filenamepossible-filename-completionscomplete-usernamepossible-username-completionscomplete-hostnamepossible-hostname-completionscomplete-variablepossible-variable-completionscomplete-commandpossible-command-completionsglob-expand-wordglob-list-expansionsdynamic-complete-history'" \"'@<>=;|&()#$`?*[!:HOSTFILEhostname_completion_file/etc/hostsr$include %s %dfc -e ${VISUAL:-${EDITOR:-vi}}v;|&{(``PATH.%s/%stŀňŜŤŸ} FIGNOREsymlink-hook "'tttttttt||||||||tttttttttttttTtttttttttttttttttttttttttt>=, =, *=, /=, %=, conditional expression expr ? expr : expr || logical OR && logical AND | bitwise OR ^ bitwise XOR & bitwise AND ==, != equality, inequality <=, >=, <, > comparison <<, >> left and right bitwise shifts +, - addition, subtraction *, /, % multiplication, division, remainder !, ~ logical and bitwise negation -, + unary minus, plusThe levels are listed in order of decreasing precedence.operators is grouped into levels of equal-precedence operators.by 0 is trapped and flagged as an error. The following list ofis done in long integers with no check for overflow, though divisionEach ARG is an arithmetic expression to be evaluated. Evaluationreadline is used to obtain the line.starting at zero. If -e is supplied and the shell is interactive,supplied, the words read are assigned to sequential indices of ARRAY,output without a trailing newline before attempting to read. If -a isthe `-p' option is supplied, the string supplied as an argument isthis signifies `raw' input, and backslash escaping is disabled. Ifline read is stored in the REPLY variable. If the -r option is given,zero, unless end-of-file is encountered. If no NAMEs are supplied, thefound in $IFS are recognized as word delimiters. The return code ison, with leftover words assigned to the last NAME. Only the charactersassigned to the first NAME, the second word to the second NAME, and soOne line is read from the standard input, and the first word isis omitted, the return status is that of the last command.Causes a function to exit with the return value specified by N. If NARGs are given, all shell variables are printed.parameters and are assigned, in order, to $1, $2, .. $n. If noset of flags may be found in $-. The remaining n ARGs are positionalflags can also be used upon invocation of the shell. The currentUsing + rather than - causes these flags to be turned off. The such as cd which change the current directory. -P If set, do not follow symbolic links when executing commands by default. -H Enable ! style history substitution. This flag is on by redirection of output. -C If set, disallow existing regular files to be overwritten -B the shell will perform brace expansion -x Print commands and their arguments as they are executed. -v Print shell input lines as they are read. -u Treat unset variables as an error when substituting. -t Exit after reading and executing one command. gid to be set to the real uid and gid. functions. Turning this option off causes the effective uid and Disables processing of the $ENV file and importing of shell -p Turned on whenever the real and effective user ids do not match. xtrace same as -x vi use a vi-style line editing interface verbose same as -v privileged same as -p match the standard operation differs from the 1003.2 standard to posix change the behavior of bash where the default physical same as -P onecmd same as -t nounset same as -u notify same as -b noglob same as -f noexec same as -n noclobber same as -C monitor same as -m keyword same as -k allow comments to appear in interactive commands interactive-comments ignoreeof the shell will not exit upon reading EOF history enable command history histexpand same as -H hashall same as -h errexit same as -e emacs use an emacs-style line editing interface braceexpand same as -B allexport same as -a Set the variable corresponding to option-name: -o option-name -n Read commands but do not execute them. -m Job control is enabled. command, not just those that precede the command name. -k All assignment arguments are placed in the environment for a always read `~/.bashrc' on startup. -i Force the shell to be an "interactive" one. Interactive shells -h Remember the location of commands as they are looked up. -f Disable file name generation (globbing). -e Exit immediately if a command exits with a non-zero status. -b Notify of job termination immediately. -a Mark variables which are modified or created for export.see readonly.function. Some variables (such as PATH and IFS) cannot be unset; alsotries to unset a variable, and if that fails, then tries to unset aunset will only act on functions. With neither flag, unset firstthe `-v', unset will only act on variables. Given the `-f' flag,For each NAME, remove the corresponding variable or function. Givenprocessing.from subsequent NAMEs. An argument of `--' disables further optionprinted. An argument of `-n' says to remove the export propertyis given, a list of all names that are exported in this shell isthe NAMEs refer to functions. If no NAMEs are given, or if `-p'subsequently executed commands. If the -f option is given,NAMEs are marked for automatic export to the environment ofan array variable. An argument of `--' disables further optionfrom subsequent NAMEs. The `-a' option means to treat each NAME asis printed. An argument of `-n' says to remove the readonly propertyarguments are given, or if `-p' is given, a list of all readonly namesthen functions corresponding to the NAMEs are so marked. If nonot be changed by subsequent assignment. If the -f option is given,The given NAMEs are marked readonly and the values of these NAMEs maynot given, it is assumed to be 1.The positional parameters from $N+1 ... are renamed to $1 ... If N isin $PATH are used to find the directory containing FILENAME.Read and execute commands from FILENAME and return. The pathnamesbeing a login shell if it is; just suspend anyway.signal. The `-f' if specified says not to complain about thisSuspend the execution of this shell until it receives a SIGCONTthan ARG2.less-than, less-than-or-equal, greater-than, or greater-than-or-equalArithmetic binary operators return true if ARG1 is equal, not-equal, -lt, -le, -gt, or -ge. arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne, EXPR1 -o EXPR2 True if either expr1 OR expr2 is true. EXPR1 -a EXPR2 True if both expr1 AND expr2 are true. ! EXPR True if expr is false. -o OPTION True if the shell option OPTION is enabled.Other operators: True if STRING1 sorts after STRING2 lexicographically. STRING1 > STRING2 True if STRING1 sorts before STRING2 lexicographically. STRING1 < STRING2 True if the strings are not equal. STRING1 != STRING2 True if the strings are equal. STRING1 = STRING2 STRING True if string is not empty. -n STRING -z STRING True if string is empty.String operators: FILE1 -ef FILE2 True if file1 is a hard link to file2. FILE1 -ot FILE2 True if file1 is older than file2. modification date). FILE1 -nt FILE2 True if file1 is newer than file2 (according to -N FILE True if the file has been modified since it was last read. -G FILE True if the file is effectively owned by your group. -O FILE True if the file is effectively owned by you. -x FILE True if the file is executable by you. -w FILE True if the file is writable by you. -u FILE True if the file is set-user-id. -t FD True if FD is opened on a terminal. -S FILE True if file is a socket. -s FILE True if file exists and is not empty. -r FILE True if file is readable by you. -p FILE True if file is a named pipe. -k FILE True if file has its `sticky' bit set. -L FILE True if file is a symbolic link. -h FILE True if file is a symbolic link. -g FILE True if file is set-group-id. -f FILE True if file exists and is a regular file. -e FILE True if file exists. -d FILE True if file is a directory. -c FILE True if file is character special. -b FILE True if file is block special.File operators:are string operators as well, and numeric comparison operators.expressions are often used to examine the status of a file. Therethe evaluation of EXPR. Expressions may be unary or binary. UnaryExits with a status of 0 (trueness) or 1 (falseness) depending onargument must be a literal `]', to match the opening `['.This is a synonym for the "test" builtin, but the lastthe shell.Print the accumulated user and system times for processes run fromwith "kill -signal $$".corresponding numbers. Note that a signal can be sent to the shellor a signal number. `trap -l' prints a list of signal names and theireach signal number. Each SIGNAL_SPEC is either a signal name in only `-p' is given, trap prints the list of commands associated witheach SIGNAL_SPEC are displayed. If no arguments are supplied or ifcommand. If ARG is `-p' then the trap commands associated withthe shell. If a SIGNAL_SPEC is DEBUG, ARG is executed after everyIf a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit fromSIGNAL_SPEC is ignored by the shell and by the commands it invokes.reset to their original values. If ARG is the null string eachsignal(s) SIGNAL_SPEC. If ARG is absent all specified signals areThe command ARG is to be read and executed when the shell receivesand only if the -p flag is not also used.an executable named `file'. This includes aliases and functions, ifIf the -a flag is used, `type' displays all of the places that containreturn `file'.file that would be executed, or nothing if `type -t NAME' would notIf the -p flag is used, `type' either returns the name of the diskor unfound, respectively.alias, shell reserved word, shell function, shell builtin, disk file,`alias', `keyword', `function', `builtin', `file' or `', if NAME is anIf the -t option is used, `type' outputs a single word which is one ofcommand name.For each NAME, indicate how it would be interpreted if used as aprocesses.increments of 512 bytes, and -u, which is an unscaled number ofincrements, except for -t, which is in seconds, -p, which is inIf no option is given, then -f is assumed. Values are in 1024-byteOtherwise, the current value of the specified resource is printed.If LIMIT is given, it is the new value of the specified resource. -v the size of virtual memory -u the maximum number of user processes -t the maximum amount of cpu time in seconds -s the maximum stack size -p the pipe buffer size -n the maximum number of open file descriptors -m the maximum resident set size -l the maximum size a process may lock into memory -f the maximum size of files created by the shell -d the maximum size of a process's data segment -c the maximum size of core files created -a all current limits are reported -H use the `hard' resource limit -S use the `soft' resource limitoption is given, it is interpreted as follows:started by the shell, on systems that allow such control. If anUlimit provides control over the resources available to processeslike that accepted by chmod(1).interpreted as an octal number, otherwise it is a symbolic mode stringthat may be used as input. If MODE begins with a digit, it isIf `-p' is supplied, and MODE is omitted, the output is in a formoption makes the output symbolic; otherwise an octal number is output.`-S' is supplied, the current value of the mask is printed. The `-S'The user file-creation mask is set to MODE. If MODE is omitted, or ifpipeline are waited for.specification; if a job spec is given, all processes in the job'sand the return code is zero. N may be a process ID or a jobN is not given, all currently active child processes are waited for,Wait for the specified process and report its termination status. Ifthe COMMANDS are executed.assumed. For each element in WORDS, NAME is set to that element, andlist of items. If `in WORDS ...;' is not present, then `in "$@"' isThe `for' loop executes a sequence of commands for each member in auntil a break or return command is executed.in the variable REPLY. COMMANDS are executed after each selectionvalue read causes NAME to be set to null. The line read is savedredisplayed. If EOF is read, the command completes. Any otherto that word. If the line is empty, WORDS and the prompt arecorresponding to one of the displayed words, then NAME is setfrom the standard input. If the line consists of the numberis assumed. The PS3 prompt is then displayed and a line readpreceded by a number. If `in WORDS' is not present, `in "$@"'set of expanded words is printed on the standard error, eachThe WORDS are expanded, generating a list of words. Thethe value of the TIMEFORMAT variable as the output format.prints the timing summary in a slightly different format. This usesThe return status is the return status of PIPELINE. The `-p' optionand system CPU time spent executing PIPELINE when it terminates.Execute PIPELINE and print a summary of the real time, user CPU time,`|' is used to separate multiple patterns.Selectively execute COMMANDS based upon WORD matching PATTERN. Thecommand executed, or zero if no condition tested true.are executed, if present. The exit status is the exit status of the lastare executed and the if command completes. Otherwise, the else COMMANDSin turn, and if the exit status is zero, the corresponding then COMMANDSCOMMANDS are executed. Otherwise, each of the elif COMMANDS are executedThe if COMMANDS are executed. If the exit status is zero, then the then`while' COMMANDS has an exit status of zero.Expand and execute COMMANDS as long as the final command in the`until' COMMANDS has an exit status which is not zero.function as $0 .. $n.Arguments on the command line along with NAME are passed to theCreate a simple command invoked by NAME which runs COMMANDS.entire set of commands.Run a set of commands in a group. This is one way to redirect anjob specification with a `&' places the job in the background.WORD, then the job whose name begins with WORD is used. Following thejob. If you specifiy DIGITS, then that job is used. If you specifyThis is similar to the `fg' command. Resume a stopped or background command should be saved on the history list.HISTIGNORE A colon-separated list of patterns used to decide which third is the `history comment' character, usually `#'. the `quick substitution' character, usually `^'. The substitution character, usually `!'. The second is substitution. The first character is the historyhistchars Characters controlling history expansion and quick the command must be a prefix of a stopped job. match a substring of the job. Any other value means that value of `substring' means that the command word must exactly match a command in the list of stopped jobs. A A value of `exact' means that the command word must stopped jobs. If found there, that job is foregrounded. itself is first looked for in the list of currentlyauto_resume Non-null means a command word appearing on a line by `time' reserved word.TIMEFORMAT The output format for timing statistics displayed by theTERM The name of the current terminal type.SHELLOPTS A colon-separated list of enabled shell options.PWD The full pathname of the current directory.PS2 The secondary prompt string.PS1 The primary prompt string. primary prompt.PROMPT_COMMAND A command to be executed before the printing of each looking for commands.PATH A colon-separated list of directories to search whenOSTYPE The version of Unix this version of Bash is running on. for new mail.MAILPATH A colon-separated list of filenames which Bash checksMAILCHECK How often, in seconds, Bash checks for new mail.MACHTYPE A string describing the current system Bash is running on. (default 10). When unset, EOF signifies the end of input. in a row on an empty line before the shell will exit of it is the number of EOF characters that can be seen character as the sole input. If set, then the valueIGNOREEOF Controls the action of the shell on receipt of an EOFHOSTTYPE The type of CPU this version of Bash is running under.HOSTNAME The name of the current host.HOME The complete pathname to your login directory. shell can access.HISTSIZE The maximum number of history lines that a runningHISTFILESIZE The maximum number of lines this file can contain.HISTFILE The name of the file where your command history is stored. be ignored by pathname expansion.GLOBIGNORE A colon-separated list of patterns describing filenames to directory. when the argument to `cd' is not found in the currentCDPATH A colon separated list of directories to searchBASH_VERSION Version information for this Bash.You can see the directory stack with the `dirs' command. new current working directory.dir adds DIR to the directory stack at the top, making it the to the stack, so only the stack is manipulated.-n suppress the normal change of directory when adding directories from the right of the list shown by `dirs', starting with-N Rotates the stack so that the Nth directory (counting zero) is at the top. from the left of the list shown by `dirs', starting with+N Rotates the stack so that the Nth directory (countingdirectory. With no arguments, exchanges the top two directories.the stack, making the new top of the stack the current workingAdds a directory to the top of the directory stack, or rotates from the stack, so only the stack is manipulated.-n suppress the normal change of directory when removing directories removes the last directory, `popd -1' the next to last. shown by `dirs', starting with zero. For example: `popd -0'-N removes the Nth entry counting from the right of the list removes the first directory, `popd +1' the second. shown by `dirs', starting with zero. For example: `popd +0'+N removes the Nth entry counting from the left of the listtop directory.removes the top directory from the stack, and cd's to the newRemoves entries from the directory stack. With no arguments,-N displays the Nth entry counting from the right of the list shown by dirs when invoked without options, starting with zero.+N displays the Nth entry counting from the left of the list shown byThe -c flag clears the directory stack by deleting all of the elements.flag does the same thing, but the stack position is not prepended.prepending the directory name with its position in the stack. The -pcauses `dirs' to print the directory stack with one entry per line,that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flagof directories which are relative to your home directory. This meansThe -l flag specifies that `dirs' should not print shorthand versionsback up through the list with the `popd' command.find their way onto the list with the `pushd' command; you can getDisplay the list of currently remembered directories. Directoriesnot each is set.settable options is displayed, with an indication of whether or`set -o'. With no options, or with the -p option, a list of alloption restricts the OPTNAMEs to those defined for use withstatus indicates whether each OPTNAME is set or unset. The -ounsets each OPTNAME. The -q flag suppresses output; the exitThe -s flag means to enable (set) each OPTNAME; the -u flagToggle the values of variables controlling optional behavior.means to quote the argument in a way that can be reused as shell input.expand backslash escape sequences in the corresponding argument, and %qargument. In addition to the standard printf(1) formats, %b means toformat specifications, each of which causes printing of the next successivesequences which are converted and copied to the standard output, andcharacters, which are simply copied to standard output, character escapeis a character string which contains three types of objects: plainprintf formats and prints ARGUMENTS under control of the FORMAT. FORMATp`%s' not founda`%s': not an aliasalias %s=%s lvpVPsSf:q:u:m:r:`%s': invalid keymap namecannot read %s: %scannot unbind %s4LLDLL,LLLLLLLLLLLLLLLLLLLLLL 0only meaningful in a `for', `while', or `until' loop%s: not a shell builtincdPWDOLDPWDOLDPWD=PWD=restrictedLPHOMEHOME not set%s: %sOLDPWD not set%s CDPATHpwdcd_links.pvV%s: not foundrestricted: cannot use -pcommand_builtinPATH/bin:/usr/bin:/usr/sbin:/sbin%s: %s: usage: %s too many argumentsunknown option: %sbad non-numeric arg `%s'%s: could not get current directory: %s: %s ambigious job spec: %sSIGJUNKUnknown%s%s %2d) %s bad signal number: %s%s: not a signal specification%ld ,,PPPPPPPPPPPPPPPPPPPPP,,,<,P,,,,,PPPPPPPPPPPPPPPP,,P,,PPPPPPPPPPPPPPPPPPPPPPPPPPP,,,,P,PPPPPPPPPPPPPPPPPPPPPPPPPP,,,can only be used in a functionunknown option: `-%c'%s: not found`%s': not a valid identifiercannot use `-f' to make functions%s: readonly function%s %s: readonly variable%s: cannot assign to array variables in this way%s: cannot destroy array variables in this wayneE%sadnpsf:restricted%s: not a shell builtin,,$,,,,,,,,,,, enable %s enable -n %s cannot open shared object %s: %s_structcannot find %s in shared object %s: %s 4P%s: not dynamically loadedcannot delete %s: %seval%s: is a directory%s: not a regular file%s: file is too large%s: cannot execute binary file_evalfileparse_and_execute_toppe_disposeparse_and_executecla:restricted%s: not found%s: cannot execute: %slogout exit not login shell: use `exit'There are stopped jobs. ~/.bash_logout:e:lnrsno command found%s fchistory specification out of range/tmp/bash%dwcannot open temp file %s%d %c%s %s${FCEDIT:-${EDITOR:-vi}}fc builtinμδno job control%s: no such jobcurrentjob %%%d started without job controlhashing disabledrp:%s: hash table empty %s: not foundhits command %4d %s Shell commands matching keyword%s `s, ' %s: %s %s no help topics match `%s'. Try `help help'.These shell commands are defined internally. Type `help' to see this list. Type `help name' to find out more about the function `name'. Use `info bash' to find out more about the shell in general. A star (*) next to a name means that the command is disabled. %s acnpsrwcannot use more than one of -anrwHISTFILE   %5d%c %s %s: history expansion failedlpnxrsOther options not allowed with `-x'no such job %s((( ((((jobs_builtinahr%s: no such jobcurrentTERM%s requires an argumentbad signal spec `%s'%s: no such pid%s: no such job(%d) - Not owner(%d) - No such pidInvalid signal %d`%s': not a pid or valid job specexpression expected%s: bad argumentno other directorypushddirs%2d %s%s %2d %s%s%s directory stack empty%s: bad directory stack indexbad directory stack indexPWDdirstack.erp:a:IFS read_builtin%sREPLY`%s': not a valid identifiercan only `return' from a function or sourced scriptonoffxtraceverboseprivilegedphysicalonecmdnounsetnotifynoglobnoexecnoclobbermonitorkeywordhistexpandhashallerrexitbraceexpandallexportviemacsposixinteractive-commentsignoreeofhistory%-15s %s set %co %s IGNOREEOF10POSIXLY_CORRECTyediting-modestdin%s: unknown option nameSHELLOPTSfvcannot simultaneously unset a function and a variable`%s': not a valid identifier%s: cannot unset%s: cannot unset: readonly %sfunctionvariable%s: not an array variableanfp%s: not a function`%s': not a valid identifier-radeclare -%s -%s -%s %s %s %s=%s shift count must be >= 0shift count must be <= $#filename argument required%s: restrictedsourcefcannot suspend a shell without job controlcannot suspend a login shellmissing `]'lp%s: not a signal specification&h&&&&&&&&&&&&&&&&&&&&SIGJUNKunknowntrap -- %s %d ''trap -- %s %s type-typepath-pathall-allapt%s: not foundalias%s is aliased to `%s' alias %s=%s keyword%s is a shell keyword %s function%s is a function builtin%s is a shell builtin file%s is %s %s is hashed (%s) virtual memory (kbytes)max user processescpu time (seconds)stack size (kbytes)pipe size (512 bytes)open filesmax memory size (kbytes)max locked memory (kbytes)file size (blocks)data seg size (kbytes)core file size (blocks)bad command: `%c'cannot get limit: %sunlimitedbad non-numeric arg `%s'limit out of range: %dcannot modify limit: %s%-28sSp`%s' is not an octal number from 000 to 777umask%s -S%03o u=%s,g=%s,o=%s agoubad symbolic mode operator: %crwxbad character in symbolic mode: %cwait_builtin`%s' is not a pid or valid job spec%s: no such jobjob control not enabled`%s': not a valid identifierOPTIND?OPTARG:sourcepathshift_verboserestricted_shellpromptvarsnullglobnocaseglobmailwarnlithistinteractive_commentshuponexithostcompletehistverifyhistappendhistreeditextglobexpand_aliasesexecfaildotglobcmdhistcheckwinsizecheckhashcdspellcdable_varsonoffpsuoqcannot set and unset shell options simultaneouslyDD$DD,DD,D %s: unknown shell option nameshopt %s %s -s-u%-15s %s %s: unknown option nameset %co %s #-+ 0*0123456789`%s': missing format character`%c': illegal format characterPQPQQQQQQQQQQQQQQQQP<=;|&{("'Display all %d possibilities? (y or n)/ readline: bad value %d for what_to_do in rl_complete .C-\M-HT`lx,INPUTRC~/.inputrcreadline: %s: line %d: %s otherterm=mode=emacsvi$else found without matching $if$endif without matching $ifincludeelseendififunknown parser directiveno closing `"' in key bindingsetprefix-metavisible-statsshow-all-if-ambiguousprint-completions-horizontallyoutput-metameta-flagmark-modified-linesmark-directoriesinput-metahorizontal-scroll-modeexpand-tildeenable-keypaddisable-completionconvert-metacompletion-ignore-caseonediting-modecomment-begincompletion-query-itemskeymapbell-stylenoneoffaudiblevisibleprefer-visible-bellisearch-terminatorsTabSpaceSPCRuboutReturnRETNewlineLFDEscapeESCDELvi-insertvi-commandvi-moveemacs-ctlxemacs-metaemacs-standard%s \e\C-%c\C-? # %s (not bound) "%s": %s %s is not bound to any keys %s can be found on "%s"%s, . ... "%s%s": "%s" %s%s outputs %s set %s %s %s is set to `%s' set bell-style %s bell-style is set to `%s' set comment-begin %s #comment-begin is set to `%s' set completion-query-items %d completion-query-items is set to `%d' set editing-mode %s editing-mode is set to `%s' set keymap %s keymap is set to `%s' set isearch-terminators "%s" isearch-terminators is set to "%s" reverse-i-search)`': %s,8@T\p \%oM-C-H|HHHHHHHHHHHHHHHHHHHH/-_=~.#$~ COLUMNScoLINESlivbuppcmommlekekskukrklkHkhkdimiceidccrclceICDCTERMdumb amxnkmMTPOSIX =event not foundbad word specifiersubstitution failedunrecognized history modifierno previous substitutionunknown expansion error0@P`p:$*%^p, p ;&()|<>,4H\ () <>;&|$"'`\`"$HOME..history ~ ~ HOME.DELtilderight-curly-bracketright-bracevertical-lineleft-curly-bracketleft-bracegrave-accentunderscorecircumflex-accentcircumflexright-square-bracketreverse-solidusbackslashleft-square-bracketcommercial-atquestion-markgreater-than-signequals-signless-than-signsemicoloncolonnineeightsevensixfivefourthreetwoonezerosolidusslashperioddashminushyphencommaplus-signasteriskright-parenthesisleft-parenthesisapostropheampersandpercent-signdollar-signnumber-signquotation-markexclamation-markspaceIS1IS2IS3IS4ESCSUBEMCANETBSYNNAKDC4DC3DC2DC1DLESISOcarriage-returnform-feedvertical-tabnewlinetabbackspacealertACKENQEOTETXSTXSOHNUL?*+@!alnum:]alpha:]blank:]cntrl:]digit:]graph:]lower:]print:]punct:]space:]upper:]xdigit:]ascii:]tPPPPPPPPppPPPPPPPPPPPPPPPPPPPӌӌmalloc: block on free list clobberedfree: called with already freed block argumentfree: called with unallocated block argumentp->minfo.mi_magic2 == 0x5555*ap++ == 0x55*ap == 0x55nunits < 30p->minfo.mi_alloc == ((char) 0xf7)*m++ == 0x55*m == 0x55Memory allocation statistics: %s size free in use total morecor     e %12lu %4d %6d %5d %8d Total bytes in use: %d, total bytes free: %d Total mallocs: %d, total frees: %d, total reallocs: %d (%d copies) Total sbrks: %d, total bytes via sbrk: %d Total blocks split: %d, total block coalesces: %d ~|!~!H!8!~!~!~!x~!p~!h~!`~!T!L!D~!<~:::999999 9 9 9 9 9999{9}999 {();&| !  d F(\I\$I\$F\$G`I\\FP\I\I\I\G]G\\Ix\G]Il^lGl_Gx_F_F`HI`a IPa IHa I<a I0a I$a Ia I^KXKDK4K(abefhikmnprtuvxCIPBHYY|YtYlYdY\YTYLYDY<Y4Y,Y$YYY YXXXXXXXXXXXXXXX|XpXdXXXLX@X4X(XXXWWWWWWWWWWWWtWhW\WPWDW8W,W WWVV[  _h 8cpx@=ppz0=ptpl{=(po =oo| =oop=ooL=ooh=oo =oox=oxop=opoh>oDo<H> oo H>|nnp>nn>nn>nlnd ?nTnLT?n,n$ ?mmP ?mm?mmЈ?mm@mmݘ@,mpmhߌ@<mDm<L@Tm(m @dllT@ll@llldT@llAkk8Akk Akkl Akxkp BkTkL"\Bk$k"Cjj* C(jj,X C4jj,X C@jj.CLjj/C\jj/D`jtjl/Dljljd0| Dxj<j45 Djj<DiiH EXiiMpExiiEiiEiPiHEi4i,EhhEhhFhhh`F h<h0F,ggF<ggFHggF\gg G$gdg\pGtgHg@Gg(g UHff^H$frqqq@qprhrDwwtw0wvvv<v uuu\u4uttt4tsss@rrxwxxHy0xx{{{h{$zzzXzyyyp||T|0|}$}@~~l~$}}}` d4L@~`|xX@0  T@D@x8Tl8p,d TH<|8H|8lDt,\8p, `Px4p@x8h(h(`|4d4T(P h(|\4tdP8tLxl Ht0\4`h$d8`Ld@8`<d8@H`\$Xx4d THx0`Hl,l,$l(ŤŔ`(Đ\(øÄP¬x@x(H4|d,dPl,pdư0$ʄ@ɼt0Ȭdnjt ̀8˔˄<јT$Ь|Hϰ|`@ μx4ͰpdX҄DԈ@ӼӠ|48׸x8ָx4ل@ذtۤX t<  `ܰܘH0\݌x0 |8$t,@p0tHp,X p<ߌTޤPHp4L L H4t@l(T PP8\ 0a $B e h H kmCnfbutPpvx tD h\$ P H~ @, <,cdpf\l@m$nps t u v  ,td\TH80$  ~^\ ^|pt t<\}p|ttD`P< (`DhXH4<7,;<4X<l<|pddL<,(} }|80pTհ$ ߬<Hth8XuH\8 ,t\$d~$@xdXHƠ< ,  4Ä X(`4xLdHT`H8<(ĸ|x$` th\ L@4H40(D@DXlt<(\}\<<\d~$^Vt<|8H(,uDDDDDDDDDDDt߬߬|8p0pH u|t<<4}pt<\}\<<\d~$l,XĸXÄ DÄX @4`ÄH` ÄHxHX`<4`Äl` Äx(H  (\\<<\d~$|    "0",!8!!!!4!!!t4!h0!H4!0! """" " " " "" " "  lN#4N#(V#^ tf#f#f"n&D&t&p&d&@&h&P&x&L&&&&&&|&x&t&pT&l&h&d`&`&\))))---------- - -p -d -T -P-L-H-D-@-<-8-4-0-,-(-$- ----- - ,!,",#,$,%,&,',(,x),l*,`+,X,,P-,H-,@-,8.,0/,(/, 0,1,2,3,4,5+6+7+8+9+:+;+<+=+>+?+@+l[+`\+P\+8]+,^+^+ _*`*{*{*|*}*}*~*   PH(8 \A <`` oooߞ{|N!}!0&P&\9h9p =CJP^P^X^`,__6B,?Niddx`  TH&0  !^&xy GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release)GCC: (GNU) egcs-2.91.66 19990314 (egcs-1.1.2 release).symtab.strtab.shstrtab.interp.note.ABI-tag.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.bss.rela.plt.rela.sbss.text.init.fini.rodata.sdata2.data.eh_frame.dynamic.got2.ctors.dtors.got.sdata.sbss.plt.bss.comment #00 1PP&7 (8(8[?HH\UGoߞߞ bTo`c`` m``< wx .  (  !!0000L}}}}~h~h~p~p~x~x~~~~000P49D4ELF4$4 (444 `000 /lib/ld.so.1GNU    @" !"!"X","3!x;"$G!("L!@]!"d"( p"8"w!"}!!"!D"P""X"! !<"Ht"! ""0 !,!h" !" "!"2!"8"@"__gmon_start__libc.so.6stpcpytextdomainprintfmemmovegetopt_longputs_nl_msg_cat_cntrmalloc__dcgettextcallocwritefprintf__deregister_frame_infooptindreadreallocsetlocalestderrerror__errno_locationexit__fxstatbindtextdomain_IO_stdin_used__libc_start_mainopen__register_frame_infoclosefreeGLIBC_2.0 ii=!! !! !!!! !!!!!!""""" "( "0"8 "@"H"P!<!@!D|) xT!68!|=Hؔ!| =  ,@l= i؀ ,A0??9)?؀ |N!؀ ,@= 9)!, A<`8cH== 8 ܀| 8!N !||8!N !|= 9)!, A<`<8c8"H|8!N !||8!N !|$|}yA|? = ,! |P|A|x~x>~Ѐq!(x~xL1H ,@dH%? C,? ?A9 !@| A 8`88HY!@|  Dx8`L1HY޲|@xx~xxH|@@q!(|P~xL1H ,@hH}? ,??A> !@| A$<88`8H!@}  x8`L1H=l!$~DxL1H ~x|cyL@@?;K, A;K4|8<@!DAHaLPTX\`!dAhalptx|} 8!N !0|!Aa!Aaēȓ̐|#x= |ux< !8888`H?<8H8}To c, m$ xD~DD(ll L    !8!8!H!8t"!8"!8#'ELF4X4 (444 \\```xxx000 /lib/ld.so.1GNUayUilDv_Qk  ;f8qR"<e S%a6[`2,c'h>:t.7bJYg)wHFuEN^T 1roA \V=4K*9$ZOn0j-Lxp3! ?W&G+]C5@ms(IX#M/PBdL" !0-$"5";"BDIP,"X4at"i|$u$""d$tD"48L"\X"L"t"$"4,"