diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/Makefile ns/Makefile --- /home/ns/ns-allinone-2.26/ns-2.26/Makefile Mon Jun 2 15:21:04 2003 +++ ns/Makefile Mon Jun 2 19:32:13 2003 @@ -38,8 +38,8 @@ CPP = c++ LINK = $(CPP) MKDEP = ./conf/mkdep -TCLSH = /home/ns/ns-allinone-2.26/bin/tclsh8.3 -TCL2C = ../tclcl-1.0b13/tcl2c++ +TCLSH = /home/ns/ns-allinone-2.26/tcl8.3.2/unix/tclsh +TCL2C = /home/ns/ns-allinone-2.26/tclcl-1.0b13/tcl2c++ AR = ar rc $(BLANK) RANLIB = ranlib @@ -48,7 +48,7 @@ TEST = test RM = rm -f MV = mv -PERL = /usr/bin/perl +PERL = /usr/bin//perl # for diffusion #DIFF_INCLUDES = "./diffusion3/main ./diffusion3/lib ./diffusion3/nr ./diffusion3/ns" @@ -62,7 +62,7 @@ INCLUDES = \ -I. \ - -I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/include -I/home/ns/ns-allinone-2.26/include -I/usr/include/pcap \ + -I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/tk8.3.2/generic -I/home/ns/ns-allinone-2.26/tcl8.3.2/generic -I/usr/include/pcap \ -I./tcp -I./common -I./link -I./queue \ -I./adc -I./apps -I./mac -I./mobile -I./trace \ -I./routing -I./tools -I./classifier -I./mcast \ @@ -72,7 +72,7 @@ LIB = \ - -L/home/ns/ns-allinone-2.26/tclcl-1.0b13 -ltclcl -L/home/ns/ns-allinone-2.26/otcl-1.0a8 -lotcl -L/home/ns/ns-allinone-2.26/lib -ltk8.3 -L/home/ns/ns-allinone-2.26/lib -ltcl8.3 \ + -L/home/ns/ns-allinone-2.26/tclcl-1.0b13 -ltclcl -L/home/ns/ns-allinone-2.26/otcl-1.0a8 -lotcl -L/home/ns/ns-allinone-2.26/tk8.3.2/unix -ltk8.3 -L/home/ns/ns-allinone-2.26/tcl8.3.2/unix -ltcl8.3 \ -L/usr/X11R6/lib -lXext -lX11 \ -lnsl -lpcap -ldl \ -lm @@ -158,7 +158,7 @@ apps/app.o apps/telnet.o tcp/tcplib-telnet.o \ tools/trafgen.o trace/traffictrace.o tools/pareto.o \ tools/expoo.o tools/cbr_traffic.o \ - adc/tbf.o adc/resv.o adc/sa.o tcp/saack.o \ + adc/tbfr.o adc/resv.o adc/sa.o tcp/saack.o \ tools/measuremod.o adc/estimator.o adc/adc.o adc/ms-adc.o \ adc/timewindow-est.o adc/acto-adc.o \ adc/pointsample-est.o adc/salink.o adc/actp-adc.o \ @@ -233,6 +233,7 @@ dsr/requesttable.o dsr/routecache.o dsr/add_sr.o \ dsr/dsr_proto.o dsr/flowstruct.o dsr/linkcache.o \ dsr/simplecache.o dsr/sr_forwarder.o \ + tbf/tbf.o \ aodv/aodv_logs.o aodv/aodv.o \ aodv/aodv_rtable.o aodv/aodv_rqueue.o \ common/ns-process.o \ diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/Makefile.in ns/Makefile.in --- /home/ns/ns-allinone-2.26/ns-2.26/Makefile.in Thu Feb 27 19:51:25 2003 +++ ns/Makefile.in Mon Jun 2 19:21:37 2003 @@ -157,7 +157,7 @@ apps/app.o apps/telnet.o tcp/tcplib-telnet.o \ tools/trafgen.o trace/traffictrace.o tools/pareto.o \ tools/expoo.o tools/cbr_traffic.o \ - adc/tbf.o adc/resv.o adc/sa.o tcp/saack.o \ + adc/tbfr.o adc/resv.o adc/sa.o tcp/saack.o \ tools/measuremod.o adc/estimator.o adc/adc.o adc/ms-adc.o \ adc/timewindow-est.o adc/acto-adc.o \ adc/pointsample-est.o adc/salink.o adc/actp-adc.o \ @@ -232,6 +232,7 @@ dsr/requesttable.o dsr/routecache.o dsr/add_sr.o \ dsr/dsr_proto.o dsr/flowstruct.o dsr/linkcache.o \ dsr/simplecache.o dsr/sr_forwarder.o \ + tbf/tbf.o \ aodv/aodv_logs.o aodv/aodv.o \ aodv/aodv_rtable.o aodv/aodv_rqueue.o \ common/ns-process.o \ diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/adc/tbf.cc ns/adc/tbf.cc --- /home/ns/ns-allinone-2.26/ns-2.26/adc/tbf.cc Wed Feb 26 17:07:14 2003 +++ ns/adc/tbf.cc Wed Dec 31 19:00:00 1969 @@ -1,145 +0,0 @@ -/* -*- Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */ -/* - * Copyright (c) Xerox Corporation 1997. All rights reserved. - * - * License is granted to copy, to use, and to make and to use derivative - * works for research and evaluation purposes, provided that Xerox is - * acknowledged in all documentation pertaining to any such copy or - * derivative work. Xerox grants no other licenses expressed or - * implied. The Xerox trade name should not be used in any advertising - * without its written permission. - * - * XEROX CORPORATION MAKES NO REPRESENTATIONS CONCERNING EITHER THE - * MERCHANTABILITY OF THIS SOFTWARE OR THE SUITABILITY OF THIS SOFTWARE - * FOR ANY PARTICULAR PURPOSE. The software is provided "as is" without - * express or implied warranty of any kind. - * - * These notices must be retained in any copies of any part of this - * software. - */ - -/* Token Bucket filter which has 3 parameters : - a. Token Generation rate - b. Token bucket depth - c. Max. Queue Length (a finite length would allow this to be used as policer as packets are dropped after queue gets full) - */ - -#include "connector.h" -#include "packet.h" -#include "queue.h" -#include "tbf.h" - -TBF::TBF() :tokens_(0),tbf_timer_(this), init_(1) -{ - q_=new PacketQueue(); - bind_bw("rate_",&rate_); - bind("bucket_",&bucket_); - bind("qlen_",&qlen_); -} - -TBF::~TBF() -{ - if (q_->length() != 0) { - //Clear all pending timers - tbf_timer_.cancel(); - //Free up the packetqueue - for (Packet *p=q_->head();p!=0;p=p->next_) - Packet::free(p); - } - delete q_; -} - - -void TBF::recv(Packet *p, Handler *) -{ - //start with a full bucket - if (init_) { - tokens_=bucket_; - lastupdatetime_ = Scheduler::instance().clock(); - init_=0; - } - - - hdr_cmn *ch=hdr_cmn::access(p); - - //enque packets appropriately if a non-zero q already exists - if (q_->length() !=0) { - if (q_->length() < qlen_) { - q_->enque(p); - return; - } - - drop(p); - return; - } - - double tok; - tok = getupdatedtokens(); - - int pktsize = ch->size()<<3; - if (tokens_ >=pktsize) { - target_->recv(p); - tokens_-=pktsize; - } - else { - - if (qlen_!=0) { - q_->enque(p); - tbf_timer_.resched((pktsize-tokens_)/rate_); - } - else { - drop(p); - } - } -} - -double TBF::getupdatedtokens(void) -{ - double now=Scheduler::instance().clock(); - - tokens_ += (now-lastupdatetime_)*rate_; - if (tokens_ > bucket_) - tokens_=bucket_; - lastupdatetime_ = Scheduler::instance().clock(); - return tokens_; -} - -void TBF::timeout(int) -{ - if (q_->length() == 0) { - fprintf (stderr,"ERROR in tbf\n"); - abort(); - } - - Packet *p=q_->deque(); - double tok; - tok = getupdatedtokens(); - hdr_cmn *ch=hdr_cmn::access(p); - int pktsize = ch->size()<<3; - - //We simply send the packet here without checking if we have enough tokens - //because the timer is supposed to fire at the right time - target_->recv(p); - tokens_-=pktsize; - - if (q_->length() !=0 ) { - p=q_->head(); - hdr_cmn *ch=hdr_cmn::access(p); - pktsize = ch->size()<<3; - tbf_timer_.resched((pktsize-tokens_)/rate_); - } -} - -void TBF_Timer::expire(Event* /*e*/) -{ - tbf_->timeout(0); -} - - -static class TBFClass : public TclClass { -public: - TBFClass() : TclClass ("TBF") {} - TclObject* create(int,const char*const*) { - return (new TBF()); - } -}class_tbf; diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/adc/tbf.h ns/adc/tbf.h --- /home/ns/ns-allinone-2.26/ns-2.26/adc/tbf.h Wed Feb 26 17:07:14 2003 +++ ns/adc/tbf.h Wed Dec 31 19:00:00 1969 @@ -1,57 +0,0 @@ -/* -*- Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */ -/* - * Copyright (c) Xerox Corporation 1997. All rights reserved. - * - * License is granted to copy, to use, and to make and to use derivative - * works for research and evaluation purposes, provided that Xerox is - * acknowledged in all documentation pertaining to any such copy or - * derivative work. Xerox grants no other licenses expressed or - * implied. The Xerox trade name should not be used in any advertising - * without its written permission. - * - * XEROX CORPORATION MAKES NO REPRESENTATIONS CONCERNING EITHER THE - * MERCHANTABILITY OF THIS SOFTWARE OR THE SUITABILITY OF THIS SOFTWARE - * FOR ANY PARTICULAR PURPOSE. The software is provided "as is" without - * express or implied warranty of any kind. - * - * These notices must be retained in any copies of any part of this - * software. - */ - -#ifndef ns_tbf_h -#define ns_tbf_h - -#include "connector.h" -#include "timer-handler.h" - -class TBF; - -class TBF_Timer : public TimerHandler { -public: - TBF_Timer(TBF *t) : TimerHandler() { tbf_ = t;} - -protected: - virtual void expire(Event *e); - TBF *tbf_; -}; - - -class TBF : public Connector { -public: - TBF(); - ~TBF(); - void timeout(int); -protected: - void recv(Packet *, Handler *); - double getupdatedtokens(); - double tokens_; //acumulated tokens - double rate_; //token bucket rate - int bucket_; //bucket depth - int qlen_; - double lastupdatetime_; - PacketQueue *q_; - TBF_Timer tbf_timer_; - int init_; -}; - -#endif diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/adc/tbfr.cc ns/adc/tbfr.cc --- /home/ns/ns-allinone-2.26/ns-2.26/adc/tbfr.cc Wed Dec 31 19:00:00 1969 +++ ns/adc/tbfr.cc Mon Jun 2 19:21:36 2003 @@ -0,0 +1,145 @@ +/* -*- Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */ +/* + * Copyright (c) Xerox Corporation 1997. All rights reserved. + * + * License is granted to copy, to use, and to make and to use derivative + * works for research and evaluation purposes, provided that Xerox is + * acknowledged in all documentation pertaining to any such copy or + * derivative work. Xerox grants no other licenses expressed or + * implied. The Xerox trade name should not be used in any advertising + * without its written permission. + * + * XEROX CORPORATION MAKES NO REPRESENTATIONS CONCERNING EITHER THE + * MERCHANTABILITY OF THIS SOFTWARE OR THE SUITABILITY OF THIS SOFTWARE + * FOR ANY PARTICULAR PURPOSE. The software is provided "as is" without + * express or implied warranty of any kind. + * + * These notices must be retained in any copies of any part of this + * software. + */ + +/* Token Bucket filter which has 3 parameters : + a. Token Generation rate + b. Token bucket depth + c. Max. Queue Length (a finite length would allow this to be used as policer as packets are dropped after queue gets full) + */ + +#include "connector.h" +#include "packet.h" +#include "queue.h" +#include "tbfr.h" + +TBFR::TBFR() :tokens_(0),tbfr_timer_(this), init_(1) +{ + q_=new PacketQueue(); + bind_bw("rate_",&rate_); + bind("bucket_",&bucket_); + bind("qlen_",&qlen_); +} + +TBFR::~TBFR() +{ + if (q_->length() != 0) { + //Clear all pending timers + tbfr_timer_.cancel(); + //Free up the packetqueue + for (Packet *p=q_->head();p!=0;p=p->next_) + Packet::free(p); + } + delete q_; +} + + +void TBFR::recv(Packet *p, Handler *) +{ + //start with a full bucket + if (init_) { + tokens_=bucket_; + lastupdatetime_ = Scheduler::instance().clock(); + init_=0; + } + + + hdr_cmn *ch=hdr_cmn::access(p); + + //enque packets appropriately if a non-zero q already exists + if (q_->length() !=0) { + if (q_->length() < qlen_) { + q_->enque(p); + return; + } + + drop(p); + return; + } + + double tok; + tok = getupdatedtokens(); + + int pktsize = ch->size()<<3; + if (tokens_ >=pktsize) { + target_->recv(p); + tokens_-=pktsize; + } + else { + + if (qlen_!=0) { + q_->enque(p); + tbfr_timer_.resched((pktsize-tokens_)/rate_); + } + else { + drop(p); + } + } +} + +double TBFR::getupdatedtokens(void) +{ + double now=Scheduler::instance().clock(); + + tokens_ += (now-lastupdatetime_)*rate_; + if (tokens_ > bucket_) + tokens_=bucket_; + lastupdatetime_ = Scheduler::instance().clock(); + return tokens_; +} + +void TBFR::timeout(int) +{ + if (q_->length() == 0) { + fprintf (stderr,"ERROR in tbfr\n"); + abort(); + } + + Packet *p=q_->deque(); + double tok; + tok = getupdatedtokens(); + hdr_cmn *ch=hdr_cmn::access(p); + int pktsize = ch->size()<<3; + + //We simply send the packet here without checking if we have enough tokens + //because the timer is supposed to fire at the right time + target_->recv(p); + tokens_-=pktsize; + + if (q_->length() !=0 ) { + p=q_->head(); + hdr_cmn *ch=hdr_cmn::access(p); + pktsize = ch->size()<<3; + tbfr_timer_.resched((pktsize-tokens_)/rate_); + } +} + +void TBFR_Timer::expire(Event* /*e*/) +{ + tbfr_->timeout(0); +} + + +static class TBFRClass : public TclClass { +public: + TBFRClass() : TclClass ("TBFR") {} + TclObject* create(int,const char*const*) { + return (new TBFR()); + } +}class_tbfr; diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/adc/tbfr.h ns/adc/tbfr.h --- /home/ns/ns-allinone-2.26/ns-2.26/adc/tbfr.h Wed Dec 31 19:00:00 1969 +++ ns/adc/tbfr.h Mon Jun 2 19:21:36 2003 @@ -0,0 +1,57 @@ +/* -*- Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */ +/* + * Copyright (c) Xerox Corporation 1997. All rights reserved. + * + * License is granted to copy, to use, and to make and to use derivative + * works for research and evaluation purposes, provided that Xerox is + * acknowledged in all documentation pertaining to any such copy or + * derivative work. Xerox grants no other licenses expressed or + * implied. The Xerox trade name should not be used in any advertising + * without its written permission. + * + * XEROX CORPORATION MAKES NO REPRESENTATIONS CONCERNING EITHER THE + * MERCHANTABILITY OF THIS SOFTWARE OR THE SUITABILITY OF THIS SOFTWARE + * FOR ANY PARTICULAR PURPOSE. The software is provided "as is" without + * express or implied warranty of any kind. + * + * These notices must be retained in any copies of any part of this + * software. + */ + +#ifndef ns_tbfr_h +#define ns_tbfr_h + +#include "connector.h" +#include "timer-handler.h" + +class TBFR; + +class TBFR_Timer : public TimerHandler { +public: + TBFR_Timer(TBFR *t) : TimerHandler() { tbfr_ = t;} + +protected: + virtual void expire(Event *e); + TBFR *tbfr_; +}; + + +class TBFR : public Connector { +public: + TBFR(); + ~TBFR(); + void timeout(int); +protected: + void recv(Packet *, Handler *); + double getupdatedtokens(); + double tokens_; //acumulated tokens + double rate_; //token bucket rate + int bucket_; //bucket depth + int qlen_; + double lastupdatetime_; + PacketQueue *q_; + TBFR_Timer tbfr_timer_; + int init_; +}; + +#endif diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/common/ip.h ns/common/ip.h --- /home/ns/ns-allinone-2.26/ns-2.26/common/ip.h Wed Feb 26 17:07:39 2003 +++ ns/common/ip.h Mon Jun 2 19:21:36 2003 @@ -60,13 +60,21 @@ int ttl_; /* Monarch extn */ -// u_int16_t sport_; -// u_int16_t dport_; + u_int16_t sport_; + u_int16_t dport_; /* IPv6 */ int fid_; /* flow id */ int prio_; - + /* Harvard extensions : TBF*/ + + double dx_, dy_, dz_; + double& dx() { return dx_; } + double& dy() { return dy_; } + double& dz() { return dz_; } + + + static int offset_; inline static int& offset() { return offset_; } inline static hdr_ip* access(const Packet* p) { diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/common/packet.h ns/common/packet.h --- /home/ns/ns-allinone-2.26/ns-2.26/common/packet.h Wed Feb 26 17:07:40 2003 +++ ns/common/packet.h Mon Jun 2 19:21:36 2003 @@ -154,6 +154,8 @@ PT_LMS_SETUP, // insert new packet types here + PT_TBF, + PT_NTYPE // This MUST be the LAST one }; @@ -236,6 +238,7 @@ // LMS entries name_[PT_LMS]="LMS"; name_[PT_LMS_SETUP]="LMS_SETUP"; + name_[PT_TBF]="TBF"; name_[PT_NTYPE]= "undefined"; } diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/config.log ns/config.log --- /home/ns/ns-allinone-2.26/ns-2.26/config.log Mon Jun 2 15:21:03 2003 +++ ns/config.log Mon Jun 2 19:22:06 2003 @@ -9,82 +9,23 @@ configure:877: gcc -o conftest conftest.c 1>&5 configure:903: checking whether the C compiler (gcc ) is a cross-compiler configure:908: checking whether we are using GNU C -configure:917: gcc -E conftest.c configure:936: checking whether gcc accepts -g configure:972: checking for c++ configure:1004: checking whether the C++ compiler (c++ ) works configure:1020: c++ -o conftest conftest.C 1>&5 configure:1046: checking whether the C++ compiler (c++ ) is a cross-compiler configure:1051: checking whether we are using GNU C++ -configure:1060: c++ -E conftest.C configure:1079: checking whether c++ accepts -g configure:1128: gcc -c -g -O2 conftest.c 1>&5 configure:1145: gcc -c -g -O2 conftest.c 1>&5 configure:1162: checking how to run the C preprocessor -configure:1183: gcc -E conftest.c >/dev/null 2>conftest.out configure:1242: checking for ANSI C header files -configure:1255: gcc -E conftest.c >/dev/null 2>conftest.out -configure:1322: gcc -o conftest -g -O2 conftest.c 1>&5 configure:1349: checking for string.h -configure:1359: gcc -E conftest.c >/dev/null 2>conftest.out configure:1396: checking for main in -lXbsd -configure:1411: gcc -o conftest -g -O2 conftest.c -lXbsd 1>&5 -/usr/bin/ld: cannot find -lXbsd -collect2: ld returned 1 exit status -configure: failed program was: -#line 1404 "configure" -#include "confdefs.h" - -int main() { -main() -; return 0; } configure:1432: checking for socket in -lsocket -configure:1451: gcc -o conftest -g -O2 conftest.c -lsocket 1>&5 -/usr/bin/ld: cannot find -lsocket -collect2: ld returned 1 exit status -configure: failed program was: -#line 1440 "configure" -#include "confdefs.h" -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char socket(); - -int main() { -socket() -; return 0; } configure:1472: checking for gethostbyname in -lnsl -configure:1491: gcc -o conftest -g -O2 conftest.c -lnsl 1>&5 configure:1512: checking for dcgettext in -lintl -configure:1531: gcc -o conftest -g -O2 conftest.c -lintl 1>&5 -/usr/bin/ld: cannot find -lintl -collect2: ld returned 1 exit status -configure: failed program was: -#line 1520 "configure" -#include "confdefs.h" -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char dcgettext(); - -int main() { -dcgettext() -; return 0; } configure:1552: checking for getnodebyname in -ldnet_stub -configure:1571: gcc -o conftest -g -O2 conftest.c -ldnet_stub 1>&5 -/usr/bin/ld: cannot find -ldnet_stub -collect2: ld returned 1 exit status -configure: failed program was: -#line 1560 "configure" -#include "confdefs.h" -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char getnodebyname(); - -int main() { -getnodebyname() -; return 0; } configure:1635: checking that c++ can handle -O2 configure:1652: gcc -c -g -O2 conftest.c 1>&5 configure:1774: checking if STL works without any namespace @@ -94,7 +35,6 @@ configure:2146: checking for libtcl8.3 configure:2211: checking for init.tcl configure:2262: checking for tclsh8.3.2 -configure:2262: checking for tclsh8.3 configure:2499: checking for tk.h configure:2548: checking for libtk8.3 configure:2613: checking for tk.tcl @@ -105,76 +45,24 @@ configure:3066: checking for tcl2c++ configure:3284: gcc -E conftest.c >/dev/null 2>conftest.out configure:3318: checking for XOpenDisplay in -lX11 -configure:3337: gcc -o conftest -g -O2 conftest.c -lX11 1>&5 -/usr/bin/ld: cannot find -lX11 -collect2: ld returned 1 exit status -configure: failed program was: -#line 3326 "configure" -#include "confdefs.h" -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char XOpenDisplay(); - -int main() { -XOpenDisplay() -; return 0; } configure:3481: checking for libtcldbg configure:3620: checking dmalloc configure:3867: checking for perl -/usr/bin/perl -e require 5.002 +/usr/bin//perl -e require 5.002 configure:3999: checking for ANSI C header files configure:4106: checking for bcopy -configure:4134: gcc -o conftest -g -O2 conftest.c 1>&5 configure:4106: checking for bzero -configure:4134: gcc -o conftest -g -O2 conftest.c 1>&5 configure:4106: checking for fesetprecision -configure:4134: gcc -o conftest -g -O2 conftest.c 1>&5 -/tmp/ccgBSBXQ.o: In function `main': -/home/ns/ns-allinone-2.26/ns-2.26/configure:4128: undefined reference to `fesetprecision' -collect2: ld returned 1 exit status -configure: failed program was: -#line 4111 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char fesetprecision(); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char fesetprecision(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_fesetprecision) || defined (__stub___fesetprecision) -choke me -#else -fesetprecision(); -#endif - -; return 0; } configure:4106: checking for getrusage -configure:4134: gcc -o conftest -g -O2 conftest.c 1>&5 configure:4106: checking for sbrk -configure:4134: gcc -o conftest -g -O2 conftest.c 1>&5 configure:4106: checking for snprintf -configure:4134: gcc -o conftest -g -O2 conftest.c 1>&5 configure:4162: checking for arpa/inet.h -configure:4172: gcc -E conftest.c >/dev/null 2>conftest.out configure:4162: checking for netinet/in.h -configure:4172: gcc -E conftest.c >/dev/null 2>conftest.out configure:4162: checking for string.h configure:4162: checking for strings.h -configure:4172: gcc -E conftest.c >/dev/null 2>conftest.out configure:4162: checking for time.h -configure:4172: gcc -E conftest.c >/dev/null 2>conftest.out configure:4162: checking for unistd.h -configure:4172: gcc -E conftest.c >/dev/null 2>conftest.out configure:4162: checking for net/ethernet.h -configure:4172: gcc -E conftest.c >/dev/null 2>conftest.out configure:4200: checking return type of random configure:4219: gcc -o conftest -g -O2 conftest.c 1>&5 configure:4243: checking for int8_t @@ -186,11 +74,8 @@ configure:4441: checking for u_char configure:4474: checking for u_int configure:4511: checking for strtoq -configure:4539: gcc -o conftest -g -O2 conftest.c 1>&5 configure:4511: checking for strtoll -configure:4539: gcc -o conftest -g -O2 conftest.c 1>&5 configure:4569: checking size of long -configure:4588: gcc -o conftest -g -O2 conftest.c 1>&5 configure:4661: checking for __int64_t configure:4676: gcc -o conftest -g -O2 conftest.c 1>&5 configure: In function `main': @@ -214,33 +99,6 @@ configure:4836: checking for struct ether_addr configure:4855: gcc -c -g -O2 conftest.c 1>&5 configure:4878: checking for addr2ascii -configure:4906: gcc -o conftest -g -O2 conftest.c 1>&5 -/tmp/ccPInnAz.o: In function `main': -/home/ns/ns-allinone-2.26/ns-2.26/configure:4900: undefined reference to `addr2ascii' -collect2: ld returned 1 exit status -configure: failed program was: -#line 4883 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char addr2ascii(); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char addr2ascii(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_addr2ascii) || defined (__stub___addr2ascii) -choke me -#else -addr2ascii(); -#endif - -; return 0; } configure:4947: gcc -o conftest -g -O2 conftest.c 1>&5 configure:4965: checking for Linux compliant tcphdr configure:4985: gcc -c -g -O2 conftest.c 1>&5 @@ -267,10 +125,7 @@ ; return 0; } configure:5040: checking for socklen_t -configure:5054: gcc -c -g -O2 conftest.c 1>&5 configure:5080: checking for main in -lpcap -configure:5095: gcc -o conftest -g -O2 conftest.c -lpcap 1>&5 configure:5119: checking to make nse configure:5173: checking for dlopen in -ldl -configure:5192: gcc -o conftest -g -O2 conftest.c -ldl 1>&5 configure:5369: checking for a BSD compatible install diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/config.status ns/config.status --- /home/ns/ns-allinone-2.26/ns-2.26/config.status Mon Jun 2 15:21:03 2003 +++ ns/config.status Mon Jun 2 19:22:06 2003 @@ -2,9 +2,9 @@ # Generated automatically by configure. # Run this file to recreate the current configuration. # This directory was configured as follows, -# on host vijelie.dyndns.org: +# on host vijelie: # -# ./configure +# ./configure --with-otcl=/home/ns/ns-allinone-2.26/otcl-1.0a8 --with-tcl=/home/ns/ns-allinone-2.26/tcl8.3.2 --with-tk=/home/ns/ns-allinone-2.26/tk8.3.2 --with-tclcl=/home/ns/ns-allinone-2.26/tclcl-1.0b13 # # Compiler output produced by configure, useful for debugging # configure, is in ./config.log if it exists. @@ -14,8 +14,8 @@ do case "$ac_option" in -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion" - exec ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion ;; + echo "running ${CONFIG_SHELL-/bin/sh} ./configure --with-otcl=/home/ns/ns-allinone-2.26/otcl-1.0a8 --with-tcl=/home/ns/ns-allinone-2.26/tcl8.3.2 --with-tk=/home/ns/ns-allinone-2.26/tk8.3.2 --with-tclcl=/home/ns/ns-allinone-2.26/tclcl-1.0b13 --no-create --no-recursion" + exec ${CONFIG_SHELL-/bin/sh} ./configure --with-otcl=/home/ns/ns-allinone-2.26/otcl-1.0a8 --with-tcl=/home/ns/ns-allinone-2.26/tcl8.3.2 --with-tk=/home/ns/ns-allinone-2.26/tk8.3.2 --with-tclcl=/home/ns/ns-allinone-2.26/tclcl-1.0b13 --no-create --no-recursion ;; -version | --version | --versio | --versi | --vers | --ver | --ve | --v) echo "./config.status generated by autoconf version 2.13" exit 0 ;; @@ -78,24 +78,24 @@ s%@CPP@%gcc -E%g s%@STL_NAMESPACE@%none%g s%@V_TCL_LIBRARY_FILES@%$(TCL_83_LIBRARY_FILES)%g -s%@V_TCLSH@%/home/ns/ns-allinone-2.26/bin/tclsh8.3%g -s%@V_LIBRARY_TCL@%../lib/tcl8.3%g +s%@V_TCLSH@%/home/dnicules/work/ns/tclsh8.3%g +s%@V_LIBRARY_TCL@%/home/ns/ns-allinone-2.26/tcl8.3.2/../lib/tcl8.3%g s%@V_TKDOSNAMES@%$(LIBRARY_TK)/optMenu.tcl $(LIBRARY_TK)/scrlbar.tcl%g -s%@V_LIBRARY_TK@%../lib/tk8.3%g -s%@V_TCL2CPP@%../tclcl-1.0b13/tcl2c++%g +s%@V_LIBRARY_TK@%/home/ns/ns-allinone-2.26/tk8.3.2/library%g +s%@V_TCL2CPP@%/home/ns/ns-allinone-2.26/tclcl-1.0b13/tcl2c++%g s%@V_INCLUDE_X11@%%g s%@V_LIB_X11@%-L/usr/X11R6/lib -lXext -lX11%g -s%@PERL@%/usr/bin/perl%g +s%@PERL@%/usr/bin//perl%g s%@build_nse@%nse%g -s%@V_INCLUDES@%-I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/include -I/home/ns/ns-allinone-2.26/include -I/usr/include/pcap%g -s%@V_LIBS@%-L/home/ns/ns-allinone-2.26/tclcl-1.0b13 -ltclcl -L/home/ns/ns-allinone-2.26/otcl-1.0a8 -lotcl -L/home/ns/ns-allinone-2.26/lib -ltk8.3 -L/home/ns/ns-allinone-2.26/lib -ltcl8.3%g +s%@V_INCLUDES@%-I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/tk8.3.2/generic -I/home/ns/ns-allinone-2.26/tcl8.3.2/generic -I/usr/include/pcap%g +s%@V_LIBS@%-L/home/ns/ns-allinone-2.26/tclcl-1.0b13 -ltclcl -L/home/ns/ns-allinone-2.26/otcl-1.0a8 -lotcl -L/home/ns/ns-allinone-2.26/tk8.3.2/unix -ltk8.3 -L/home/ns/ns-allinone-2.26/tcl8.3.2/unix -ltcl8.3%g s%@V_DEFINES@%-DHAVE_LIBTCLCL -DHAVE_TCLCL_H -DHAVE_LIBOTCL1_0A8 -DHAVE_OTCL_H -DHAVE_LIBTK8_3 -DHAVE_TK_H -DHAVE_LIBTCL8_3 -DHAVE_TCL_H %g s%@V_STATIC@%%g s%@V_TAR_TARGET@%linux-gnu%g s%@V_LIB_TCLCL@%-L/home/ns/ns-allinone-2.26/tclcl-1.0b13 -ltclcl%g s%@V_LIB_OTCL@%-L/home/ns/ns-allinone-2.26/otcl-1.0a8 -lotcl%g -s%@V_LIB_TCL@%-L/home/ns/ns-allinone-2.26/lib -ltcl8.3%g -s%@V_LIB_TK@%-L/home/ns/ns-allinone-2.26/lib -ltk8.3%g +s%@V_LIB_TCL@%-L/home/ns/ns-allinone-2.26/tcl8.3.2/unix -ltcl8.3%g +s%@V_LIB_TK@%-L/home/ns/ns-allinone-2.26/tk8.3.2/unix -ltk8.3%g s%@V_ALL@%%g s%@V_CCOPT@%-O2%g s%@V_TAR_EXTRA@%%g diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/configure.tbf ns/configure.tbf --- /home/ns/ns-allinone-2.26/ns-2.26/configure.tbf Wed Dec 31 19:00:00 1969 +++ ns/configure.tbf Mon Jun 2 19:21:37 2003 @@ -0,0 +1 @@ +./configure --with-otcl=/home/ns/ns-allinone-2.26/otcl-1.0a8 --with-tcl=/home/ns/ns-allinone-2.26/tcl8.3.2 --with-tk=/home/ns/ns-allinone-2.26/tk8.3.2 --with-tclcl=/home/ns/ns-allinone-2.26/tclcl-1.0b13 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/indep-utils/webtrace-conv/dec/Makefile ns/indep-utils/webtrace-conv/dec/Makefile --- /home/ns/ns-allinone-2.26/ns-2.26/indep-utils/webtrace-conv/dec/Makefile Mon Jun 2 15:21:04 2003 +++ ns/indep-utils/webtrace-conv/dec/Makefile Mon Jun 2 19:22:07 2003 @@ -38,10 +38,10 @@ # when including files from ns, we need to take care STL_NAMESPACE CC = c++ -INCLUDE = -I. -I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/include -I/home/ns/ns-allinone-2.26/include -I/usr/include/pcap +INCLUDE = -I. -I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/tk8.3.2/generic -I/home/ns/ns-allinone-2.26/tcl8.3.2/generic -I/usr/include/pcap CFLAGS = -O2 -DSTL_NAMESPACE=none LDFLAGS = -LIBS = -L/home/ns/ns-allinone-2.26/lib -ltcl8.3 -lnsl -lpcap -ldl +LIBS = -L/home/ns/ns-allinone-2.26/tcl8.3.2/unix -ltcl8.3 -lnsl -lpcap -ldl INSTALL = /usr/bin/install -c SRC = proxytrace.cc formsquid.cc formtxt.cc my-endian.cc \ diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/indep-utils/webtrace-conv/epa/Makefile ns/indep-utils/webtrace-conv/epa/Makefile --- /home/ns/ns-allinone-2.26/ns-2.26/indep-utils/webtrace-conv/epa/Makefile Mon Jun 2 15:21:05 2003 +++ ns/indep-utils/webtrace-conv/epa/Makefile Mon Jun 2 19:22:07 2003 @@ -34,10 +34,10 @@ CC = c++ MKDEP = ../../../conf/mkdep -INCLUDE = -I. -I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/include -I/home/ns/ns-allinone-2.26/include -I/usr/include/pcap +INCLUDE = -I. -I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/tk8.3.2/generic -I/home/ns/ns-allinone-2.26/tcl8.3.2/generic -I/usr/include/pcap CFLAGS = -O2 LDFLAGS = -LIBS = -L/home/ns/ns-allinone-2.26/lib -ltcl8.3 -lnsl -lpcap -ldl +LIBS = -L/home/ns/ns-allinone-2.26/tcl8.3.2/unix -ltcl8.3 -lnsl -lpcap -ldl INSTALL = /usr/bin/install -c SRC = tr-stat.cc diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/indep-utils/webtrace-conv/nlanr/Makefile ns/indep-utils/webtrace-conv/nlanr/Makefile --- /home/ns/ns-allinone-2.26/ns-2.26/indep-utils/webtrace-conv/nlanr/Makefile Mon Jun 2 15:21:04 2003 +++ ns/indep-utils/webtrace-conv/nlanr/Makefile Mon Jun 2 19:22:07 2003 @@ -35,10 +35,10 @@ # when including files from ns, we need to take care STL_NAMESPACE CC = c++ -INCLUDE = -I. -I../../.. -I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/include -I/home/ns/ns-allinone-2.26/include -I/usr/include/pcap +INCLUDE = -I. -I../../.. -I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/tk8.3.2/generic -I/home/ns/ns-allinone-2.26/tcl8.3.2/generic -I/usr/include/pcap CFLAGS = -O2 -DSTL_NAMESPACE=none LDFLAGS = -LIBS = -L/home/ns/ns-allinone-2.26/lib -ltcl8.3 -lnsl -lpcap -ldl +LIBS = -L/home/ns/ns-allinone-2.26/tcl8.3.2/unix -ltcl8.3 -lnsl -lpcap -ldl INSTALL = /usr/bin/install -c SRC = tr-stat.cc logparse.cc diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/indep-utils/webtrace-conv/ucb/Makefile ns/indep-utils/webtrace-conv/ucb/Makefile --- /home/ns/ns-allinone-2.26/ns-2.26/indep-utils/webtrace-conv/ucb/Makefile Mon Jun 2 15:21:04 2003 +++ ns/indep-utils/webtrace-conv/ucb/Makefile Mon Jun 2 19:22:07 2003 @@ -28,10 +28,10 @@ CC = c++ MKDEP = ../../../conf/mkdep -INCLUDE = -I. -I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/include -I/home/ns/ns-allinone-2.26/include -I/usr/include/pcap +INCLUDE = -I. -I/home/ns/ns-allinone-2.26/tclcl-1.0b13 -I/home/ns/ns-allinone-2.26/otcl-1.0a8 -I/home/ns/ns-allinone-2.26/tk8.3.2/generic -I/home/ns/ns-allinone-2.26/tcl8.3.2/generic -I/usr/include/pcap CFLAGS = -O2 LDFLAGS = -LIBS = -L/home/ns/ns-allinone-2.26/lib -ltcl8.3 -lnsl -lpcap -ldl +LIBS = -L/home/ns/ns-allinone-2.26/tcl8.3.2/unix -ltcl8.3 -lnsl -lpcap -ldl INSTALL = /usr/bin/install -c SRC = tr-stat.cc logparse.cc utils.cc diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/locdbase.cc ns/locdbase.cc --- /home/ns/ns-allinone-2.26/ns-2.26/locdbase.cc Wed Dec 31 19:00:00 1969 +++ ns/locdbase.cc Mon Jun 2 19:21:37 2003 @@ -0,0 +1,89 @@ +/* locdbase.cc -- a location database for mobile, wireless routing */ + +/* + + Copyright (C) 2000 President and Fellows of Harvard College + + All rights reserved. + + NOTICE: This software is provided "as is", without any warranty, + including any implied warranty for merchantability or fitness for a + particular purpose. Under no circumstances shall Harvard University + or its faculty, staff, students or agents be liable for any use of, + misuse of, or inability to use this software, including incidental + and consequential damages. + + License is hereby given to use, modify, and redistribute this + software, in whole or in part, for any commercial or non-commercial + purpose, provided that the user agrees to the terms of this + copyright notice, including disclaimer of warranty, and provided + that this copyright notice, including disclaimer of warranty, is + preserved in the source code and documentation of anything derived + from this software. Any redistributor of this software or anything + derived from this software assumes responsibility for ensuring that + any parties to whom such a redistribution is made are fully aware of + the terms of this license and disclaimer. + + Author: Brad Karp, Harvard University EECS, July, 1999 + +*/ + +/* This database is a shim, and uses the simulator's global knowledge of + topology and node placement to find the true position of the destination. */ + +#include "locdbase.h" + +#include +#include +#include +#include + +static class LocDbaseClass : public TclClass { +public: + LocDbaseClass() : TclClass("LocDbase") {} + TclObject *create(int, const char * const *) { + return (new LocDbase); + } +} class_locdbase; + +LocDbase::LocDbase() : + table_(NULL), nn_(0) +{ +} + +LocDbase::~LocDbase() +{ + delete[] table_; +} + +int LocDbase::command(int argc, const char * const * argv) +{ + int i; + + if (argc == 3) { + if (strcmp(argv[1], "nnodes") == 0) { + assert(table_ == NULL); + nn_ = atoi(argv[2]); + table_ = new (MobileNode *)[nn_]; + for (i = 0; i < nn_; i++) + table_[i] = NULL; + return(TCL_OK); + } + } + else if (argc == 4) { + if (strcmp(argv[1], "register") == 0) { + int addr = atoi(argv[2]); + MobileNode *mn = (MobileNode *) TclObject::lookup(argv[3]); + assert((addr > 0) && (addr < nn_)); + table_[addr] = mn; + return(TCL_OK); + } + } + return TclObject::command(argc, argv); +} + +inline MobileNode *LocDbase::nlookup(int addr) +{ + assert((addr > 0) && (addr < nn_)); + return table_[addr]; +} diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/locdbase.h ns/locdbase.h --- /home/ns/ns-allinone-2.26/ns-2.26/locdbase.h Wed Dec 31 19:00:00 1969 +++ ns/locdbase.h Mon Jun 2 19:21:37 2003 @@ -0,0 +1,55 @@ +/* locdbase.h -- trivial shim location database for mobile, wireless routing */ + +/* + + Copyright (C) 2000 President and Fellows of Harvard College + + All rights reserved. + + NOTICE: This software is provided "as is", without any warranty, + including any implied warranty for merchantability or fitness for a + particular purpose. Under no circumstances shall Harvard University + or its faculty, staff, students or agents be liable for any use of, + misuse of, or inability to use this software, including incidental + and consequential damages. + + License is hereby given to use, modify, and redistribute this + software, in whole or in part, for any commercial or non-commercial + purpose, provided that the user agrees to the terms of this + copyright notice, including disclaimer of warranty, and provided + that this copyright notice, including disclaimer of warranty, is + preserved in the source code and documentation of anything derived + from this software. Any redistributor of this software or anything + derived from this software assumes responsibility for ensuring that + any parties to whom such a redistribution is made are fully aware of + the terms of this license and disclaimer. + + Author: Brad Karp, Harvard University EECS, July, 1999 + +*/ + +#ifndef ns_locdbase_h +#define ns_locdbase_h + +#include "object.h" +#include "address.h" + +class MobileNode; + +class LocDbase : public NsObject { +public: + LocDbase(); + ~LocDbase(); + MobileNode *nlookup(int); +protected: + void recv(Packet *, Handler *) { }; + int command(int argc, const char * const * argv); + /* commands: + * register int-address MobileNode * + */ +private: + // lookup table + MobileNode **table_; + int nn_; +}; +#endif Binary files /home/ns/ns-allinone-2.26/ns-2.26/tbf/Extract.class and ns/tbf/Extract.class differ diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/Extract.java ns/tbf/Extract.java --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/Extract.java Wed Dec 31 19:00:00 1969 +++ ns/tbf/Extract.java Mon Jun 2 19:21:37 2003 @@ -0,0 +1,34 @@ +import java.io.*; +import java.util.*; +public class Extract { + + public static void main(String args[]) { + try { + BufferedReader br = new BufferedReader(new FileReader(args[0])); + PrintWriter pw = new PrintWriter(new FileOutputStream("validate.inter1"),true); + String in; + int node=0; + while((in = br.readLine()) != null) { + StringTokenizer st = new StringTokenizer(in); + String n = "$node_("+node+")"; + if(st.nextToken().equals(n)) { + st.nextToken(); + st.nextToken(); + String coord = st.nextToken(); + pw.print(coord+" "); + in = br.readLine(); + st = new StringTokenizer(in); + st.nextToken(); + st.nextToken(); + st.nextToken(); + String coord2 = st.nextToken(); + pw.println(coord2); + in = br.readLine(); + node++; + } + } + pw.close(); + } + catch(IOException e) {} + } +} Binary files /home/ns/ns-allinone-2.26/ns-2.26/tbf/Extract1.class and ns/tbf/Extract1.class differ diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/Extract1.java ns/tbf/Extract1.java --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/Extract1.java Wed Dec 31 19:00:00 1969 +++ ns/tbf/Extract1.java Mon Jun 2 19:21:37 2003 @@ -0,0 +1,43 @@ +import java.io.*; +import java.util.*; +public class Extract1 { + + public static void main(String args[]) { + try { + BufferedReader br = new BufferedReader(new FileReader(args[0])); + PrintWriter pw = new PrintWriter(new FileOutputStream("validate.inter1"),true); + PrintWriter pw1 = new PrintWriter(new FileOutputStream("validate.source"),true); + PrintWriter pw2 = new PrintWriter(new FileOutputStream("validate.dest"),true); + String in; + int node=0; + while((in = br.readLine()) != null) { + StringTokenizer st = new StringTokenizer(in); + String n = "$node_("+node+")"; + if(st.nextToken().equals(n)) { + st.nextToken(); + st.nextToken(); + String coord = st.nextToken(); + pw.print(coord+" "); + in = br.readLine(); + st = new StringTokenizer(in); + st.nextToken(); + st.nextToken(); + st.nextToken(); + String coord2 = st.nextToken(); + pw.println(coord2); + in = br.readLine(); + if(node == 1) + pw1.print(coord+" "+coord2); + if(node == 30) + pw2.print(coord+" "+coord2); + + node++; + } + } + pw.close(); + pw1.close(); + pw2.close(); + } + catch(IOException e) {} + } +} diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/awk.sh ns/tbf/awk.sh --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/awk.sh Wed Dec 31 19:00:00 1969 +++ ns/tbf/awk.sh Mon Jun 2 19:21:37 2003 @@ -0,0 +1,39 @@ +java Extract +awk ' +BEGIN{ +printf "#FIG 3.2\n" +printf "Landscape\n" +printf "Center\n" +printf "Metric\n" +printf "A4\n" +printf "100.00\n" +printf "Single\n" +printf "-2\n" +printf "1200 2\n" +} + +{ +printf "1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 %d %d 250 250 1575 1485 1215 1350\n", $0*6, $2*6 ; +} + +END {}' < validate.inter > draw2.fig + +#ns result.tcl tbf validate.trace validate.scen Mac/802_11 > result1 2> /dev/null + +awk ' +BEGIN{ +} + +{ +if($0 != "--------------------------------------------------------") { + if($2 != "=") { + printf "1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 %d %d 250 250 1575 1485 1215 1350\n", $2*6, $3*6 ; + } +} + +} + +END {}' < result1 >> draw2.fig + + +xfig draw2.fig diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/awk.sh.50 ns/tbf/awk.sh.50 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/awk.sh.50 Wed Dec 31 19:00:00 1969 +++ ns/tbf/awk.sh.50 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,65 @@ +java Extract1 validate/validate.scen.50.1500.600 +awk ' +BEGIN{ +printf "#FIG 3.2\n" +printf "Landscape\n" +printf "Center\n" +printf "Metric\n" +printf "A4\n" +printf "100.00\n" +printf "Single\n" +printf "-2\n" +printf "1200 2\n" +} + +{ +printf "1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 %d %d 250 250 1575 1485 1215 1350\n", $0*6, $2*6 ; +} + +END {}' < validate.inter1 > draw3.fig + +../ns validate/validate.tcl.50.1500.600 tbf validate/validate.trace.50.1500.600 validate/validate.scen.50.1500.600 Mac/802_11 > result2 2> /dev/null + +awk ' +BEGIN{ +} + +{ +if($0 != "--------------------------------------------------------") { + if($2 != "=") { + printf "1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 %d %d 250 250 1575 1485 1215 1350\n", $2*6, $3*6 ; + } +} + +} + +END {}' < result2 >> draw3.fig + + +awk ' +BEGIN{ +} + +{ +printf "1 3 0 2 12 7 50 0 -1 0.000 1 0.0000 %d %d 250 250 1575 1485 1215 1350\n", $0*6, $2*6 ; +printf "1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350\n", $0*6, $2*6 ; +} + +END {}' < validate.source >> draw3.fig + + + +awk ' +BEGIN{ +} + +{ +printf "1 3 0 2 9 7 50 0 -1 0.000 1 0.0000 %d %d 250 250 1575 1485 1215 1350\n", $0*6, $2*6 ; +} + +END {}' < validate.dest >> draw3.fig + +echo "1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350\n" >> draw3.fig + + +xfig draw3.fig diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/1test.tcl ns/tbf/backup/1test.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/1test.tcl Wed Dec 31 19:00:00 1969 +++ ns/tbf/backup/1test.tcl Mon Jun 2 19:21:37 2003 @@ -0,0 +1,444 @@ +# +# Copyright (c) 1998 University of Southern California. +# All rights reserved. +# +# Redistribution and use in source and binary forms are permitted +# provided that the above copyright notice and this paragraph are +# duplicated in all such forms and that any documentation, advertising +# materials, and other materials related to such distribution and use +# acknowledge that the software was developed by the University of +# Southern California, Information Sciences Institute. The name of the +# University may not be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# + + +# This test suite is for validating wireless lans +# To run all tests: test-all-wireless-lan +# to run individual test: +# ns test-suite-wireless-lan.tcl dsr +# ns test-suite-wireless-lan.tcl wired-cum-wireless +# ns test-suite-wireless-lan.tcl wireless-mip +# .... +# +# To view a list of available test to run with this script: +# ns test-suite-wireless-lan.tcl +# + +# +# + +Class TestSuite + +Class Test/tbf -superclass TestSuite +# wireless model using TBF + +Class Test/dsr -superclass TestSuite +# wireless model using dynamic source routing + +proc usage {} { + global argv0 + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts "Valid Tests: dsr tbf" + exit 1 +} + + +proc default_options {} { + global opt + set opt(chan) Channel/WirelessChannel + set opt(prop) Propagation/TwoRayGround + set opt(netif) Phy/WirelessPhy + set opt(mac) Mac/802_11 + set opt(ifq) Queue/DropTail/PriQueue + set opt(ll) LL + set opt(ant) Antenna/OmniAntenna + set opt(x) 500 ;# X dimension of the topography + set opt(y) 500 ;# Y dimension of the topography + set opt(radius) 250 ;# radius of communication (XXX -- compute it) + set opt(ifqlen) 50 ;# max packet in ifq + set opt(seed) 0.0 + set opt(tr) temp.rands ;# trace file + set opt(lm) "off" ;# log movement +# set opt(pint) 8.0 +# set opt(pdesync) 0.5 + set opt(bint) 3.0 + set opt(bdesync) 0.5 + set opt(bexp) 13.5 +} + + +# ===================================================================== +# Other default settings + +set AgentTrace ON +set RouterTrace ON +set MacTrace OFF + +LL set mindelay_ 50us +LL set delay_ 25us +LL set bandwidth_ 0 ;# not used +LL set off_prune_ 0 ;# not used +LL set off_CtrMcast_ 0 ;# not used + +Agent/Null set sport_ 0 +Agent/Null set dport_ 0 + +Agent/CBR set sport_ 0 +Agent/CBR set dport_ 0 + +Agent/TCPSink set sport_ 0 +Agent/TCPSink set dport_ 0 + +Agent/TCP set sport_ 0 +Agent/TCP set dport_ 0 +Agent/TCP set packetSize_ 1460 + +Queue/DropTail/PriQueue set Prefer_Routing_Protocols 0 + +# unity gain, omni-directional antennas +# set up the antennas to be centered in the node and 1.5 meters above it +Antenna/OmniAntenna set X_ 0 +Antenna/OmniAntenna set Y_ 0 +Antenna/OmniAntenna set Z_ 1.5 +Antenna/OmniAntenna set Gt_ 1.0 +Antenna/OmniAntenna set Gr_ 1.0 + +# Initialize the SharedMedia interface with parameters to make +# it work like the 914MHz Lucent WaveLAN DSSS radio interface +Phy/WirelessPhy set CPThresh_ 10.0 +Phy/WirelessPhy set CSThresh_ 1.559e-11 +Phy/WirelessPhy set RXThresh_ 3.652e-10 +Phy/WirelessPhy set Rb_ 2*1e6 +Phy/WirelessPhy set Pt_ 0.2818 +Phy/WirelessPhy set freq_ 914e+6 +Phy/WirelessPhy set L_ 1.0 + +#Agent/TBF set verbose_ 1 +Agent/TBF set use_mac_ 1 +#Agent/TBF set use_peri_ 1 +#Agent/TBF set drop_debug_ 1 +#Agent/TBF set peri_proact_ 0 +Agent/TBF set use_implicit_beacon_ 1 +#Agent/TBF set use_planar_ 1 +# ===================================================================== + +TestSuite instproc init {} { + global opt tracefd topo chan prop + global node_ god_ gkeeper + $self instvar ns_ testName_ + add-packet-header TBF + set ns_ [new Simulator] + if {[string compare $testName_ "dsr"] && \ + [string compare $testName_ "tbf"] } { + $ns_ set-address-format hierarchical + AddrParams set domain_num_ 3 + lappend cluster_num 2 1 1 + AddrParams set cluster_num_ $cluster_num + lappend eilastlevel 1 1 4 1 + AddrParams set nodes_num_ $eilastlevel + } + set chan [new $opt(chan)] + set prop [new $opt(prop)] + set topo [new Topography] + set tracefd [open $opt(tr) w] + + #set opt(rp) $testName_ + $topo load_flatgrid $opt(x) $opt(y) + $prop topography $topo + # + # Create God + # + $self create-god $opt(nn) + + # + # log the mobile nodes movements if desired + # + if { $opt(lm) == "on" } { + $self log-movement + } + + puts $tracefd "M 0.0 nn:$opt(nn) x:$opt(x) y:$opt(y) rp:$opt(rp)" + puts $tracefd "M 0.0 sc:$opt(sc) cp:$opt(cp) seed:$opt(seed)" + puts $tracefd "M 0.0 prop:$opt(prop) ant:$opt(ant)" +} + +TestSuite instproc create_gridkeeper { } { + + global gkeeper opt node_ + + set gkeeper [new GridKeeper] + + #initialize the gridkeeper + + $gkeeper dimension $opt(x) $opt(y) + + # + # add mobile node into the gridkeeper, must be added after + # scenario file + # + + + for {set i 0} {$i < $opt(nn) } {incr i} { + $gkeeper addnode $node_($i) + + $node_($i) radius $opt(radius) + } +} + +Test/tbf instproc init {} { + global opt node_ god_ ldb_ ragent_ MacTrace + $self instvar ns_ testName_ + set testName_ tbf + set opt(rp) tbf + set opt(ragent) Agent/TBF + #set opt(cp) "../tcl/mobility/scene/cbr-3-test" + set opt(cp) "tcp-50-test" + set opt(sc) "scen-50-test" ; + set opt(nn) 50 + set opt(stop) 200.0 + #set opt(cp) "../tcl/mobility/scene/cbr-50-20-4-512" + #set opt(sc) "../tcl/mobility/scene/scen-670x670-50-600-20-0" ; + + $self next + puts "Sourcing tbf.tcl : $opt(ragent)" + source ../tcl/mobility/tbf.tcl + $ns_ set-address-format expanded + set ldb_ [new LocDbase] + $ldb_ nnodes $opt(nn) + for {set i 0} {$i < $opt(nn) } {incr i} { + $testName_-create-mobile-node $i +# if { [Agent/TBF set use_mac_] && $MacTrace == "OFF" } { +# set macdropt [cmu-trace Drop "MAC" $node_($i)] +# [$node_($i) set mac_(0)] drop-target $macdropt +# } + $ragent_($i) install-tap [$node_($i) set mac_(0)] + $ldb_ register [$node_($i) address?] $node_($i) + $ragent_($i) ldb $ldb_ + } + puts "Loading connection pattern..." + source $opt(cp) + + puts "Loading scenario file..." + source $opt(sc) + puts "Load complete..." + + # + # Tell all the nodes when the simulation ends + # + for {set i 0} {$i < $opt(nn) } {incr i} { + $ns_ at $opt(stop).000000001 "$node_($i) reset"; + } + + $ns_ at $opt(stop).000000001 "puts \"NS EXITING...\" ;" + #$ns_ halt" + $ns_ at $opt(stop).1 "$self finish" +} + +Test/tbf instproc run {} { + $self instvar ns_ + puts "Starting Simulation..." + $ns_ run +} + + +Test/dsr instproc init {} { + global opt node_ god_ + $self instvar ns_ testName_ + set testName_ dsr + set opt(rp) dsr +# set opt(cp) "../mobility/scene/cbr-50-20-4-512" +# set opt(sc) "../mobility/scene/scen-670x670-50-600-20-0" ; + set opt(nn) 50 + set opt(stop) 10.0 + set opt(cp) "../tcl/mobility/scene/cbr-3-test" + + $self next + + for {set i 0} {$i < $opt(nn) } {incr i} { + $testName_-create-mobile-node $i + } + puts "Loading connection pattern..." + source $opt(cp) + + puts "Loading scenario file..." + source $opt(sc) + puts "Load complete..." + + # + # Tell all the nodes when the simulation ends + # + for {set i 0} {$i < $opt(nn) } {incr i} { + $ns_ at $opt(stop).000000001 "$node_($i) reset"; + } + + $ns_ at $opt(stop).000000001 "puts \"NS EXITING...\" ;" + #$ns_ halt" + $ns_ at $opt(stop).1 "$self finish" +} + + + +Test/dsr instproc run {} { + $self instvar ns_ + puts "Starting Simulation..." + $ns_ run +} + +proc cmu-trace { ttype atype node } { + global ns tracefd + + set ns [Simulator instance] + if { $tracefd == "" } { + return "" + } + set T [new CMUTrace/$ttype $atype] + $T target [$ns set nullAgent_] + $T attach $tracefd + $T set src_ [$node id] + + $T node $node + + return $T +} + +TestSuite instproc finish {} { + $self instvar ns_ + global quiet + + $ns_ flush-trace + #if { !$quiet } { + # puts "running nam..." + # exec nam temp.rands.nam & + #} + puts "finishing.." + exit 0 +} + +TestSuite instproc create-god { nodes } { + global tracefd god_ + $self instvar ns_ + + set god_ [new God] + $god_ num_nodes $nodes +} + +TestSuite instproc log-movement {} { + global ns + $self instvar logtimer_ ns_ + + set ns $ns_ + source ../mobility/timer.tcl + Class LogTimer -superclass Timer + LogTimer instproc timeout {} { + global opt node_; + for {set i 0} {$i < $opt(nn)} {incr i} { + $node_($i) log-movement + } + $self sched 0.1 + } + + set logtimer_ [new LogTimer] + $logtimer_ sched 0.1 +} + +TestSuite instproc create-tcp-traffic {id src dst start} { + $self instvar ns_ + set tcp_($id) [new Agent/TCP] + $tcp_($id) set class_ 2 + set sink_($id) [new Agent/TCPSink] + $ns_ attach-agent $src $tcp_($id) + $ns_ attach-agent $dst $sink_($id) + $ns_ connect $tcp_($id) $sink_($id) + set ftp_($id) [new Application/FTP] + $ftp_($id) attach-agent $tcp_($id) + $ns_ at $start "$ftp_($id) start" + +} + + +TestSuite instproc create-udp-traffic {id src dst start} { + $self instvar ns_ + set udp_($id) [new Agent/UDP] + $ns_ attach-agent $src $udp_($id) + set null_($id) [new Agent/Null] + $ns_ attach-agent $dst $null_($id) + set cbr_($id) [new Application/Traffic/CBR] + $cbr_($id) set packetSize_ 512 + $cbr_($id) set interval_ 4.0 + $cbr_($id) set random_ 1 + $cbr_($id) set maxpkts_ 10000 + $cbr_($id) attach-agent $udp_($id) + $ns_ connect $udp_($id) $null_($id) + $ns_ at $start "$cbr_($id) start" + +} + +proc runtest {arg} { + global quiet opt + set quiet 0 + + set b [llength $arg] + #puts " Hullo there $b " + #set test [lindex $arg 3] + #puts $test + if {$b == 4} { + set test [lindex $arg 0] + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + } elseif {$b == 1} { + puts "Inhere" + set test [lindex $arg 0] + } elseif {$b == 5} { + set test [lindex $arg 0] + if {[string compare $test "tbf"]} { + usage + } else { + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + puts " Args : $b" + puts $test + puts $opt(tr) + puts $opt(sc) + puts $opt(mac) + + Agent/TBF set bint_ [lindex $arg 4] + Agent/TBF set bexp_ [expr 4.5 * [Agent/TBF set bint_]] + puts [lindex $arg 4] + exit 0 + } + } elseif {$b == 9} { + set test [lindex $arg 0] + if {[string compare $test "tbf"]} { + usage + } else { + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + #Agent/TBF set pint_ [lindex $arg 4] + #Agent/TBF set pdesync_ [lindex $arg 5] + Agent/TBF set bint_ [lindex $arg 6] + Agent/TBF set bdesync_ [lindex $arg 7] + Agent/TBF set bexp_ [lindex $arg 8] + } + } else { + usage + } + set t [new Test/$test] + $t run +} + +global argv arg0 +default_options +#source ../tcl/mobility/locdbase.tcl +puts " Before Start " +#set temp [new Agent/TBF] +#$temp start-tbf +runtest $argv diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.cc ns/tbf/backup/tbf.cc --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.cc Wed Dec 31 19:00:00 1969 +++ ns/tbf/backup/tbf.cc Mon Jun 2 19:21:37 2003 @@ -0,0 +1,908 @@ +/* + + Copyright (C) 2003 + Department of Computer Science, Rutgers, The State University of New Jersey + + All rights reserved. + + NOTICE: This software is provided "as is", without any warranty, + including any implied warranty for merchantability or fitness for a + particular purpose. Under no circumstances shall Harvard University + or its faculty, staff, students or agents be liable for any use of, + misuse of, or inability to use this software, including incidental + and consequential damages. + + License is hereby given to use, modify, and redistribute this + software, in whole or in part, for any commercial or non-commercial + purpose, provided that the user agrees to the terms of this + copyright notice, including disclaimer of warranty, and provided + that this copyright notice, including disclaimer of warranty, is + preserved in the source code and documentation of anything derived + from this software. Any redistributor of this software or anything + derived from this software assumes responsibility for ensuring that + any parties to whom such a redistribution is made are fully aware of + the terms of this license and disclaimer. + + Author: Prashant Mekaraj, DCS, Rutgers, 2003. mekaraj@paul.rutgers.edu + + This code is based on Brad Karp's GPSR extensions to NS2. + +*/ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + + +#define BEACON_RESCHED \ + beacon_timer_->resched(bint_ + Random::uniform(2*bdesync_* bint_) - \ + bdesync_ * bint_) + + +inline double distance(double x1, double y1, double z1, double x2, double y2, + double z2) +{ + return sqrt((x1 - x2)*(x1 - x2) + + (y1 - y2)*(y1 - y2) + + (z1 - z2)*(z1 - z2)); +} + +/* +inline double bearing(double x1, double y1, double x2, double y2) +{ + double brg; + + // XXX only deal with 2D for now + // XXX check for (0, 0) args, a domain error + brg = atan2(y2 - y1, x2 - x1); + if (brg < 0) + brg += 2*M_PI; + return brg; +} +*/ + + + +static int NeighbEntCmp(const void *a, const void *b) +{ + nsaddr_t ia = ((const NeighbEnt *) a)->dst; + nsaddr_t ib = (*(const NeighbEnt **) b)->dst; + if (ia > ib) return 1; + if (ib > ia) return -1; + return 0; +} + +NeighbTable::NeighbTable(TBF_Agent *mya) +{ + int i; + + nents = 0; + maxents = 100; + tab = new (NeighbEnt *)[100]; + a = mya; + for (i = 0; i < 100; i++) + tab[i] = new NeighbEnt(a); +} + +NeighbTable::~NeighbTable() +{ + int i; + + // cancel timers + for (i = 0; i < nents; i++) { + tab[i]->dnt.force_cancel(); + //tab[i]->ppt.force_cancel(); + delete tab[i]; + } + delete[] tab; +} + +NeighbTableIter NeighbTable::InitLoop() { + return (NeighbTableIter) 0; +} + +NeighbEnt *NeighbTable::NextLoop(NeighbTableIter *it) { + if (((unsigned int) *it) >= (unsigned int) nents) + return 0; + + return tab[(*it)++]; +} + +NeighbEnt * +NeighbTable::ent_findshortest(MobileNode *mn, double x, double y, double z) +{ + NeighbEnt *ne = 0; + double shortest, t, myx, myy, myz; + int i; + + mn->getLoc(&myx, &myy, &myz); + shortest = distance(myx, myy, myz, x, y, z); + for (i = 0; i < nents; i++) + if ((t = distance(tab[i]->x, tab[i]->y, tab[i]->z, x, y, z)) < shortest) { + shortest = t; + ne = tab[i]; + } + return ne; +} + +NeighbEnt * +NeighbTable::ent_findclosesttotraj(MobileNode *mn, Packet *p,LocDbase *ldb_) { + NeighbEnt *ne = 0; + MobileNode *smn,*dmn; + int i=0; + double shortest, t, to_go, myx, myy, myz,sx,sy,sz,dx,dy,dz; + hdr_ip *iph = hdr_ip::access(p); + + found = 1; + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + + /* DEBUG + printf("Finding Closest to trajectory at Node %d to Node %d. \ + Num Neighbours are %d\n",src,dst,nents); */ + + smn = ldb_->nlookup(src); + smn->getLoc(&sx,&sy,&sz); + dmn = ldb_->nlookup(dst); + dmn->getLoc(&dx,&dy,&dz); + + mn->getLoc(&myx,&myy,&myz); + + shortest = distance(dx,dy,dz,myx, myy, myz); + to_go = shortest; + + for(i = 0; i < nents; i++) { + t = distance(dx,dy,dz,tab[i]->x,tab[i]->y,tab[i]->z); + + //DEBUG + /* printf(" \nLocations are : \n Destination : %f %f %f \n \ + My : %f %f %f \n Neighbour %d : %f %f %f \n",dx,dy,dz,myx \ + ,myy,myz,i, tab[i]->x,tab[i]->y,tab[i]->z); + printf(" \n Distances : Shortest = %f , t = %f\n",shortest,t); + */ + + if( t < shortest ) { + shortest = t; + ne = tab[i]; + } + } + + // Should ideally check if the next hop selected is same as current node. + // But the Neighbour table overhead to to do this is too high. So checking + // shortest distances. + // Update: Could possibly check the myx.... with ne->x.... Needs investigation + if(shortest == to_go ) { + + // DEBUG + //printf(" Unable to make forward progress !!!, dropping packet \n"); + //ne = 0; + // Not actually dropping packet, just sending it back to forwardPacket + // Any route recovery code must be put in here. + + ne = tab[i]; + found = 0; + } + + return ne; +} + +NeighbEnt *NeighbTable::ent_finddst(nsaddr_t dst) +{ + NeighbEnt ne(NULL), **pne; + + ne.dst = dst; + pne = ((NeighbEnt **) bsearch(&ne, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp)); + if (pne) + return *pne; + else + return NULL; +} + +void NeighbTable::ent_delete(const NeighbEnt *ent) +{ + NeighbEnt **pne, *owslot; + int i, j; + + if ((pne = (NeighbEnt **) bsearch(ent, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp))) { + i = pne - tab; + // make sure no timers scheduled for this neighbor + (*pne)->dnt.force_cancel(); + // slide any subsequent table entries backward + if (i < (nents - 1)) + owslot = tab[i]; + for (j = i; j < nents - 1; j++) + tab[j] = tab[j+1]; + if (i < (nents - 1)) + tab[nents-1] = owslot; + nents--; + } +} + +NeighbEnt *NeighbTable::ent_add(const NeighbEnt *ent) +{ + NeighbEnt **pne, *owslot; + int i, j, r, l; + + if ((pne = (NeighbEnt **) bsearch(ent, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp))) { + // already in table; overwrite + // make sure there is no pending timer + i = pne - tab; + (*pne)->dnt.force_cancel(); + /* XXX overwriting table entry shouldn't affect when to probe this + perimeter */ + // (*pne)->ppt.force_cancel(); + // careful not to overwrite timers! + (*pne)->dst = ent->dst; + (*pne)->x = ent->x; + (*pne)->y = ent->y; + (*pne)->z = ent->z; + return *pne; + } + + // may have to grow table + if (nents == maxents) { + NeighbEnt **tmp = tab; + maxents *= 2; + tab = new (NeighbEnt *)[maxents]; + bcopy(tmp, tab, nents*sizeof(NeighbEnt *)); + for (i = nents; i < maxents; i++) + tab[i] = new NeighbEnt(a); + delete[] tmp; + } + + // binary search for insertion point + if (nents == 0) + i = 0; + else { + l = 0; + r = nents - 1; + while ((r - l) > 0) { + if (ent->dst < tab[l + ((r-l) / 2)]->dst) + r = l + ((r - l) / 2) - 1; + else + l += (r - l) / 2 + 1; + } + if (r < l) + i = r+1; + else + // r == l + if (ent->dst < tab[r]->dst) + i = r; + else + i = r+1; + } + + // slide subsequent entries forward + if (i <= (nents - 1)) + owslot = tab[nents]; + j = nents-1; + while (j >= i) + tab[j+1] = tab[j--]; + // slam into table, without overwriting timers + if (i <= (nents - 1)) + tab[i] = owslot; + tab[i]->dst = ent->dst; + tab[i]->x = ent->x; + tab[i]->y = ent->y; + tab[i]->z = ent->z; + // XXX gross way to indicate entry is *new* entry, graph needs planarizing + tab[i]->live = -1; + nents++; + return tab[i]; +} + + +// TBF CLASS Definition +int hdr_tbf::offset_; + +class TBFHeaderClass : public PacketHeaderClass { +public: + TBFHeaderClass() : PacketHeaderClass("PacketHeader/TBF", sizeof(hdr_tbf)) + { + bind_offset(&hdr_tbf::offset_); + } +} class_tbfhdr; + + + + + +static class TBFClass:public TclClass +{ +public: + TBFClass():TclClass ("Agent/TBF") + { + } + TclObject *create (int, const char *const *) + { + return (new TBF_Agent ()); + } +} class_tbf; + +TBF_Agent::TBF_Agent(void) : Agent(PT_TBF), beacon_timer_(0), + use_mac_(1), + verbose_(1), + drop_debug_(0), + use_implicit_beacon_(1), + bint_(TBF_ALIVE_INT), + bdesync_(TBF_ALIVE_DESYNC), + bexp_(TBF_ALIVE_EXP), + ldb_(0), + mn_(0), + ifq_(0) +{ + ntab_ = new NeighbTable(this); + + bind_time("bint_", &bint_); + bind_time("bexp_", &bexp_); + bind_time("bdesync_", &bdesync_); + + + bind("verbose_", &verbose_); + bind("drop_debug_", &drop_debug_); + bind("use_mac_", &use_mac_); + bind("use_implicit_beacon_", &use_implicit_beacon_); + bind("off_tbf_", &off_tbf_); +} + + + +// Tracing not working as of now !!!!!! +void TBF_Agent::trace(char *fmt,...) +{ + va_list ap; + + if (!tracetarget) + return; + + va_start(ap, fmt); + + // This part is not compiling becuase of changes in + // the ns structure maybe. DSR/DSDV also use + // similar code :( + //vsprintf(tracetarget->pt->buffer(), fmt, ap); + // tracetarget->pt->dump(); + va_end(ap); +} + + + +void TBF_Agent::tracepkt(Packet *p, double now, int me, const char *type) +{ + char buf[1024]; + + hdr_tbf *tbfh = hdr_tbf::access(p); + + snprintf (buf, 1024, "V%s %.5f _%d_:", type, now, me); + + if (tbfh->mode_ == TBFH_BEACON) { + snprintf (buf, 1024, "%s (%f,%f,%f)", buf, tbfh->sx_, + tbfh->sy_, tbfh->sz_); + //snprintf (buf, 1024, "%s (%f,%f,%f)", buf, tbfh->hops_[0].x, + //tbfh->hops_[0].y, tbfh->hops_[0].z); + if (verbose_) + trace("%s", buf); + } +} + + +// don't drop or modify the packet--it's not a copy! +void TBF_Agent::tap(const Packet *p) +{ + hdr_cmn *hdrc = HDR_CMN(p); + //hdr_tbf *tbfh = hdr_tbf::access(p); + hdr_tbf *tbfh = (hdr_tbf *) p->access(off_tbf_); + + /* ignore non-IP packets. + ignore beacons; we process those on regular receive. + assumes the MAC tap includes all unicast packets bound for us. + process those here, and avoid calls to beacon_proc() elsewhere. */ + if (use_implicit_beacon_ && + (hdrc->addr_type_ == AF_INET) && + (hdrc->next_hop_ != (nsaddr_t) IP_BROADCAST)) { + + // snoop it as proof of its sender's existence. + // Modes in TBF maybe a slight overhead, but ignoring that. + + switch (tbfh->mode_) { + case TBFH_DATA_GREEDY: + // prev hop position lives in lasthopip, read that + // then have to read it in in tap, snooping packets for beacons + beacon_proc(tbfh->lasthopip, tbfh->sx_, tbfh->sy_, tbfh->sz_); + break; + default: + fprintf(stderr, "Yow! tap got packet of unk type %d!\n", tbfh->mode_); + abort(); + break; + } + } +} + + +// Need to remove this. UGLY hack. +void TBF_Agent::count_drop() { + FILE *fp; + int count; + fp = fopen("count_drop","r"); + fscanf(fp,"%d",&count); + fclose(fp); + count++; + fp = fopen("count_drop","w+"); + fprintf(fp,"%d",count); + fclose(fp); +} + + +// Need to decide what to do here +// First find that DSR does on a MAC callback. +// As of now. TBF - Dropping packet without any retries. + +void TBF_Agent::lost_link(Packet *p) +{ + hdr_cmn *hdrc = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + NeighbEnt *ne; + + // count_drop(); + // DEBUG + // printf(" Dropping Packet by default on Mac Callback\n"); + drop(p, DROP_RTR_MAC_CALLBACK); + + + // Remove dead node from NeighbTable + if (hdrc->addr_type_ == AF_INET) { + ne = ntab_->ent_finddst(hdrc->next_hop_); + if (ne) { + ne->dnt.force_cancel(); + deadneighb_callback(ne); + } + } + + return; + + + + /* Here is the code for retrying based on how GPSR + and DSR(partially) do it. + Pick packets bound for that destination from the + ifq, send them into forwardPacket, so that + retransmissions using a new next hop maybe attempted. + Theoritcal infinite loop here, but very unlikely that + the sequence of node failures needed for that to happen + will occur. + */ + +/* + if (use_mac_ == 0) { + count_drop(); + + // DEBUG + // printf(" Dropping Packet Because of no Mac\n"); + drop(p, DROP_RTR_MAC_CALLBACK); + return; + } + + + + + if (verbose_ && hdrc->addr_type_ == AF_INET) + trace ("VLL %.8f %d->%d lost at %d", + Scheduler::instance().clock(), + ((hdr_ip *) p->access(off_ip_))->src_, + ((hdr_ip *) p->access(off_ip_))->dst_, + mn_->address()); + + if (hdrc->addr_type_ == AF_INET) { + ne = ntab_->ent_finddst(hdrc->next_hop_); + if (verbose_) + trace ("VLP %.5f %d:%d->%d:%d lost at %d [hop %d]", + Scheduler::instance().clock(), + ((hdr_ip *) p->access(off_ip_))->src_, + ((hdr_ip *) p->access(off_ip_))->sport_, + ((hdr_ip *) p->access(off_ip_))->dst_, + ((hdr_ip *) p->access(off_ip_))->dport_, + mn_->address(), hdrc->next_hop_); + + if (ne) { + ne->dnt.force_cancel(); + deadneighb_callback(ne); + } + } + + // grab packets in the ifq bound for the same next hop + Packet *r, *rh, *rt; + rh = rt = p; + rh->next_ = 0; + while ((r = ifq_->filter((nsaddr_t) hdrc->next_hop_))) { + rt->next_ = r; + r->next_ = 0; + rt = r; + } + + // retarget all packets we got to a new next hop + while (rh) { + rt = rh; + rh = rh->next_; + + hdrc = HDR_CMN(rt); + tbfh = hdr_tbf::access(rt); + + if (hdrc->addr_type_ != AF_INET) { + count_drop(); + printf(" Dropping Pakcet : Unknown reason !! Mac Callback \n"); + drop(rt, DROP_RTR_MAC_CALLBACK); + continue; + } + + + if (((hdr_ip *) rt->access(off_ip_))->dport_ == TBF_PORT) { + if (tbfh->mode_ == TBFH_PPROBE) { + if (hdrc->numforwards() == 1) { + // we originated it. the neighbor is gone, according to the MAC + // layer. drop the probe--it was *only* meant for that neighbor. + + drop(rt, DROP_RTR_NEXT_SRCRT_HOP); + continue; + } + // we were forwarding the probe, so instead try to recover by + // forwarding it to a remaining appropriate next hop + // This is what is done in GPSR. Havent been able to figure out + // why beacons are being forwarded. + tbfh->nhops_--; + hdrc->size() = tbfh->size() + IP_HDR_LEN; + } + } + else { + switch (tbfh->mode_) { + + case TBFH_DATA_GREEDY: + //give the packet another chance--exercise greedy's good recovery + forwardPacket(rt); + break; + default: + fprintf(stderr,"yow! non-data packet for non-TBF port bounced by MAC!\n"); + abort(); + break; + } + } + } + + */ // End recovery Code section. +} + +static void mac_callback(Packet * p, void *arg) +{ + ((TBF_Agent *) arg)->lost_link(p); +} + + + + +// construct and return an alive beacon packet + +Packet *TBF_Agent::makeAlive(void) +{ + Packet *p = allocpkt(); + hdr_ip *iph = hdr_ip::access(p); + hdr_cmn *hdrc = hdr_cmn::access(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + // set up header + hdrc->next_hop_ = IP_BROADCAST; + hdrc->addr_type_ = AF_INET; + hdrc->ptype_ = PT_TBF; + iph->daddr() = IP_BROADCAST << Address::instance().nodeshift(); + iph->dport_ = TBF_PORT; + // Set last hop ip to current node for beacon processing + tbfh->lasthopip = mn_->address(); + tbfh->mode_ = TBFH_BEACON; + tbfh->nhops_ = 1; + mn_->getLoc(&tbfh->sx_, &tbfh->sy_, &tbfh->sz_); + // simulated size: hdr_tbf, IP header + hdrc->size() = tbfh->size() + IP_HDR_LEN; + return p; +} + + + +void TBF_Agent::beacon_callback(void) +{ + Scheduler &s = Scheduler::instance(); + + Packet *p = makeAlive(); + + // schedule the transmission of this beacon + if (p) { + assert (!HDR_CMN(p)->xmit_failure_); + s.schedule (target_, p, 0); + } + // schedule the next beacon generation event + BEACON_RESCHED; +} + +void TBF_Agent::deadneighb_callback(NeighbEnt *ne) +{ + Scheduler &s = Scheduler::instance(); + double now = s.clock (); + + if (verbose_) + trace ("VTO %.5f _%d_ %d->%d", now, mn_->address(), mn_->address(), + ne->dst); + // remove the neighbor entry from the table! + ntab_->ent_delete(ne); + +} + + +void TBF_Agent::beacon_proc(int src, double x, double y, double z) +{ + NeighbEnt *ne; + NeighbEnt nne(this); + + nne.dst = src; + nne.x = x; + nne.y = y; + nne.z = z; + ne = ntab_->ent_add(&nne); + if (ne->live == -1) { + ne->live = 1; + } + ne->dnt.resched(bexp_); +} + +void TBF_Agent::beaconIn(Packet *p, hdr_tbf *tbfh) +{ + hdr_ip *hdrip = hdr_ip::access(p); + int src = tbfh->lasthopip; + + // DEBUG + //printf(" Processing beacon\n"); + beacon_proc(src, tbfh->sx_, tbfh->sy_, tbfh->sz_); + // we consumed the packet; free it! + Packet::free(p); +} + +void TBF_Agent::recv(Packet *p,Handler *) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + + Scheduler &s = Scheduler::instance(); + double now = s.clock(); + + int count; + FILE *fp; + // DEBUG + // printf(" Received Packet at Node %d from %d to Node %d at time %f\n",mn_->address(),src,dst,now); + + MobileNode *dmn; + + // DEBUG + /*if(dst == mn_->address()) { + printf(" Packet reached destination \n"); + } + */ + + if((src == mn_->address()) && (cmh->num_forwards() == 0)) { + // Packet I am originating, called by upper layer, need + // to calc trajectory to dest and fill it in. + // Must calculate header size, add dst position + cmh->size() += IP_HDR_LEN + 8; + iph->ttl_ = IP_DEF_TTL; + + // Fill destination position + dmn = ldb_->nlookup(dst); + dmn->getLoc(&iph->dx(),&iph->dy(),&iph->dz()); + if(iph->dport_ != TBF_PORT) + tbfh->mode_ = TBFH_DATA_GREEDY; // Data packet, not control. + + + /* Calculate the trajectory to the destination based on the locdbase + info. As of now using a straight line trajectory + fill in values in tbfh->traj[] */ + + /* Count Number of sent packets, ugly hack, but easier than tramping + through the trace file. Putting the counter into a file, might have + to be protected by a mutex !! */ + + fp = fopen("count_packet","r"); + fscanf(fp,"%d",&count); + fclose(fp); + count++; + fp = fopen("count_packet","w+"); + fprintf(fp,"%d",count); + fclose(fp); + } + else if(( src == mn_->address()) && (tbfh->mode_ == TBFH_DATA_GREEDY)) { + // Received a packet I sent, drop it theres a loop + count_drop(); + drop(p,DROP_RTR_ROUTE_LOOP); + return; + } + else { + // Forwarding packet, check ttl + if(--iph->ttl_ == 0) { + count_drop(); + drop(p,DROP_RTR_TTL); + return; + } + } + + //forward if not sent to the TBF port aka control packet + if( iph->dport_ == TBF_PORT ) { + char *as; + // DEBUG + //printf(" Beacon packet \n"); + switch( tbfh->mode_) { + case TBFH_BEACON: + if(src != mn_->address()) + // if not my own beacon. + beaconIn(p,tbfh); + break; + // Space here for other error conditions. handle if needed. + default: + as = Address::instance().print_nodeaddr(mn_->address()); + fprintf(stderr," Wrong packet type %d @ %s:TBF_PORT !\n",tbfh->mode_,as); + fflush(stderr); + delete[] as; + break; + } + } + else + forwardPacket(p); + +}//recv + + + + +void TBF_Agent::forwardPacket(Packet *p) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + NeighbEnt *ne; + + Scheduler &s = Scheduler::instance(); + double now = s.clock(); + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + ne = ntab_->ent_findclosesttotraj(mn_,p,ldb_); + + // DEBUG + // printf(" Forwarding Packet at Node %d through Node \ + // %d to Node %d from Node %d\n",mn_->address(),ne->dst,dst,src); + + if(found) { + cmh->next_hop_ = ne->dst; + } + else { + // no route to dest along this trajectory. Initiate recovery + // As of now dropping it. + // DEBUG + //printf(" Dropping packet \n"); + count_drop(); + drop(p,DROP_NO_ROUTE_TO_DEST); + return; + } + + + // NS_AF_INET or AF_INET ??? + cmh->addr_type_ = AF_INET; + cmh->xmit_failure_ = mac_callback; + cmh->xmit_failure_data_ = this; + + // point packet down the stack + cmh->direction() = hdr_cmn::DOWN; + + // data packet can serve as implicit beacon. put self in tbfh sx,sy,sz + + double myx,myy,myz; + mn_->getLoc(&myx,&myy,&myz); + + // Set last hop ip to current node for beacon processing + tbfh->lasthopip = mn_->address(); + tbfh->sx_ = myx; + tbfh->sy_ = myy; + tbfh->sz_ = myz; + + //send off packet + target_->recv(p,(Handler *)0); + // Data packets are implicit beacons so reschedule beacon timer. + BEACON_RESCHED; + return; +} + + + + + + +int TBF_Agent::command(int argc, const char *const *argv) +{ + + if (argc == 2) { + if (strcmp(argv[1], "start-tbf") == 0) { + init(); + return TCL_OK; + } + } + else if (argc == 3) { + TclObject *obj; + + if (strcasecmp(argv[1], "tracetarget") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], argv[2]); + return TCL_ERROR; + } + tracetarget = (Trace *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "install-tap") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + Mac *m = (Mac *) obj; + m->installTap(this); + return TCL_OK; + } + if (strcmp(argv[1], "node") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + printf( "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + mn_ = (MobileNode *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "ldb") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + ldb_ = (LocDbase *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "add-ifq") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + ifq_ = (PriQueue *) obj; + return TCL_OK; + } + } + return (Agent::command (argc, argv)); +} + +void TBF_Agent::init(void) +{ + beacon_timer_ = new TBF_BeaconTimer(this); + beacon_timer_->sched(Random::uniform(bint_)); +} diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.cc.1 ns/tbf/backup/tbf.cc.1 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.cc.1 Wed Dec 31 19:00:00 1969 +++ ns/tbf/backup/tbf.cc.1 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,122 @@ +#include +#include +#include + + + + + + +void TBFAgent::recv(Packet *p,Handler *) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = HDR_TBF(p); + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + + if((src == mn_->address()) && (cmh->num_forwards() == 0)) { + // Packet I am originating, called by upper layer, need + // to calc trajectory to dest and fill it in. + // Must calculate header size, add dst position + cmh->size() += IP_HDR_LEN + 8; + iph->ttl_ = IP_DEF_TTL; + + // Fill destination position + dmn = ldb_->nlookup(dst); + dmn->getLoc(&iph->dx(),&iph->dy(),&iph->dz()); + if(iph->dport_ != TBF_PORT) + tbfh->mode_ = TBF_DATA; // Data packet, not control. + // calculate the trajectory to the destination based on the locdbase + // info. As of now using a straight line trajectory + // fill in values in tbfh->traj[] + } + else if(( src == mn_->address()) && (tbfh->mode_ == TBF_DATA)) { + // Received a packet I sent, drop it theres a loop + drop(p,DROP_RTR_ROUTE_LOOP); + return; + } + else { + // Forwarding packet, check ttl + if(--iph->ttl_ == 0) { + drop(p,DROP_RTR_TTL); + return; + } + } + + if( iph->dport_ == TBF_PORT ) { + char *as; + switch( tbfh->mode_) { + case TBFH_BEACON: + if(src != mn_->address()) + // if not my own beacon. + beaconIn(p,tbfh); + break; + // Space here for other error conditions. handle later. + default: + as = Address::instance().print_nodeaddr(addr_); + fprintf(stderr," Wrong packet type %d @ %s:TBF_PORT !\n",tbh->mode_,as); + fflush(stderr); + delete[] as; + break; + } + } + else + forwardPacket(p); +}//recv + + +} + +void TBFAgent::forwardPacket(Packet *p) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = HDR_TBF(p); + + NeighbEnt *ne; + + Scheduler &s = Scheduler::instance(); + double now = s.clock(); + + ne = ntab_->ent_findclosesttotraj(tbfh->traj,tbfh->progress); + + if(ne) { + cmh->next_hop_ = ne->dst; + } + else { + // no route to dest along this trajectory. Initiate recovery + // As of now dropping it. + drop(p,NO_ROUTE_TO_DEST); + return; + } + + send: + // Hook to branch to from recovery procedures. + + cmh->addr_type_ = NS_AF_INET; + cmh->xmit_failure = mac_callback; + cmh->xmit_faliure_data = this; + + // point packet down the stack + cmh->direction_ = -1; + + // data packet cans erve as implicit beacon. put self in hops_[0] + + double myx,myy,myz; + mn_->getLoc(&myx,&myy,&myz); + + tbfh->hops_[0].ip = mn_address(); + tbfh->hops_[0].x = myx; + tbfh->hops_[0].y = myy; + tbfh->hops_[0].z = myz; + + //send off packet + target_->recv(p,(Handler *)0); + // Data packets are implicit beacons so reschedule beacon timer. + BEACON_RESCHED; + return; +} + + diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.cc.backup ns/tbf/backup/tbf.cc.backup --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.cc.backup Wed Dec 31 19:00:00 1969 +++ ns/tbf/backup/tbf.cc.backup Mon Jun 2 19:21:37 2003 @@ -0,0 +1,817 @@ +/* + + Copyright (C) 2000 + + President and Fellows of Harvard College, + Department of Computer Science, Rutgers, The State University of New Jersey + + All rights reserved. + + NOTICE: This software is provided "as is", without any warranty, + including any implied warranty for merchantability or fitness for a + particular purpose. Under no circumstances shall Harvard University + or its faculty, staff, students or agents be liable for any use of, + misuse of, or inability to use this software, including incidental + and consequential damages. + + License is hereby given to use, modify, and redistribute this + software, in whole or in part, for any commercial or non-commercial + purpose, provided that the user agrees to the terms of this + copyright notice, including disclaimer of warranty, and provided + that this copyright notice, including disclaimer of warranty, is + preserved in the source code and documentation of anything derived + from this software. Any redistributor of this software or anything + derived from this software assumes responsibility for ensuring that + any parties to whom such a redistribution is made are fully aware of + the terms of this license and disclaimer. + + Author: Prashant Mekaraj, DCS, Rutgers, 2003. mekaraj@paul.rutgers.edu + + This code is heavily based on Brad Karp's GPSR extensions to NS2. + +*/ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + + +#define BEACON_RESCHED \ + beacon_timer_->resched(bint_ + Random::uniform(2*bdesync_* bint_) - \ + bdesync_ * bint_) + + +inline double distance(double x1, double y1, double z1, double x2, double y2, + double z2) +{ + return sqrt((x1 - x2)*(x1 - x2) + + (y1 - y2)*(y1 - y2) + + (z1 - z2)*(z1 - z2)); +} + +inline double bearing(double x1, double y1, double x2, double y2) +{ + double brg; + + // XXX only deal with 2D for now + // XXX check for (0, 0) args, a domain error + brg = atan2(y2 - y1, x2 - x1); + if (brg < 0) + brg += 2*M_PI; + return brg; +} + +static int NeighbEntCmp(const void *a, const void *b) +{ + nsaddr_t ia = ((const NeighbEnt *) a)->dst; + nsaddr_t ib = (*(const NeighbEnt **) b)->dst; + if (ia > ib) return 1; + if (ib > ia) return -1; + return 0; +} + +NeighbTable::NeighbTable(TBF_Agent *mya) +{ + int i; + + nents = 0; + maxents = 100; + tab = new (NeighbEnt *)[100]; + a = mya; + for (i = 0; i < 100; i++) + tab[i] = new NeighbEnt(a); +} + +NeighbTable::~NeighbTable() +{ + int i; + + // cancel timers + for (i = 0; i < nents; i++) { + tab[i]->dnt.force_cancel(); + //tab[i]->ppt.force_cancel(); + delete tab[i]; + } + delete[] tab; +} + +NeighbTableIter NeighbTable::InitLoop() { + return (NeighbTableIter) 0; +} + +NeighbEnt *NeighbTable::NextLoop(NeighbTableIter *it) { + if (((unsigned int) *it) >= (unsigned int) nents) + return 0; + + return tab[(*it)++]; +} + +NeighbEnt * +NeighbTable::ent_findshortest(MobileNode *mn, double x, double y, double z) +{ + NeighbEnt *ne = 0; + double shortest, t, myx, myy, myz; + int i; + + mn->getLoc(&myx, &myy, &myz); + shortest = distance(myx, myy, myz, x, y, z); + for (i = 0; i < nents; i++) + if ((t = distance(tab[i]->x, tab[i]->y, tab[i]->z, x, y, z)) < shortest) { + shortest = t; + ne = tab[i]; + } + return ne; +} + +NeighbEnt * +NeighbTable::ent_findclosesttotraj(MobileNode *mn, Packet *p) { + NeighbEnt *ne = 0; + double shortest, t, myx, myy, myz; + hdr_ip *iph = hdr_ip::access(p); + mn->getLoc(&myx,&myy,&myz); + return ne; +} + +NeighbEnt *NeighbTable::ent_finddst(nsaddr_t dst) +{ + NeighbEnt ne(NULL), **pne; + + ne.dst = dst; + pne = ((NeighbEnt **) bsearch(&ne, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp)); + if (pne) + return *pne; + else + return NULL; +} + +void NeighbTable::ent_delete(const NeighbEnt *ent) +{ + NeighbEnt **pne, *owslot; + int i, j; + + if ((pne = (NeighbEnt **) bsearch(ent, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp))) { + i = pne - tab; + // make sure no timers scheduled for this neighbor + (*pne)->dnt.force_cancel(); + //(*pne)->ppt.force_cancel(); + // slide any subsequent table entries backward + if (i < (nents - 1)) + owslot = tab[i]; + for (j = i; j < nents - 1; j++) + tab[j] = tab[j+1]; + if (i < (nents - 1)) + tab[nents-1] = owslot; + nents--; + } +} + +NeighbEnt *NeighbTable::ent_add(const NeighbEnt *ent) +{ + NeighbEnt **pne, *owslot; + int i, j, r, l; + + if ((pne = (NeighbEnt **) bsearch(ent, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp))) { + // already in table; overwrite + // make sure there is no pending timer + i = pne - tab; + (*pne)->dnt.force_cancel(); + /* XXX overwriting table entry shouldn't affect when to probe this + perimeter */ + // (*pne)->ppt.force_cancel(); + // careful not to overwrite timers! + (*pne)->dst = ent->dst; + (*pne)->x = ent->x; + (*pne)->y = ent->y; + (*pne)->z = ent->z; + return *pne; + } + + // may have to grow table + if (nents == maxents) { + NeighbEnt **tmp = tab; + maxents *= 2; + tab = new (NeighbEnt *)[maxents]; + bcopy(tmp, tab, nents*sizeof(NeighbEnt *)); + for (i = nents; i < maxents; i++) + tab[i] = new NeighbEnt(a); + delete[] tmp; + } + + // binary search for insertion point + if (nents == 0) + i = 0; + else { + l = 0; + r = nents - 1; + while ((r - l) > 0) { + if (ent->dst < tab[l + ((r-l) / 2)]->dst) + r = l + ((r - l) / 2) - 1; + else + l += (r - l) / 2 + 1; + } + if (r < l) + i = r+1; + else + // r == l + if (ent->dst < tab[r]->dst) + i = r; + else + i = r+1; + } + + // slide subsequent entries forward + if (i <= (nents - 1)) + owslot = tab[nents]; + j = nents-1; + while (j >= i) + tab[j+1] = tab[j--]; + // slam into table, without overwriting timers + if (i <= (nents - 1)) + tab[i] = owslot; + tab[i]->dst = ent->dst; + tab[i]->x = ent->x; + tab[i]->y = ent->y; + tab[i]->z = ent->z; + // invalidate the perimeter that may be cached by this neighbor entry + tab[i]->perilen = 0; + // XXX gross way to indicate entry is *new* entry, graph needs planarizing + tab[i]->live = -1; + nents++; + return tab[i]; +} + + +// TBF CLASS Definition +int hdr_tbf::offset_; + +class TBFHeaderClass : public PacketHeaderClass { +public: + TBFHeaderClass() : PacketHeaderClass("PacketHeader/TBF", sizeof(hdr_tbf)) + { + bind_offset(&hdr_tbf::offset_); + } +} class_tbfhdr; + +static class TBFClass:public TclClass +{ +public: + TBFClass():TclClass ("Agent/TBF") + { + } + TclObject *create (int, const char *const *) + { + return (new TBF_Agent ()); + } +} class_tbf; + +TBF_Agent::TBF_Agent(void) : Agent(PT_TBF), beacon_timer_(0), + use_mac_(0), + verbose_(1), drop_debug_(0), + use_implicit_beacon_(0), + bint_(TBF_ALIVE_INT), bdesync_(TBF_ALIVE_DESYNC), + bexp_(TBF_ALIVE_EXP), + //lpexp_(TBF_PPROBE_EXP), ldb_(0), mn_(0), ifq_(0) + ldb_(0), mn_(0), ifq_(0) +{ + ntab_ = new NeighbTable(this); + + bind_time("bint_", &bint_); + bind_time("bexp_", &bexp_); + bind_time("bdesync_", &bdesync_); + + + //bind_time("lpexp_", &lpexp_); + bind("verbose_", &verbose_); + bind("drop_debug_", &drop_debug_); + + bind("use_mac_", &use_mac_); + + bind("use_implicit_beacon_", &use_implicit_beacon_); + + // bind("use_loop_detect_", &use_loop_detect_); + + bind("off_tbf_", &off_tbf_); +} + + + +// Tracing not working as of now !!!!!! +void TBF_Agent::trace(char *fmt,...) +{ + va_list ap; + + if (!tracetarget) + return; + + va_start(ap, fmt); + //vsprintf(tracetarget->buffer(), fmt, ap); + //tracetarget->dump(); + va_end(ap); +} + + + +void TBF_Agent::tracepkt(Packet *p, double now, int me, const char *type) +{ + char buf[1024]; + + hdr_tbf *tbfh = hdr_tbf::access(p); + + snprintf (buf, 1024, "V%s %.5f _%d_:", type, now, me); + + if (tbfh->mode_ == TBFH_BEACON) { + snprintf (buf, 1024, "%s (%f,%f,%f)", buf, tbfh->sx_, + tbfh->sy_, tbfh->sz_); + //snprintf (buf, 1024, "%s (%f,%f,%f)", buf, tbfh->hops_[0].x, + //tbfh->hops_[0].y, tbfh->hops_[0].z); + if (verbose_) + trace("%s", buf); + } +} + + +// don't drop or modify the packet--it's not a copy! +void TBF_Agent::tap(const Packet *p) +{ + hdr_cmn *hdrc = HDR_CMN(p); + //hdr_tbf *tbfh = hdr_tbf::access(p); + hdr_tbf *tbfh = (hdr_tbf *) p->access(off_tbf_); + + /* ignore non-IP packets. + ignore beacons; we process those on regular receive. + assumes the MAC tap includes all unicast packets bound for us. + process those here, and avoid calls to beacon_proc() elsewhere. */ + if (use_implicit_beacon_ && + (hdrc->addr_type_ == AF_INET) && + (hdrc->next_hop_ != (nsaddr_t) IP_BROADCAST)) { + // snoop it as proof of its sender's existence. + switch (tbfh->mode_) { + //*************************** CHECK MODE + case TBFH_DATA_GREEDY: + // prev hop position lives in hops_[0] + // ******************************************************** + // NEEED TO ADD THE PREVIOUS HOPS LOCATION IN THE PACKET HEADER + // *********************************************************** + // and then have to read it in in tap, snooping packets for beacons + + beacon_proc(tbfh->lasthopip, tbfh->sx_, tbfh->sy_, + tbfh->sz_); + //beacon_proc(tbfh->hops_[0].ip, tbfh->hops_[0].x, tbfh->hops_[0].y, + //tbfh->hops_[0].z); + break; + default: + fprintf(stderr, "Yow! tap got packet of unk type %d!\n", tbfh->mode_); + abort(); + break; + } + } +} + +void TBF_Agent::lost_link(Packet *p) +{ + hdr_cmn *hdrc = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + NeighbEnt *ne; + + if (use_mac_ == 0) { + drop(p, DROP_RTR_MAC_CALLBACK); + return; + } + + //DEBUG + //printf("(%d)..Lost link..\n",myaddr_); + + /* + if (verbose_ && hdrc->addr_type_ == AF_INET) + trace ("VLL %.8f %d->%d lost at %d", + Scheduler::instance().clock(), + ((hdr_ip *) p->access(off_ip_))->src_, + ((hdr_ip *) p->access(off_ip_))->dst_, + mn_->address()); +*/ + if (hdrc->addr_type_ == AF_INET) { + ne = ntab_->ent_finddst(hdrc->next_hop_); + /* if (verbose_) + trace ("VLP %.5f %d:%d->%d:%d lost at %d [hop %d]", + Scheduler::instance().clock(), + ((hdr_ip *) p->access(off_ip_))->src_, + ((hdr_ip *) p->access(off_ip_))->sport_, + ((hdr_ip *) p->access(off_ip_))->dst_, + ((hdr_ip *) p->access(off_ip_))->dport_, + mn_->address(), hdrc->next_hop_); + */ + if (ne) { + ne->dnt.force_cancel(); + deadneighb_callback(ne); + } + } + + // grab packets in the ifq bound for the same next hop + Packet *r, *rh, *rt; + rh = rt = p; + rh->next_ = 0; + while ((r = ifq_->filter((nsaddr_t) hdrc->next_hop_))) { + rt->next_ = r; + r->next_ = 0; + rt = r; + } + + // retarget all packets we got to a new next hop + while (rh) { + rt = rh; + rh = rh->next_; + + hdrc = HDR_CMN(rt); + tbfh = hdr_tbf::access(rt); + + if (hdrc->addr_type_ != AF_INET) { + drop(rt, DROP_RTR_MAC_CALLBACK); + continue; + } + + +//********************** Check this part + // for GPSR perimeter probes, chop off our own perimeter entry before + // passing the probe back into the agent for reforwarding +/* if (((hdr_ip *) rt->access(off_ip_))->dport_ == GPSR_PORT) { + if (gpsrh->mode_ == GPSRH_PPROBE) { + if (gpsrh->nhops_ == 1) { + // we originated it. the neighbor is gone, according to the MAC + // layer. drop the probe--it was *only* meant for that neighbor. + drop(rt, DROP_RTR_NEXT_SRCRT_HOP); + continue; + } + // we were forwarding the probe, so instead try to recover by + // forwarding it to a remaining appropriate next hop + gpsrh->nhops_--; + hdrc->size() = gpsrh->size() + IP_HDR_LEN; + periIn(rt, gpsrh, GPSR_PPROBE_RTX); + } + }*/ + //else { + switch (tbfh->mode_) { + //****************** Check the mode + + case TBFH_DATA_GREEDY: + // give the packet another chance--exercise greedy's good recovery + forwardPacket(rt); + break; + default: + fprintf(stderr, "yow! non-data packet for non-GPSR port bounced by MAC!\n"); + abort(); + break; + } + //} + } +} + +static void mac_callback(Packet * p, void *arg) +{ + ((TBF_Agent *) arg)->lost_link(p); +} + +// construct and return an alive beacon packet +Packet *TBF_Agent::makeAlive(void) +{ + Packet *p = allocpkt(); + hdr_ip *iph = hdr_ip::access(p); + //(hdr_ip *) p->access (off_ip_); + hdr_cmn *hdrc = hdr_cmn::access(p); + //HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + // set up header + hdrc->next_hop_ = IP_BROADCAST; + hdrc->addr_type_ = AF_INET; + hdrc->ptype_ = PT_TBF; + iph->daddr() = IP_BROADCAST << Address::instance().nodeshift(); + iph->dport() = TBF_PORT; + // Set last hop ip to current node for beacon processing + tbfh->lasthopip = mn_->address(); + tbfh->mode_ = TBFH_BEACON; + tbfh->nhops_ = 1; + mn_->getLoc(&tbfh->sx_, &tbfh->sy_, &tbfh->sz_); + // simulated size: hdr_tbf, IP header + hdrc->size() = tbfh->size() + IP_HDR_LEN; + return p; +} + + + +void TBF_Agent::beacon_callback(void) +{ + Scheduler &s = Scheduler::instance(); + + Packet *p = makeAlive(); + + // schedule the transmission of this beacon + if (p) { + assert (!HDR_CMN(p)->xmit_failure_); + s.schedule (target_, p, 0); + } + // schedule the next beacon generation event + BEACON_RESCHED; +} + +void TBF_Agent::deadneighb_callback(NeighbEnt *ne) +{ + Scheduler &s = Scheduler::instance(); + double now = s.clock (); + + if (verbose_) + trace ("VTO %.5f _%d_ %d->%d", now, mn_->address(), mn_->address(), + ne->dst); + // remove the neighbor entry from the table! + ntab_->ent_delete(ne); + +} + + +void TBF_Agent::beacon_proc(int src, double x, double y, double z) +{ + NeighbEnt *ne; + NeighbEnt nne(this); + + nne.dst = src; + nne.x = x; + nne.y = y; + nne.z = z; + ne = ntab_->ent_add(&nne); + //****************** Check + if (ne->live == -1) { + // entry wasn't in table before. need to planarize, if option dictates. + ne->live = 1; + /*if (use_planar_) { + double myx, myy, myz; + + mn_->getLoc(&myx, &myy, &myz); + ntab_->planarize(PLANARIZE_RNG, myx, myy, myz); + }*/ + } + ne->dnt.resched(bexp_); + //********************* Check + /*if (use_peri_ && (ne->ppt.status() == TIMER_IDLE)) + // no perimeter probe is pending; launch one + if (peri_proact_) + ne->ppt.sched(pint_ + + Random::uniform(2 * pdesync_ * pint_) - pdesync_ * pint_); + */ +} + +void TBF_Agent::beaconIn(Packet *p, hdr_tbf *tbfh) +{ + hdr_ip *hdrip = hdr_ip::access(p); + //hdr_tbf *tbfh = hdr_tbf::access(p); + + //(hdr_ip *) p->access(off_ip_); + //int src = Address::instance().get_nodeaddr(hdrip->saddr()); + int src = tbfh->lasthopip; + // Changing the beacon_proc method to work on the sx,sy,sz of the tbfh + beacon_proc(src, tbfh->sx_, tbfh->sy_, tbfh->sz_); + //beacon_proc(src, tbfh->hops_[0].x, tbfh->hops_[0].y, tbfh->hops_[0].z); + // we consumed the packet; free it! + Packet::free(p); +} + + +/* GPSR Code .. might be useful +inline int cross_segment(double x1, double y1, double x2, double y2, + double x3, double y3, double x4, double y4, + double *xi = 0, double *yi = 0) +{ + double dy[2], dx[2], m[2], b[2]; + double xint, yint; + + dy[0] = y2 - y1; + dx[0] = x2 - x1; + dy[1] = y4 - y3; + dx[1] = x4 - x3; + m[0] = dy[0] / dx[0]; + m[1] = dy[1] / dx[1]; + b[0] = y1 - m[0] * x1; + b[1] = y3 - m[1] * x3; + if (m[0] != m[1]) { + // slopes not equal, compute intercept + xint = (b[0] - b[1]) / (m[1] - m[0]); + yint = m[1] * xint + b[1]; + // is intercept in both line segments? + if ((xint <= max(x1, x2)) && (xint >= min(x1, x2)) && + (yint <= max(y1, y2)) && (yint >= min(y1, y2)) && + (xint <= max(x3, x4)) && (xint >= min(x3, x4)) && + (yint <= max(y3, y4)) && (yint >= min(y3, y4))) { + if (xi && yi) { + *xi = xint; + *yi = yint; + } + return 1; + } + } + return 0; +} + +*/ + + + + + +void TBF_Agent::recv(Packet *p,Handler *) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + + MobileNode *dmn; + if((src == mn_->address()) && (cmh->num_forwards() == 0)) { + // Packet I am originating, called by upper layer, need + // to calc trajectory to dest and fill it in. + // Must calculate header size, add dst position + cmh->size() += IP_HDR_LEN + 8; + iph->ttl_ = IP_DEF_TTL; + + // Fill destination position + dmn = ldb_->nlookup(dst); + dmn->getLoc(&iph->dx(),&iph->dy(),&iph->dz()); + if(iph->dport_ != TBF_PORT) + tbfh->mode_ = TBFH_DATA_GREEDY; // Data packet, not control. + // calculate the trajectory to the destination based on the locdbase + // info. As of now using a straight line trajectory + // fill in values in tbfh->traj[] + } + else if(( src == mn_->address()) && (tbfh->mode_ == TBFH_DATA_GREEDY)) { + // Received a packet I sent, drop it theres a loop + drop(p,DROP_RTR_ROUTE_LOOP); + return; + } + else { + // Forwarding packet, check ttl + if(--iph->ttl_ == 0) { + drop(p,DROP_RTR_TTL); + return; + } + } + + //forward if not sent to the TBF port aka control packet + if( iph->dport_ == TBF_PORT ) { + char *as; + switch( tbfh->mode_) { + case TBFH_BEACON: + if(src != mn_->address()) + // if not my own beacon. + beaconIn(p,tbfh); + break; + // Space here for other error conditions. handle later. + default: + as = Address::instance().print_nodeaddr(mn_->address()); + fprintf(stderr," Wrong packet type %d @ %s:TBF_PORT !\n",tbfh->mode_,as); + fflush(stderr); + delete[] as; + break; + } + } + else + forwardPacket(p); + +}//recv + + + + +void TBF_Agent::forwardPacket(Packet *p) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + NeighbEnt *ne; + + Scheduler &s = Scheduler::instance(); + double now = s.clock(); + + ne = ntab_->ent_findclosesttotraj(mn_,p); + + if(ne) { + cmh->next_hop_ = ne->dst; + } + else { + // no route to dest along this trajectory. Initiate recovery + // As of now dropping it. + drop(p,DROP_NO_ROUTE_TO_DEST); + return; + } + + send: + // Hook to branch to from recovery procedures. + + cmh->addr_type_ = NS_AF_INET; + cmh->xmit_failure_ = mac_callback; + cmh->xmit_failure_data_ = this; + + // point packet down the stack + cmh->direction() = hdr_cmn::DOWN; + + // data packet can serve as implicit beacon. put self in tbfh sx,sy,sz + + double myx,myy,myz; + mn_->getLoc(&myx,&myy,&myz); + + // Set last hop ip to current node for beacon processing + tbfh->lasthopip = mn_->address(); + //tbfh->hops_[0].ip = mn_address(); + tbfh->sx_ = myx; + tbfh->sy_ = myy; + tbfh->sz_ = myz; + + //send off packet + target_->recv(p,(Handler *)0); + // Data packets are implicit beacons so reschedule beacon timer. + BEACON_RESCHED; + return; +} + + + + + + +int TBF_Agent::command(int argc, const char *const *argv) +{ + if (argc == 2) { + if (strcmp(argv[1], "start-tbf") == 0) { + init(); + return TCL_OK; + } + } + else if (argc == 3) { + TclObject *obj; + + if (strcasecmp(argv[1], "tracetarget") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], argv[2]); + return TCL_ERROR; + } + tracetarget = (Trace *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "install-tap") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + Mac *m = (Mac *) obj; + m->installTap(this); + return TCL_OK; + } + if (strcmp(argv[1], "node") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + mn_ = (MobileNode *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "ldb") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + ldb_ = (LocDbase *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "add-ifq") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + ifq_ = (PriQueue *) obj; + return TCL_OK; + } + } + return (Agent::command (argc, argv)); +} + +void TBF_Agent::init(void) +{ + beacon_timer_ = new TBF_BeaconTimer(this); + beacon_timer_->sched(Random::uniform(bint_)); +} diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.cc.bakup ns/tbf/backup/tbf.cc.bakup --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.cc.bakup Wed Dec 31 19:00:00 1969 +++ ns/tbf/backup/tbf.cc.bakup Mon Jun 2 19:21:37 2003 @@ -0,0 +1,920 @@ +/* + + Copyright (C) 2000 + + President and Fellows of Harvard College, + Department of Computer Science, Rutgers, The State University of New Jersey + + All rights reserved. + + NOTICE: This software is provided "as is", without any warranty, + including any implied warranty for merchantability or fitness for a + particular purpose. Under no circumstances shall Harvard University + or its faculty, staff, students or agents be liable for any use of, + misuse of, or inability to use this software, including incidental + and consequential damages. + + License is hereby given to use, modify, and redistribute this + software, in whole or in part, for any commercial or non-commercial + purpose, provided that the user agrees to the terms of this + copyright notice, including disclaimer of warranty, and provided + that this copyright notice, including disclaimer of warranty, is + preserved in the source code and documentation of anything derived + from this software. Any redistributor of this software or anything + derived from this software assumes responsibility for ensuring that + any parties to whom such a redistribution is made are fully aware of + the terms of this license and disclaimer. + + Author: Prashant Mekaraj, DCS, Rutgers, 2003. mekaraj@paul.rutgers.edu + + This code is heavily based on Brad Karp's GPSR extensions to NS2. + +*/ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + + +#define BEACON_RESCHED \ + beacon_timer_->resched(bint_ + Random::uniform(2*bdesync_* bint_) - \ + bdesync_ * bint_) + + +inline double distance(double x1, double y1, double z1, double x2, double y2, + double z2) +{ + return sqrt((x1 - x2)*(x1 - x2) + + (y1 - y2)*(y1 - y2) + + (z1 - z2)*(z1 - z2)); +} + +inline double bearing(double x1, double y1, double x2, double y2) +{ + double brg; + + // XXX only deal with 2D for now + // XXX check for (0, 0) args, a domain error + brg = atan2(y2 - y1, x2 - x1); + if (brg < 0) + brg += 2*M_PI; + return brg; +} + +static int NeighbEntCmp(const void *a, const void *b) +{ + nsaddr_t ia = ((const NeighbEnt *) a)->dst; + nsaddr_t ib = (*(const NeighbEnt **) b)->dst; + if (ia > ib) return 1; + if (ib > ia) return -1; + return 0; +} + +NeighbTable::NeighbTable(TBF_Agent *mya) +{ + int i; + + nents = 0; + maxents = 100; + tab = new (NeighbEnt *)[100]; + a = mya; + for (i = 0; i < 100; i++) + tab[i] = new NeighbEnt(a); +} + +NeighbTable::~NeighbTable() +{ + int i; + + // cancel timers + for (i = 0; i < nents; i++) { + tab[i]->dnt.force_cancel(); + //tab[i]->ppt.force_cancel(); + delete tab[i]; + } + delete[] tab; +} + +NeighbTableIter NeighbTable::InitLoop() { + return (NeighbTableIter) 0; +} + +NeighbEnt *NeighbTable::NextLoop(NeighbTableIter *it) { + if (((unsigned int) *it) >= (unsigned int) nents) + return 0; + + return tab[(*it)++]; +} + +NeighbEnt * +NeighbTable::ent_findshortest(MobileNode *mn, double x, double y, double z) +{ + NeighbEnt *ne = 0; + double shortest, t, myx, myy, myz; + int i; + + mn->getLoc(&myx, &myy, &myz); + shortest = distance(myx, myy, myz, x, y, z); + for (i = 0; i < nents; i++) + if ((t = distance(tab[i]->x, tab[i]->y, tab[i]->z, x, y, z)) < shortest) { + shortest = t; + ne = tab[i]; + } + return ne; +} + +NeighbEnt * +NeighbTable::ent_findclosesttotraj(MobileNode *mn, Packet *p,LocDbase *ldb_) { + NeighbEnt *ne = 0; + MobileNode *smn,*dmn; + int i=0; + double shortest, t, to_go, myx, myy, myz,sx,sy,sz,dx,dy,dz; + hdr_ip *iph = hdr_ip::access(p); + + found = 1; + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + + //printf("Finding Closest to trajectory at Node %d to Node %d. Num Neighbours are %d\n",src,dst,nents); + smn = ldb_->nlookup(src); + smn->getLoc(&sx,&sy,&sz); + dmn = ldb_->nlookup(dst); + dmn->getLoc(&dx,&dy,&dz); + + mn->getLoc(&myx,&myy,&myz); + + shortest = distance(dx,dy,dz,myx, myy, myz); + to_go = shortest; + + for(i = 0; i < nents; i++) { + t = distance(dx,dy,dz,tab[i]->x,tab[i]->y,tab[i]->z); + //printf(" \nLocations are : \n Destination : %f %f %f \n My : %f %f %f \n Neighbour %d : %f %f %f \n",dx,dy,dz,myx,myy,myz,i, tab[i]->x,tab[i]->y,tab[i]->z); + //printf(" \n Distances : Shortest = %f , t = %f\n",shortest,t); + if( t < shortest ) { + shortest = t; + ne = tab[i]; + } + } + + if(shortest == to_go ) { + //printf(" Unable to make forward progress !!!, dropping packet \n"); + //ne = 0; + ne = tab[i]; + found = 0; + // Should have dropped the packet, but not able to get drop() to work, + // scope problems .. its might be an Agent method. so doing nuthing for now. + //exit(0); + //drop(p, DROP_NO_ROUTE_TO_DEST); + //drop(p); + /// New Information, since there has been no forward progress, we just set ne to 0 + // send it back to forwardPacket where it is dropped. + } + + return ne; +} + +NeighbEnt *NeighbTable::ent_finddst(nsaddr_t dst) +{ + NeighbEnt ne(NULL), **pne; + + ne.dst = dst; + pne = ((NeighbEnt **) bsearch(&ne, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp)); + if (pne) + return *pne; + else + return NULL; +} + +void NeighbTable::ent_delete(const NeighbEnt *ent) +{ + NeighbEnt **pne, *owslot; + int i, j; + + if ((pne = (NeighbEnt **) bsearch(ent, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp))) { + i = pne - tab; + // make sure no timers scheduled for this neighbor + (*pne)->dnt.force_cancel(); + //(*pne)->ppt.force_cancel(); + // slide any subsequent table entries backward + if (i < (nents - 1)) + owslot = tab[i]; + for (j = i; j < nents - 1; j++) + tab[j] = tab[j+1]; + if (i < (nents - 1)) + tab[nents-1] = owslot; + nents--; + } +} + +NeighbEnt *NeighbTable::ent_add(const NeighbEnt *ent) +{ + NeighbEnt **pne, *owslot; + int i, j, r, l; + + if ((pne = (NeighbEnt **) bsearch(ent, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp))) { + // already in table; overwrite + // make sure there is no pending timer + i = pne - tab; + (*pne)->dnt.force_cancel(); + /* XXX overwriting table entry shouldn't affect when to probe this + perimeter */ + // (*pne)->ppt.force_cancel(); + // careful not to overwrite timers! + (*pne)->dst = ent->dst; + (*pne)->x = ent->x; + (*pne)->y = ent->y; + (*pne)->z = ent->z; + return *pne; + } + + // may have to grow table + if (nents == maxents) { + NeighbEnt **tmp = tab; + maxents *= 2; + tab = new (NeighbEnt *)[maxents]; + bcopy(tmp, tab, nents*sizeof(NeighbEnt *)); + for (i = nents; i < maxents; i++) + tab[i] = new NeighbEnt(a); + delete[] tmp; + } + + // binary search for insertion point + if (nents == 0) + i = 0; + else { + l = 0; + r = nents - 1; + while ((r - l) > 0) { + if (ent->dst < tab[l + ((r-l) / 2)]->dst) + r = l + ((r - l) / 2) - 1; + else + l += (r - l) / 2 + 1; + } + if (r < l) + i = r+1; + else + // r == l + if (ent->dst < tab[r]->dst) + i = r; + else + i = r+1; + } + + // slide subsequent entries forward + if (i <= (nents - 1)) + owslot = tab[nents]; + j = nents-1; + while (j >= i) + tab[j+1] = tab[j--]; + // slam into table, without overwriting timers + if (i <= (nents - 1)) + tab[i] = owslot; + tab[i]->dst = ent->dst; + tab[i]->x = ent->x; + tab[i]->y = ent->y; + tab[i]->z = ent->z; + // invalidate the perimeter that may be cached by this neighbor entry + tab[i]->perilen = 0; + // XXX gross way to indicate entry is *new* entry, graph needs planarizing + tab[i]->live = -1; + nents++; + return tab[i]; +} + + +// TBF CLASS Definition +int hdr_tbf::offset_; + +class TBFHeaderClass : public PacketHeaderClass { +public: + TBFHeaderClass() : PacketHeaderClass("PacketHeader/TBF", sizeof(hdr_tbf)) + { + bind_offset(&hdr_tbf::offset_); + } +} class_tbfhdr; + + + + + +static class TBFClass:public TclClass +{ +public: + TBFClass():TclClass ("Agent/TBF") + { + } + TclObject *create (int, const char *const *) + { + // printf("Trying to create new agent\n"); + return (new TBF_Agent ()); + } +} class_tbf; + +TBF_Agent::TBF_Agent(void) : Agent(PT_TBF), beacon_timer_(0), +//TBF_Agent::TBF_Agent(void) : beacon_timer_(0), + use_mac_(0), + verbose_(1), drop_debug_(0), + use_implicit_beacon_(0), + bint_(TBF_ALIVE_INT), bdesync_(TBF_ALIVE_DESYNC), + bexp_(TBF_ALIVE_EXP), + //lpexp_(TBF_PPROBE_EXP), ldb_(0), mn_(0), ifq_(0) + ldb_(0), mn_(0), ifq_(0) +{ + ntab_ = new NeighbTable(this); + //printf("Trying to create new agent\n"); + + bind_time("bint_", &bint_); + bind_time("bexp_", &bexp_); + bind_time("bdesync_", &bdesync_); + + + //bind_time("lpexp_", &lpexp_); + bind("verbose_", &verbose_); + bind("drop_debug_", &drop_debug_); + + bind("use_mac_", &use_mac_); + + bind("use_implicit_beacon_", &use_implicit_beacon_); + + // bind("use_loop_detect_", &use_loop_detect_); + + bind("off_tbf_", &off_tbf_); +} + + + +// Tracing not working as of now !!!!!! +void TBF_Agent::trace(char *fmt,...) +{ + va_list ap; + + if (!tracetarget) + return; + + va_start(ap, fmt); +// vsprintf(tracetarget->buffer(), fmt, ap); +// tracetarget->dump(); + va_end(ap); +} + + + +void TBF_Agent::tracepkt(Packet *p, double now, int me, const char *type) +{ + char buf[1024]; + + hdr_tbf *tbfh = hdr_tbf::access(p); + + snprintf (buf, 1024, "V%s %.5f _%d_:", type, now, me); + + if (tbfh->mode_ == TBFH_BEACON) { + snprintf (buf, 1024, "%s (%f,%f,%f)", buf, tbfh->sx_, + tbfh->sy_, tbfh->sz_); + //snprintf (buf, 1024, "%s (%f,%f,%f)", buf, tbfh->hops_[0].x, + //tbfh->hops_[0].y, tbfh->hops_[0].z); + if (verbose_) + trace("%s", buf); + } +} + + +// don't drop or modify the packet--it's not a copy! +void TBF_Agent::tap(const Packet *p) +{ + hdr_cmn *hdrc = HDR_CMN(p); + //hdr_tbf *tbfh = hdr_tbf::access(p); + hdr_tbf *tbfh = (hdr_tbf *) p->access(off_tbf_); + + /* ignore non-IP packets. + ignore beacons; we process those on regular receive. + assumes the MAC tap includes all unicast packets bound for us. + process those here, and avoid calls to beacon_proc() elsewhere. */ + if (use_implicit_beacon_ && + (hdrc->addr_type_ == AF_INET) && + (hdrc->next_hop_ != (nsaddr_t) IP_BROADCAST)) { + // snoop it as proof of its sender's existence. + switch (tbfh->mode_) { + //*************************** CHECK MODE + case TBFH_DATA_GREEDY: + // prev hop position lives in hops_[0] + // ******************************************************** + // NEEED TO ADD THE PREVIOUS HOPS LOCATION IN THE PACKET HEADER + // *********************************************************** + // and then have to read it in in tap, snooping packets for beacons + + beacon_proc(tbfh->lasthopip, tbfh->sx_, tbfh->sy_, + tbfh->sz_); + //beacon_proc(tbfh->hops_[0].ip, tbfh->hops_[0].x, tbfh->hops_[0].y, + //tbfh->hops_[0].z); + break; + default: + fprintf(stderr, "Yow! tap got packet of unk type %d!\n", tbfh->mode_); + abort(); + break; + } + } +} + + +void TBF_Agent::count_drop() { + FILE *fp; + int count; + fp = fopen("count_drop","r"); + fscanf(fp,"%d",&count); + fclose(fp); + count++; + fp = fopen("count_drop","w+"); + fprintf(fp,"%d",count); + fclose(fp); +} + +void TBF_Agent::lost_link(Packet *p) +{ + hdr_cmn *hdrc = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + NeighbEnt *ne; + + if (use_mac_ == 0) { + count_drop(); + drop(p, DROP_RTR_MAC_CALLBACK); + return; + } + + //DEBUG + //printf("(%d)..Lost link..\n",myaddr_); + + /* + if (verbose_ && hdrc->addr_type_ == AF_INET) + trace ("VLL %.8f %d->%d lost at %d", + Scheduler::instance().clock(), + ((hdr_ip *) p->access(off_ip_))->src_, + ((hdr_ip *) p->access(off_ip_))->dst_, + mn_->address()); +*/ + if (hdrc->addr_type_ == AF_INET) { + ne = ntab_->ent_finddst(hdrc->next_hop_); + /* if (verbose_) + trace ("VLP %.5f %d:%d->%d:%d lost at %d [hop %d]", + Scheduler::instance().clock(), + ((hdr_ip *) p->access(off_ip_))->src_, + ((hdr_ip *) p->access(off_ip_))->sport_, + ((hdr_ip *) p->access(off_ip_))->dst_, + ((hdr_ip *) p->access(off_ip_))->dport_, + mn_->address(), hdrc->next_hop_); + */ + if (ne) { + ne->dnt.force_cancel(); + deadneighb_callback(ne); + } + } + + // grab packets in the ifq bound for the same next hop + Packet *r, *rh, *rt; + rh = rt = p; + rh->next_ = 0; + while ((r = ifq_->filter((nsaddr_t) hdrc->next_hop_))) { + rt->next_ = r; + r->next_ = 0; + rt = r; + } + + // retarget all packets we got to a new next hop + while (rh) { + rt = rh; + rh = rh->next_; + + hdrc = HDR_CMN(rt); + tbfh = hdr_tbf::access(rt); + + if (hdrc->addr_type_ != AF_INET) { + count_drop(); + drop(rt, DROP_RTR_MAC_CALLBACK); + continue; + } + + +//********************** Check this part + // for GPSR perimeter probes, chop off our own perimeter entry before + // passing the probe back into the agent for reforwarding +/* if (((hdr_ip *) rt->access(off_ip_))->dport_ == GPSR_PORT) { + if (gpsrh->mode_ == GPSRH_PPROBE) { + if (gpsrh->nhops_ == 1) { + // we originated it. the neighbor is gone, according to the MAC + // layer. drop the probe--it was *only* meant for that neighbor. + drop(rt, DROP_RTR_NEXT_SRCRT_HOP); + continue; + } + // we were forwarding the probe, so instead try to recover by + // forwarding it to a remaining appropriate next hop + gpsrh->nhops_--; + hdrc->size() = gpsrh->size() + IP_HDR_LEN; + periIn(rt, gpsrh, GPSR_PPROBE_RTX); + } + }*/ + //else { + switch (tbfh->mode_) { + //****************** Check the mode + + case TBFH_DATA_GREEDY: + // give the packet another chance--exercise greedy's good recovery + forwardPacket(rt); + break; + default: + fprintf(stderr, "yow! non-data packet for non-GPSR port bounced by MAC!\n"); + abort(); + break; + } + //} + } +} + +static void mac_callback(Packet * p, void *arg) +{ + ((TBF_Agent *) arg)->lost_link(p); +} + + + + +// construct and return an alive beacon packet + +Packet *TBF_Agent::makeAlive(void) +{ + Packet *p = allocpkt(); + hdr_ip *iph = hdr_ip::access(p); + //(hdr_ip *) p->access (off_ip_); + hdr_cmn *hdrc = hdr_cmn::access(p); + //HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + // set up header + hdrc->next_hop_ = IP_BROADCAST; + hdrc->addr_type_ = AF_INET; + hdrc->ptype_ = PT_TBF; + iph->daddr() = IP_BROADCAST << Address::instance().nodeshift(); + iph->dport_ = TBF_PORT; + // Set last hop ip to current node for beacon processing + tbfh->lasthopip = mn_->address(); + tbfh->mode_ = TBFH_BEACON; + tbfh->nhops_ = 1; + mn_->getLoc(&tbfh->sx_, &tbfh->sy_, &tbfh->sz_); + // simulated size: hdr_tbf, IP header + hdrc->size() = tbfh->size() + IP_HDR_LEN; + return p; +} + + + +void TBF_Agent::beacon_callback(void) +{ + Scheduler &s = Scheduler::instance(); + + Packet *p = makeAlive(); + + // schedule the transmission of this beacon + if (p) { + assert (!HDR_CMN(p)->xmit_failure_); + s.schedule (target_, p, 0); + } + // schedule the next beacon generation event + BEACON_RESCHED; +} + +void TBF_Agent::deadneighb_callback(NeighbEnt *ne) +{ + Scheduler &s = Scheduler::instance(); + double now = s.clock (); + + if (verbose_) + trace ("VTO %.5f _%d_ %d->%d", now, mn_->address(), mn_->address(), + ne->dst); + // remove the neighbor entry from the table! + ntab_->ent_delete(ne); + +} + + +void TBF_Agent::beacon_proc(int src, double x, double y, double z) +{ + NeighbEnt *ne; + NeighbEnt nne(this); + + nne.dst = src; + nne.x = x; + nne.y = y; + nne.z = z; + ne = ntab_->ent_add(&nne); + //****************** Check + if (ne->live == -1) { + // entry wasn't in table before. need to planarize, if option dictates. + ne->live = 1; + /*if (use_planar_) { + double myx, myy, myz; + + mn_->getLoc(&myx, &myy, &myz); + ntab_->planarize(PLANARIZE_RNG, myx, myy, myz); + }*/ + } + ne->dnt.resched(bexp_); + //********************* Check + /*if (use_peri_ && (ne->ppt.status() == TIMER_IDLE)) + // no perimeter probe is pending; launch one + if (peri_proact_) + ne->ppt.sched(pint_ + + Random::uniform(2 * pdesync_ * pint_) - pdesync_ * pint_); + */ +} + +void TBF_Agent::beaconIn(Packet *p, hdr_tbf *tbfh) +{ + hdr_ip *hdrip = hdr_ip::access(p); + //hdr_tbf *tbfh = hdr_tbf::access(p); + + //(hdr_ip *) p->access(off_ip_); + //int src = Address::instance().get_nodeaddr(hdrip->saddr()); + int src = tbfh->lasthopip; + //printf(" Processing beacon\n"); + // Changing the beacon_proc method to work on the sx,sy,sz of the tbfh + beacon_proc(src, tbfh->sx_, tbfh->sy_, tbfh->sz_); + //beacon_proc(src, tbfh->hops_[0].x, tbfh->hops_[0].y, tbfh->hops_[0].z); + // we consumed the packet; free it! + Packet::free(p); +} + + +/* GPSR Code .. might be useful +inline int cross_segment(double x1, double y1, double x2, double y2, + double x3, double y3, double x4, double y4, + double *xi = 0, double *yi = 0) +{ + double dy[2], dx[2], m[2], b[2]; + double xint, yint; + + dy[0] = y2 - y1; + dx[0] = x2 - x1; + dy[1] = y4 - y3; + dx[1] = x4 - x3; + m[0] = dy[0] / dx[0]; + m[1] = dy[1] / dx[1]; + b[0] = y1 - m[0] * x1; + b[1] = y3 - m[1] * x3; + if (m[0] != m[1]) { + // slopes not equal, compute intercept + xint = (b[0] - b[1]) / (m[1] - m[0]); + yint = m[1] * xint + b[1]; + // is intercept in both line segments? + if ((xint <= max(x1, x2)) && (xint >= min(x1, x2)) && + (yint <= max(y1, y2)) && (yint >= min(y1, y2)) && + (xint <= max(x3, x4)) && (xint >= min(x3, x4)) && + (yint <= max(y3, y4)) && (yint >= min(y3, y4))) { + if (xi && yi) { + *xi = xint; + *yi = yint; + } + return 1; + } + } + return 0; +} + +*/ + + + + + +void TBF_Agent::recv(Packet *p,Handler *) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + + Scheduler &s = Scheduler::instance(); + double now = s.clock(); + + int count; + FILE *fp; + // printf(" Received Packet at Node %d from %d to Node %d at time %f\n",mn_->address(),src,dst,now); + MobileNode *dmn; + /*if(dst == mn_->address()) { + printf(" Packet reached destination \n"); + } + else */ + if((src == mn_->address()) && (cmh->num_forwards() == 0)) { + // Packet I am originating, called by upper layer, need + // to calc trajectory to dest and fill it in. + // Must calculate header size, add dst position + cmh->size() += IP_HDR_LEN + 8; + iph->ttl_ = IP_DEF_TTL; + + // Fill destination position + dmn = ldb_->nlookup(dst); + dmn->getLoc(&iph->dx(),&iph->dy(),&iph->dz()); + if(iph->dport_ != TBF_PORT) + tbfh->mode_ = TBFH_DATA_GREEDY; // Data packet, not control. + // calculate the trajectory to the destination based on the locdbase + // info. As of now using a straight line trajectory + // fill in values in tbfh->traj[] + + // Count Number of sent packets, ugly hack, but easier than tramping + // through the trace file. Putting the counter into a file, might have + // to be protected by a mutex !! + fp = fopen("count_packet","r"); + fscanf(fp,"%d",&count); + fclose(fp); + count++; + fp = fopen("count_packet","w+"); + fprintf(fp,"%d",count); + fclose(fp); + } + else if(( src == mn_->address()) && (tbfh->mode_ == TBFH_DATA_GREEDY)) { + // Received a packet I sent, drop it theres a loop + count_drop(); + drop(p,DROP_RTR_ROUTE_LOOP); + return; + } + else { + // Forwarding packet, check ttl + if(--iph->ttl_ == 0) { + count_drop(); + drop(p,DROP_RTR_TTL); + return; + } + } + + //forward if not sent to the TBF port aka control packet + if( iph->dport_ == TBF_PORT ) { + char *as; + //printf(" Beacon packet \n"); + switch( tbfh->mode_) { + case TBFH_BEACON: + if(src != mn_->address()) + // if not my own beacon. + beaconIn(p,tbfh); + break; + // Space here for other error conditions. handle later. + default: + as = Address::instance().print_nodeaddr(mn_->address()); + fprintf(stderr," Wrong packet type %d @ %s:TBF_PORT !\n",tbfh->mode_,as); + fflush(stderr); + delete[] as; + break; + } + } + else + forwardPacket(p); + +}//recv + + + + +void TBF_Agent::forwardPacket(Packet *p) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + NeighbEnt *ne; + + Scheduler &s = Scheduler::instance(); + double now = s.clock(); + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + ne = ntab_->ent_findclosesttotraj(mn_,p,ldb_); + +// printf(" Forwarding Packet at Node %d through Node %d to Node %d from Node %d\n",mn_->address(),ne->dst,dst,src); + if(found) { + cmh->next_hop_ = ne->dst; + } + else { + // no route to dest along this trajectory. Initiate recovery + // As of now dropping it. + //printf(" Dropping packet \n"); + count_drop(); + drop(p,DROP_NO_ROUTE_TO_DEST); + return; + } + + send: + // Hook to branch to from recovery procedures. + + cmh->addr_type_ = NS_AF_INET; + cmh->xmit_failure_ = mac_callback; + cmh->xmit_failure_data_ = this; + + // point packet down the stack + cmh->direction() = hdr_cmn::DOWN; + + // data packet can serve as implicit beacon. put self in tbfh sx,sy,sz + + double myx,myy,myz; + mn_->getLoc(&myx,&myy,&myz); + + // Set last hop ip to current node for beacon processing + tbfh->lasthopip = mn_->address(); + //tbfh->hops_[0].ip = mn_address(); + tbfh->sx_ = myx; + tbfh->sy_ = myy; + tbfh->sz_ = myz; + + //send off packet + target_->recv(p,(Handler *)0); + // Data packets are implicit beacons so reschedule beacon timer. + BEACON_RESCHED; + return; +} + + + + + + +int TBF_Agent::command(int argc, const char *const *argv) +{ + + //printf(" Command of TBF Agent Called \n"); + if (argc == 2) { + if (strcmp(argv[1], "start-tbf") == 0) { + init(); + return TCL_OK; + } + } + else if (argc == 3) { + TclObject *obj; + + if (strcasecmp(argv[1], "tracetarget") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], argv[2]); + return TCL_ERROR; + } + tracetarget = (Trace *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "install-tap") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + Mac *m = (Mac *) obj; + m->installTap(this); + return TCL_OK; + } + if (strcmp(argv[1], "node") == 0) { + //printf(" Creating a node for TBF\n"); + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + printf( "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + mn_ = (MobileNode *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "ldb") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + ldb_ = (LocDbase *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "add-ifq") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + ifq_ = (PriQueue *) obj; + return TCL_OK; + } + } + return (Agent::command (argc, argv)); +} + +void TBF_Agent::init(void) +{ + beacon_timer_ = new TBF_BeaconTimer(this); + beacon_timer_->sched(Random::uniform(bint_)); +} diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.h ns/tbf/backup/tbf.h --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.h Wed Dec 31 19:00:00 1969 +++ ns/tbf/backup/tbf.h Mon Jun 2 19:21:37 2003 @@ -0,0 +1,228 @@ +/* + + Copyright (C) 2003 + Department of Computer Science, Rutgers, The State University of New Jersey. + + All rights reserved. + + NOTICE: This software is provided "as is", without any warranty, + including any implied warranty for merchantability or fitness for a + particular purpose. Under no circumstances shall Harvard University + or its faculty, staff, students or agents be liable for any use of, + misuse of, or inability to use this software, including incidental + and consequential damages. + + License is hereby given to use, modify, and redistribute this + software, in whole or in part, for any commercial or non-commercial + purpose, provided that the user agrees to the terms of this + copyright notice, including disclaimer of warranty, and provided + that this copyright notice, including disclaimer of warranty, is + preserved in the source code and documentation of anything derived + from this software. Any redistributor of this software or anything + derived from this software assumes responsibility for ensuring that + any parties to whom such a redistribution is made are fully aware of + the terms of this license and disclaimer. + + Author: Prashant Mekaraj, Rutgers University, 2003 + mekaraj@paul.rutgers.edu + + This code is based on Brad Karp's GPSR extensions to NS2 + +*/ + +// Trajectory Based Forwarding for ns2 with the CMU wireless extensions + +#include "agent.h" +#include "ip.h" +#include "delay.h" +#include "scheduler.h" +#include "queue.h" +#include "trace.h" +#include "arp.h" +#include "ll.h" +#include "mac.h" +#include "priqueue.h" +#include "node.h" +#include "timer-handler.h" +#include "locdbase.cc" + +#define TBF_PORT 0xff // port number for TBF protocol messages +#define TBF_ALIVE_DESYNC 0.5 // desynchronizing term for alive beacons +#define TBF_ALIVE_INT 0.5 // interval between alive beacons +#define TBF_ALIVE_EXP (3*(TBF_ALIVE_INT+TBF_ALIVE_DESYNC*TBF_ALIVE_INT)) + // timeout for expiring rx'd beacons + + +#define TBFH_DATA_GREEDY 0 // greedy mode data packet +#define TBFH_BEACON 3 // liveness beacon packet +#define NUMTRAJPARAMETERS 8 + +int found = 0; // Global for each agent + // crude but effective. + + +class NeighbEnt; +class NeighbTable; +class TBF_BeaconTimer; + +class hdr_tbf; + + + +class TBF_Agent : public Tap, public Agent { +public: + TBF_Agent(void); + void beacon_callback(void); // generate a beacon (timer-triggered) + void deadneighb_callback(NeighbEnt *ne); // neighbor gone (timer/MAC-trig) + + virtual int command(int argc, const char * const * argv); + void lost_link(Packet *p); + void tap(const Packet *p); + +protected: + NeighbTable *ntab_; + TBF_BeaconTimer *beacon_timer_; // Alive beacon timer + + Trace *tracetarget; // Trace Target + virtual void recv(Packet *, Handler *); + Packet *makeAlive(void); + void beaconIn(Packet *, hdr_tbf *); + void trace(char *fmt, ...); + void tracepkt(Packet *, double, int, const char *); + void forwardPacket(Packet *); + void count_drop(); + + //int crosses(NeighbEnt *, hdr_tbf *); + void beacon_proc(int, double, double, double); + void init(); + int use_mac_; // whether or not to simulate full MAC level + int use_peri_; // whether or not to use perimeters + int verbose_; // verbosity (binary) + int drop_debug_; // whether or not to be verbose on NRTE events + + int use_implicit_beacon_; // whether or not all data packets are beacons + + double bint_; // beacon interval + double bdesync_; // beacon desync random component range + double bexp_; // beacon expiration interval + + LocDbase *ldb_; // location database + MobileNode *mn_; // my MobileNode + PriQueue *ifq_; // my ifq + int off_tbf_; // offset of the TBF packet header in pkt +}; + + + + + + +/* ns bogusly doesn't invoke constructors for headers; it allocates them as + raw byte fields. It also doesn't support changing the allocated size of + a header on an in-flight packet. For now, give in and use pre-allocated + headers with fixed maximum numbers of hosts. + It also carries all possible headers with each packet, simulations can be + made much more efficient if unneeded headers are explicitly removed */ + +class hdr_tbf { +public: + static int offset_; + + int lasthopip; // last hop node number + double sx_,sy_,sz_; // Last hop position stored in header + int nhops_; + int currhop_; + int mode_; + int traj[NUMTRAJPARAMETERS]; + int progress; + // header size is counted + int size() { return (3 * sizeof(double) + (5 + NUMTRAJPARAMETERS) * sizeof(int)); } + + inline static int& offset() { + return offset_; + } + inline static hdr_tbf *access(Packet* p) { + return (hdr_tbf *) p->access(offset_); + } + +}; // STATIC TBF Header + + + +class TBF_AgentTimer : public TimerHandler { +public: + TBF_AgentTimer(TBF_Agent *a_) { a = a_; } + virtual void expire(Event *e) = 0; + +protected: + TBF_Agent *a; +}; + +class TBF_NeighbTimer : public TBF_AgentTimer { +public: + TBF_NeighbTimer(TBF_Agent *a_, NeighbEnt *ne_) : + TBF_AgentTimer(a_) { ne = ne_; } + virtual void expire(Event *e) = 0; + +protected: + NeighbEnt *ne; +}; + +class TBF_BeaconTimer : public TBF_AgentTimer { +public: + TBF_BeaconTimer(TBF_Agent *a_) : TBF_AgentTimer(a_) { }; + virtual void expire(Event *) { a->beacon_callback(); } +}; + + + +class TBF_DeadNeighbTimer : public TBF_NeighbTimer { +public: + TBF_DeadNeighbTimer(TBF_Agent *a_, NeighbEnt *ne_) : + TBF_NeighbTimer(a_, ne_) { }; + virtual void expire(Event *) { a->deadneighb_callback(ne); } +}; + + +class NeighbEnt : public Connector { +public: + NeighbEnt(TBF_Agent *ina) : dnt(ina,this) {}; + + nsaddr_t dst; // IP of neighbor + double x, y, z; // location of neighbor last heard + int live; // whether negihbour is unique + TBF_DeadNeighbTimer dnt; // timer for expiration of neighbor +}; + + + +/* Beacon Timing code, largely unchanged from the GPSR code. */ + +// opaque type: returned by NeighbTable iterator, holds place in table +typedef unsigned int NeighbTableIter; + +// underlying data structure: an array, ordered by dst addr +class NeighbTable { +public: + NeighbTable(TBF_Agent *mya); + ~NeighbTable(); + void ent_delete(const NeighbEnt *ent); + NeighbEnt *ent_add(const NeighbEnt *ent); + NeighbEnt *ent_finddst(nsaddr_t dst); + NeighbEnt *ent_findshortest(MobileNode *mn, double x, double y, + double z); + NeighbEnt *ent_findclosesttotraj(MobileNode *mn, Packet *p, LocDbase *); + + NeighbEnt *ent_findcloser_edgept(MobileNode *, double, double, nsaddr_t, + nsaddr_t, double, double, double *, + double *); + + NeighbTableIter InitLoop(); // iterator initializer + NeighbEnt *NextLoop(NeighbTableIter *); // iterator + +private: + int nents; // current entries in use + int maxents; // allocated table size + TBF_Agent *a; // agent that owns this table + NeighbEnt **tab; +}; Binary files /home/ns/ns-allinone-2.26/ns-2.26/tbf/backup/tbf.o and ns/tbf/backup/tbf.o differ diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/count_drop ns/tbf/count_drop --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/count_drop Wed Dec 31 19:00:00 1969 +++ ns/tbf/count_drop Tue Jun 3 11:42:23 2003 @@ -0,0 +1 @@ +201959 \ No newline at end of file diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/count_packet ns/tbf/count_packet --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/count_packet Wed Dec 31 19:00:00 1969 +++ ns/tbf/count_packet Tue Jun 3 11:42:24 2003 @@ -0,0 +1 @@ +144810549 \ No newline at end of file diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/draw1.fig ns/tbf/draw1.fig --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/draw1.fig Wed Dec 31 19:00:00 1969 +++ ns/tbf/draw1.fig Mon Jun 2 19:21:37 2003 @@ -0,0 +1,509 @@ +#FIG 3.2 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1136 2615 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7225 793 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4045 1878 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3222 1673 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1122 1707 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2558 4943 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1602 3472 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 218 6156 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1057 2264 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3208 1316 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6737 3350 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6146 740 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2418 3552 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3342 4898 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 580 1175 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5685 7188 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2349 2505 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4167 3143 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 381 107 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4807 426 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5438 2769 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5871 528 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1408 2285 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 609 928 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 589 3134 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4691 5637 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 448 4962 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3186 3954 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4414 5396 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5066 4932 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1143 1968 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7431 3311 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2517 6536 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3267 1601 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7489 7420 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3104 5168 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1195 5909 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 275 2254 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 969 7336 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4870 5368 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2056 1801 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4455 697 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 48 6420 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 790 4493 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6947 2087 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2098 13 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 246 440 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1098 7134 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 773 4715 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6468 577 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1993 5582 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5284 1034 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5455 5131 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2023 5461 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4827 5460 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4002 3426 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3535 2836 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4588 1975 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6153 921 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3714 4597 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1318 6917 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4235 4017 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7304 1570 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6142 5194 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7009 5193 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 656 6834 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4007 3304 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6925 5464 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3884 4127 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 541 4645 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7294 70 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4325 939 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2248 1864 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6743 6994 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1960 3821 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4002 4734 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1254 2970 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5797 2343 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4495 1820 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2942 6906 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3836 3244 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6967 2505 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5234 7219 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 26 2045 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7442 684 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1554 515 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2487 7002 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3396 1957 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4642 3770 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4092 4726 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2724 4173 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2310 176 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2457 1377 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1190 4405 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 881 2098 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7061 6149 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1245 297 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1895 6563 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1830 7409 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4504 225 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5631 3365 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2778 4339 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1002 501 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5246 5210 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3959 3227 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7193 5576 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5038 2034 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1001 100 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 71 2066 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7231 4473 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4854 2779 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2107 5867 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5430 4258 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3988 5657 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2038 1352 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7412 5107 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2586 4307 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 604 553 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5244 1044 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3965 1811 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4833 2736 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 136 610 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3954 2303 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6831 7156 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4584 5274 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1344 4290 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6623 4980 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6775 2235 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6163 7047 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3388 2734 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6007 1625 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 110 6606 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5992 7495 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3588 5984 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3522 4862 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5909 1324 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 728 3073 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4970 3579 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5709 2635 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5186 2150 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 204 6965 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4480 4105 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3425 846 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1103 1773 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4753 2354 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5664 6873 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4389 6795 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2837 5831 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5538 3993 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1652 3104 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2215 1830 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7175 5567 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4588 4851 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5652 2400 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6071 3668 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3736 5074 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1791 3983 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5431 3015 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2085 6098 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 14 3454 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3532 2774 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 666 2277 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3414 814 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5037 2517 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5221 5752 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1698 5098 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3564 802 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 750 3971 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3176 3169 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4936 6392 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 660 4054 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6709 3983 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 219 5170 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3695 3976 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5069 2582 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2158 1841 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7398 3574 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1006 2746 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6377 209 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4426 5051 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2406 4841 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1596 5443 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 759 4646 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 939 4316 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6753 4161 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6016 1569 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3731 4507 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7389 5431 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6691 5111 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6768 91 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3176 7106 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2441 5577 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 438 3005 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5094 263 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6174 273 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2292 2619 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4299 7093 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3895 5412 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5184 6694 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3071 2076 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1220 1867 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4684 3471 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6623 3527 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6440 3963 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1173 6955 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2424 6616 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1166 2722 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5391 3915 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1482 1098 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4962 2544 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2737 4289 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4058 5223 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4525 4796 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3584 494 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2100 1022 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4430 237 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 902 4785 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7159 3950 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6201 5756 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6448 4184 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3447 1923 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6664 4716 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 425 3417 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5296 6127 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 337 2632 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2841 894 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5398 741 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1819 798 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6672 3503 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6509 712 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6128 670 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 390 4643 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6531 413 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7403 7470 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5622 2906 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6666 3876 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6737 1601 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2078 6816 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6584 4729 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2023 6223 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 107 7411 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7301 5374 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3901 5896 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 131 279 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3409 7392 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 340 284 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3310 1832 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2993 878 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6904 5041 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5850 7115 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1785 1303 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7380 25 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5322 34 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6204 4958 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 420 2256 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6170 4338 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3983 2711 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4466 6438 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5535 2988 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 25 2617 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1200 2527 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 802 4818 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7345 4378 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1273 4235 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2732 1345 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5661 5659 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7315 2736 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1537 2259 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 273 2425 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2411 1823 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1107 3061 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2116 5782 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4349 5265 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5699 4703 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4176 4252 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1886 3193 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5648 4410 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2681 4930 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2950 994 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6893 1659 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 553 6777 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6096 3283 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6798 2827 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7304 3879 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3286 2020 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6132 1166 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5504 3177 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 419 6623 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5901 786 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3861 1507 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4255 445 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 211 2293 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 271 7070 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 42 3334 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4577 278 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2508 7004 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3364 4324 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6113 1474 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3804 6679 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7252 4344 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5809 6976 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6843 3597 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1065 671 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 814 2249 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6387 1349 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4523 6531 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2787 4960 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 894 2885 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 444 5907 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5188 3935 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4313 3638 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5440 663 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7355 556 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5370 3419 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 250 2188 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5967 2923 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6872 2616 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4061 2122 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2160 1147 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1247 6206 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2746 3675 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 651 7333 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4142 3768 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2582 4598 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7345 6076 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4348 6890 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4136 6311 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4519 4291 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4096 2262 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7313 4185 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4452 7277 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1363 2584 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1410 6055 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4837 3596 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7393 6055 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7044 6868 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1744 7200 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7001 3034 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4115 6317 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6236 5638 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2093 5330 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5513 3422 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 59 488 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5390 4522 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3144 1841 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4161 2181 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 294 6387 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1464 5109 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3125 2839 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2917 248 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6720 4853 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3162 2300 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3340 6411 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 420 1180 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7448 3432 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5360 1424 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5696 2002 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 357 2582 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1296 1753 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3378 4865 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 71 2068 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3106 1298 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2202 6051 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 611 5905 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 264 884 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4371 5329 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2221 1531 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2936 7105 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2013 311 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2135 1391 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 984 6859 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 459 59 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1682 2453 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 930 616 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3421 939 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3468 269 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7130 5497 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4541 2938 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7034 3093 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2387 99 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4928 6643 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3350 948 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4371 7016 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5643 1599 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6433 1138 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2603 2998 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2242 719 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1959 442 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1293 6265 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3767 1343 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 152 5560 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 639 560 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 185 827 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5223 1360 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1174 4232 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 919 1576 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 418 3811 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4983 1314 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6409 2303 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7195 5326 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7451 6486 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4572 978 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3188 561 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 155 1071 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2195 6613 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2611 6168 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3767 5895 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1728 614 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4471 7095 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 746 6069 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4963 4976 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2612 5128 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2295 3313 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1268 4907 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3738 237 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 994 1532 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6473 4776 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1761 614 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2506 5131 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5706 4392 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2232 1628 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5483 2928 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1914 457 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6890 7192 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 976 5151 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1889 7075 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3922 1871 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 797 2737 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 260 3240 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5751 1118 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 614 3059 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2049 3786 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1496 5692 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5576 2680 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 329 6107 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2850 4785 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2604 4716 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3996 1194 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 976 6538 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3690 3554 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3222 5988 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1901 5028 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3804 6547 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3810 3490 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1067 6825 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 266 3506 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4655 6638 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2353 5699 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7417 693 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3102 369 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6887 7323 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2718 4704 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5288 5244 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 598 3738 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3037 51 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2153 2922 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 596 2647 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1127 4955 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3265 3874 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3754 5143 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3961 2963 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5673 7169 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2419 1823 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1279 5011 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4125 34 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 561 174 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4845 6319 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7313 6501 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2385 667 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1160 5083 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4350 6240 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5917 1750 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 505 6604 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5982 6619 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2106 1250 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3102 4222 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2707 2769 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6248 1050 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1175 3731 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1826 3878 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5186 1472 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2327 982 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1143 4274 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7404 2711 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7106 1112 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5801 955 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3864 4833 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7352 5838 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3615 7073 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4806 2910 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3960 6493 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5028 2976 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2432 7197 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1412 6120 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4778 4987 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4896 1645 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1435 6556 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3367 2349 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3959 2605 250 250 1575 1485 1215 1350 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/draw2.fig ns/tbf/draw2.fig --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/draw2.fig Wed Dec 31 19:00:00 1969 +++ ns/tbf/draw2.fig Mon Jun 2 19:21:37 2003 @@ -0,0 +1,248 @@ +#FIG 3.2 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3026 10102 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5612 5725 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8313 9639 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3673 8821 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11974 1179 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5737 9553 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11539 4611 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6575 1742 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3894 4599 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5966 11082 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11226 11606 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7598 8224 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11807 6054 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5614 6651 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 177 3580 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1909 6163 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4046 5874 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3831 9030 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2064 1110 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7306 8602 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6581 9477 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3157 938 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11292 8012 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8053 4595 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2208 7599 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1857 8933 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3074 6275 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3025 1533 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 215 4927 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1165 10347 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1076 5872 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4188 7012 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3316 6741 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10093 7316 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10514 6815 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6327 1118 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 198 6032 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7163 3067 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8448 8491 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11725 3909 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2783 8023 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8897 11810 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9793 4313 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1948 203 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1372 1803 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 917 6896 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8887 6538 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9785 1209 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4766 1839 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 781 4669 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9671 8346 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9362 5165 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4748 3122 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1867 3629 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5580 6414 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1759 3909 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6607 4474 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7552 8808 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4045 3033 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 492 7558 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5057 89 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9940 10384 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3765 7840 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3850 10232 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3680 6712 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10957 5296 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8638 4679 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2422 7999 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7931 3865 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 815 8279 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4435 10810 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7682 8364 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4660 2309 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11927 4189 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11227 3554 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 397 7306 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5163 11988 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4377 2124 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4131 7343 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7315 10739 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2195 4780 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7747 279 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11166 4103 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9507 6612 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11590 5365 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9972 1822 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5577 6171 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2811 1334 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10566 8072 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11879 8756 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8519 2385 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6556 11243 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9801 9076 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 893 4794 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1718 11571 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1278 10062 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10606 11202 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 973 6672 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6158 326 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9538 9382 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2709 1064 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5014 351 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4970 7022 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4627 1118 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3342 10972 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9666 11150 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7311 3913 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5529 8283 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1212 10115 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6631 10428 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1856 5476 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1152 8660 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1058 3996 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10749 2398 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1939 3987 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9671 9813 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6333 6144 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2544 11211 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4468 938 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3951 8778 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2231 11249 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10186 1486 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11627 8278 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10482 6032 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6378 11049 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4076 877 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3846 2768 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6140 8933 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1005 11678 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8209 3887 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 498 5700 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5337 8419 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9979 3923 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5862 4079 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10836 1954 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3652 3118 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9191 9603 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1188 8415 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2227 8256 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8686 5009 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6138 10485 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10589 5827 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10263 4147 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11545 8712 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9116 10690 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10467 643 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 80 659 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4492 3869 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9595 11994 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 826 3754 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4213 2331 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1368 1338 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3960 8500 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11004 518 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11360 11910 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 439 9940 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4037 8593 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1029 6695 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11476 6550 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8297 2275 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11309 11784 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4611 893 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 421 11344 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3663 2448 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8302 11487 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5798 7822 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10910 3682 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 472 595 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2047 3502 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11115 9399 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 702 4656 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 756 2237 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10132 213 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10863 8369 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10366 5981 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8106 4098 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11741 7159 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8705 5519 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4255 2539 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4517 9866 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7251 10068 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8866 58 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5996 10253 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5715 8241 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11756 3849 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10391 9510 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 616 6721 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4844 34 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1230 1511 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5962 6690 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9654 2314 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 278 6169 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 9567 4205 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7936 364 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5562 10244 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6068 7253 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8374 8809 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8618 8894 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1618 10541 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6318 3085 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7976 5057 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2629 5749 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4289 3892 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3306 9560 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3812 8520 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4428 8805 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11532 2832 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6325 7565 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10326 6597 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1421 2751 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4644 8814 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 219 7831 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10538 9558 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6509 8208 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7378 8321 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2130 3104 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3867 6144 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4265 6716 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7 90 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 10251 1225 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8581 609 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 888 11712 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6399 5216 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 11853 6528 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5366 3858 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6062 7384 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2756 2230 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6175 10805 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3695 8128 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7520 5205 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3766 11590 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5025 8632 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4571 9833 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7612 11734 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1752 3434 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/draw3.fig ns/tbf/draw3.fig --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/draw3.fig Wed Dec 31 19:00:00 1969 +++ ns/tbf/draw3.fig Mon Jun 2 19:21:37 2003 @@ -0,0 +1,78 @@ +#FIG 3.2 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6414 1400 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 301 300 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8873 2520 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6791 3248 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 298 1675 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2984 3370 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4446 1993 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5808 636 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3524 2054 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6134 3407 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5986 1648 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4270 1820 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7250 324 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2761 3470 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2783 2199 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8965 822 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 471 1345 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6048 2520 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6785 1904 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5965 3038 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2532 1357 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1860 2908 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1349 770 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5174 29 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5938 28 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4339 3522 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4782 418 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7960 931 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7125 966 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2189 88 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8704 3482 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6215 3347 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4881 513 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2057 1687 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7425 1149 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4051 2190 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 136 2770 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 327 3184 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1024 604 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8730 2785 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2278 2098 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6132 1358 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5202 415 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 134 2407 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4994 2040 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 563 2186 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 760 863 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1833 1061 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3113 1370 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6982 174 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 301 300 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 1349 770 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 2532 1357 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 3524 2054 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 4994 2040 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 5965 3038 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 6791 3248 250 250 1575 1485 1215 1350 +1 3 0 2 12 7 50 0 -1 0.000 1 0.0000 301 300 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 9 7 50 0 -1 0.000 1 0.0000 8704 3482 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350\n diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/draw3.fig.bak ns/tbf/draw3.fig.bak --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/draw3.fig.bak Wed Dec 31 19:00:00 1969 +++ ns/tbf/draw3.fig.bak Mon Jun 2 19:21:37 2003 @@ -0,0 +1,78 @@ +#FIG 3.2 +Landscape +Center +Metric +A4 +100.00 +Single +-2 +1200 2 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6414 1400 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 301 300 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8873 2520 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6791 3248 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 298 1675 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2984 3370 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4446 1993 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5808 636 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3524 2054 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6134 3407 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5986 1648 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4270 1820 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7250 324 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2761 3470 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2783 2199 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8965 822 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 471 1345 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6048 2520 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6785 1904 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5965 3038 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2532 1357 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1860 2908 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1349 770 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5174 29 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5938 28 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4339 3522 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4782 418 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7960 931 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7125 966 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2189 88 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8704 3482 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6215 3347 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4881 513 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2057 1687 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 7425 1149 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4051 2190 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 136 2770 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 327 3184 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1024 604 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 8730 2785 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 2278 2098 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6132 1358 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 5202 415 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 134 2407 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 4994 2040 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 563 2186 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 760 863 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 1833 1061 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 3113 1370 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 6982 174 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 301 300 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 1349 770 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 2532 1357 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 3524 2054 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 4994 2040 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 5965 3038 250 250 1575 1485 1215 1350 +1 3 0 2 4 7 50 0 -1 0.000 1 0.0000 6791 3248 250 250 1575 1485 1215 1350 +1 3 0 2 12 7 50 0 -1 0.000 1 0.0000 301 300 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350 +1 3 0 2 9 7 50 0 -1 0.000 1 0.0000 8704 3482 250 250 1575 1485 1215 1350 +1 3 1 1 0 7 50 0 -1 0.000 1 0.0000 0 0 250 250 1575 1485 1215 1350\n diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/drop.txt ns/tbf/drop.txt --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/drop.txt Wed Dec 31 19:00:00 1969 +++ ns/tbf/drop.txt Mon Jun 2 19:21:37 2003 @@ -0,0 +1,10 @@ + Before Start +Sourcing tbf.tcl : Agent/TBF +set-address-format expanded is obsoleted by 32-bit addressing. +Loading connection pattern... +Loading scenario file... +Load complete... +Starting Simulation... +NS EXITING... +finishing.. +num_nodes is set 50 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/dsrr.tcl ns/tbf/dsrr.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/dsrr.tcl Wed Dec 31 19:00:00 1969 +++ ns/tbf/dsrr.tcl Mon Jun 2 19:21:37 2003 @@ -0,0 +1,290 @@ +# Copyright (c) 1997 Regents of the University of California. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by the Computer Systems +# Engineering Group at Lawrence Berkeley Laboratory. +# 4. Neither the name of the University nor of the Laboratory may be used +# to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $Header: /nfs/jade/vint/CVSROOT/ns-2/tcl/ex/wireless.tcl,v 1.8 2002/12/23 19:16:30 difa Exp $ +# +# Ported from CMU/Monarch's code, nov'98 -Padma. + +# ====================================================================== +# Default Script Options +# ====================================================================== +set opt(chan) Channel/WirelessChannel +set opt(prop) Propagation/TwoRayGround +#set opt(netif) NetIf/SharedMedia +set opt(netif) Phy/WirelessPhy +#set opt(mac) Mac/802_11 +set opt(mac) Mac/802_11 +#set opt(ifq) Queue/DropTail/PriQueue ;# for dsdv +set opt(ifq) CMUPriQueue ;# for dsr +set opt(ll) LL +set opt(ant) Antenna/OmniAntenna + +set opt(x) 670 ;# X dimension of the topography +set opt(y) 670 ;# Y dimension of the topography +set opt(cp) "../mobility/scene/cbr-50-10-4-512" +set opt(sc) "../mobility/scene/scen-670x670-50-600-20-0" + +set opt(ifqlen) 50 ;# max packet in ifq +set opt(nn) 50 ;# number of nodes +set opt(seed) 0.0 +set opt(stop) 1000.0 ;# simulation time +set opt(tr) out.tr ;# trace file +set opt(rp) dsr ;# routing protocol script (dsr or dsdv) +set opt(lm) "off" ;# log movement + +# ====================================================================== + +set AgentTrace ON +set RouterTrace ON +set MacTrace OFF + +LL set mindelay_ 50us +LL set delay_ 25us +LL set bandwidth_ 0 ;# not used + +Agent/Null set sport_ 0 +Agent/Null set dport_ 0 + +Agent/CBR set sport_ 0 +Agent/CBR set dport_ 0 + +Agent/TCPSink set sport_ 0 +Agent/TCPSink set dport_ 0 + +Agent/TCP set sport_ 0 +Agent/TCP set dport_ 0 +Agent/TCP set packetSize_ 1460 + +Queue/DropTail/PriQueue set Prefer_Routing_Protocols 1 + +# unity gain, omni-directional antennas +# set up the antennas to be centered in the node and 1.5 meters above it +Antenna/OmniAntenna set X_ 0 +Antenna/OmniAntenna set Y_ 0 +Antenna/OmniAntenna set Z_ 1.5 +Antenna/OmniAntenna set Gt_ 1.0 +Antenna/OmniAntenna set Gr_ 1.0 + +# Initialize the SharedMedia interface with parameters to make +# it work like the 914MHz Lucent WaveLAN DSSS radio interface +Phy/WirelessPhy set CPThresh_ 10.0 +Phy/WirelessPhy set CSThresh_ 1.559e-11 +Phy/WirelessPhy set RXThresh_ 3.652e-10 +Phy/WirelessPhy set Rb_ 2*1e6 +Phy/WirelessPhy set Pt_ 0.2818 +Phy/WirelessPhy set freq_ 914e+6 +Phy/WirelessPhy set L_ 1.0 + +# ====================================================================== + +proc usage { argv0 } { + puts "Usage: $argv0" + puts "\tmandatory arguments:" + puts "\t\t\[-x MAXX\] \[-y MAXY\]" + puts "\toptional arguments:" + puts "\t\t\[-cp conn pattern\] \[-sc scenario\] \[-nn nodes\]" + puts "\t\t\[-seed seed\] \[-stop sec\] \[-tr tracefile\]\n" +} + + +proc getopt {argc argv} { + global opt + lappend optlist cp nn seed sc stop tr x y + + for {set i 0} {$i < $argc} {incr i} { + set arg [lindex $argv $i] + if {[string range $arg 0 0] != "-"} continue + + set name [string range $arg 1 end] + set opt($name) [lindex $argv [expr $i+1]] + } +} + + +#proc cmu-trace { ttype atype node } { +# global ns_ tracefd +# +# puts ABC +# if { $tracefd == "" } { +# return "" +# } +# puts BCD +# set T [new CMUTrace/$ttype $atype] +# $T target [$ns_ set nullAgent_] +# $T attach $tracefd +# $T set src_ [$node id] +# +# $T node $node +# +# return $T +#} + + + + +proc log-movement {} { + global logtimer ns_ ns + + set ns $ns_ + source ../mobility/timer.tcl + Class LogTimer -superclass Timer + LogTimer instproc timeout {} { + global opt node_; + for {set i 0} {$i < $opt(nn)} {incr i} { + $node_($i) log-movement + } + $self sched 0.1 + } + + set logtimer [new LogTimer] + $logtimer sched 0.1 +} + +# ====================================================================== +# Main Program +# ====================================================================== +getopt $argc $argv + +# +# Source External TCL Scripts +# +#source ../lib/ns-mobilenode.tcl + +#if { $opt(rp) != "" } { + #source ../mobility/$opt(rp).tcl + #} elseif { [catch { set env(NS_PROTO_SCRIPT) } ] == 1 } { + #puts "\nenvironment variable NS_PROTO_SCRIPT not set!\n" + #exit +#} else { + #puts "\n*** using script $env(NS_PROTO_SCRIPT)\n\n"; + #source $env(NS_PROTO_SCRIPT) +#} +#source ../lib/ns-cmutrace.tcl +source ../tcl/lib/ns-bsnode.tcl +source ../tcl/mobility/com.tcl + +# do the get opt again incase the routing protocol file added some more +# options to look for +getopt $argc $argv + +if { $opt(x) == 0 || $opt(y) == 0 } { + usage $argv0 + exit 1 +} + +if {$opt(seed) > 0} { + puts "Seeding Random number generator with $opt(seed)\n" + ns-random $opt(seed) +} + +# +# Initialize Global Variables +# +set ns_ [new Simulator] +set chan [new $opt(chan)] +set prop [new $opt(prop)] +set topo [new Topography] +set tracefd [open $opt(tr) w] + +$topo load_flatgrid $opt(x) $opt(y) + +$prop topography $topo + +# +# Create God +# +set god_ [create-god $opt(nn)] + + +# +# log the mobile nodes movements if desired +# +if { $opt(lm) == "on" } { + log-movement +} + +# +# Create the specified number of nodes $opt(nn) and "attach" them +# the channel. +# Each routing protocol script is expected to have defined a proc +# create-mobile-node that builds a mobile node and inserts it into the +# array global $node_($i) +# + +if { [string compare $opt(rp) "dsr"] == 0} { + for {set i 0} {$i < $opt(nn) } {incr i} { + dsr-create-mobile-node $i + } +} elseif { [string compare $opt(rp) "dsdv"] == 0} { + for {set i 0} {$i < $opt(nn) } {incr i} { + dsdv-create-mobile-node $i + } +} + + + +# +# Source the Connection and Movement scripts +# +if { $opt(cp) == "" } { + puts "*** NOTE: no connection pattern specified." + set opt(cp) "none" +} else { + puts "Loading connection pattern..." + source $opt(cp) +} + + +# +# Tell all the nodes when the simulation ends +# +for {set i 0} {$i < $opt(nn) } {incr i} { + $ns_ at $opt(stop).000000001 "$node_($i) reset"; +} +$ns_ at $opt(stop).00000001 "puts \"NS EXITING...\" ; $ns_ halt" + + +if { $opt(sc) == "" } { + puts "*** NOTE: no scenario file specified." + set opt(sc) "none" +} else { + puts "Loading scenario file..." + source $opt(sc) + puts "Load complete..." +} + +puts $tracefd "M 0.0 nn $opt(nn) x $opt(x) y $opt(y) rp $opt(rp)" +puts $tracefd "M 0.0 sc $opt(sc) cp $opt(cp) seed $opt(seed)" +puts $tracefd "M 0.0 prop $opt(prop) ant $opt(ant)" + +puts "Starting Simulation..." +$ns_ run + diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/dsrresults.pl ns/tbf/dsrresults.pl --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/dsrresults.pl Wed Dec 31 19:00:00 1969 +++ ns/tbf/dsrresults.pl Mon Jun 2 19:21:37 2003 @@ -0,0 +1,12 @@ +#!/usr/bin/perl + + + +# DSR runs + foreach $pau ( 0, 30, 60, 120, 300, 600, 900 ) { + printf ("Running test for pause %d",$pau); + $trname = sprintf ("/mnt/windows/Linux/dsr-pau%d-2.trace", $pau); + + system("../ns dsrr.tcl -x 1500 -y 300 -cp tcp-50nn-20mc-64ps-cp -sc scenfiles/scen-1500x300-50-$pau-20-2 -nn 50 -stop 900 -tr $trname"); + } + diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/r ns/tbf/r --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/r Wed Dec 31 19:00:00 1969 +++ ns/tbf/r Mon Jun 2 19:21:37 2003 @@ -0,0 +1,6 @@ +#!/bin/bash +rm -f count_drop +rm -f count_packet +echo 0 >> count_drop +echo 0 >> count_packet + diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/result.tcl ns/tbf/result.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/result.tcl Wed Dec 31 19:00:00 1969 +++ ns/tbf/result.tcl Mon Jun 2 19:21:37 2003 @@ -0,0 +1,374 @@ +# +# Copyright (c) 1998 University of Southern California. +# All rights reserved. +# +# Redistribution and use in source and binary forms are permitted +# provided that the above copyright notice and this paragraph are +# duplicated in all such forms and that any documentation, advertising +# materials, and other materials related to such distribution and use +# acknowledge that the software was developed by the University of +# Southern California, Information Sciences Institute. The name of the +# University may not be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# + + + +Class TestSuite + +Class Test/tbf -superclass TestSuite +# wireless model using TBF + + +proc usage {} { + global argv0 + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts "Valid Test: tbf" + puts "" + puts stderr "Example : ns result.tcl" + puts stderr "Example : ns result.tcl tbf" + puts stderr "Example : ns result.tcl tbf temp.trace ../tcl/mobility/scene/scen-3-test Mac/802_11" + puts stderr "Example : ns result.tcl tbf temp.trace ../tcl/mobility/scene/scen-3-test Mac/802_11 3.0" + + exit 1 +} + + +proc default_options {} { + global opt + set opt(chan) Channel/WirelessChannel + set opt(prop) Propagation/TwoRayGround + set opt(netif) Phy/WirelessPhy + set opt(mac) Mac/802_11 + set opt(ifq) Queue/DropTail/PriQueue + set opt(ll) LL + set opt(ant) Antenna/OmniAntenna + set opt(x) 500 ;# X dimension of the topography + set opt(y) 500 ;# Y dimension of the topography + set opt(sc) "scenfiles/scen-1500x300-50-0-20-1"; # Can be changed from command line + set opt(cp) "tcp-50nn-20mc-64ps-cp" ; # Not part of options + # Change here if needed + # set opt(cp) "validate.cp" ; + set opt(nn) 50 + set opt(stop) 200.0 + set opt(radius) 250 ;# radius of communication (XXX -- compute it) + set opt(ifqlen) 50 ;# max packet in ifq + set opt(seed) 0.0 + set opt(tr) temp.rands ;# trace file + set opt(lm) "off" ;# log movement + set opt(bint) 1.5 + set opt(bdesync 0.5 + set opt(bexp) 13.5 +} + + +# ===================================================================== +# Other default settings + +set AgentTrace ON +set RouterTrace ON +set MacTrace OFF + +LL set mindelay_ 50us +LL set delay_ 25us +LL set bandwidth_ 0 ;# not used +LL set off_prune_ 0 ;# not used +LL set off_CtrMcast_ 0 ;# not used + +Agent/Null set sport_ 0 +Agent/Null set dport_ 0 + +Agent/CBR set sport_ 0 +Agent/CBR set dport_ 0 + +Agent/TCPSink set sport_ 0 +Agent/TCPSink set dport_ 0 + +Agent/TCP set sport_ 0 +Agent/TCP set dport_ 0 +Agent/TCP set packetSize_ 1460 + +Queue/DropTail/PriQueue set Prefer_Routing_Protocols 0 + +# unity gain, omni-directional antennas +# set up the antennas to be centered in the node and 1.5 meters above it +Antenna/OmniAntenna set X_ 0 +Antenna/OmniAntenna set Y_ 0 +Antenna/OmniAntenna set Z_ 1.5 +Antenna/OmniAntenna set Gt_ 1.0 +Antenna/OmniAntenna set Gr_ 1.0 + +# Initialize the SharedMedia interface with parameters to make +# it work like the 914MHz Lucent WaveLAN DSSS radio interface +Phy/WirelessPhy set CPThresh_ 10.0 +Phy/WirelessPhy set CSThresh_ 1.559e-11 +Phy/WirelessPhy set RXThresh_ 3.652e-10 +Phy/WirelessPhy set Rb_ 2*1e6 +Phy/WirelessPhy set Pt_ 0.2818 +Phy/WirelessPhy set freq_ 914e+6 +Phy/WirelessPhy set L_ 1.0 + +# TBF Specific options +#Agent/TBF set verbose_ 1 +Agent/TBF set use_mac_ 1 +Agent/TBF set use_implicit_beacon_ 1 +# ===================================================================== + +TestSuite instproc init {} { + global opt tracefd topo chan prop + global node_ god_ gkeeper + $self instvar ns_ testName_ + add-packet-header TBF + set ns_ [new Simulator] + if {[string compare $testName_ "dsr"] && \ + [string compare $testName_ "tbf"] } { + $ns_ set-address-format hierarchical + AddrParams set domain_num_ 3 + lappend cluster_num 2 1 1 + AddrParams set cluster_num_ $cluster_num + lappend eilastlevel 1 1 4 1 + AddrParams set nodes_num_ $eilastlevel + } + set chan [new $opt(chan)] + set prop [new $opt(prop)] + set topo [new Topography] + set tracefd [open $opt(tr) w] + + #set opt(rp) $testName_ + $topo load_flatgrid $opt(x) $opt(y) + $prop topography $topo + # + # Create God + # + $self create-god $opt(nn) + + # + # log the mobile nodes movements if desired + # + if { $opt(lm) == "on" } { + $self log-movement + } + + puts $tracefd "M 0.0 nn:$opt(nn) x:$opt(x) y:$opt(y) rp:$opt(rp)" + puts $tracefd "M 0.0 sc:$opt(sc) cp:$opt(cp) seed:$opt(seed)" + puts $tracefd "M 0.0 prop:$opt(prop) ant:$opt(ant)" +} + +TestSuite instproc create_gridkeeper { } { + + global gkeeper opt node_ + + set gkeeper [new GridKeeper] + + #initialize the gridkeeper + + $gkeeper dimension $opt(x) $opt(y) + + # + # add mobile node into the gridkeeper, must be added after + # scenario file + # + + + for {set i 0} {$i < $opt(nn) } {incr i} { + $gkeeper addnode $node_($i) + + $node_($i) radius $opt(radius) + } +} + +Test/tbf instproc init {} { + global opt node_ god_ ldb_ ragent_ MacTrace + $self instvar ns_ testName_ + set testName_ tbf + set opt(rp) tbf + set opt(ragent) Agent/TBF + #set opt(cp) "tcp-50nn-20mc-64ps-cp" + #set opt(cp) "tcp-50-test" + #set opt(sc) "scen-50-test" ; + #set opt(cp) "../tcl/mobility/scene/cbr-50-20-4-512" + #set opt(sc) "../tcl/mobility/scene/scen-670x670-50-600-20-0" ; + + $self next + source ../tcl/mobility/tbf.tcl + $ns_ set-address-format expanded + set ldb_ [new LocDbase] + $ldb_ nnodes $opt(nn) + for {set i 0} {$i < $opt(nn) } {incr i} { + $testName_-create-mobile-node $i +# if { [Agent/TBF set use_mac_] && $MacTrace == "OFF" } { +# set macdropt [cmu-trace Drop "MAC" $node_($i)] +# [$node_($i) set mac_(0)] drop-target $macdropt +# } + $ragent_($i) install-tap [$node_($i) set mac_(0)] + $ldb_ register [$node_($i) address?] $node_($i) + $ragent_($i) ldb $ldb_ + } + puts "Loading connection pattern...$opt(cp)" + source $opt(cp) + + puts "Loading scenario file...$opt(sc)" + source $opt(sc) + puts "Load complete..." + + # + # Tell all the nodes when the simulation ends + # + for {set i 0} {$i < $opt(nn) } {incr i} { + $ns_ at $opt(stop).000000001 "$node_($i) reset"; + } + + $ns_ at $opt(stop).000000001 "puts \"NS EXITING...\" ;" + #$ns_ halt" + $ns_ at $opt(stop).1 "$self finish" +} + +Test/tbf instproc run {} { + $self instvar ns_ + puts "Starting Simulation..." + $ns_ run +} + + + + + + +proc cmu-trace { ttype atype node } { + global ns tracefd + + set ns [Simulator instance] + if { $tracefd == "" } { + return "" + } + set T [new CMUTrace/$ttype $atype] + $T target [$ns set nullAgent_] + $T attach $tracefd + $T set src_ [$node id] + + $T node $node + + return $T +} + +TestSuite instproc finish {} { + $self instvar ns_ + global quiet + + $ns_ flush-trace + #if { !$quiet } { + # puts "running nam..." + # exec nam temp.rands.nam & + #} + puts "finishing.." + exit 0 +} + +TestSuite instproc create-god { nodes } { + global tracefd god_ + $self instvar ns_ + + set god_ [new God] + $god_ num_nodes $nodes +} + +TestSuite instproc log-movement {} { + global ns + $self instvar logtimer_ ns_ + + set ns $ns_ + source ../mobility/timer.tcl + Class LogTimer -superclass Timer + LogTimer instproc timeout {} { + global opt node_; + for {set i 0} {$i < $opt(nn)} {incr i} { + $node_($i) log-movement + } + $self sched 0.1 + } + + set logtimer_ [new LogTimer] + $logtimer_ sched 0.1 +} + +TestSuite instproc create-tcp-traffic {id src dst start} { + $self instvar ns_ + set tcp_($id) [new Agent/TCP] + $tcp_($id) set class_ 2 + set sink_($id) [new Agent/TCPSink] + $ns_ attach-agent $src $tcp_($id) + $ns_ attach-agent $dst $sink_($id) + $ns_ connect $tcp_($id) $sink_($id) + set ftp_($id) [new Application/FTP] + $ftp_($id) attach-agent $tcp_($id) + $ns_ at $start "$ftp_($id) start" + +} + + +TestSuite instproc create-udp-traffic {id src dst start} { + $self instvar ns_ + set udp_($id) [new Agent/UDP] + $ns_ attach-agent $src $udp_($id) + set null_($id) [new Agent/Null] + $ns_ attach-agent $dst $null_($id) + set cbr_($id) [new Application/Traffic/CBR] + $cbr_($id) set packetSize_ 512 + $cbr_($id) set interval_ 4.0 + $cbr_($id) set random_ 1 + $cbr_($id) set maxpkts_ 10000 + $cbr_($id) attach-agent $udp_($id) + $ns_ connect $udp_($id) $null_($id) + $ns_ at $start "$cbr_($id) start" + +} + +proc runtest {arg} { + global quiet opt + set quiet 0 + + set b [llength $arg] + #set test [lindex $arg 3] + #puts $test + if {$b == 0} { + set test "tbf" + } elseif {$b == 4} { + set test [lindex $arg 0] + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + } elseif {$b == 1} { + set test [lindex $arg 0] + } elseif {$b == 4} { + set test [lindex $arg 0] + #if {[string compare $test "tbf"]} { + #usage + #} else + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + } elseif {$b == 5} { + set test [lindex $arg 0] + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + Agent/TBF set bint_ [lindex $arg 4] + Agent/TBF set bexp_ [expr 4.5 * [Agent/TBF set bint_]] + } else { + usage + } + set t [new Test/$test] + $t run +} + +global argv arg0 +default_options +runtest $argv diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/result1 ns/tbf/result1 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/result1 Wed Dec 31 19:00:00 1969 +++ ns/tbf/result1 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,4 @@ +set-address-format expanded is obsoleted by 32-bit addressing. +Loading connection pattern...validate.cp +Loading scenario file...validate.scen +num_nodes is set 50 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/result2 ns/tbf/result2 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/result2 Wed Dec 31 19:00:00 1969 +++ ns/tbf/result2 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,15 @@ +set-address-format expanded is obsoleted by 32-bit addressing. +Loading connection pattern...validate/validate.cp.50.1500.600 +Loading scenario file...validate/validate.scen.50.1500.600 +Load complete... +Starting Simulation... +NS EXITING... +finishing.. +num_nodes is set 50 +1111 50.224234 50.097145 0.000000 +1111 224.853030 128.449392 0.000000 +1111 422.138491 226.167652 0.000000 +1111 587.460193 342.355804 0.000000 +1111 832.485393 340.033590 0.000000 +1111 994.303317 506.484246 0.000000 +1111 1131.926960 541.419465 0.000000 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/results.pl ns/tbf/results.pl --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/results.pl Wed Dec 31 19:00:00 1969 +++ ns/tbf/results.pl Mon Jun 2 19:21:37 2003 @@ -0,0 +1,18 @@ +#!/usr/bin/perl + + + +# TBF runs +#foreach $bint ( 1.0, 1.5, 3.0 ) { + foreach $pau ( 0, 30, 60, 120, 300, 600, 900 ) { + printf ("Running test for pause %d",$pau); + $trname = sprintf ("/mnt/windows/Linux/tbf-pau%d-2.trace", $pau); + system("ns result.tcl tbf $trname scenfiles/scen-1500x300-50-$pau-20-2 Mac/802_11 1.5"); + } +#} + +# DSR runs +#foreach $pau ( 0, 30, 60, 120 ) { +# $trname = sprintf ("dsr-cmu-pau%d-nopr-%s.trace", $pau, $hn); +# system("$nspath/ns $nspath/gpsr/paper-cmu.tcl dsr $trname scen-cmu-pau$pau Mac/802_11"); +#} diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/scen-50-test ns/tbf/scen-50-test --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/scen-50-test Wed Dec 31 19:00:00 1969 +++ ns/tbf/scen-50-test Mon Jun 2 19:21:37 2003 @@ -0,0 +1,6349 @@ +# +# nodes: 50, pause: 20.00, max speed: 10.00 max x = 500.00, max y: 500.00 +# +$node_(0) set X_ 428.844739729470 +$node_(0) set Y_ 237.767813367701 +$node_(0) set Z_ 0.000000000000 +$node_(1) set X_ 417.783980350724 +$node_(1) set Y_ 10.145509874044 +$node_(1) set Z_ 0.000000000000 +$node_(2) set X_ 409.475057425632 +$node_(2) set Y_ 285.260507332670 +$node_(2) set Z_ 0.000000000000 +$node_(3) set X_ 155.867640026954 +$node_(3) set Y_ 268.408104155419 +$node_(3) set Z_ 0.000000000000 +$node_(4) set X_ 220.719887388343 +$node_(4) set Y_ 229.559155820940 +$node_(4) set Z_ 0.000000000000 +$node_(5) set X_ 456.369924225133 +$node_(5) set Y_ 88.753333306101 +$node_(5) set Z_ 0.000000000000 +$node_(6) set X_ 211.578332471730 +$node_(6) set Y_ 445.492191860074 +$node_(6) set Z_ 0.000000000000 +$node_(7) set X_ 496.716277864060 +$node_(7) set Y_ 282.837103547090 +$node_(7) set Z_ 0.000000000000 +$node_(8) set X_ 330.315289251874 +$node_(8) set Y_ 314.273544091009 +$node_(8) set Z_ 0.000000000000 +$node_(9) set X_ 83.795694734320 +$node_(9) set Y_ 229.869043993010 +$node_(9) set Z_ 0.000000000000 +$node_(10) set X_ 316.485341249255 +$node_(10) set Y_ 179.802422737448 +$node_(10) set Z_ 0.000000000000 +$node_(11) set X_ 309.082116533322 +$node_(11) set Y_ 474.957117762203 +$node_(11) set Z_ 0.000000000000 +$node_(12) set X_ 322.844149929374 +$node_(12) set Y_ 14.509153905768 +$node_(12) set Z_ 0.000000000000 +$node_(13) set X_ 256.608592084280 +$node_(13) set Y_ 1.994573142117 +$node_(13) set Z_ 0.000000000000 +$node_(14) set X_ 298.387624804076 +$node_(14) set Y_ 276.826171223038 +$node_(14) set Z_ 0.000000000000 +$node_(15) set X_ 456.568255779845 +$node_(15) set Y_ 475.153823809697 +$node_(15) set Z_ 0.000000000000 +$node_(16) set X_ 363.170313774474 +$node_(16) set Y_ 254.970849266727 +$node_(16) set Z_ 0.000000000000 +$node_(17) set X_ 345.763158034239 +$node_(17) set Y_ 231.734741642332 +$node_(17) set Z_ 0.000000000000 +$node_(18) set X_ 17.659404937447 +$node_(18) set Y_ 97.540314725690 +$node_(18) set Z_ 0.000000000000 +$node_(19) set X_ 389.080023958498 +$node_(19) set Y_ 466.097716462874 +$node_(19) set Z_ 0.000000000000 +$node_(20) set X_ 337.878232071798 +$node_(20) set Y_ 390.136392821644 +$node_(20) set Z_ 0.000000000000 +$node_(21) set X_ 211.773695435591 +$node_(21) set Y_ 92.870119567258 +$node_(21) set Z_ 0.000000000000 +$node_(22) set X_ 7.049859610007 +$node_(22) set Y_ 290.653432592730 +$node_(22) set Z_ 0.000000000000 +$node_(23) set X_ 477.513952255925 +$node_(23) set Y_ 436.256740531279 +$node_(23) set Z_ 0.000000000000 +$node_(24) set X_ 207.726390032817 +$node_(24) set Y_ 363.049090261155 +$node_(24) set Z_ 0.000000000000 +$node_(25) set X_ 457.963996626556 +$node_(25) set Y_ 235.744412530874 +$node_(25) set Z_ 0.000000000000 +$node_(26) set X_ 121.411017317672 +$node_(26) set Y_ 271.027387090422 +$node_(26) set Z_ 0.000000000000 +$node_(27) set X_ 413.703042094184 +$node_(27) set Y_ 148.854795718053 +$node_(27) set Z_ 0.000000000000 +$node_(28) set X_ 160.759488804725 +$node_(28) set Y_ 368.261861637809 +$node_(28) set Z_ 0.000000000000 +$node_(29) set X_ 330.723935922277 +$node_(29) set Y_ 369.434763989977 +$node_(29) set Z_ 0.000000000000 +$node_(30) set X_ 20.211902145314 +$node_(30) set Y_ 196.982183836469 +$node_(30) set Z_ 0.000000000000 +$node_(31) set X_ 329.591148080062 +$node_(31) set Y_ 443.693505667208 +$node_(31) set Z_ 0.000000000000 +$node_(32) set X_ 94.063642217135 +$node_(32) set Y_ 465.933129753473 +$node_(32) set Z_ 0.000000000000 +$node_(33) set X_ 278.123235760637 +$node_(33) set Y_ 131.266289112016 +$node_(33) set Z_ 0.000000000000 +$node_(34) set X_ 56.238567386200 +$node_(34) set Y_ 412.078955609450 +$node_(34) set Z_ 0.000000000000 +$node_(35) set X_ 295.821486863044 +$node_(35) set Y_ 18.376054317276 +$node_(35) set Z_ 0.000000000000 +$node_(36) set X_ 149.796954974943 +$node_(36) set Y_ 103.170209787647 +$node_(36) set Z_ 0.000000000000 +$node_(37) set X_ 136.876440832927 +$node_(37) set Y_ 145.999351485601 +$node_(37) set Z_ 0.000000000000 +$node_(38) set X_ 160.749894668343 +$node_(38) set Y_ 296.428205831225 +$node_(38) set Z_ 0.000000000000 +$node_(39) set X_ 62.262060458425 +$node_(39) set Y_ 257.407493433160 +$node_(39) set Z_ 0.000000000000 +$node_(40) set X_ 164.764671300317 +$node_(40) set Y_ 101.070864829873 +$node_(40) set Z_ 0.000000000000 +$node_(41) set X_ 85.391727220611 +$node_(41) set Y_ 167.513555577681 +$node_(41) set Z_ 0.000000000000 +$node_(42) set X_ 357.959782228720 +$node_(42) set Y_ 93.864709377256 +$node_(42) set Z_ 0.000000000000 +$node_(43) set X_ 306.964788550668 +$node_(43) set Y_ 483.267572480174 +$node_(43) set Z_ 0.000000000000 +$node_(44) set X_ 181.248802039714 +$node_(44) set Y_ 231.837782362071 +$node_(44) set Z_ 0.000000000000 +$node_(45) set X_ 347.832803230086 +$node_(45) set Y_ 405.702918159358 +$node_(45) set Z_ 0.000000000000 +$node_(46) set X_ 150.233634106954 +$node_(46) set Y_ 16.098997404005 +$node_(46) set Z_ 0.000000000000 +$node_(47) set X_ 144.604015764230 +$node_(47) set Y_ 224.845723777057 +$node_(47) set Z_ 0.000000000000 +$node_(48) set X_ 110.194268617874 +$node_(48) set Y_ 322.304134382694 +$node_(48) set Z_ 0.000000000000 +$node_(49) set X_ 222.910032576250 +$node_(49) set Y_ 152.317878949018 +$node_(49) set Z_ 0.000000000000 +$god_ set-dist 0 1 1 +$god_ set-dist 0 2 1 +$god_ set-dist 0 3 2 +$god_ set-dist 0 4 1 +$god_ set-dist 0 5 1 +$god_ set-dist 0 6 2 +$god_ set-dist 0 7 1 +$god_ set-dist 0 8 1 +$god_ set-dist 0 9 2 +$god_ set-dist 0 10 1 +$god_ set-dist 0 11 2 +$god_ set-dist 0 12 1 +$god_ set-dist 0 13 2 +$god_ set-dist 0 14 1 +$god_ set-dist 0 15 1 +$god_ set-dist 0 16 1 +$god_ set-dist 0 17 1 +$god_ set-dist 0 18 2 +$god_ set-dist 0 19 1 +$god_ set-dist 0 20 1 +$god_ set-dist 0 21 2 +$god_ set-dist 0 22 2 +$god_ set-dist 0 23 1 +$god_ set-dist 0 24 2 +$god_ set-dist 0 25 1 +$god_ set-dist 0 26 2 +$god_ set-dist 0 27 1 +$god_ set-dist 0 28 2 +$god_ set-dist 0 29 1 +$god_ set-dist 0 30 2 +$god_ set-dist 0 31 1 +$god_ set-dist 0 32 2 +$god_ set-dist 0 33 1 +$god_ set-dist 0 34 2 +$god_ set-dist 0 35 2 +$god_ set-dist 0 36 2 +$god_ set-dist 0 37 2 +$god_ set-dist 0 38 2 +$god_ set-dist 0 39 2 +$god_ set-dist 0 40 2 +$god_ set-dist 0 41 2 +$god_ set-dist 0 42 1 +$god_ set-dist 0 43 2 +$god_ set-dist 0 44 1 +$god_ set-dist 0 45 1 +$god_ set-dist 0 46 2 +$god_ set-dist 0 47 2 +$god_ set-dist 0 48 2 +$god_ set-dist 0 49 1 +$god_ set-dist 1 2 2 +$god_ set-dist 1 3 2 +$god_ set-dist 1 4 2 +$god_ set-dist 1 5 1 +$god_ set-dist 1 6 3 +$god_ set-dist 1 7 2 +$god_ set-dist 1 8 2 +$god_ set-dist 1 9 2 +$god_ set-dist 1 10 1 +$god_ set-dist 1 11 2 +$god_ set-dist 1 12 1 +$god_ set-dist 1 13 1 +$god_ set-dist 1 14 2 +$god_ set-dist 1 15 2 +$god_ set-dist 1 16 2 +$god_ set-dist 1 17 1 +$god_ set-dist 1 18 2 +$god_ set-dist 1 19 2 +$god_ set-dist 1 20 2 +$god_ set-dist 1 21 1 +$god_ set-dist 1 22 3 +$god_ set-dist 1 23 2 +$god_ set-dist 1 24 2 +$god_ set-dist 1 25 1 +$god_ set-dist 1 26 2 +$god_ set-dist 1 27 1 +$god_ set-dist 1 28 2 +$god_ set-dist 1 29 2 +$god_ set-dist 1 30 2 +$god_ set-dist 1 31 2 +$god_ set-dist 1 32 3 +$god_ set-dist 1 33 1 +$god_ set-dist 1 34 3 +$god_ set-dist 1 35 1 +$god_ set-dist 1 36 2 +$god_ set-dist 1 37 2 +$god_ set-dist 1 38 2 +$god_ set-dist 1 39 2 +$god_ set-dist 1 40 2 +$god_ set-dist 1 41 2 +$god_ set-dist 1 42 1 +$god_ set-dist 1 43 3 +$god_ set-dist 1 44 2 +$god_ set-dist 1 45 2 +$god_ set-dist 1 46 2 +$god_ set-dist 1 47 2 +$god_ set-dist 1 48 2 +$god_ set-dist 1 49 1 +$god_ set-dist 2 3 2 +$god_ set-dist 2 4 1 +$god_ set-dist 2 5 1 +$god_ set-dist 2 6 2 +$god_ set-dist 2 7 1 +$god_ set-dist 2 8 1 +$god_ set-dist 2 9 2 +$god_ set-dist 2 10 1 +$god_ set-dist 2 11 1 +$god_ set-dist 2 12 2 +$god_ set-dist 2 13 2 +$god_ set-dist 2 14 1 +$god_ set-dist 2 15 1 +$god_ set-dist 2 16 1 +$god_ set-dist 2 17 1 +$god_ set-dist 2 18 2 +$god_ set-dist 2 19 1 +$god_ set-dist 2 20 1 +$god_ set-dist 2 21 2 +$god_ set-dist 2 22 2 +$god_ set-dist 2 23 1 +$god_ set-dist 2 24 1 +$god_ set-dist 2 25 1 +$god_ set-dist 2 26 2 +$god_ set-dist 2 27 1 +$god_ set-dist 2 28 2 +$god_ set-dist 2 29 1 +$god_ set-dist 2 30 2 +$god_ set-dist 2 31 1 +$god_ set-dist 2 32 2 +$god_ set-dist 2 33 1 +$god_ set-dist 2 34 2 +$god_ set-dist 2 35 2 +$god_ set-dist 2 36 2 +$god_ set-dist 2 37 2 +$god_ set-dist 2 38 1 +$god_ set-dist 2 39 2 +$god_ set-dist 2 40 2 +$god_ set-dist 2 41 2 +$god_ set-dist 2 42 1 +$god_ set-dist 2 43 1 +$god_ set-dist 2 44 1 +$god_ set-dist 2 45 1 +$god_ set-dist 2 46 2 +$god_ set-dist 2 47 2 +$god_ set-dist 2 48 2 +$god_ set-dist 2 49 1 +$god_ set-dist 3 4 1 +$god_ set-dist 3 5 2 +$god_ set-dist 3 6 1 +$god_ set-dist 3 7 2 +$god_ set-dist 3 8 1 +$god_ set-dist 3 9 1 +$god_ set-dist 3 10 1 +$god_ set-dist 3 11 2 +$god_ set-dist 3 12 2 +$god_ set-dist 3 13 2 +$god_ set-dist 3 14 1 +$god_ set-dist 3 15 2 +$god_ set-dist 3 16 1 +$god_ set-dist 3 17 1 +$god_ set-dist 3 18 1 +$god_ set-dist 3 19 2 +$god_ set-dist 3 20 1 +$god_ set-dist 3 21 1 +$god_ set-dist 3 22 1 +$god_ set-dist 3 23 2 +$god_ set-dist 3 24 1 +$god_ set-dist 3 25 2 +$god_ set-dist 3 26 1 +$god_ set-dist 3 27 2 +$god_ set-dist 3 28 1 +$god_ set-dist 3 29 1 +$god_ set-dist 3 30 1 +$god_ set-dist 3 31 1 +$god_ set-dist 3 32 1 +$god_ set-dist 3 33 1 +$god_ set-dist 3 34 1 +$god_ set-dist 3 35 2 +$god_ set-dist 3 36 1 +$god_ set-dist 3 37 1 +$god_ set-dist 3 38 1 +$god_ set-dist 3 39 1 +$god_ set-dist 3 40 1 +$god_ set-dist 3 41 1 +$god_ set-dist 3 42 2 +$god_ set-dist 3 43 2 +$god_ set-dist 3 44 1 +$god_ set-dist 3 45 1 +$god_ set-dist 3 46 2 +$god_ set-dist 3 47 1 +$god_ set-dist 3 48 1 +$god_ set-dist 3 49 1 +$god_ set-dist 4 5 2 +$god_ set-dist 4 6 1 +$god_ set-dist 4 7 2 +$god_ set-dist 4 8 1 +$god_ set-dist 4 9 1 +$god_ set-dist 4 10 1 +$god_ set-dist 4 11 2 +$god_ set-dist 4 12 1 +$god_ set-dist 4 13 1 +$god_ set-dist 4 14 1 +$god_ set-dist 4 15 2 +$god_ set-dist 4 16 1 +$god_ set-dist 4 17 1 +$god_ set-dist 4 18 1 +$god_ set-dist 4 19 2 +$god_ set-dist 4 20 1 +$god_ set-dist 4 21 1 +$god_ set-dist 4 22 1 +$god_ set-dist 4 23 2 +$god_ set-dist 4 24 1 +$god_ set-dist 4 25 1 +$god_ set-dist 4 26 1 +$god_ set-dist 4 27 1 +$god_ set-dist 4 28 1 +$god_ set-dist 4 29 1 +$god_ set-dist 4 30 1 +$god_ set-dist 4 31 1 +$god_ set-dist 4 32 2 +$god_ set-dist 4 33 1 +$god_ set-dist 4 34 1 +$god_ set-dist 4 35 1 +$god_ set-dist 4 36 1 +$god_ set-dist 4 37 1 +$god_ set-dist 4 38 1 +$god_ set-dist 4 39 1 +$god_ set-dist 4 40 1 +$god_ set-dist 4 41 1 +$god_ set-dist 4 42 1 +$god_ set-dist 4 43 2 +$god_ set-dist 4 44 1 +$god_ set-dist 4 45 1 +$god_ set-dist 4 46 1 +$god_ set-dist 4 47 1 +$god_ set-dist 4 48 1 +$god_ set-dist 4 49 1 +$god_ set-dist 5 6 2 +$god_ set-dist 5 7 1 +$god_ set-dist 5 8 2 +$god_ set-dist 5 9 2 +$god_ set-dist 5 10 1 +$god_ set-dist 5 11 2 +$god_ set-dist 5 12 1 +$god_ set-dist 5 13 1 +$god_ set-dist 5 14 1 +$god_ set-dist 5 15 2 +$god_ set-dist 5 16 1 +$god_ set-dist 5 17 1 +$god_ set-dist 5 18 2 +$god_ set-dist 5 19 2 +$god_ set-dist 5 20 2 +$god_ set-dist 5 21 1 +$god_ set-dist 5 22 3 +$god_ set-dist 5 23 2 +$god_ set-dist 5 24 2 +$god_ set-dist 5 25 1 +$god_ set-dist 5 26 2 +$god_ set-dist 5 27 1 +$god_ set-dist 5 28 2 +$god_ set-dist 5 29 2 +$god_ set-dist 5 30 2 +$god_ set-dist 5 31 2 +$god_ set-dist 5 32 3 +$god_ set-dist 5 33 1 +$god_ set-dist 5 34 3 +$god_ set-dist 5 35 1 +$god_ set-dist 5 36 2 +$god_ set-dist 5 37 2 +$god_ set-dist 5 38 2 +$god_ set-dist 5 39 2 +$god_ set-dist 5 40 2 +$god_ set-dist 5 41 2 +$god_ set-dist 5 42 1 +$god_ set-dist 5 43 2 +$god_ set-dist 5 44 2 +$god_ set-dist 5 45 2 +$god_ set-dist 5 46 2 +$god_ set-dist 5 47 2 +$god_ set-dist 5 48 2 +$god_ set-dist 5 49 1 +$god_ set-dist 6 7 2 +$god_ set-dist 6 8 1 +$god_ set-dist 6 9 2 +$god_ set-dist 6 10 2 +$god_ set-dist 6 11 1 +$god_ set-dist 6 12 2 +$god_ set-dist 6 13 2 +$god_ set-dist 6 14 1 +$god_ set-dist 6 15 1 +$god_ set-dist 6 16 1 +$god_ set-dist 6 17 2 +$god_ set-dist 6 18 2 +$god_ set-dist 6 19 1 +$god_ set-dist 6 20 1 +$god_ set-dist 6 21 2 +$god_ set-dist 6 22 2 +$god_ set-dist 6 23 2 +$god_ set-dist 6 24 1 +$god_ set-dist 6 25 2 +$god_ set-dist 6 26 1 +$god_ set-dist 6 27 2 +$god_ set-dist 6 28 1 +$god_ set-dist 6 29 1 +$god_ set-dist 6 30 2 +$god_ set-dist 6 31 1 +$god_ set-dist 6 32 1 +$god_ set-dist 6 33 2 +$god_ set-dist 6 34 1 +$god_ set-dist 6 35 2 +$god_ set-dist 6 36 2 +$god_ set-dist 6 37 2 +$god_ set-dist 6 38 1 +$god_ set-dist 6 39 1 +$god_ set-dist 6 40 2 +$god_ set-dist 6 41 2 +$god_ set-dist 6 42 2 +$god_ set-dist 6 43 1 +$god_ set-dist 6 44 1 +$god_ set-dist 6 45 1 +$god_ set-dist 6 46 2 +$god_ set-dist 6 47 1 +$god_ set-dist 6 48 1 +$god_ set-dist 6 49 2 +$god_ set-dist 7 8 1 +$god_ set-dist 7 9 2 +$god_ set-dist 7 10 1 +$god_ set-dist 7 11 2 +$god_ set-dist 7 12 2 +$god_ set-dist 7 13 2 +$god_ set-dist 7 14 1 +$god_ set-dist 7 15 1 +$god_ set-dist 7 16 1 +$god_ set-dist 7 17 1 +$god_ set-dist 7 18 3 +$god_ set-dist 7 19 1 +$god_ set-dist 7 20 1 +$god_ set-dist 7 21 2 +$god_ set-dist 7 22 3 +$god_ set-dist 7 23 1 +$god_ set-dist 7 24 2 +$god_ set-dist 7 25 1 +$god_ set-dist 7 26 2 +$god_ set-dist 7 27 1 +$god_ set-dist 7 28 2 +$god_ set-dist 7 29 1 +$god_ set-dist 7 30 3 +$god_ set-dist 7 31 1 +$god_ set-dist 7 32 2 +$god_ set-dist 7 33 2 +$god_ set-dist 7 34 3 +$god_ set-dist 7 35 2 +$god_ set-dist 7 36 2 +$god_ set-dist 7 37 2 +$god_ set-dist 7 38 2 +$god_ set-dist 7 39 2 +$god_ set-dist 7 40 2 +$god_ set-dist 7 41 2 +$god_ set-dist 7 42 1 +$god_ set-dist 7 43 2 +$god_ set-dist 7 44 2 +$god_ set-dist 7 45 1 +$god_ set-dist 7 46 2 +$god_ set-dist 7 47 2 +$god_ set-dist 7 48 2 +$god_ set-dist 7 49 2 +$god_ set-dist 8 9 2 +$god_ set-dist 8 10 1 +$god_ set-dist 8 11 1 +$god_ set-dist 8 12 2 +$god_ set-dist 8 13 2 +$god_ set-dist 8 14 1 +$god_ set-dist 8 15 1 +$god_ set-dist 8 16 1 +$god_ set-dist 8 17 1 +$god_ set-dist 8 18 2 +$god_ set-dist 8 19 1 +$god_ set-dist 8 20 1 +$god_ set-dist 8 21 2 +$god_ set-dist 8 22 2 +$god_ set-dist 8 23 1 +$god_ set-dist 8 24 1 +$god_ set-dist 8 25 1 +$god_ set-dist 8 26 1 +$god_ set-dist 8 27 1 +$god_ set-dist 8 28 1 +$god_ set-dist 8 29 1 +$god_ set-dist 8 30 2 +$god_ set-dist 8 31 1 +$god_ set-dist 8 32 2 +$god_ set-dist 8 33 1 +$god_ set-dist 8 34 2 +$god_ set-dist 8 35 2 +$god_ set-dist 8 36 2 +$god_ set-dist 8 37 2 +$god_ set-dist 8 38 1 +$god_ set-dist 8 39 2 +$god_ set-dist 8 40 2 +$god_ set-dist 8 41 2 +$god_ set-dist 8 42 1 +$god_ set-dist 8 43 1 +$god_ set-dist 8 44 1 +$god_ set-dist 8 45 1 +$god_ set-dist 8 46 2 +$god_ set-dist 8 47 1 +$god_ set-dist 8 48 1 +$god_ set-dist 8 49 1 +$god_ set-dist 9 10 1 +$god_ set-dist 9 11 2 +$god_ set-dist 9 12 2 +$god_ set-dist 9 13 2 +$god_ set-dist 9 14 1 +$god_ set-dist 9 15 3 +$god_ set-dist 9 16 2 +$god_ set-dist 9 17 2 +$god_ set-dist 9 18 1 +$god_ set-dist 9 19 2 +$god_ set-dist 9 20 2 +$god_ set-dist 9 21 1 +$god_ set-dist 9 22 1 +$god_ set-dist 9 23 2 +$god_ set-dist 9 24 1 +$god_ set-dist 9 25 2 +$god_ set-dist 9 26 1 +$god_ set-dist 9 27 2 +$god_ set-dist 9 28 1 +$god_ set-dist 9 29 2 +$god_ set-dist 9 30 1 +$god_ set-dist 9 31 2 +$god_ set-dist 9 32 1 +$god_ set-dist 9 33 1 +$god_ set-dist 9 34 1 +$god_ set-dist 9 35 2 +$god_ set-dist 9 36 1 +$god_ set-dist 9 37 1 +$god_ set-dist 9 38 1 +$god_ set-dist 9 39 1 +$god_ set-dist 9 40 1 +$god_ set-dist 9 41 1 +$god_ set-dist 9 42 2 +$god_ set-dist 9 43 2 +$god_ set-dist 9 44 1 +$god_ set-dist 9 45 2 +$god_ set-dist 9 46 1 +$god_ set-dist 9 47 1 +$god_ set-dist 9 48 1 +$god_ set-dist 9 49 1 +$god_ set-dist 10 11 2 +$god_ set-dist 10 12 1 +$god_ set-dist 10 13 1 +$god_ set-dist 10 14 1 +$god_ set-dist 10 15 2 +$god_ set-dist 10 16 1 +$god_ set-dist 10 17 1 +$god_ set-dist 10 18 2 +$god_ set-dist 10 19 2 +$god_ set-dist 10 20 1 +$god_ set-dist 10 21 1 +$god_ set-dist 10 22 2 +$god_ set-dist 10 23 2 +$god_ set-dist 10 24 1 +$god_ set-dist 10 25 1 +$god_ set-dist 10 26 1 +$god_ set-dist 10 27 1 +$god_ set-dist 10 28 1 +$god_ set-dist 10 29 1 +$god_ set-dist 10 30 2 +$god_ set-dist 10 31 2 +$god_ set-dist 10 32 2 +$god_ set-dist 10 33 1 +$god_ set-dist 10 34 2 +$god_ set-dist 10 35 1 +$god_ set-dist 10 36 1 +$god_ set-dist 10 37 1 +$god_ set-dist 10 38 1 +$god_ set-dist 10 39 2 +$god_ set-dist 10 40 1 +$god_ set-dist 10 41 1 +$god_ set-dist 10 42 1 +$god_ set-dist 10 43 2 +$god_ set-dist 10 44 1 +$god_ set-dist 10 45 1 +$god_ set-dist 10 46 1 +$god_ set-dist 10 47 1 +$god_ set-dist 10 48 2 +$god_ set-dist 10 49 1 +$god_ set-dist 11 12 2 +$god_ set-dist 11 13 2 +$god_ set-dist 11 14 1 +$god_ set-dist 11 15 1 +$god_ set-dist 11 16 1 +$god_ set-dist 11 17 1 +$god_ set-dist 11 18 2 +$god_ set-dist 11 19 1 +$god_ set-dist 11 20 1 +$god_ set-dist 11 21 2 +$god_ set-dist 11 22 2 +$god_ set-dist 11 23 1 +$god_ set-dist 11 24 1 +$god_ set-dist 11 25 2 +$god_ set-dist 11 26 2 +$god_ set-dist 11 27 2 +$god_ set-dist 11 28 1 +$god_ set-dist 11 29 1 +$god_ set-dist 11 30 2 +$god_ set-dist 11 31 1 +$god_ set-dist 11 32 1 +$god_ set-dist 11 33 2 +$god_ set-dist 11 34 2 +$god_ set-dist 11 35 2 +$god_ set-dist 11 36 2 +$god_ set-dist 11 37 2 +$god_ set-dist 11 38 1 +$god_ set-dist 11 39 2 +$god_ set-dist 11 40 2 +$god_ set-dist 11 41 2 +$god_ set-dist 11 42 2 +$god_ set-dist 11 43 1 +$god_ set-dist 11 44 2 +$god_ set-dist 11 45 1 +$god_ set-dist 11 46 3 +$god_ set-dist 11 47 2 +$god_ set-dist 11 48 2 +$god_ set-dist 11 49 2 +$god_ set-dist 12 13 1 +$god_ set-dist 12 14 2 +$god_ set-dist 12 15 2 +$god_ set-dist 12 16 1 +$god_ set-dist 12 17 1 +$god_ set-dist 12 18 2 +$god_ set-dist 12 19 2 +$god_ set-dist 12 20 2 +$god_ set-dist 12 21 1 +$god_ set-dist 12 22 2 +$god_ set-dist 12 23 2 +$god_ set-dist 12 24 2 +$god_ set-dist 12 25 2 +$god_ set-dist 12 26 2 +$god_ set-dist 12 27 1 +$god_ set-dist 12 28 2 +$god_ set-dist 12 29 2 +$god_ set-dist 12 30 2 +$god_ set-dist 12 31 2 +$god_ set-dist 12 32 3 +$god_ set-dist 12 33 1 +$god_ set-dist 12 34 2 +$god_ set-dist 12 35 1 +$god_ set-dist 12 36 1 +$god_ set-dist 12 37 1 +$god_ set-dist 12 38 2 +$god_ set-dist 12 39 2 +$god_ set-dist 12 40 1 +$god_ set-dist 12 41 2 +$god_ set-dist 12 42 1 +$god_ set-dist 12 43 2 +$god_ set-dist 12 44 2 +$god_ set-dist 12 45 2 +$god_ set-dist 12 46 1 +$god_ set-dist 12 47 2 +$god_ set-dist 12 48 2 +$god_ set-dist 12 49 1 +$god_ set-dist 13 14 2 +$god_ set-dist 13 15 3 +$god_ set-dist 13 16 2 +$god_ set-dist 13 17 1 +$god_ set-dist 13 18 2 +$god_ set-dist 13 19 2 +$god_ set-dist 13 20 2 +$god_ set-dist 13 21 1 +$god_ set-dist 13 22 2 +$god_ set-dist 13 23 2 +$god_ set-dist 13 24 2 +$god_ set-dist 13 25 2 +$god_ set-dist 13 26 2 +$god_ set-dist 13 27 1 +$god_ set-dist 13 28 2 +$god_ set-dist 13 29 2 +$god_ set-dist 13 30 2 +$god_ set-dist 13 31 2 +$god_ set-dist 13 32 2 +$god_ set-dist 13 33 1 +$god_ set-dist 13 34 2 +$god_ set-dist 13 35 1 +$god_ set-dist 13 36 1 +$god_ set-dist 13 37 1 +$god_ set-dist 13 38 2 +$god_ set-dist 13 39 2 +$god_ set-dist 13 40 1 +$god_ set-dist 13 41 1 +$god_ set-dist 13 42 1 +$god_ set-dist 13 43 3 +$god_ set-dist 13 44 1 +$god_ set-dist 13 45 2 +$god_ set-dist 13 46 1 +$god_ set-dist 13 47 1 +$god_ set-dist 13 48 2 +$god_ set-dist 13 49 1 +$god_ set-dist 14 15 2 +$god_ set-dist 14 16 1 +$god_ set-dist 14 17 1 +$god_ set-dist 14 18 2 +$god_ set-dist 14 19 1 +$god_ set-dist 14 20 1 +$god_ set-dist 14 21 1 +$god_ set-dist 14 22 2 +$god_ set-dist 14 23 1 +$god_ set-dist 14 24 1 +$god_ set-dist 14 25 1 +$god_ set-dist 14 26 1 +$god_ set-dist 14 27 1 +$god_ set-dist 14 28 1 +$god_ set-dist 14 29 1 +$god_ set-dist 14 30 2 +$god_ set-dist 14 31 1 +$god_ set-dist 14 32 2 +$god_ set-dist 14 33 1 +$god_ set-dist 14 34 2 +$god_ set-dist 14 35 2 +$god_ set-dist 14 36 1 +$god_ set-dist 14 37 1 +$god_ set-dist 14 38 1 +$god_ set-dist 14 39 1 +$god_ set-dist 14 40 1 +$god_ set-dist 14 41 1 +$god_ set-dist 14 42 1 +$god_ set-dist 14 43 1 +$god_ set-dist 14 44 1 +$god_ set-dist 14 45 1 +$god_ set-dist 14 46 2 +$god_ set-dist 14 47 1 +$god_ set-dist 14 48 1 +$god_ set-dist 14 49 1 +$god_ set-dist 15 16 1 +$god_ set-dist 15 17 2 +$god_ set-dist 15 18 3 +$god_ set-dist 15 19 1 +$god_ set-dist 15 20 1 +$god_ set-dist 15 21 2 +$god_ set-dist 15 22 3 +$god_ set-dist 15 23 1 +$god_ set-dist 15 24 2 +$god_ set-dist 15 25 1 +$god_ set-dist 15 26 2 +$god_ set-dist 15 27 2 +$god_ set-dist 15 28 2 +$god_ set-dist 15 29 1 +$god_ set-dist 15 30 3 +$god_ set-dist 15 31 1 +$god_ set-dist 15 32 2 +$god_ set-dist 15 33 2 +$god_ set-dist 15 34 2 +$god_ set-dist 15 35 2 +$god_ set-dist 15 36 3 +$god_ set-dist 15 37 3 +$god_ set-dist 15 38 2 +$god_ set-dist 15 39 2 +$god_ set-dist 15 40 3 +$god_ set-dist 15 41 3 +$god_ set-dist 15 42 2 +$god_ set-dist 15 43 1 +$god_ set-dist 15 44 2 +$god_ set-dist 15 45 1 +$god_ set-dist 15 46 3 +$god_ set-dist 15 47 2 +$god_ set-dist 15 48 2 +$god_ set-dist 15 49 2 +$god_ set-dist 16 17 1 +$god_ set-dist 16 18 2 +$god_ set-dist 16 19 1 +$god_ set-dist 16 20 1 +$god_ set-dist 16 21 1 +$god_ set-dist 16 22 2 +$god_ set-dist 16 23 1 +$god_ set-dist 16 24 1 +$god_ set-dist 16 25 1 +$god_ set-dist 16 26 1 +$god_ set-dist 16 27 1 +$god_ set-dist 16 28 1 +$god_ set-dist 16 29 1 +$god_ set-dist 16 30 2 +$god_ set-dist 16 31 1 +$god_ set-dist 16 32 2 +$god_ set-dist 16 33 1 +$god_ set-dist 16 34 2 +$god_ set-dist 16 35 1 +$god_ set-dist 16 36 2 +$god_ set-dist 16 37 2 +$god_ set-dist 16 38 1 +$god_ set-dist 16 39 2 +$god_ set-dist 16 40 2 +$god_ set-dist 16 41 2 +$god_ set-dist 16 42 1 +$god_ set-dist 16 43 1 +$god_ set-dist 16 44 1 +$god_ set-dist 16 45 1 +$god_ set-dist 16 46 2 +$god_ set-dist 16 47 1 +$god_ set-dist 16 48 2 +$god_ set-dist 16 49 1 +$god_ set-dist 17 18 2 +$god_ set-dist 17 19 1 +$god_ set-dist 17 20 1 +$god_ set-dist 17 21 1 +$god_ set-dist 17 22 2 +$god_ set-dist 17 23 1 +$god_ set-dist 17 24 1 +$god_ set-dist 17 25 1 +$god_ set-dist 17 26 1 +$god_ set-dist 17 27 1 +$god_ set-dist 17 28 1 +$god_ set-dist 17 29 1 +$god_ set-dist 17 30 2 +$god_ set-dist 17 31 1 +$god_ set-dist 17 32 2 +$god_ set-dist 17 33 1 +$god_ set-dist 17 34 2 +$god_ set-dist 17 35 1 +$god_ set-dist 17 36 1 +$god_ set-dist 17 37 1 +$god_ set-dist 17 38 1 +$god_ set-dist 17 39 2 +$god_ set-dist 17 40 1 +$god_ set-dist 17 41 2 +$god_ set-dist 17 42 1 +$god_ set-dist 17 43 2 +$god_ set-dist 17 44 1 +$god_ set-dist 17 45 1 +$god_ set-dist 17 46 2 +$god_ set-dist 17 47 1 +$god_ set-dist 17 48 2 +$god_ set-dist 17 49 1 +$god_ set-dist 18 19 3 +$god_ set-dist 18 20 2 +$god_ set-dist 18 21 1 +$god_ set-dist 18 22 1 +$god_ set-dist 18 23 3 +$god_ set-dist 18 24 2 +$god_ set-dist 18 25 2 +$god_ set-dist 18 26 1 +$god_ set-dist 18 27 2 +$god_ set-dist 18 28 2 +$god_ set-dist 18 29 2 +$god_ set-dist 18 30 1 +$god_ set-dist 18 31 2 +$god_ set-dist 18 32 2 +$god_ set-dist 18 33 2 +$god_ set-dist 18 34 2 +$god_ set-dist 18 35 2 +$god_ set-dist 18 36 1 +$god_ set-dist 18 37 1 +$god_ set-dist 18 38 1 +$god_ set-dist 18 39 1 +$god_ set-dist 18 40 1 +$god_ set-dist 18 41 1 +$god_ set-dist 18 42 2 +$god_ set-dist 18 43 2 +$god_ set-dist 18 44 1 +$god_ set-dist 18 45 2 +$god_ set-dist 18 46 1 +$god_ set-dist 18 47 1 +$god_ set-dist 18 48 1 +$god_ set-dist 18 49 1 +$god_ set-dist 19 20 1 +$god_ set-dist 19 21 2 +$god_ set-dist 19 22 2 +$god_ set-dist 19 23 1 +$god_ set-dist 19 24 1 +$god_ set-dist 19 25 1 +$god_ set-dist 19 26 2 +$god_ set-dist 19 27 2 +$god_ set-dist 19 28 1 +$god_ set-dist 19 29 1 +$god_ set-dist 19 30 2 +$god_ set-dist 19 31 1 +$god_ set-dist 19 32 2 +$god_ set-dist 19 33 2 +$god_ set-dist 19 34 2 +$god_ set-dist 19 35 2 +$god_ set-dist 19 36 2 +$god_ set-dist 19 37 2 +$god_ set-dist 19 38 2 +$god_ set-dist 19 39 2 +$god_ set-dist 19 40 2 +$god_ set-dist 19 41 2 +$god_ set-dist 19 42 2 +$god_ set-dist 19 43 1 +$god_ set-dist 19 44 2 +$god_ set-dist 19 45 1 +$god_ set-dist 19 46 3 +$god_ set-dist 19 47 2 +$god_ set-dist 19 48 2 +$god_ set-dist 19 49 2 +$god_ set-dist 20 21 2 +$god_ set-dist 20 22 2 +$god_ set-dist 20 23 1 +$god_ set-dist 20 24 1 +$god_ set-dist 20 25 1 +$god_ set-dist 20 26 1 +$god_ set-dist 20 27 2 +$god_ set-dist 20 28 1 +$god_ set-dist 20 29 1 +$god_ set-dist 20 30 2 +$god_ set-dist 20 31 1 +$god_ set-dist 20 32 2 +$god_ set-dist 20 33 2 +$god_ set-dist 20 34 2 +$god_ set-dist 20 35 2 +$god_ set-dist 20 36 2 +$god_ set-dist 20 37 2 +$god_ set-dist 20 38 1 +$god_ set-dist 20 39 2 +$god_ set-dist 20 40 2 +$god_ set-dist 20 41 2 +$god_ set-dist 20 42 2 +$god_ set-dist 20 43 1 +$god_ set-dist 20 44 1 +$god_ set-dist 20 45 1 +$god_ set-dist 20 46 2 +$god_ set-dist 20 47 2 +$god_ set-dist 20 48 1 +$god_ set-dist 20 49 2 +$god_ set-dist 21 22 2 +$god_ set-dist 21 23 2 +$god_ set-dist 21 24 2 +$god_ set-dist 21 25 2 +$god_ set-dist 21 26 1 +$god_ set-dist 21 27 1 +$god_ set-dist 21 28 2 +$god_ set-dist 21 29 2 +$god_ set-dist 21 30 1 +$god_ set-dist 21 31 2 +$god_ set-dist 21 32 2 +$god_ set-dist 21 33 1 +$god_ set-dist 21 34 2 +$god_ set-dist 21 35 1 +$god_ set-dist 21 36 1 +$god_ set-dist 21 37 1 +$god_ set-dist 21 38 1 +$god_ set-dist 21 39 1 +$god_ set-dist 21 40 1 +$god_ set-dist 21 41 1 +$god_ set-dist 21 42 1 +$god_ set-dist 21 43 2 +$god_ set-dist 21 44 1 +$god_ set-dist 21 45 2 +$god_ set-dist 21 46 1 +$god_ set-dist 21 47 1 +$god_ set-dist 21 48 2 +$god_ set-dist 21 49 1 +$god_ set-dist 22 23 3 +$god_ set-dist 22 24 1 +$god_ set-dist 22 25 2 +$god_ set-dist 22 26 1 +$god_ set-dist 22 27 2 +$god_ set-dist 22 28 1 +$god_ set-dist 22 29 2 +$god_ set-dist 22 30 1 +$god_ set-dist 22 31 2 +$god_ set-dist 22 32 1 +$god_ set-dist 22 33 2 +$god_ set-dist 22 34 1 +$god_ set-dist 22 35 2 +$god_ set-dist 22 36 1 +$god_ set-dist 22 37 1 +$god_ set-dist 22 38 1 +$god_ set-dist 22 39 1 +$god_ set-dist 22 40 1 +$god_ set-dist 22 41 1 +$god_ set-dist 22 42 2 +$god_ set-dist 22 43 2 +$god_ set-dist 22 44 1 +$god_ set-dist 22 45 2 +$god_ set-dist 22 46 2 +$god_ set-dist 22 47 1 +$god_ set-dist 22 48 1 +$god_ set-dist 22 49 2 +$god_ set-dist 23 24 2 +$god_ set-dist 23 25 1 +$god_ set-dist 23 26 2 +$god_ set-dist 23 27 2 +$god_ set-dist 23 28 2 +$god_ set-dist 23 29 1 +$god_ set-dist 23 30 3 +$god_ set-dist 23 31 1 +$god_ set-dist 23 32 2 +$god_ set-dist 23 33 2 +$god_ set-dist 23 34 3 +$god_ set-dist 23 35 2 +$god_ set-dist 23 36 2 +$god_ set-dist 23 37 2 +$god_ set-dist 23 38 2 +$god_ set-dist 23 39 2 +$god_ set-dist 23 40 2 +$god_ set-dist 23 41 2 +$god_ set-dist 23 42 2 +$god_ set-dist 23 43 1 +$god_ set-dist 23 44 2 +$god_ set-dist 23 45 1 +$god_ set-dist 23 46 3 +$god_ set-dist 23 47 2 +$god_ set-dist 23 48 2 +$god_ set-dist 23 49 2 +$god_ set-dist 24 25 2 +$god_ set-dist 24 26 1 +$god_ set-dist 24 27 2 +$god_ set-dist 24 28 1 +$god_ set-dist 24 29 1 +$god_ set-dist 24 30 2 +$god_ set-dist 24 31 1 +$god_ set-dist 24 32 1 +$god_ set-dist 24 33 1 +$god_ set-dist 24 34 1 +$god_ set-dist 24 35 2 +$god_ set-dist 24 36 2 +$god_ set-dist 24 37 1 +$god_ set-dist 24 38 1 +$god_ set-dist 24 39 1 +$god_ set-dist 24 40 2 +$god_ set-dist 24 41 1 +$god_ set-dist 24 42 2 +$god_ set-dist 24 43 1 +$god_ set-dist 24 44 1 +$god_ set-dist 24 45 1 +$god_ set-dist 24 46 2 +$god_ set-dist 24 47 1 +$god_ set-dist 24 48 1 +$god_ set-dist 24 49 1 +$god_ set-dist 25 26 2 +$god_ set-dist 25 27 1 +$god_ set-dist 25 28 2 +$god_ set-dist 25 29 1 +$god_ set-dist 25 30 2 +$god_ set-dist 25 31 1 +$god_ set-dist 25 32 2 +$god_ set-dist 25 33 1 +$god_ set-dist 25 34 2 +$god_ set-dist 25 35 2 +$god_ set-dist 25 36 2 +$god_ set-dist 25 37 2 +$god_ set-dist 25 38 2 +$god_ set-dist 25 39 2 +$god_ set-dist 25 40 2 +$god_ set-dist 25 41 2 +$god_ set-dist 25 42 1 +$god_ set-dist 25 43 2 +$god_ set-dist 25 44 2 +$god_ set-dist 25 45 1 +$god_ set-dist 25 46 2 +$god_ set-dist 25 47 2 +$god_ set-dist 25 48 2 +$god_ set-dist 25 49 1 +$god_ set-dist 26 27 2 +$god_ set-dist 26 28 1 +$god_ set-dist 26 29 1 +$god_ set-dist 26 30 1 +$god_ set-dist 26 31 2 +$god_ set-dist 26 32 1 +$god_ set-dist 26 33 1 +$god_ set-dist 26 34 1 +$god_ set-dist 26 35 2 +$god_ set-dist 26 36 1 +$god_ set-dist 26 37 1 +$god_ set-dist 26 38 1 +$god_ set-dist 26 39 1 +$god_ set-dist 26 40 1 +$god_ set-dist 26 41 1 +$god_ set-dist 26 42 2 +$god_ set-dist 26 43 2 +$god_ set-dist 26 44 1 +$god_ set-dist 26 45 2 +$god_ set-dist 26 46 2 +$god_ set-dist 26 47 1 +$god_ set-dist 26 48 1 +$god_ set-dist 26 49 1 +$god_ set-dist 27 28 2 +$god_ set-dist 27 29 1 +$god_ set-dist 27 30 2 +$god_ set-dist 27 31 2 +$god_ set-dist 27 32 2 +$god_ set-dist 27 33 1 +$god_ set-dist 27 34 2 +$god_ set-dist 27 35 1 +$god_ set-dist 27 36 2 +$god_ set-dist 27 37 2 +$god_ set-dist 27 38 2 +$god_ set-dist 27 39 2 +$god_ set-dist 27 40 2 +$god_ set-dist 27 41 2 +$god_ set-dist 27 42 1 +$god_ set-dist 27 43 2 +$god_ set-dist 27 44 1 +$god_ set-dist 27 45 2 +$god_ set-dist 27 46 2 +$god_ set-dist 27 47 2 +$god_ set-dist 27 48 2 +$god_ set-dist 27 49 1 +$god_ set-dist 28 29 1 +$god_ set-dist 28 30 1 +$god_ set-dist 28 31 1 +$god_ set-dist 28 32 1 +$god_ set-dist 28 33 2 +$god_ set-dist 28 34 1 +$god_ set-dist 28 35 2 +$god_ set-dist 28 36 2 +$god_ set-dist 28 37 1 +$god_ set-dist 28 38 1 +$god_ set-dist 28 39 1 +$god_ set-dist 28 40 2 +$god_ set-dist 28 41 1 +$god_ set-dist 28 42 2 +$god_ set-dist 28 43 1 +$god_ set-dist 28 44 1 +$god_ set-dist 28 45 1 +$god_ set-dist 28 46 2 +$god_ set-dist 28 47 1 +$god_ set-dist 28 48 1 +$god_ set-dist 28 49 1 +$god_ set-dist 29 30 2 +$god_ set-dist 29 31 1 +$god_ set-dist 29 32 2 +$god_ set-dist 29 33 1 +$god_ set-dist 29 34 2 +$god_ set-dist 29 35 2 +$god_ set-dist 29 36 2 +$god_ set-dist 29 37 2 +$god_ set-dist 29 38 1 +$god_ set-dist 29 39 2 +$god_ set-dist 29 40 2 +$god_ set-dist 29 41 2 +$god_ set-dist 29 42 2 +$god_ set-dist 29 43 1 +$god_ set-dist 29 44 1 +$god_ set-dist 29 45 1 +$god_ set-dist 29 46 2 +$god_ set-dist 29 47 1 +$god_ set-dist 29 48 1 +$god_ set-dist 29 49 1 +$god_ set-dist 30 31 2 +$god_ set-dist 30 32 2 +$god_ set-dist 30 33 2 +$god_ set-dist 30 34 1 +$god_ set-dist 30 35 2 +$god_ set-dist 30 36 1 +$god_ set-dist 30 37 1 +$god_ set-dist 30 38 1 +$god_ set-dist 30 39 1 +$god_ set-dist 30 40 1 +$god_ set-dist 30 41 1 +$god_ set-dist 30 42 2 +$god_ set-dist 30 43 2 +$god_ set-dist 30 44 1 +$god_ set-dist 30 45 2 +$god_ set-dist 30 46 1 +$god_ set-dist 30 47 1 +$god_ set-dist 30 48 1 +$god_ set-dist 30 49 1 +$god_ set-dist 31 32 1 +$god_ set-dist 31 33 2 +$god_ set-dist 31 34 2 +$god_ set-dist 31 35 2 +$god_ set-dist 31 36 2 +$god_ set-dist 31 37 2 +$god_ set-dist 31 38 1 +$god_ set-dist 31 39 2 +$god_ set-dist 31 40 2 +$god_ set-dist 31 41 2 +$god_ set-dist 31 42 2 +$god_ set-dist 31 43 1 +$god_ set-dist 31 44 2 +$god_ set-dist 31 45 1 +$god_ set-dist 31 46 2 +$god_ set-dist 31 47 2 +$god_ set-dist 31 48 2 +$god_ set-dist 31 49 2 +$god_ set-dist 32 33 2 +$god_ set-dist 32 34 1 +$god_ set-dist 32 35 2 +$god_ set-dist 32 36 2 +$god_ set-dist 32 37 2 +$god_ set-dist 32 38 1 +$god_ set-dist 32 39 1 +$god_ set-dist 32 40 2 +$god_ set-dist 32 41 2 +$god_ set-dist 32 42 2 +$god_ set-dist 32 43 1 +$god_ set-dist 32 44 1 +$god_ set-dist 32 45 2 +$god_ set-dist 32 46 2 +$god_ set-dist 32 47 1 +$god_ set-dist 32 48 1 +$god_ set-dist 32 49 2 +$god_ set-dist 33 34 2 +$god_ set-dist 33 35 1 +$god_ set-dist 33 36 1 +$god_ set-dist 33 37 1 +$god_ set-dist 33 38 1 +$god_ set-dist 33 39 2 +$god_ set-dist 33 40 1 +$god_ set-dist 33 41 1 +$god_ set-dist 33 42 1 +$god_ set-dist 33 43 2 +$god_ set-dist 33 44 1 +$god_ set-dist 33 45 2 +$god_ set-dist 33 46 1 +$god_ set-dist 33 47 1 +$god_ set-dist 33 48 2 +$god_ set-dist 33 49 1 +$god_ set-dist 34 35 2 +$god_ set-dist 34 36 2 +$god_ set-dist 34 37 2 +$god_ set-dist 34 38 1 +$god_ set-dist 34 39 1 +$god_ set-dist 34 40 2 +$god_ set-dist 34 41 1 +$god_ set-dist 34 42 2 +$god_ set-dist 34 43 2 +$god_ set-dist 34 44 1 +$god_ set-dist 34 45 2 +$god_ set-dist 34 46 2 +$god_ set-dist 34 47 1 +$god_ set-dist 34 48 1 +$god_ set-dist 34 49 2 +$god_ set-dist 35 36 1 +$god_ set-dist 35 37 1 +$god_ set-dist 35 38 2 +$god_ set-dist 35 39 2 +$god_ set-dist 35 40 1 +$god_ set-dist 35 41 2 +$god_ set-dist 35 42 1 +$god_ set-dist 35 43 2 +$god_ set-dist 35 44 1 +$god_ set-dist 35 45 2 +$god_ set-dist 35 46 1 +$god_ set-dist 35 47 2 +$god_ set-dist 35 48 2 +$god_ set-dist 35 49 1 +$god_ set-dist 36 37 1 +$god_ set-dist 36 38 1 +$god_ set-dist 36 39 1 +$god_ set-dist 36 40 1 +$god_ set-dist 36 41 1 +$god_ set-dist 36 42 1 +$god_ set-dist 36 43 2 +$god_ set-dist 36 44 1 +$god_ set-dist 36 45 2 +$god_ set-dist 36 46 1 +$god_ set-dist 36 47 1 +$god_ set-dist 36 48 1 +$god_ set-dist 36 49 1 +$god_ set-dist 37 38 1 +$god_ set-dist 37 39 1 +$god_ set-dist 37 40 1 +$god_ set-dist 37 41 1 +$god_ set-dist 37 42 1 +$god_ set-dist 37 43 2 +$god_ set-dist 37 44 1 +$god_ set-dist 37 45 2 +$god_ set-dist 37 46 1 +$god_ set-dist 37 47 1 +$god_ set-dist 37 48 1 +$god_ set-dist 37 49 1 +$god_ set-dist 38 39 1 +$god_ set-dist 38 40 1 +$god_ set-dist 38 41 1 +$god_ set-dist 38 42 2 +$god_ set-dist 38 43 1 +$god_ set-dist 38 44 1 +$god_ set-dist 38 45 1 +$god_ set-dist 38 46 2 +$god_ set-dist 38 47 1 +$god_ set-dist 38 48 1 +$god_ set-dist 38 49 1 +$god_ set-dist 39 40 1 +$god_ set-dist 39 41 1 +$god_ set-dist 39 42 2 +$god_ set-dist 39 43 2 +$god_ set-dist 39 44 1 +$god_ set-dist 39 45 2 +$god_ set-dist 39 46 2 +$god_ set-dist 39 47 1 +$god_ set-dist 39 48 1 +$god_ set-dist 39 49 1 +$god_ set-dist 40 41 1 +$god_ set-dist 40 42 1 +$god_ set-dist 40 43 2 +$god_ set-dist 40 44 1 +$god_ set-dist 40 45 2 +$god_ set-dist 40 46 1 +$god_ set-dist 40 47 1 +$god_ set-dist 40 48 1 +$god_ set-dist 40 49 1 +$god_ set-dist 41 42 2 +$god_ set-dist 41 43 2 +$god_ set-dist 41 44 1 +$god_ set-dist 41 45 2 +$god_ set-dist 41 46 1 +$god_ set-dist 41 47 1 +$god_ set-dist 41 48 1 +$god_ set-dist 41 49 1 +$god_ set-dist 42 43 2 +$god_ set-dist 42 44 1 +$god_ set-dist 42 45 2 +$god_ set-dist 42 46 1 +$god_ set-dist 42 47 2 +$god_ set-dist 42 48 2 +$god_ set-dist 42 49 1 +$god_ set-dist 43 44 2 +$god_ set-dist 43 45 1 +$god_ set-dist 43 46 3 +$god_ set-dist 43 47 2 +$god_ set-dist 43 48 2 +$god_ set-dist 43 49 2 +$god_ set-dist 44 45 1 +$god_ set-dist 44 46 1 +$god_ set-dist 44 47 1 +$god_ set-dist 44 48 1 +$god_ set-dist 44 49 1 +$god_ set-dist 45 46 2 +$god_ set-dist 45 47 2 +$god_ set-dist 45 48 2 +$god_ set-dist 45 49 2 +$god_ set-dist 46 47 1 +$god_ set-dist 46 48 2 +$god_ set-dist 46 49 1 +$god_ set-dist 47 48 1 +$god_ set-dist 47 49 1 +$god_ set-dist 48 49 1 +$ns_ at 20.000000000000 "$node_(0) setdest 151.568239095200 477.618329772868 1.091579337848" +$ns_ at 20.000000000000 "$node_(1) setdest 228.806210121068 147.785634556648 0.483939103004" +$ns_ at 20.000000000000 "$node_(2) setdest 174.967028874239 251.190133450448 0.930643606366" +$ns_ at 20.000000000000 "$node_(3) setdest 321.159276715743 90.491494238896 4.102566897248" +$ns_ at 20.000000000000 "$node_(4) setdest 70.923776191693 108.687894094522 6.674229851514" +$ns_ at 20.000000000000 "$node_(5) setdest 361.901637929385 267.209487403644 1.315125283679" +$ns_ at 20.000000000000 "$node_(6) setdest 404.691341141192 144.213041522613 8.928808520360" +$ns_ at 20.000000000000 "$node_(7) setdest 360.837653059101 421.445953580727 6.657330108510" +$ns_ at 20.000000000000 "$node_(8) setdest 325.981128682400 399.635979469000 1.352696707789" +$ns_ at 20.000000000000 "$node_(9) setdest 351.755079153240 85.239590431991 8.617214647210" +$ns_ at 20.000000000000 "$node_(10) setdest 235.088203544343 288.371465280947 7.492441390275" +$ns_ at 20.000000000000 "$node_(11) setdest 134.159476590615 129.290831017423 5.227811689811" +$ns_ at 20.000000000000 "$node_(12) setdest 457.800226454262 100.323733493531 0.557830095298" +$ns_ at 20.000000000000 "$node_(13) setdest 9.377323312332 129.797199740498 6.984172207934" +$ns_ at 20.000000000000 "$node_(14) setdest 169.192506976435 137.172629365676 1.614740212882" +$ns_ at 20.000000000000 "$node_(15) setdest 291.286374579083 268.166332104848 3.441696952999" +$ns_ at 20.000000000000 "$node_(16) setdest 177.813402490036 444.161208552665 7.010892887662" +$ns_ at 20.000000000000 "$node_(17) setdest 129.082928376563 355.030990519199 0.168886833156" +$ns_ at 20.000000000000 "$node_(18) setdest 420.461363614528 263.782872787406 2.175003423449" +$ns_ at 20.000000000000 "$node_(19) setdest 173.634366392146 66.653950341051 1.639972266535" +$ns_ at 20.000000000000 "$node_(20) setdest 152.329780204360 483.581920872685 8.979641266113" +$ns_ at 20.000000000000 "$node_(21) setdest 191.380696442720 161.243447344433 3.185397107751" +$ns_ at 20.000000000000 "$node_(22) setdest 449.761821900136 294.528088593353 5.706873854396" +$ns_ at 20.000000000000 "$node_(23) setdest 228.914858217884 99.898644205862 0.430669963728" +$ns_ at 20.000000000000 "$node_(24) setdest 341.286553416309 295.784952473657 0.456741478993" +$ns_ at 20.000000000000 "$node_(25) setdest 288.687721022183 149.840684297230 8.940054399318" +$ns_ at 20.000000000000 "$node_(26) setdest 270.000419965966 93.873262411365 2.044622920286" +$ns_ at 20.000000000000 "$node_(27) setdest 460.313315211136 259.775796098021 5.868129592987" +$ns_ at 20.000000000000 "$node_(28) setdest 3.830669400464 461.794397573274 2.918652097480" +$ns_ at 20.000000000000 "$node_(29) setdest 439.314532414410 391.214923903510 2.301465014160" +$ns_ at 20.000000000000 "$node_(30) setdest 181.171121700572 87.801333228750 0.867498691762" +$ns_ at 20.000000000000 "$node_(31) setdest 254.495389628001 120.481438366729 2.223571874784" +$ns_ at 20.000000000000 "$node_(32) setdest 365.782274185380 488.433562590317 9.415351207925" +$ns_ at 20.000000000000 "$node_(33) setdest 451.411303340819 456.586653592536 0.408399432187" +$ns_ at 20.000000000000 "$node_(34) setdest 402.322333930769 108.723521142847 4.101257979186" +$ns_ at 20.000000000000 "$node_(35) setdest 293.121692833796 406.047024637875 5.693444245084" +$ns_ at 20.000000000000 "$node_(36) setdest 486.651722975904 162.121373629488 0.807000875440" +$ns_ at 20.000000000000 "$node_(37) setdest 283.135408743323 318.794978970977 4.204494535116" +$ns_ at 20.000000000000 "$node_(38) setdest 436.063587945240 79.368498178350 4.407695915271" +$ns_ at 20.000000000000 "$node_(39) setdest 337.271896110045 468.765251339221 6.279800212057" +$ns_ at 20.000000000000 "$node_(40) setdest 204.064213774483 104.299978514760 9.226125932539" +$ns_ at 20.000000000000 "$node_(41) setdest 408.519221230410 173.995349484271 9.595141356296" +$ns_ at 20.000000000000 "$node_(42) setdest 70.957813588722 428.578161784508 9.624955212230" +$ns_ at 20.000000000000 "$node_(43) setdest 174.514031572947 347.234964190254 6.831893548610" +$ns_ at 20.000000000000 "$node_(44) setdest 166.419687940575 160.315333247555 6.987404204761" +$ns_ at 20.000000000000 "$node_(45) setdest 368.522940122702 255.648485309185 7.706430275677" +$ns_ at 20.000000000000 "$node_(46) setdest 431.264357339355 138.140754944942 5.950289461217" +$ns_ at 20.000000000000 "$node_(47) setdest 89.934771695741 386.076207809116 5.377713050359" +$ns_ at 20.000000000000 "$node_(48) setdest 54.770072314929 66.679250884169 6.486284846707" +$ns_ at 20.000000000000 "$node_(49) setdest 229.493257760675 432.262278606779 5.067984390571" +$ns_ at 20.006418018420 "$god_ set-dist 33 39 1" +$ns_ at 20.057929918927 "$god_ set-dist 27 32 3" +$ns_ at 20.057929918927 "$god_ set-dist 32 35 3" +$ns_ at 20.057929918927 "$god_ set-dist 32 42 3" +$ns_ at 20.057929918927 "$god_ set-dist 32 44 2" +$ns_ at 20.070271366464 "$god_ set-dist 32 42 2" +$ns_ at 20.070271366464 "$god_ set-dist 42 47 1" +$ns_ at 20.075727025949 "$god_ set-dist 10 48 1" +$ns_ at 20.108985748494 "$god_ set-dist 21 48 1" +$ns_ at 20.129146310723 "$god_ set-dist 15 40 2" +$ns_ at 20.129146310723 "$god_ set-dist 16 40 1" +$ns_ at 20.147561824442 "$god_ set-dist 6 9 1" +$ns_ at 20.147561824442 "$god_ set-dist 9 15 2" +$ns_ at 20.191615410675 "$god_ set-dist 15 37 2" +$ns_ at 20.191615410675 "$god_ set-dist 16 37 1" +$ns_ at 20.262665314778 "$god_ set-dist 1 6 2" +$ns_ at 20.262665314778 "$god_ set-dist 6 17 1" +$ns_ at 20.302805908628 "$god_ set-dist 20 32 1" +$ns_ at 20.436969834620 "$god_ set-dist 3 46 1" +$ns_ at 20.508866556588 "$god_ set-dist 2 6 1" +$ns_ at 20.592398611178 "$god_ set-dist 27 40 1" +$ns_ at 20.717494303893 "$god_ set-dist 35 41 1" +$ns_ at 20.791602706928 "$god_ set-dist 20 47 1" +$ns_ at 20.861585523851 "$god_ set-dist 1 22 2" +$ns_ at 20.861585523851 "$god_ set-dist 5 22 2" +$ns_ at 20.861585523851 "$god_ set-dist 22 49 1" +$ns_ at 20.863030247580 "$god_ set-dist 13 18 1" +$ns_ at 20.863272755172 "$god_ set-dist 27 32 2" +$ns_ at 20.863272755172 "$god_ set-dist 29 32 1" +$ns_ at 21.039003064326 "$god_ set-dist 8 21 1" +$ns_ at 21.084964346040 "$god_ set-dist 1 43 2" +$ns_ at 21.084964346040 "$god_ set-dist 13 43 2" +$ns_ at 21.084964346040 "$god_ set-dist 17 43 1" +$ns_ at 21.108246708934 "$god_ set-dist 33 48 1" +$ns_ at 21.146709168875 "$god_ set-dist 12 25 1" +$ns_ at 21.193347875177 "$god_ set-dist 2 3 1" +$ns_ at 21.228928015328 "$god_ set-dist 14 35 1" +$ns_ at 21.234160081130 "$god_ set-dist 27 45 1" +$ns_ at 21.253680081564 "$god_ set-dist 3 42 1" +$ns_ at 21.255550907490 "$god_ set-dist 6 22 1" +$ns_ at 21.255550907490 "$god_ set-dist 15 22 2" +$ns_ at 21.305070108328 "$god_ set-dist 23 34 2" +$ns_ at 21.305070108328 "$god_ set-dist 34 43 1" +$ns_ at 21.411331139883 "$god_ set-dist 0 35 1" +$ns_ at 21.566494602777 "$god_ set-dist 9 17 1" +$ns_ at 21.595948316631 "$god_ set-dist 12 16 2" +$ns_ at 21.630633637276 "$god_ set-dist 10 39 1" +$ns_ at 21.641185452572 "$god_ set-dist 3 11 1" +$ns_ at 21.641185452572 "$god_ set-dist 11 46 2" +$ns_ at 21.687945018679 "$god_ set-dist 25 35 1" +$ns_ at 21.803406779368 "$god_ set-dist 10 31 1" +$ns_ at 21.832028317535 "$god_ set-dist 11 34 1" +$ns_ at 21.871754028717 "$god_ set-dist 32 45 1" +$ns_ at 21.887320493870 "$god_ set-dist 41 42 1" +$ns_ at 21.920474769552 "$god_ set-dist 17 41 1" +$ns_ at 21.924016899196 "$god_ set-dist 8 37 1" +$ns_ at 21.941093184505 "$god_ set-dist 12 44 1" +$ns_ at 21.947148560024 "$god_ set-dist 26 46 1" +$ns_ at 21.963927742111 "$god_ set-dist 22 40 2" +$ns_ at 21.987416865822 "$god_ set-dist 16 48 1" +$ns_ at 22.011111432865 "$god_ set-dist 14 15 1" +$ns_ at 22.011111432865 "$god_ set-dist 15 36 2" +$ns_ at 22.011111432865 "$god_ set-dist 15 41 2" +$ns_ at 22.016612126186 "$god_ set-dist 8 9 1" +$ns_ at 22.142279819529 "$god_ set-dist 1 40 1" +$ns_ at 22.192098258635 "$god_ set-dist 3 43 1" +$ns_ at 22.192098258635 "$god_ set-dist 43 46 2" +$ns_ at 22.238470264437 "$god_ set-dist 6 10 1" +$ns_ at 22.251936384520 "$god_ set-dist 7 11 1" +$ns_ at 22.251936384520 "$god_ set-dist 7 34 2" +$ns_ at 22.262340383272 "$god_ set-dist 0 44 2" +$ns_ at 22.340355866714 "$god_ set-dist 38 42 1" +$ns_ at 22.454601842918 "$god_ set-dist 4 31 2" +$ns_ at 22.500733573102 "$god_ set-dist 17 48 1" +$ns_ at 22.547683100989 "$god_ set-dist 43 48 1" +$ns_ at 22.584823908485 "$god_ set-dist 9 13 1" +$ns_ at 22.714451222120 "$god_ set-dist 0 24 1" +$ns_ at 22.759944523325 "$god_ set-dist 9 16 1" +$ns_ at 22.766044977859 "$god_ set-dist 9 32 2" +$ns_ at 22.850688214638 "$god_ set-dist 20 34 1" +$ns_ at 23.030594630950 "$god_ set-dist 45 49 1" +$ns_ at 23.052468756229 "$god_ set-dist 1 46 1" +$ns_ at 23.173771459248 "$god_ set-dist 19 28 2" +$ns_ at 23.173771459248 "$god_ set-dist 19 30 3" +$ns_ at 23.215848651988 "$god_ set-dist 6 23 1" +$ns_ at 23.215848651988 "$god_ set-dist 22 23 2" +$ns_ at 23.227372840741 "$god_ set-dist 9 42 1" +$ns_ at 23.415007407496 "$god_ set-dist 20 49 1" +$ns_ at 23.434638597923 "$god_ set-dist 6 49 1" +$ns_ at 23.473735685436 "$god_ set-dist 1 22 3" +$ns_ at 23.473735685436 "$god_ set-dist 1 49 2" +$ns_ at 23.486278452474 "$god_ set-dist 16 41 1" +$ns_ at 23.600534419589 "$god_ set-dist 21 25 1" +$ns_ at 23.736825719193 "$god_ set-dist 29 42 1" +$ns_ at 23.794401717783 "$god_ set-dist 8 32 1" +$ns_ at 23.931230296484 "$god_ set-dist 0 11 1" +$ns_ at 23.953559116310 "$god_ set-dist 7 43 1" +$ns_ at 24.010916214765 "$god_ set-dist 3 13 1" +$ns_ at 24.018114276276 "$god_ set-dist 26 42 1" +$ns_ at 24.025848209893 "$god_ set-dist 9 35 1" +$ns_ at 24.083128350768 "$god_ set-dist 3 35 1" +$ns_ at 24.083128350768 "$god_ set-dist 32 35 2" +$ns_ at 24.142098754317 "$god_ set-dist 25 40 1" +$ns_ at 24.149851707690 "$god_ set-dist 25 44 1" +$ns_ at 24.158547723852 "$god_ set-dist 45 47 1" +$ns_ at 24.195627111370 "$god_ set-dist 42 45 1" +$ns_ at 24.220667107131 "$god_ set-dist 27 44 2" +$ns_ at 24.231827124537 "$god_ set-dist 8 40 1" +$ns_ at 24.236680407762 "$god_ set-dist 10 11 1" +$ns_ at 24.263765713664 "$god_ set-dist 5 40 1" +$ns_ at 24.273947961232 "$node_(40) setdest 204.064213774483 104.299978514760 0.000000000000" +$ns_ at 24.317368264340 "$god_ set-dist 12 41 1" +$ns_ at 24.334772672088 "$god_ set-dist 26 45 1" +$ns_ at 24.419310314059 "$god_ set-dist 8 39 1" +$ns_ at 24.428785112871 "$god_ set-dist 8 40 2" +$ns_ at 24.439804196849 "$god_ set-dist 33 45 1" +$ns_ at 24.448556048199 "$god_ set-dist 19 32 1" +$ns_ at 24.450572675433 "$god_ set-dist 13 27 2" +$ns_ at 24.628264904883 "$god_ set-dist 29 48 2" +$ns_ at 24.835204539892 "$god_ set-dist 8 41 1" +$ns_ at 24.877364642896 "$god_ set-dist 34 37 1" +$ns_ at 24.931401014373 "$god_ set-dist 10 43 1" +$ns_ at 24.933689991597 "$god_ set-dist 25 38 1" +$ns_ at 24.947201595533 "$god_ set-dist 26 43 1" +$ns_ at 24.955919003901 "$god_ set-dist 20 39 1" +$ns_ at 25.024614873854 "$god_ set-dist 0 38 1" +$ns_ at 25.062515536603 "$god_ set-dist 5 32 2" +$ns_ at 25.062515536603 "$god_ set-dist 14 32 1" +$ns_ at 25.108453449572 "$god_ set-dist 1 22 2" +$ns_ at 25.108453449572 "$god_ set-dist 21 22 1" +$ns_ at 25.109137457545 "$god_ set-dist 3 25 1" +$ns_ at 25.152421946764 "$god_ set-dist 16 39 1" +$ns_ at 25.202571774435 "$god_ set-dist 0 6 1" +$ns_ at 25.212653232410 "$god_ set-dist 13 15 2" +$ns_ at 25.212653232410 "$god_ set-dist 15 17 1" +$ns_ at 25.373453441768 "$god_ set-dist 22 40 1" +$ns_ at 25.524333845489 "$god_ set-dist 43 47 1" +$ns_ at 25.626067321389 "$god_ set-dist 6 7 1" +$ns_ at 25.626067321389 "$god_ set-dist 7 22 2" +$ns_ at 25.637101520279 "$god_ set-dist 20 44 2" +$ns_ at 25.697785357802 "$god_ set-dist 11 26 1" +$ns_ at 25.948689909774 "$god_ set-dist 38 46 1" +$ns_ at 25.972924117467 "$god_ set-dist 24 42 1" +$ns_ at 26.003726562791 "$god_ set-dist 11 47 1" +$ns_ at 26.039513819829 "$god_ set-dist 24 25 1" +$ns_ at 26.047593440705 "$god_ set-dist 29 44 2" +$ns_ at 26.088277648545 "$god_ set-dist 6 37 1" +$ns_ at 26.088912256261 "$god_ set-dist 15 25 2" +$ns_ at 26.157679633689 "$god_ set-dist 6 41 1" +$ns_ at 26.178476263742 "$god_ set-dist 2 44 2" +$ns_ at 26.204230037023 "$god_ set-dist 21 24 1" +$ns_ at 26.212379824659 "$god_ set-dist 14 22 1" +$ns_ at 26.241446200749 "$god_ set-dist 5 34 2" +$ns_ at 26.241446200749 "$god_ set-dist 14 34 1" +$ns_ at 26.347884670464 "$god_ set-dist 39 43 1" +$ns_ at 26.352274618571 "$god_ set-dist 6 25 1" +$ns_ at 26.377378679696 "$god_ set-dist 0 3 1" +$ns_ at 26.495826005947 "$god_ set-dist 35 38 1" +$ns_ at 26.783875275295 "$god_ set-dist 18 33 1" +$ns_ at 26.816154733092 "$god_ set-dist 10 22 1" +$ns_ at 26.839739599090 "$god_ set-dist 16 32 1" +$ns_ at 26.885436204460 "$god_ set-dist 15 24 1" +$ns_ at 26.942711455502 "$god_ set-dist 25 37 1" +$ns_ at 26.952242571625 "$god_ set-dist 13 26 1" +$ns_ at 27.060829842844 "$god_ set-dist 2 35 1" +$ns_ at 27.078349746350 "$god_ set-dist 5 13 2" +$ns_ at 27.125808855230 "$god_ set-dist 11 39 1" +$ns_ at 27.134112067982 "$god_ set-dist 42 48 1" +$ns_ at 27.143032511351 "$god_ set-dist 25 41 1" +$ns_ at 27.215534570992 "$god_ set-dist 31 34 1" +$ns_ at 27.224241933131 "$god_ set-dist 23 27 1" +$ns_ at 27.239833675742 "$god_ set-dist 34 49 1" +$ns_ at 27.331839711450 "$god_ set-dist 17 28 2" +$ns_ at 27.353014401152 "$god_ set-dist 19 25 2" +$ns_ at 27.372585299823 "$god_ set-dist 13 30 1" +$ns_ at 27.420179014230 "$god_ set-dist 6 42 1" +$ns_ at 27.473991338794 "$god_ set-dist 1 10 2" +$ns_ at 27.473991338794 "$god_ set-dist 1 28 3" +$ns_ at 27.551220144421 "$god_ set-dist 44 45 2" +$ns_ at 27.620133579098 "$god_ set-dist 4 27 2" +$ns_ at 27.647770228973 "$god_ set-dist 13 38 1" +$ns_ at 27.674411968430 "$god_ set-dist 15 46 2" +$ns_ at 27.674411968430 "$god_ set-dist 17 46 1" +$ns_ at 27.674411968430 "$god_ set-dist 19 46 2" +$ns_ at 27.674411968430 "$god_ set-dist 23 46 2" +$ns_ at 27.687526792284 "$god_ set-dist 39 42 1" +$ns_ at 27.710029547514 "$god_ set-dist 17 39 1" +$ns_ at 27.773125070502 "$god_ set-dist 10 19 1" +$ns_ at 27.987360712689 "$god_ set-dist 9 25 1" +$ns_ at 27.998844636942 "$god_ set-dist 20 25 2" +$ns_ at 28.213373391043 "$god_ set-dist 14 46 1" +$ns_ at 28.298500172288 "$god_ set-dist 7 24 1" +$ns_ at 28.351355472788 "$god_ set-dist 6 33 1" +$ns_ at 28.360408660990 "$god_ set-dist 11 49 1" +$ns_ at 28.365511926124 "$god_ set-dist 13 47 2" +$ns_ at 28.446077269938 "$god_ set-dist 0 4 2" +$ns_ at 28.492733275215 "$god_ set-dist 43 49 1" +$ns_ at 28.568034296906 "$god_ set-dist 4 29 2" +$ns_ at 28.601562583541 "$god_ set-dist 14 23 2" +$ns_ at 28.655109093484 "$god_ set-dist 26 35 1" +$ns_ at 28.661594819794 "$god_ set-dist 10 34 1" +$ns_ at 28.684193625487 "$god_ set-dist 31 49 1" +$ns_ at 28.706843358916 "$god_ set-dist 4 20 2" +$ns_ at 28.707628141198 "$god_ set-dist 31 47 1" +$ns_ at 28.742139481071 "$god_ set-dist 20 22 1" +$ns_ at 28.766418411155 "$god_ set-dist 9 12 1" +$ns_ at 28.807419799735 "$god_ set-dist 25 36 1" +$ns_ at 28.807936136998 "$god_ set-dist 25 46 1" +$ns_ at 28.888809228983 "$god_ set-dist 46 48 1" +$ns_ at 28.972279989079 "$god_ set-dist 23 25 2" +$ns_ at 29.013523298596 "$god_ set-dist 41 45 1" +$ns_ at 29.083367073044 "$god_ set-dist 16 34 1" +$ns_ at 29.088082796879 "$god_ set-dist 13 25 1" +$ns_ at 29.096870116124 "$god_ set-dist 9 45 1" +$ns_ at 29.276189303803 "$god_ set-dist 27 31 1" +$ns_ at 29.302379699130 "$god_ set-dist 22 43 1" +$ns_ at 29.310060234391 "$god_ set-dist 0 43 1" +$ns_ at 29.386008640698 "$god_ set-dist 6 27 1" +$ns_ at 29.415695385657 "$god_ set-dist 27 40 2" +$ns_ at 29.420734543856 "$god_ set-dist 15 27 1" +$ns_ at 29.492344842951 "$god_ set-dist 13 14 1" +$ns_ at 29.533622135329 "$god_ set-dist 37 45 1" +$ns_ at 29.540408375842 "$god_ set-dist 0 21 1" +$ns_ at 29.562111497436 "$god_ set-dist 13 48 1" +$ns_ at 29.626961238993 "$god_ set-dist 5 45 1" +$ns_ at 29.644593363052 "$god_ set-dist 31 39 1" +$ns_ at 29.681269805013 "$god_ set-dist 7 30 2" +$ns_ at 29.681269805013 "$god_ set-dist 10 30 1" +$ns_ at 29.681269805013 "$god_ set-dist 19 30 2" +$ns_ at 29.690654581836 "$god_ set-dist 2 41 1" +$ns_ at 29.745288261334 "$god_ set-dist 39 45 1" +$ns_ at 29.804415254613 "$god_ set-dist 8 34 1" +$ns_ at 29.839670139927 "$god_ set-dist 10 32 1" +$ns_ at 29.839670139927 "$god_ set-dist 12 32 2" +$ns_ at 29.865354538371 "$god_ set-dist 15 32 1" +$ns_ at 29.871097710736 "$god_ set-dist 2 4 2" +$ns_ at 29.916380696261 "$god_ set-dist 29 33 2" +$ns_ at 29.997975243602 "$god_ set-dist 27 38 1" +$ns_ at 30.036373101560 "$god_ set-dist 16 22 1" +$ns_ at 30.090617426213 "$god_ set-dist 0 41 1" +$ns_ at 30.117220312939 "$god_ set-dist 25 26 1" +$ns_ at 30.307283621300 "$god_ set-dist 11 25 1" +$ns_ at 30.336406634225 "$god_ set-dist 46 47 2" +$ns_ at 30.383954696116 "$god_ set-dist 6 21 1" +$ns_ at 30.417864105781 "$god_ set-dist 0 20 2" +$ns_ at 30.447900888025 "$god_ set-dist 5 46 1" +$ns_ at 30.453606154877 "$node_(44) setdest 166.419687940575 160.315333247555 0.000000000000" +$ns_ at 30.580711426969 "$god_ set-dist 12 14 1" +$ns_ at 30.657008630451 "$god_ set-dist 26 29 2" +$ns_ at 30.752503750971 "$god_ set-dist 5 16 2" +$ns_ at 30.780288141902 "$god_ set-dist 31 42 1" +$ns_ at 30.791701449715 "$god_ set-dist 19 27 1" +$ns_ at 30.811961774286 "$god_ set-dist 21 27 2" +$ns_ at 30.890660792058 "$god_ set-dist 22 42 1" +$ns_ at 30.928065401821 "$god_ set-dist 35 45 1" +$ns_ at 30.956814752999 "$god_ set-dist 11 42 1" +$ns_ at 31.000080879598 "$god_ set-dist 29 39 1" +$ns_ at 31.085391429372 "$god_ set-dist 13 17 2" +$ns_ at 31.085391429372 "$god_ set-dist 13 23 3" +$ns_ at 31.110110383519 "$god_ set-dist 8 35 1" +$ns_ at 31.114456374878 "$god_ set-dist 11 22 1" +$ns_ at 31.124886965633 "$god_ set-dist 27 41 1" +$ns_ at 31.137999068212 "$god_ set-dist 21 45 1" +$ns_ at 31.181307309071 "$god_ set-dist 17 48 2" +$ns_ at 31.375439278549 "$god_ set-dist 2 9 1" +$ns_ at 31.392944476500 "$god_ set-dist 44 45 1" +$ns_ at 31.516733104328 "$god_ set-dist 32 48 2" +$ns_ at 31.563370183876 "$god_ set-dist 26 31 1" +$ns_ at 31.578816513842 "$god_ set-dist 15 30 2" +$ns_ at 31.578816513842 "$god_ set-dist 24 30 1" +$ns_ at 31.610760782945 "$god_ set-dist 42 43 1" +$ns_ at 31.700898057969 "$god_ set-dist 5 49 2" +$ns_ at 31.880989173328 "$god_ set-dist 29 47 2" +$ns_ at 31.891901840720 "$god_ set-dist 2 37 1" +$ns_ at 31.897553715021 "$god_ set-dist 8 48 2" +$ns_ at 32.070525747911 "$god_ set-dist 7 18 2" +$ns_ at 32.070525747911 "$god_ set-dist 7 38 1" +$ns_ at 32.196688663438 "$god_ set-dist 7 49 1" +$ns_ at 32.304540955061 "$god_ set-dist 2 21 1" +$ns_ at 32.308068444318 "$god_ set-dist 37 43 1" +$ns_ at 32.354595725829 "$god_ set-dist 18 42 1" +$ns_ at 32.409606179554 "$god_ set-dist 0 9 1" +$ns_ at 32.573317032578 "$god_ set-dist 30 42 1" +$ns_ at 32.721562283995 "$god_ set-dist 1 28 2" +$ns_ at 32.721562283995 "$god_ set-dist 28 42 1" +$ns_ at 32.730662211973 "$god_ set-dist 5 41 1" +$ns_ at 32.834372454455 "$god_ set-dist 5 21 2" +$ns_ at 32.954499246116 "$god_ set-dist 10 15 1" +$ns_ at 33.027292636113 "$god_ set-dist 11 37 1" +$ns_ at 33.055850254751 "$god_ set-dist 10 12 2" +$ns_ at 33.153812133101 "$god_ set-dist 35 48 1" +$ns_ at 33.241418535705 "$god_ set-dist 9 43 1" +$ns_ at 33.268854513625 "$god_ set-dist 8 22 1" +$ns_ at 33.295888217508 "$god_ set-dist 41 43 1" +$ns_ at 33.349038539242 "$god_ set-dist 3 12 1" +$ns_ at 33.449050008927 "$god_ set-dist 7 32 1" +$ns_ at 33.454686232635 "$god_ set-dist 28 45 2" +$ns_ at 33.461142560614 "$god_ set-dist 6 35 1" +$ns_ at 33.470422728891 "$god_ set-dist 11 41 1" +$ns_ at 33.484061193906 "$god_ set-dist 3 32 2" +$ns_ at 33.578115327403 "$god_ set-dist 6 40 1" +$ns_ at 33.591161776458 "$god_ set-dist 20 48 2" +$ns_ at 33.609294135920 "$god_ set-dist 22 33 1" +$ns_ at 33.732886967278 "$god_ set-dist 1 34 2" +$ns_ at 33.732886967278 "$god_ set-dist 1 41 1" +$ns_ at 33.740264890020 "$god_ set-dist 0 37 1" +$ns_ at 33.763845257434 "$god_ set-dist 34 42 1" +$ns_ at 33.869099466983 "$god_ set-dist 5 10 2" +$ns_ at 33.870311760551 "$god_ set-dist 18 35 1" +$ns_ at 34.048601341044 "$god_ set-dist 29 41 1" +$ns_ at 34.050775166879 "$god_ set-dist 4 45 2" +$ns_ at 34.149406339347 "$god_ set-dist 20 23 2" +$ns_ at 34.176559472402 "$god_ set-dist 40 45 1" +$ns_ at 34.223089413666 "$god_ set-dist 11 27 1" +$ns_ at 34.248967640461 "$god_ set-dist 25 39 1" +$ns_ at 34.281922623059 "$god_ set-dist 23 32 1" +$ns_ at 34.581024270026 "$god_ set-dist 9 11 1" +$ns_ at 34.788659956859 "$god_ set-dist 1 20 3" +$ns_ at 34.788659956859 "$god_ set-dist 17 20 2" +$ns_ at 34.850611860269 "$god_ set-dist 1 13 2" +$ns_ at 34.866987352693 "$god_ set-dist 32 49 1" +$ns_ at 34.881326035627 "$god_ set-dist 4 8 2" +$ns_ at 35.236704044308 "$god_ set-dist 13 22 1" +$ns_ at 35.253787935320 "$god_ set-dist 21 34 1" +$ns_ at 35.304280001436 "$god_ set-dist 26 32 2" +$ns_ at 35.308365089448 "$god_ set-dist 5 7 2" +$ns_ at 35.376061311131 "$god_ set-dist 18 19 2" +$ns_ at 35.376061311131 "$god_ set-dist 19 38 1" +$ns_ at 35.389901355916 "$god_ set-dist 2 32 1" +$ns_ at 35.545962826275 "$god_ set-dist 1 20 2" +$ns_ at 35.545962826275 "$god_ set-dist 20 42 1" +$ns_ at 35.607924938764 "$god_ set-dist 25 48 1" +$ns_ at 35.689980067616 "$god_ set-dist 2 20 2" +$ns_ at 35.728052207388 "$god_ set-dist 3 27 1" +$ns_ at 35.787277317630 "$god_ set-dist 5 9 1" +$ns_ at 35.830987869147 "$god_ set-dist 28 41 2" +$ns_ at 36.087722548849 "$god_ set-dist 1 20 3" +$ns_ at 36.087722548849 "$god_ set-dist 1 28 3" +$ns_ at 36.087722548849 "$god_ set-dist 1 42 2" +$ns_ at 36.311235221811 "$god_ set-dist 45 47 2" +$ns_ at 36.336187814843 "$god_ set-dist 17 22 1" +$ns_ at 36.341837933671 "$god_ set-dist 3 27 2" +$ns_ at 36.346994589422 "$god_ set-dist 22 31 1" +$ns_ at 36.432806572897 "$god_ set-dist 31 41 1" +$ns_ at 36.470245235776 "$god_ set-dist 1 21 2" +$ns_ at 36.495497993832 "$god_ set-dist 43 44 1" +$ns_ at 36.549495882300 "$god_ set-dist 1 9 1" +$ns_ at 36.549495882300 "$god_ set-dist 1 28 2" +$ns_ at 36.551891003140 "$god_ set-dist 12 27 2" +$ns_ at 36.690853706519 "$god_ set-dist 28 29 2" +$ns_ at 36.713185466214 "$god_ set-dist 31 37 1" +$ns_ at 36.757073475644 "$god_ set-dist 6 36 1" +$ns_ at 36.797756448468 "$god_ set-dist 1 28 3" +$ns_ at 36.797756448468 "$god_ set-dist 9 28 2" +$ns_ at 37.008914985480 "$god_ set-dist 2 39 1" +$ns_ at 37.137642965634 "$god_ set-dist 45 46 1" +$ns_ at 37.141266250539 "$god_ set-dist 22 25 1" +$ns_ at 37.184413454182 "$god_ set-dist 23 43 2" +$ns_ at 37.286871621832 "$god_ set-dist 20 45 2" +$ns_ at 37.510226625166 "$god_ set-dist 30 46 2" +$ns_ at 37.528038779603 "$god_ set-dist 19 49 1" +$ns_ at 37.704968251991 "$god_ set-dist 16 40 2" +$ns_ at 37.841719737857 "$god_ set-dist 21 43 1" +$ns_ at 37.864261878558 "$god_ set-dist 5 6 1" +$ns_ at 38.070626102330 "$god_ set-dist 19 39 1" +$ns_ at 38.097582898983 "$god_ set-dist 35 39 1" +$ns_ at 38.110721414018 "$node_(10) setdest 235.088203544343 288.371465280947 0.000000000000" +$ns_ at 38.116995726291 "$god_ set-dist 12 45 1" +$ns_ at 38.138251814763 "$god_ set-dist 25 43 1" +$ns_ at 38.150767299748 "$god_ set-dist 3 20 2" +$ns_ at 38.167142103930 "$god_ set-dist 7 41 1" +$ns_ at 38.207022931468 "$god_ set-dist 19 42 1" +$ns_ at 38.244422327538 "$god_ set-dist 22 35 1" +$ns_ at 38.273433717265 "$god_ set-dist 24 35 1" +$ns_ at 38.285764351095 "$god_ set-dist 11 44 1" +$ns_ at 38.433979002931 "$god_ set-dist 11 21 1" +$ns_ at 38.464455948541 "$god_ set-dist 12 38 1" +$ns_ at 38.529856043677 "$god_ set-dist 2 26 1" +$ns_ at 38.541908954277 "$god_ set-dist 12 49 2" +$ns_ at 38.633684190282 "$god_ set-dist 0 46 1" +$ns_ at 38.642788555365 "$god_ set-dist 6 46 1" +$ns_ at 38.751700975217 "$god_ set-dist 9 27 1" +$ns_ at 38.758999658293 "$god_ set-dist 11 33 1" +$ns_ at 38.845324534619 "$god_ set-dist 1 32 2" +$ns_ at 38.845324534619 "$god_ set-dist 1 45 1" +$ns_ at 38.973497106386 "$god_ set-dist 33 47 2" +$ns_ at 39.056693091922 "$god_ set-dist 32 42 1" +$ns_ at 39.143530449635 "$god_ set-dist 4 16 2" +$ns_ at 39.268405904915 "$god_ set-dist 10 18 1" +$ns_ at 39.268405904915 "$god_ set-dist 15 18 2" +$ns_ at 39.443710212449 "$god_ set-dist 18 25 1" +$ns_ at 39.531512683041 "$god_ set-dist 7 39 1" +$ns_ at 39.556379256148 "$god_ set-dist 4 28 2" +$ns_ at 39.655551651124 "$node_(45) setdest 368.522940122702 255.648485309185 0.000000000000" +$ns_ at 39.770250937180 "$god_ set-dist 17 47 2" +$ns_ at 39.928685749401 "$god_ set-dist 29 37 1" +$ns_ at 39.990545130946 "$god_ set-dist 22 45 1" +$ns_ at 40.070684821555 "$god_ set-dist 5 38 1" +$ns_ at 40.162465374087 "$god_ set-dist 11 35 1" +$ns_ at 40.306634534703 "$god_ set-dist 4 12 2" +$ns_ at 40.318585562056 "$god_ set-dist 15 49 1" +$ns_ at 40.319384459958 "$god_ set-dist 3 5 1" +$ns_ at 40.356990556999 "$god_ set-dist 5 42 2" +$ns_ at 40.360189579695 "$god_ set-dist 14 30 1" +$ns_ at 40.365947486448 "$god_ set-dist 18 34 1" +$ns_ at 40.367211795321 "$god_ set-dist 7 25 2" +$ns_ at 40.473762956048 "$god_ set-dist 22 32 2" +$ns_ at 40.503328936155 "$node_(27) setdest 460.313315211136 259.775796098021 0.000000000000" +$ns_ at 40.713201336513 "$god_ set-dist 6 48 2" +$ns_ at 40.770932352486 "$god_ set-dist 30 41 2" +$ns_ at 40.975116158755 "$god_ set-dist 12 42 2" +$ns_ at 41.025824535844 "$god_ set-dist 32 38 2" +$ns_ at 41.038300946444 "$god_ set-dist 2 46 1" +$ns_ at 41.211021778628 "$god_ set-dist 15 20 2" +$ns_ at 41.213453029600 "$god_ set-dist 4 17 2" +$ns_ at 41.230062061246 "$god_ set-dist 4 6 2" +$ns_ at 41.230062061246 "$god_ set-dist 4 23 3" +$ns_ at 41.233203462136 "$node_(25) setdest 288.687721022182 149.840684297230 0.000000000000" +$ns_ at 41.404067875472 "$god_ set-dist 14 20 2" +$ns_ at 41.485942055771 "$god_ set-dist 16 48 2" +$ns_ at 41.485942055771 "$god_ set-dist 23 48 3" +$ns_ at 41.585164883435 "$god_ set-dist 12 20 3" +$ns_ at 41.585164883435 "$god_ set-dist 20 38 2" +$ns_ at 41.593622954900 "$god_ set-dist 40 47 2" +$ns_ at 41.612722388656 "$god_ set-dist 15 42 1" +$ns_ at 41.705035274103 "$god_ set-dist 17 34 1" +$ns_ at 41.716822008239 "$god_ set-dist 18 39 2" +$ns_ at 41.732225483511 "$god_ set-dist 15 38 1" +$ns_ at 41.832424330901 "$god_ set-dist 5 20 3" +$ns_ at 41.832424330901 "$god_ set-dist 6 20 2" +$ns_ at 41.862952887889 "$god_ set-dist 3 27 1" +$ns_ at 41.863055475905 "$god_ set-dist 41 47 2" +$ns_ at 41.873751426770 "$god_ set-dist 15 39 1" +$ns_ at 41.890747989243 "$god_ set-dist 33 43 1" +$ns_ at 41.960114415085 "$god_ set-dist 7 20 2" +$ns_ at 41.980174620499 "$god_ set-dist 35 43 1" +$ns_ at 42.041226893864 "$god_ set-dist 34 36 1" +$ns_ at 42.071078456546 "$god_ set-dist 34 41 2" +$ns_ at 42.183558206107 "$god_ set-dist 29 35 1" +$ns_ at 42.267465614716 "$god_ set-dist 30 43 1" +$ns_ at 42.399011590137 "$node_(21) setdest 191.380696442720 161.243447344433 0.000000000000" +$ns_ at 42.438705589445 "$god_ set-dist 14 18 1" +$ns_ at 42.446547405891 "$god_ set-dist 31 35 1" +$ns_ at 42.458532918137 "$god_ set-dist 1 47 3" +$ns_ at 42.458532918137 "$god_ set-dist 9 47 2" +$ns_ at 42.471881538071 "$god_ set-dist 4 24 2" +$ns_ at 42.544572332837 "$god_ set-dist 6 28 2" +$ns_ at 42.695218488582 "$god_ set-dist 9 34 2" +$ns_ at 42.782128416034 "$god_ set-dist 28 44 2" +$ns_ at 42.874312318172 "$god_ set-dist 20 29 2" +$ns_ at 42.892969283540 "$god_ set-dist 36 45 1" +$ns_ at 43.026407863576 "$god_ set-dist 2 22 1" +$ns_ at 43.068463061736 "$god_ set-dist 0 39 1" +$ns_ at 43.108497183973 "$god_ set-dist 0 32 1" +$ns_ at 43.109015603129 "$god_ set-dist 32 47 2" +$ns_ at 43.135730336532 "$node_(20) setdest 152.329780204360 483.581920872684 0.000000000000" +$ns_ at 43.182191335021 "$god_ set-dist 6 12 1" +$ns_ at 43.183752930833 "$god_ set-dist 30 33 1" +$ns_ at 43.224407573134 "$god_ set-dist 18 41 2" +$ns_ at 43.554052227308 "$god_ set-dist 27 42 2" +$ns_ at 43.694296643466 "$god_ set-dist 7 20 1" +$ns_ at 43.903055292603 "$god_ set-dist 20 26 2" +$ns_ at 44.113726757204 "$god_ set-dist 36 47 2" +$ns_ at 44.212509496941 "$god_ set-dist 25 29 2" +$ns_ at 44.273947961232 "$node_(40) setdest 285.192049765016 166.412926421941 3.574600742086" +$ns_ at 44.362220847859 "$god_ set-dist 34 35 1" +$ns_ at 44.545310132177 "$god_ set-dist 7 37 1" +$ns_ at 44.548327631614 "$god_ set-dist 9 16 2" +$ns_ at 44.700651613790 "$god_ set-dist 15 41 1" +$ns_ at 44.762831720106 "$god_ set-dist 25 34 1" +$ns_ at 44.888065003444 "$god_ set-dist 34 40 1" +$ns_ at 44.908142653047 "$god_ set-dist 16 27 2" +$ns_ at 45.041773669495 "$god_ set-dist 41 48 2" +$ns_ at 45.068590320415 "$god_ set-dist 6 47 2" +$ns_ at 45.210522401487 "$god_ set-dist 4 39 2" +$ns_ at 45.224044933725 "$god_ set-dist 1 6 1" +$ns_ at 45.343366372493 "$god_ set-dist 3 28 2" +$ns_ at 45.365426656256 "$god_ set-dist 34 45 1" +$ns_ at 45.397427088763 "$god_ set-dist 0 40 1" +$ns_ at 45.398559758336 "$god_ set-dist 19 34 1" +$ns_ at 45.403855591470 "$god_ set-dist 9 43 2" +$ns_ at 45.466285450989 "$god_ set-dist 2 40 1" +$ns_ at 45.547604044227 "$god_ set-dist 28 32 2" +$ns_ at 45.590161870615 "$god_ set-dist 7 34 1" +$ns_ at 45.604118188065 "$god_ set-dist 27 46 1" +$ns_ at 45.611770904717 "$god_ set-dist 31 33 1" +$ns_ at 45.645943712939 "$god_ set-dist 13 41 2" +$ns_ at 45.707374423443 "$god_ set-dist 4 41 2" +$ns_ at 45.733683722071 "$god_ set-dist 7 22 1" +$ns_ at 45.746316900909 "$god_ set-dist 1 3 1" +$ns_ at 45.746316900909 "$god_ set-dist 1 47 2" +$ns_ at 45.747193369010 "$god_ set-dist 36 39 2" +$ns_ at 45.750687265397 "$god_ set-dist 33 34 1" +$ns_ at 45.823641475208 "$god_ set-dist 11 40 1" +$ns_ at 45.888115792118 "$god_ set-dist 40 43 1" +$ns_ at 45.911669074611 "$god_ set-dist 36 43 1" +$ns_ at 45.932186654119 "$god_ set-dist 24 40 1" +$ns_ at 45.933253142401 "$god_ set-dist 28 48 2" +$ns_ at 46.009085563031 "$god_ set-dist 9 39 2" +$ns_ at 46.051102879313 "$god_ set-dist 9 30 2" +$ns_ at 46.081687856212 "$god_ set-dist 14 32 2" +$ns_ at 46.126060031904 "$god_ set-dist 3 29 2" +$ns_ at 46.134894899201 "$god_ set-dist 22 29 1" +$ns_ at 46.160306624050 "$god_ set-dist 16 33 2" +$ns_ at 46.285495818986 "$god_ set-dist 12 13 2" +$ns_ at 46.287058966004 "$god_ set-dist 32 34 2" +$ns_ at 46.366575071700 "$god_ set-dist 39 40 2" +$ns_ at 46.542651019972 "$god_ set-dist 19 22 1" +$ns_ at 46.569987675773 "$god_ set-dist 32 42 2" +$ns_ at 46.572658769155 "$god_ set-dist 24 48 2" +$ns_ at 46.604411956038 "$god_ set-dist 2 44 1" +$ns_ at 46.680111773703 "$god_ set-dist 0 22 1" +$ns_ at 46.952770266455 "$god_ set-dist 8 44 2" +$ns_ at 47.080899320311 "$god_ set-dist 19 37 1" +$ns_ at 47.318631011638 "$god_ set-dist 9 24 2" +$ns_ at 47.323873411835 "$god_ set-dist 15 35 1" +$ns_ at 47.359632477048 "$god_ set-dist 4 47 2" +$ns_ at 47.387735613380 "$god_ set-dist 2 34 1" +$ns_ at 47.407111348462 "$god_ set-dist 7 35 1" +$ns_ at 47.414276971955 "$god_ set-dist 16 41 2" +$ns_ at 47.457396509656 "$god_ set-dist 16 25 2" +$ns_ at 47.484230646356 "$god_ set-dist 15 37 1" +$ns_ at 47.514080971693 "$god_ set-dist 27 37 1" +$ns_ at 47.554807263294 "$god_ set-dist 18 43 1" +$ns_ at 47.557626775767 "$god_ set-dist 39 48 2" +$ns_ at 47.564871263385 "$god_ set-dist 28 38 2" +$ns_ at 47.575132197780 "$god_ set-dist 11 36 1" +$ns_ at 47.658780593350 "$god_ set-dist 6 32 2" +$ns_ at 47.681532637994 "$god_ set-dist 0 26 1" +$ns_ at 47.790729012585 "$node_(43) setdest 174.514031572947 347.234964190254 0.000000000000" +$ns_ at 47.968024975097 "$god_ set-dist 41 43 2" +$ns_ at 47.983245305419 "$god_ set-dist 22 46 1" +$ns_ at 48.101779319222 "$god_ set-dist 27 32 1" +$ns_ at 48.216663840186 "$god_ set-dist 1 38 1" +$ns_ at 48.264816967670 "$god_ set-dist 42 46 2" +$ns_ at 48.382912710357 "$god_ set-dist 13 49 2" +$ns_ at 48.440721135150 "$god_ set-dist 15 22 1" +$ns_ at 48.516492147752 "$god_ set-dist 13 34 1" +$ns_ at 48.590673319311 "$god_ set-dist 18 47 2" +$ns_ at 48.803637784709 "$god_ set-dist 25 30 1" +$ns_ at 48.839355040839 "$node_(4) setdest 70.923776191693 108.687894094522 0.000000000000" +$ns_ at 48.861742953760 "$god_ set-dist 16 23 2" +$ns_ at 48.906900671545 "$god_ set-dist 39 41 2" +$ns_ at 48.912393465916 "$god_ set-dist 1 36 1" +$ns_ at 48.957883829900 "$node_(32) setdest 365.782274185380 488.433562590317 0.000000000000" +$ns_ at 49.023845570400 "$god_ set-dist 10 13 2" +$ns_ at 49.023845570400 "$god_ set-dist 13 32 3" +$ns_ at 49.156065974555 "$node_(7) setdest 360.837653059100 421.445953580727 0.000000000000" +$ns_ at 49.176510068999 "$god_ set-dist 19 35 1" +$ns_ at 49.215010078922 "$god_ set-dist 30 39 2" +$ns_ at 49.216311301887 "$god_ set-dist 5 21 1" +$ns_ at 49.725945136948 "$god_ set-dist 19 41 1" +$ns_ at 49.767462435411 "$god_ set-dist 11 30 1" +$ns_ at 49.767462435411 "$god_ set-dist 23 30 2" +$ns_ at 49.773616988571 "$god_ set-dist 5 37 1" +$ns_ at 49.954767740909 "$god_ set-dist 21 31 1" +$ns_ at 50.012634588890 "$god_ set-dist 9 42 2" +$ns_ at 50.015231835862 "$god_ set-dist 4 49 2" +$ns_ at 50.036259128862 "$god_ set-dist 16 44 2" +$ns_ at 50.075342355201 "$god_ set-dist 5 20 2" +$ns_ at 50.075342355201 "$god_ set-dist 12 20 2" +$ns_ at 50.075342355201 "$god_ set-dist 20 37 1" +$ns_ at 50.161151315692 "$god_ set-dist 8 28 2" +$ns_ at 50.174928957797 "$god_ set-dist 46 48 2" +$ns_ at 50.197654733767 "$god_ set-dist 41 42 2" +$ns_ at 50.257697454942 "$god_ set-dist 3 47 2" +$ns_ at 50.294996802649 "$god_ set-dist 47 48 2" +$ns_ at 50.301212352393 "$god_ set-dist 15 34 1" +$ns_ at 50.342813099673 "$god_ set-dist 8 9 2" +$ns_ at 50.352911256568 "$god_ set-dist 11 23 2" +$ns_ at 50.352911256568 "$god_ set-dist 23 30 3" +$ns_ at 50.416336795539 "$god_ set-dist 14 28 2" +$ns_ at 50.453606154877 "$node_(44) setdest 493.747900403003 57.126040659430 0.975557580338" +$ns_ at 50.535859894127 "$god_ set-dist 13 46 2" +$ns_ at 50.664305256567 "$god_ set-dist 9 13 2" +$ns_ at 50.733884618114 "$god_ set-dist 9 48 2" +$ns_ at 50.754633536068 "$god_ set-dist 12 20 3" +$ns_ at 50.754633536068 "$god_ set-dist 12 28 3" +$ns_ at 50.754633536068 "$god_ set-dist 12 37 2" +$ns_ at 51.054145968350 "$god_ set-dist 16 21 2" +$ns_ at 51.117725261259 "$god_ set-dist 6 16 2" +$ns_ at 51.144865234334 "$god_ set-dist 4 46 2" +$ns_ at 51.217816456179 "$god_ set-dist 13 35 2" +$ns_ at 51.258364845075 "$god_ set-dist 4 9 2" +$ns_ at 51.430286228743 "$god_ set-dist 0 42 2" +$ns_ at 51.433852719980 "$god_ set-dist 1 47 3" +$ns_ at 51.433852719980 "$god_ set-dist 38 47 2" +$ns_ at 51.649213631374 "$god_ set-dist 43 48 2" +$ns_ at 51.657856035033 "$node_(47) setdest 89.934771695741 386.076207809115 0.000000000000" +$ns_ at 51.730065642229 "$god_ set-dist 29 42 2" +$ns_ at 51.737292439142 "$god_ set-dist 48 49 2" +$ns_ at 51.879289546401 "$god_ set-dist 24 41 2" +$ns_ at 52.026742869398 "$god_ set-dist 0 16 2" +$ns_ at 52.213906449521 "$god_ set-dist 7 41 2" +$ns_ at 52.262295880753 "$god_ set-dist 11 46 1" +$ns_ at 52.311669077986 "$god_ set-dist 23 39 1" +$ns_ at 52.314823104421 "$god_ set-dist 11 18 1" +$ns_ at 52.423683277874 "$god_ set-dist 3 16 2" +$ns_ at 52.481138736351 "$god_ set-dist 6 42 2" +$ns_ at 52.698687167038 "$god_ set-dist 9 18 2" +$ns_ at 53.089442050172 "$god_ set-dist 9 49 2" +$ns_ at 53.267501362159 "$god_ set-dist 0 34 1" +$ns_ at 53.369592510705 "$god_ set-dist 35 48 2" +$ns_ at 53.386923381423 "$god_ set-dist 6 43 2" +$ns_ at 53.406882861110 "$god_ set-dist 9 11 2" +$ns_ at 53.458914635902 "$god_ set-dist 46 49 2" +$ns_ at 53.474104297961 "$god_ set-dist 6 23 2" +$ns_ at 53.546643285676 "$god_ set-dist 18 46 2" +$ns_ at 53.555349656073 "$god_ set-dist 13 42 2" +$ns_ at 53.682932478274 "$node_(41) setdest 408.519221230410 173.995349484271 0.000000000000" +$ns_ at 53.803614215205 "$god_ set-dist 6 34 2" +$ns_ at 53.923984411735 "$god_ set-dist 13 38 2" +$ns_ at 54.024909387737 "$god_ set-dist 10 48 2" +$ns_ at 54.024909387737 "$god_ set-dist 32 48 3" +$ns_ at 54.069847912629 "$god_ set-dist 42 48 2" +$ns_ at 54.124149983178 "$god_ set-dist 33 39 2" +$ns_ at 54.304376660119 "$god_ set-dist 13 14 2" +$ns_ at 54.611110950598 "$god_ set-dist 6 39 2" +$ns_ at 54.690674746032 "$god_ set-dist 13 25 2" +$ns_ at 54.721119989001 "$god_ set-dist 15 25 1" +$ns_ at 54.749489603033 "$god_ set-dist 33 42 2" +$ns_ at 54.940954584608 "$god_ set-dist 9 22 2" +$ns_ at 54.951722291013 "$god_ set-dist 4 42 2" +$ns_ at 55.019639384120 "$god_ set-dist 25 42 2" +$ns_ at 55.188264478293 "$god_ set-dist 16 45 2" +$ns_ at 55.197904501607 "$god_ set-dist 42 45 2" +$ns_ at 55.229254339092 "$god_ set-dist 2 42 2" +$ns_ at 55.336179386588 "$node_(9) setdest 351.755079153240 85.239590431991 0.000000000000" +$ns_ at 55.337826627116 "$god_ set-dist 16 38 2" +$ns_ at 55.470658872792 "$god_ set-dist 13 33 2" +$ns_ at 55.477519418404 "$god_ set-dist 31 40 1" +$ns_ at 55.542003451695 "$god_ set-dist 4 35 2" +$ns_ at 55.589628286830 "$god_ set-dist 16 17 2" +$ns_ at 55.645611715357 "$god_ set-dist 36 42 2" +$ns_ at 55.667231759804 "$god_ set-dist 13 32 2" +$ns_ at 55.667231759804 "$god_ set-dist 22 32 1" +$ns_ at 55.667231759804 "$god_ set-dist 32 48 2" +$ns_ at 55.892940670307 "$god_ set-dist 9 22 1" +$ns_ at 55.921040662689 "$god_ set-dist 13 22 2" +$ns_ at 55.921040662689 "$god_ set-dist 13 32 3" +$ns_ at 55.943382463504 "$god_ set-dist 31 44 1" +$ns_ at 55.977341375323 "$god_ set-dist 40 42 2" +$ns_ at 55.994466981393 "$god_ set-dist 22 27 1" +$ns_ at 56.025915203468 "$god_ set-dist 22 48 2" +$ns_ at 56.025915203468 "$god_ set-dist 32 48 3" +$ns_ at 56.042314716081 "$god_ set-dist 8 40 1" +$ns_ at 56.062593946844 "$god_ set-dist 25 39 2" +$ns_ at 56.118726345351 "$god_ set-dist 4 11 1" +$ns_ at 56.163373561154 "$god_ set-dist 3 15 1" +$ns_ at 56.178939847695 "$god_ set-dist 15 20 1" +$ns_ at 56.281911429405 "$god_ set-dist 6 7 2" +$ns_ at 56.324780909323 "$god_ set-dist 13 29 3" +$ns_ at 56.324780909323 "$god_ set-dist 13 37 2" +$ns_ at 56.408999862173 "$god_ set-dist 38 48 2" +$ns_ at 56.438272274449 "$god_ set-dist 0 44 1" +$ns_ at 56.569683847588 "$god_ set-dist 18 49 2" +$ns_ at 56.632375595958 "$god_ set-dist 15 33 1" +$ns_ at 56.660152196522 "$god_ set-dist 15 42 2" +$ns_ at 56.664668751063 "$god_ set-dist 39 44 2" +$ns_ at 56.801562364133 "$god_ set-dist 2 16 2" +$ns_ at 56.815006052889 "$god_ set-dist 6 24 2" +$ns_ at 56.892154497203 "$god_ set-dist 37 48 2" +$ns_ at 56.903273078604 "$god_ set-dist 28 31 2" +$ns_ at 56.950098045862 "$god_ set-dist 20 48 3" +$ns_ at 56.950098045862 "$god_ set-dist 34 48 2" +$ns_ at 56.974308576172 "$god_ set-dist 17 42 2" +$ns_ at 57.100658921869 "$god_ set-dist 5 15 1" +$ns_ at 57.289200646979 "$god_ set-dist 3 42 2" +$ns_ at 57.429926330032 "$god_ set-dist 6 19 2" +$ns_ at 57.778181810330 "$node_(16) setdest 177.813402490035 444.161208552665 0.000000000000" +$ns_ at 58.048769411663 "$god_ set-dist 6 49 2" +$ns_ at 58.110721414018 "$node_(10) setdest 240.686423159851 498.392273128404 5.987601321056" +$ns_ at 58.116842752615 "$god_ set-dist 38 42 2" +$ns_ at 58.120477264806 "$god_ set-dist 9 11 1" +$ns_ at 58.170626012277 "$god_ set-dist 3 39 2" +$ns_ at 58.215253519613 "$god_ set-dist 21 39 2" +$ns_ at 58.233326022691 "$god_ set-dist 7 48 3" +$ns_ at 58.233326022691 "$god_ set-dist 14 48 2" +$ns_ at 58.233326022691 "$god_ set-dist 19 48 3" +$ns_ at 58.233326022691 "$god_ set-dist 29 48 3" +$ns_ at 58.283220660531 "$god_ set-dist 27 40 1" +$ns_ at 58.305899862458 "$god_ set-dist 41 49 2" +$ns_ at 58.662638464122 "$god_ set-dist 12 26 1" +$ns_ at 58.662638464122 "$god_ set-dist 12 28 2" +$ns_ at 58.823585014952 "$god_ set-dist 7 42 2" +$ns_ at 58.845899574532 "$god_ set-dist 3 13 2" +$ns_ at 58.917260024151 "$god_ set-dist 32 37 1" +$ns_ at 59.077757740615 "$god_ set-dist 18 42 2" +$ns_ at 59.230793704861 "$god_ set-dist 27 49 2" +$ns_ at 59.283495120384 "$god_ set-dist 1 47 2" +$ns_ at 59.283495120384 "$god_ set-dist 35 47 1" +$ns_ at 59.336256178593 "$god_ set-dist 24 36 1" +$ns_ at 59.337010673086 "$god_ set-dist 18 23 2" +$ns_ at 59.337010673086 "$god_ set-dist 23 35 1" +$ns_ at 59.410331497769 "$god_ set-dist 23 30 2" +$ns_ at 59.410331497769 "$god_ set-dist 23 49 1" +$ns_ at 59.454649957111 "$god_ set-dist 23 30 3" +$ns_ at 59.454649957111 "$god_ set-dist 30 49 2" +$ns_ at 59.557945687903 "$god_ set-dist 4 10 2" +$ns_ at 59.562820947731 "$god_ set-dist 28 30 2" +$ns_ at 59.655551651124 "$node_(45) setdest 169.830993126344 4.344038177179 3.250595279067" +$ns_ at 59.661307472375 "$god_ set-dist 19 42 2" +$ns_ at 59.720486030844 "$god_ set-dist 27 39 1" +$ns_ at 59.824887055386 "$god_ set-dist 30 38 2" +$ns_ at 59.848765241296 "$node_(13) setdest 9.377323312332 129.797199740498 0.000000000000" +$ns_ at 59.859996535582 "$god_ set-dist 11 32 2" +$ns_ at 59.889543688747 "$god_ set-dist 36 49 2" +$ns_ at 60.078939778031 "$node_(6) setdest 404.691341141192 144.213041522613 0.000000000000" +$ns_ at 60.111134869467 "$god_ set-dist 29 43 2" +$ns_ at 60.154248338325 "$god_ set-dist 16 29 2" +$ns_ at 60.181170933553 "$god_ set-dist 1 16 3" +$ns_ at 60.181170933553 "$god_ set-dist 1 35 2" +$ns_ at 60.181170933553 "$god_ set-dist 1 42 3" +$ns_ at 60.181170933553 "$god_ set-dist 1 47 3" +$ns_ at 60.306957205199 "$god_ set-dist 5 22 1" +$ns_ at 60.325761481817 "$node_(48) setdest 54.770072314929 66.679250884169 0.000000000000" +$ns_ at 60.489629870906 "$god_ set-dist 32 35 1" +$ns_ at 60.503328936155 "$node_(27) setdest 12.736651149863 194.779915039945 3.967927320704" +$ns_ at 60.613151586024 "$god_ set-dist 12 28 3" +$ns_ at 60.613151586024 "$god_ set-dist 26 28 2" +$ns_ at 60.613151586024 "$god_ set-dist 28 48 3" +$ns_ at 60.849327731001 "$god_ set-dist 4 22 2" +$ns_ at 60.900317930103 "$god_ set-dist 15 26 1" +$ns_ at 61.077805415704 "$god_ set-dist 31 46 1" +$ns_ at 61.095446842816 "$god_ set-dist 21 42 2" +$ns_ at 61.110991643152 "$god_ set-dist 5 31 1" +$ns_ at 61.156775401622 "$god_ set-dist 9 10 2" +$ns_ at 61.212411636262 "$god_ set-dist 5 36 1" +$ns_ at 61.224651833745 "$god_ set-dist 42 44 2" +$ns_ at 61.233203462136 "$node_(25) setdest 249.887007515993 436.101163786147 2.169793967930" +$ns_ at 61.344231289971 "$god_ set-dist 15 46 1" +$ns_ at 61.441370311712 "$god_ set-dist 15 40 1" +$ns_ at 61.649982277728 "$god_ set-dist 24 27 1" +$ns_ at 61.974142483430 "$god_ set-dist 8 21 2" +$ns_ at 62.000527127685 "$god_ set-dist 11 13 1" +$ns_ at 62.000527127685 "$god_ set-dist 13 29 2" +$ns_ at 62.141504321093 "$god_ set-dist 27 49 1" +$ns_ at 62.224050651181 "$god_ set-dist 4 32 3" +$ns_ at 62.224050651181 "$god_ set-dist 4 37 2" +$ns_ at 62.399011590137 "$node_(21) setdest 475.818120867519 150.125425477998 5.663195834017" +$ns_ at 62.661697095590 "$god_ set-dist 8 21 1" +$ns_ at 62.717410380199 "$god_ set-dist 1 21 1" +$ns_ at 62.717410380199 "$god_ set-dist 1 47 2" +$ns_ at 62.754763837610 "$god_ set-dist 35 42 2" +$ns_ at 62.945341227867 "$god_ set-dist 22 23 1" +$ns_ at 62.945341227867 "$god_ set-dist 23 30 2" +$ns_ at 63.094543455449 "$god_ set-dist 28 37 2" +$ns_ at 63.135730336532 "$node_(20) setdest 213.092344189810 483.722382368114 6.725127449917" +$ns_ at 63.143548410208 "$god_ set-dist 10 46 2" +$ns_ at 63.236450346646 "$god_ set-dist 5 29 1" +$ns_ at 63.282771878161 "$god_ set-dist 11 29 2" +$ns_ at 63.282771878161 "$god_ set-dist 13 29 3" +$ns_ at 63.296627964678 "$god_ set-dist 34 41 1" +$ns_ at 63.457742197879 "$god_ set-dist 4 38 2" +$ns_ at 63.571725693726 "$god_ set-dist 13 40 2" +$ns_ at 63.587720310819 "$god_ set-dist 14 42 2" +$ns_ at 63.606350654565 "$god_ set-dist 23 24 1" +$ns_ at 63.686137401526 "$god_ set-dist 1 47 3" +$ns_ at 63.686137401526 "$god_ set-dist 21 47 2" +$ns_ at 63.748053182161 "$god_ set-dist 23 37 1" +$ns_ at 63.772627958032 "$god_ set-dist 38 39 2" +$ns_ at 63.852004589735 "$god_ set-dist 5 28 3" +$ns_ at 63.852004589735 "$god_ set-dist 22 28 2" +$ns_ at 63.992067883920 "$god_ set-dist 10 23 1" +$ns_ at 64.145248189034 "$god_ set-dist 7 38 2" +$ns_ at 64.208233930210 "$god_ set-dist 8 42 2" +$ns_ at 64.209224034993 "$god_ set-dist 18 24 1" +$ns_ at 64.241028736141 "$god_ set-dist 9 18 1" +$ns_ at 64.483337776499 "$god_ set-dist 2 36 1" +$ns_ at 64.490750204209 "$god_ set-dist 12 20 2" +$ns_ at 64.490750204209 "$god_ set-dist 20 35 1" +$ns_ at 64.497286725688 "$god_ set-dist 5 44 1" +$ns_ at 64.524904056234 "$god_ set-dist 7 48 2" +$ns_ at 64.524904056234 "$god_ set-dist 11 48 1" +$ns_ at 64.524904056234 "$god_ set-dist 19 48 2" +$ns_ at 64.524904056234 "$god_ set-dist 20 48 2" +$ns_ at 64.524904056234 "$god_ set-dist 28 48 2" +$ns_ at 64.583359124181 "$god_ set-dist 15 21 1" +$ns_ at 64.638881902150 "$god_ set-dist 26 39 2" +$ns_ at 64.665100778958 "$god_ set-dist 3 49 2" +$ns_ at 64.700770542485 "$god_ set-dist 12 20 3" +$ns_ at 64.700770542485 "$god_ set-dist 12 35 2" +$ns_ at 64.787868870481 "$god_ set-dist 14 48 1" +$ns_ at 64.787868870481 "$god_ set-dist 29 48 2" +$ns_ at 64.823219731837 "$god_ set-dist 12 27 1" +$ns_ at 64.868898960625 "$god_ set-dist 25 48 2" +$ns_ at 64.877595997908 "$god_ set-dist 6 10 2" +$ns_ at 64.978978711355 "$god_ set-dist 27 34 1" +$ns_ at 65.181083860469 "$god_ set-dist 30 42 2" +$ns_ at 65.400454983790 "$god_ set-dist 12 42 3" +$ns_ at 65.400454983790 "$god_ set-dist 26 42 2" +$ns_ at 65.590076095136 "$god_ set-dist 19 25 1" +$ns_ at 65.611435907652 "$god_ set-dist 21 27 1" +$ns_ at 65.711136533414 "$god_ set-dist 4 29 3" +$ns_ at 65.711136533414 "$god_ set-dist 14 29 2" +$ns_ at 65.711136533414 "$god_ set-dist 29 48 3" +$ns_ at 65.792619153143 "$god_ set-dist 31 42 2" +$ns_ at 65.809232504864 "$node_(42) setdest 70.957813588722 428.578161784508 0.000000000000" +$ns_ at 65.871801267853 "$god_ set-dist 17 18 1" +$ns_ at 66.008520715170 "$god_ set-dist 3 8 2" +$ns_ at 66.317139486832 "$god_ set-dist 32 45 2" +$ns_ at 66.377279655664 "$god_ set-dist 6 34 1" +$ns_ at 66.479644024459 "$god_ set-dist 1 14 1" +$ns_ at 66.479644024459 "$god_ set-dist 1 16 2" +$ns_ at 66.479644024459 "$god_ set-dist 1 47 2" +$ns_ at 66.550072662607 "$god_ set-dist 28 39 2" +$ns_ at 66.735431464654 "$god_ set-dist 22 30 2" +$ns_ at 67.040247324256 "$god_ set-dist 9 34 1" +$ns_ at 67.075308872750 "$god_ set-dist 5 26 1" +$ns_ at 67.112537859110 "$god_ set-dist 29 38 2" +$ns_ at 67.166449252186 "$god_ set-dist 33 49 2" +$ns_ at 67.565315097339 "$god_ set-dist 10 30 2" +$ns_ at 67.703910761749 "$god_ set-dist 3 43 2" +$ns_ at 67.790729012585 "$node_(43) setdest 380.658321705864 65.516179689990 1.757300848961" +$ns_ at 67.817409606737 "$god_ set-dist 18 47 1" +$ns_ at 67.904060070601 "$god_ set-dist 2 16 1" +$ns_ at 67.978771438776 "$god_ set-dist 38 49 2" +$ns_ at 68.011538152603 "$god_ set-dist 22 42 2" +$ns_ at 68.122955288807 "$node_(29) setdest 439.314532414410 391.214923903510 0.000000000000" +$ns_ at 68.557110545319 "$god_ set-dist 11 46 2" +$ns_ at 68.557110545319 "$god_ set-dist 28 46 3" +$ns_ at 68.724889100890 "$god_ set-dist 26 27 1" +$ns_ at 68.734255092103 "$god_ set-dist 30 37 2" +$ns_ at 68.839355040839 "$node_(4) setdest 483.583687824525 332.193444971050 4.711365413378" +$ns_ at 68.873307697064 "$god_ set-dist 19 40 1" +$ns_ at 68.957883829900 "$node_(32) setdest 191.784763334140 193.257759138386 9.675549585958" +$ns_ at 68.986638891503 "$god_ set-dist 16 26 2" +$ns_ at 69.038057778291 "$god_ set-dist 44 49 2" +$ns_ at 69.105099767910 "$god_ set-dist 11 28 2" +$ns_ at 69.105099767910 "$god_ set-dist 28 48 3" +$ns_ at 69.156065974555 "$node_(7) setdest 4.154672930988 150.809851328016 3.039551599004" +$ns_ at 69.309572618850 "$god_ set-dist 10 36 2" +$ns_ at 69.316241291044 "$god_ set-dist 18 45 1" +$ns_ at 69.370873353553 "$god_ set-dist 10 41 2" +$ns_ at 69.391250498049 "$god_ set-dist 2 12 1" +$ns_ at 69.416921341257 "$god_ set-dist 17 32 1" +$ns_ at 69.592110708681 "$god_ set-dist 15 44 1" +$ns_ at 69.832743040138 "$god_ set-dist 44 47 2" +$ns_ at 69.870839757389 "$god_ set-dist 10 18 2" +$ns_ at 69.960033133596 "$god_ set-dist 40 49 2" +$ns_ at 69.982465628660 "$god_ set-dist 6 8 2" +$ns_ at 70.061028352563 "$god_ set-dist 13 14 1" +$ns_ at 70.115737491538 "$god_ set-dist 1 44 1" +$ns_ at 70.137168685828 "$god_ set-dist 32 45 1" +$ns_ at 70.171507200468 "$god_ set-dist 3 10 2" +$ns_ at 70.259023334091 "$god_ set-dist 4 32 2" +$ns_ at 70.259023334091 "$god_ set-dist 13 32 2" +$ns_ at 70.259023334091 "$god_ set-dist 32 34 1" +$ns_ at 70.271857731929 "$god_ set-dist 5 28 2" +$ns_ at 70.271857731929 "$god_ set-dist 5 34 1" +$ns_ at 70.669268204416 "$god_ set-dist 7 41 1" +$ns_ at 70.706680271186 "$god_ set-dist 21 49 2" +$ns_ at 70.828307858710 "$god_ set-dist 4 43 1" +$ns_ at 70.931607689371 "$god_ set-dist 13 28 3" +$ns_ at 70.931607689371 "$god_ set-dist 13 32 3" +$ns_ at 70.931607689371 "$god_ set-dist 13 34 2" +$ns_ at 70.963904353724 "$god_ set-dist 11 39 2" +$ns_ at 71.088791041835 "$god_ set-dist 31 36 1" +$ns_ at 71.247485507106 "$god_ set-dist 19 33 1" +$ns_ at 71.254615314676 "$god_ set-dist 5 28 3" +$ns_ at 71.254615314676 "$god_ set-dist 6 28 3" +$ns_ at 71.254615314676 "$god_ set-dist 9 28 3" +$ns_ at 71.254615314676 "$god_ set-dist 28 34 2" +$ns_ at 71.254615314676 "$god_ set-dist 28 41 3" +$ns_ at 71.273029101483 "$god_ set-dist 20 29 1" +$ns_ at 71.387785630120 "$god_ set-dist 13 39 3" +$ns_ at 71.387785630120 "$god_ set-dist 14 39 2" +$ns_ at 71.387785630120 "$god_ set-dist 39 48 3" +$ns_ at 71.490961513081 "$node_(46) setdest 431.264357339355 138.140754944942 0.000000000000" +$ns_ at 71.524072215402 "$god_ set-dist 11 20 2" +$ns_ at 71.524072215402 "$god_ set-dist 13 20 3" +$ns_ at 71.524072215402 "$god_ set-dist 20 48 3" +$ns_ at 71.537529071802 "$god_ set-dist 0 1 2" +$ns_ at 71.657856035033 "$node_(47) setdest 431.593085003868 386.046013398462 9.699181122107" +$ns_ at 71.671437992630 "$god_ set-dist 39 42 2" +$ns_ at 71.731895916496 "$god_ set-dist 3 30 2" +$ns_ at 71.748898833908 "$god_ set-dist 3 24 2" +$ns_ at 71.748898833908 "$god_ set-dist 3 28 3" +$ns_ at 71.792462005803 "$god_ set-dist 3 48 2" +$ns_ at 71.846559753446 "$god_ set-dist 27 44 1" +$ns_ at 72.033469929107 "$god_ set-dist 44 47 1" +$ns_ at 72.059381665196 "$god_ set-dist 9 15 1" +$ns_ at 72.130185372391 "$god_ set-dist 35 42 1" +$ns_ at 72.170908745613 "$node_(20) setdest 213.092344189810 483.722382368114 0.000000000000" +$ns_ at 72.263495123519 "$god_ set-dist 9 31 1" +$ns_ at 72.267689372587 "$god_ set-dist 25 49 2" +$ns_ at 72.436105372068 "$god_ set-dist 27 43 1" +$ns_ at 72.513410826163 "$god_ set-dist 19 47 1" +$ns_ at 72.546150910957 "$god_ set-dist 40 48 2" +$ns_ at 72.601036852062 "$god_ set-dist 7 11 2" +$ns_ at 72.603782523972 "$god_ set-dist 7 25 1" +$ns_ at 72.607438636413 "$god_ set-dist 15 47 1" +$ns_ at 72.668641517564 "$god_ set-dist 34 46 1" +$ns_ at 72.719236561386 "$god_ set-dist 12 18 1" +$ns_ at 72.857578180993 "$node_(40) setdest 285.192049765016 166.412926421940 0.000000000000" +$ns_ at 73.013368927516 "$god_ set-dist 19 21 1" +$ns_ at 73.015029179195 "$god_ set-dist 7 47 1" +$ns_ at 73.036349835488 "$god_ set-dist 10 38 2" +$ns_ at 73.115023070423 "$god_ set-dist 38 43 2" +$ns_ at 73.152310179272 "$god_ set-dist 32 47 1" +$ns_ at 73.314580220999 "$god_ set-dist 23 41 1" +$ns_ at 73.412953627432 "$god_ set-dist 5 19 1" +$ns_ at 73.682932478274 "$node_(41) setdest 385.761746260906 301.501243890323 4.139134371872" +$ns_ at 73.843490281040 "$node_(37) setdest 283.135408743323 318.794978970977 0.000000000000" +$ns_ at 74.061512206812 "$god_ set-dist 4 29 2" +$ns_ at 74.061512206812 "$god_ set-dist 29 34 1" +$ns_ at 74.119711676294 "$god_ set-dist 13 21 2" +$ns_ at 74.306510558310 "$god_ set-dist 24 41 1" +$ns_ at 74.306510558310 "$god_ set-dist 28 41 2" +$ns_ at 74.453486948750 "$god_ set-dist 9 35 2" +$ns_ at 74.539694989888 "$god_ set-dist 6 19 1" +$ns_ at 74.596639747422 "$god_ set-dist 13 32 2" +$ns_ at 74.596639747422 "$god_ set-dist 14 32 1" +$ns_ at 74.596639747422 "$god_ set-dist 32 48 2" +$ns_ at 74.714841472908 "$god_ set-dist 18 35 2" +$ns_ at 74.784692243295 "$god_ set-dist 39 45 2" +$ns_ at 75.064928002047 "$god_ set-dist 27 49 2" +$ns_ at 75.203304666366 "$god_ set-dist 26 49 2" +$ns_ at 75.232095409227 "$node_(39) setdest 337.271896110046 468.765251339220 0.000000000000" +$ns_ at 75.253089504625 "$node_(49) setdest 229.493257760675 432.262278606779 0.000000000000" +$ns_ at 75.289882209860 "$god_ set-dist 18 31 1" +$ns_ at 75.336179386588 "$node_(9) setdest 72.508695321579 280.048617569290 5.434304368760" +$ns_ at 75.356375228348 "$god_ set-dist 27 49 1" +$ns_ at 75.617771991858 "$god_ set-dist 27 36 1" +$ns_ at 75.809946162537 "$god_ set-dist 7 40 1" +$ns_ at 76.050055532280 "$god_ set-dist 2 47 1" +$ns_ at 76.117874194679 "$god_ set-dist 4 9 1" +$ns_ at 76.135121630859 "$god_ set-dist 10 33 2" +$ns_ at 76.181025803935 "$god_ set-dist 4 23 2" +$ns_ at 76.181025803935 "$god_ set-dist 4 45 1" +$ns_ at 76.225794311769 "$god_ set-dist 25 32 1" +$ns_ at 76.452206905977 "$god_ set-dist 10 44 2" +$ns_ at 76.466599552150 "$god_ set-dist 8 38 2" +$ns_ at 76.528689944465 "$god_ set-dist 17 47 1" +$ns_ at 76.595306208371 "$god_ set-dist 11 12 1" +$ns_ at 76.595306208371 "$god_ set-dist 12 42 2" +$ns_ at 76.615568355137 "$god_ set-dist 35 36 2" +$ns_ at 76.653197861749 "$god_ set-dist 25 47 1" +$ns_ at 76.725766620268 "$god_ set-dist 32 41 1" +$ns_ at 77.296310825549 "$god_ set-dist 18 22 2" +$ns_ at 77.365284263228 "$god_ set-dist 3 35 2" +$ns_ at 77.566665998126 "$god_ set-dist 10 21 2" +$ns_ at 77.626064970949 "$god_ set-dist 15 36 1" +$ns_ at 77.636835405818 "$god_ set-dist 19 26 1" +$ns_ at 77.682523197282 "$god_ set-dist 35 46 2" +$ns_ at 77.778181810330 "$node_(16) setdest 188.856449509538 232.091499789393 6.602418155713" +$ns_ at 77.886530618815 "$god_ set-dist 0 36 1" +$ns_ at 77.920762975922 "$god_ set-dist 32 40 1" +$ns_ at 78.046939121170 "$god_ set-dist 1 26 1" +$ns_ at 78.110576751741 "$god_ set-dist 24 38 2" +$ns_ at 78.110576751741 "$god_ set-dist 28 38 3" +$ns_ at 78.201312300868 "$god_ set-dist 32 42 1" +$ns_ at 78.323462855473 "$god_ set-dist 0 47 1" +$ns_ at 78.332602438239 "$god_ set-dist 12 20 2" +$ns_ at 78.332602438239 "$god_ set-dist 12 34 1" +$ns_ at 78.408965309588 "$god_ set-dist 45 47 1" +$ns_ at 78.487840805946 "$god_ set-dist 4 17 1" +$ns_ at 78.764095745361 "$god_ set-dist 10 40 2" +$ns_ at 78.781685766764 "$god_ set-dist 11 19 2" +$ns_ at 78.879214236451 "$god_ set-dist 4 24 1" +$ns_ at 78.887251273075 "$god_ set-dist 8 26 2" +$ns_ at 78.905252899583 "$god_ set-dist 21 32 1" +$ns_ at 79.056872141760 "$god_ set-dist 25 49 1" +$ns_ at 79.096761807923 "$god_ set-dist 8 11 2" +$ns_ at 79.194407663400 "$node_(3) setdest 321.159276715742 90.491494238896 0.000000000000" +$ns_ at 79.217536503237 "$god_ set-dist 11 42 2" +$ns_ at 79.217536503237 "$god_ set-dist 13 42 3" +$ns_ at 79.217536503237 "$god_ set-dist 42 48 3" +$ns_ at 79.354131948164 "$god_ set-dist 33 48 2" +$ns_ at 79.362993631593 "$god_ set-dist 7 21 1" +$ns_ at 79.396464280114 "$god_ set-dist 32 33 1" +$ns_ at 79.419608777571 "$god_ set-dist 21 48 2" +$ns_ at 79.453451363239 "$god_ set-dist 11 32 1" +$ns_ at 79.481173457639 "$god_ set-dist 40 47 1" +$ns_ at 79.545365155473 "$god_ set-dist 26 32 1" +$ns_ at 79.680638403655 "$god_ set-dist 23 45 2" +$ns_ at 79.682296423295 "$god_ set-dist 4 37 1" +$ns_ at 79.848765241296 "$node_(13) setdest 139.459997300915 233.249458255220 6.435891815616" +$ns_ at 79.905858148617 "$god_ set-dist 16 17 1" +$ns_ at 79.986522870917 "$god_ set-dist 0 16 1" +$ns_ at 80.078939778031 "$node_(6) setdest 48.565457947928 293.424655108789 8.133108511494" +$ns_ at 80.265097672952 "$god_ set-dist 2 20 1" +$ns_ at 80.306271028631 "$god_ set-dist 27 47 1" +$ns_ at 80.325761481817 "$node_(48) setdest 89.389385677174 278.285769252907 6.907117822366" +$ns_ at 80.398680898116 "$god_ set-dist 15 18 1" +$ns_ at 80.421570535042 "$god_ set-dist 33 48 1" +$ns_ at 80.616716189814 "$god_ set-dist 40 48 1" +$ns_ at 80.635928232152 "$god_ set-dist 10 26 2" +$ns_ at 80.655470542345 "$god_ set-dist 41 43 1" +$ns_ at 80.662251289869 "$god_ set-dist 2 18 1" +$ns_ at 80.691638886364 "$god_ set-dist 16 26 1" +$ns_ at 80.765188497990 "$god_ set-dist 12 42 3" +$ns_ at 80.765188497990 "$god_ set-dist 34 42 2" +$ns_ at 80.879719526264 "$god_ set-dist 45 49 2" +$ns_ at 80.939406945299 "$god_ set-dist 0 12 2" +$ns_ at 80.946963094619 "$god_ set-dist 11 49 2" +$ns_ at 80.960836813552 "$god_ set-dist 4 31 1" +$ns_ at 81.015144071326 "$god_ set-dist 7 33 1" +$ns_ at 81.038959943491 "$god_ set-dist 19 38 2" +$ns_ at 81.067461905328 "$god_ set-dist 24 28 2" +$ns_ at 81.172726609198 "$god_ set-dist 35 38 2" +$ns_ at 81.345530780365 "$god_ set-dist 10 11 2" +$ns_ at 81.358493115184 "$god_ set-dist 16 25 1" +$ns_ at 81.447638284070 "$god_ set-dist 30 47 2" +$ns_ at 81.654447714126 "$god_ set-dist 6 32 1" +$ns_ at 81.685899587876 "$god_ set-dist 5 32 1" +$ns_ at 81.786729395796 "$god_ set-dist 6 18 1" +$ns_ at 81.909521516786 "$god_ set-dist 29 47 1" +$ns_ at 81.918069000989 "$god_ set-dist 4 12 1" +$ns_ at 82.168040142764 "$god_ set-dist 13 20 2" +$ns_ at 82.168040142764 "$god_ set-dist 13 29 2" +$ns_ at 82.168040142764 "$god_ set-dist 13 34 1" +$ns_ at 82.168040142764 "$god_ set-dist 13 39 2" +$ns_ at 82.205899354438 "$god_ set-dist 32 44 1" +$ns_ at 82.331510225314 "$god_ set-dist 4 38 1" +$ns_ at 82.331548308301 "$god_ set-dist 10 45 2" +$ns_ at 82.495337336912 "$god_ set-dist 13 28 2" +$ns_ at 82.495337336912 "$god_ set-dist 13 42 2" +$ns_ at 82.495337336912 "$god_ set-dist 13 43 1" +$ns_ at 82.585627798656 "$god_ set-dist 18 27 1" +$ns_ at 82.593356317715 "$node_(28) setdest 3.830669400463 461.794397573275 0.000000000000" +$ns_ at 82.596273881142 "$god_ set-dist 6 24 1" +$ns_ at 82.677413695823 "$god_ set-dist 20 48 2" +$ns_ at 82.677413695823 "$god_ set-dist 29 48 2" +$ns_ at 82.677413695823 "$god_ set-dist 34 48 1" +$ns_ at 82.677413695823 "$god_ set-dist 39 48 2" +$ns_ at 82.746306894289 "$god_ set-dist 33 47 1" +$ns_ at 82.812450508478 "$god_ set-dist 6 7 1" +$ns_ at 82.997679914174 "$god_ set-dist 25 29 1" +$ns_ at 83.184980536801 "$god_ set-dist 9 28 2" +$ns_ at 83.184980536801 "$god_ set-dist 9 43 1" +$ns_ at 83.186666007590 "$node_(8) setdest 325.981128682400 399.635979469001 0.000000000000" +$ns_ at 83.255266894314 "$god_ set-dist 25 48 1" +$ns_ at 83.279824538638 "$god_ set-dist 16 27 1" +$ns_ at 83.304097950706 "$god_ set-dist 4 6 1" +$ns_ at 83.386370297318 "$god_ set-dist 4 15 1" +$ns_ at 83.394520901128 "$god_ set-dist 5 7 1" +$ns_ at 83.438743617079 "$god_ set-dist 5 35 2" +$ns_ at 83.576374385592 "$god_ set-dist 6 8 1" +$ns_ at 83.768243785012 "$god_ set-dist 35 44 2" +$ns_ at 83.885105997689 "$god_ set-dist 6 28 2" +$ns_ at 83.885105997689 "$god_ set-dist 6 43 1" +$ns_ at 84.005700563824 "$god_ set-dist 22 36 2" +$ns_ at 84.128849016450 "$god_ set-dist 9 24 1" +$ns_ at 84.156350644703 "$god_ set-dist 9 32 1" +$ns_ at 84.306555510980 "$god_ set-dist 23 47 1" +$ns_ at 84.330482797476 "$god_ set-dist 11 35 2" +$ns_ at 84.373554210952 "$god_ set-dist 16 45 1" +$ns_ at 84.469614440354 "$god_ set-dist 10 25 2" +$ns_ at 84.471151709300 "$god_ set-dist 9 30 1" +$ns_ at 84.479792154690 "$god_ set-dist 21 30 2" +$ns_ at 84.525406349819 "$god_ set-dist 16 44 1" +$ns_ at 84.561126137877 "$god_ set-dist 1 20 2" +$ns_ at 84.561126137877 "$god_ set-dist 1 34 1" +$ns_ at 84.571906837817 "$god_ set-dist 41 47 1" +$ns_ at 84.606906881841 "$god_ set-dist 11 22 2" +$ns_ at 84.610149056288 "$god_ set-dist 20 22 2" +$ns_ at 84.622950719329 "$god_ set-dist 16 18 1" +$ns_ at 84.630690103054 "$god_ set-dist 1 20 3" +$ns_ at 84.630690103054 "$god_ set-dist 20 34 2" +$ns_ at 84.630690103054 "$god_ set-dist 20 48 3" +$ns_ at 84.652723626640 "$god_ set-dist 18 32 1" +$ns_ at 84.731168163108 "$god_ set-dist 4 27 1" +$ns_ at 84.873443537776 "$god_ set-dist 9 48 1" +$ns_ at 84.875810363920 "$god_ set-dist 2 4 1" +$ns_ at 85.022548687703 "$god_ set-dist 10 14 2" +$ns_ at 85.071506477034 "$god_ set-dist 13 40 1" +$ns_ at 85.189722838595 "$god_ set-dist 11 41 2" +$ns_ at 85.278819480617 "$god_ set-dist 13 25 1" +$ns_ at 85.435268108476 "$god_ set-dist 21 47 1" +$ns_ at 85.474469354291 "$god_ set-dist 16 40 1" +$ns_ at 85.530294960538 "$god_ set-dist 4 32 1" +$ns_ at 85.550960285803 "$god_ set-dist 4 16 1" +$ns_ at 85.637234959862 "$god_ set-dist 30 45 1" +$ns_ at 85.681669934673 "$god_ set-dist 7 26 1" +$ns_ at 85.722240487140 "$god_ set-dist 32 36 1" +$ns_ at 85.809232504864 "$node_(42) setdest 142.283529647387 211.695068989083 6.805094893896" +$ns_ at 85.872029936167 "$god_ set-dist 0 11 2" +$ns_ at 86.089453327088 "$god_ set-dist 13 33 1" +$ns_ at 86.271417068214 "$god_ set-dist 7 42 1" +$ns_ at 86.337592779807 "$god_ set-dist 16 30 1" +$ns_ at 86.475291968387 "$god_ set-dist 20 48 2" +$ns_ at 86.475291968387 "$god_ set-dist 28 48 2" +$ns_ at 86.475291968387 "$god_ set-dist 42 48 2" +$ns_ at 86.475291968387 "$god_ set-dist 43 48 1" +$ns_ at 86.578557595379 "$god_ set-dist 39 41 1" +$ns_ at 86.605611104948 "$god_ set-dist 5 8 1" +$ns_ at 86.764185154747 "$god_ set-dist 19 46 1" +$ns_ at 86.803711151702 "$god_ set-dist 6 47 1" +$ns_ at 87.165120824202 "$god_ set-dist 9 19 1" +$ns_ at 87.196676606404 "$god_ set-dist 3 32 1" +$ns_ at 87.266553326281 "$god_ set-dist 26 35 2" +$ns_ at 87.344682928653 "$god_ set-dist 28 47 2" +$ns_ at 87.379050871993 "$god_ set-dist 5 23 1" +$ns_ at 87.463603167022 "$god_ set-dist 21 35 2" +$ns_ at 87.490186489254 "$god_ set-dist 16 33 1" +$ns_ at 87.491474255687 "$god_ set-dist 34 39 2" +$ns_ at 87.634879190289 "$god_ set-dist 11 38 2" +$ns_ at 87.695565561628 "$god_ set-dist 32 46 1" +$ns_ at 87.760258064972 "$god_ set-dist 9 13 1" +$ns_ at 87.792190383533 "$god_ set-dist 18 47 2" +$ns_ at 87.870010446638 "$god_ set-dist 31 42 1" +$ns_ at 88.019672920909 "$god_ set-dist 10 27 2" +$ns_ at 88.046625674615 "$god_ set-dist 33 35 2" +$ns_ at 88.089401578735 "$god_ set-dist 11 47 2" +$ns_ at 88.092415484716 "$node_(35) setdest 293.121692833797 406.047024637875 0.000000000000" +$ns_ at 88.097484353246 "$god_ set-dist 13 16 1" +$ns_ at 88.106873024853 "$god_ set-dist 30 42 1" +$ns_ at 88.122955288807 "$node_(29) setdest 129.766889030932 281.811448656205 6.481963542348" +$ns_ at 88.174208217130 "$god_ set-dist 10 17 2" +$ns_ at 88.300785639398 "$god_ set-dist 13 42 1" +$ns_ at 88.323623692752 "$god_ set-dist 8 42 1" +$ns_ at 88.738606670708 "$god_ set-dist 29 43 1" +$ns_ at 88.766971521469 "$god_ set-dist 33 35 1" +$ns_ at 89.065989331208 "$god_ set-dist 1 10 3" +$ns_ at 89.065989331208 "$god_ set-dist 10 34 2" +$ns_ at 89.165812748945 "$god_ set-dist 6 16 1" +$ns_ at 89.201353291428 "$god_ set-dist 45 48 1" +$ns_ at 89.233335326450 "$god_ set-dist 21 29 1" +$ns_ at 89.319409211753 "$god_ set-dist 30 32 1" +$ns_ at 89.495970763251 "$god_ set-dist 16 29 1" +$ns_ at 89.546583062133 "$god_ set-dist 29 46 1" +$ns_ at 89.583000936958 "$god_ set-dist 13 45 1" +$ns_ at 89.592552174738 "$god_ set-dist 16 41 1" +$ns_ at 89.813632436893 "$god_ set-dist 13 23 2" +$ns_ at 89.813632436893 "$god_ set-dist 13 32 1" +$ns_ at 89.877773269432 "$god_ set-dist 1 2 1" +$ns_ at 89.877773269432 "$god_ set-dist 1 10 2" +$ns_ at 89.877773269432 "$god_ set-dist 1 20 2" +$ns_ at 89.983458591594 "$god_ set-dist 0 4 1" +$ns_ at 90.008628120951 "$god_ set-dist 22 44 2" +$ns_ at 90.048783231840 "$god_ set-dist 13 24 1" +$ns_ at 90.117422495490 "$god_ set-dist 18 38 2" +$ns_ at 90.140962419892 "$god_ set-dist 10 22 2" +$ns_ at 90.148620776783 "$god_ set-dist 0 18 1" +$ns_ at 90.228551326728 "$god_ set-dist 1 42 2" +$ns_ at 90.228551326728 "$god_ set-dist 12 42 2" +$ns_ at 90.228551326728 "$god_ set-dist 14 42 1" +$ns_ at 90.264441446236 "$god_ set-dist 16 36 1" +$ns_ at 90.469805167668 "$god_ set-dist 9 16 1" +$ns_ at 90.644487434601 "$god_ set-dist 4 41 1" +$ns_ at 90.675334255617 "$god_ set-dist 15 42 1" +$ns_ at 90.704386689071 "$god_ set-dist 16 48 1" +$ns_ at 90.730998957366 "$god_ set-dist 7 9 1" +$ns_ at 90.844797327261 "$god_ set-dist 5 24 1" +$ns_ at 90.851889434074 "$god_ set-dist 4 38 2" +$ns_ at 91.000773411178 "$god_ set-dist 4 42 1" +$ns_ at 91.059439318146 "$god_ set-dist 4 5 1" +$ns_ at 91.161472894202 "$god_ set-dist 18 42 1" +$ns_ at 91.168119524843 "$god_ set-dist 23 48 2" +$ns_ at 91.168119524843 "$god_ set-dist 32 48 1" +$ns_ at 91.244674165059 "$god_ set-dist 41 49 1" +$ns_ at 91.263984032685 "$god_ set-dist 6 30 1" +$ns_ at 91.280562593724 "$god_ set-dist 37 38 2" +$ns_ at 91.439813913215 "$god_ set-dist 44 47 2" +$ns_ at 91.457871872769 "$god_ set-dist 42 48 1" +$ns_ at 91.490961513081 "$node_(46) setdest 71.563846172132 262.954341525795 1.057816795079" +$ns_ at 91.577969285162 "$god_ set-dist 6 13 1" +$ns_ at 91.586090663695 "$god_ set-dist 0 20 1" +$ns_ at 91.588025888532 "$god_ set-dist 5 47 1" +$ns_ at 91.662860190932 "$god_ set-dist 19 44 1" +$ns_ at 91.700248868578 "$god_ set-dist 9 47 1" +$ns_ at 91.757270861411 "$god_ set-dist 13 31 1" +$ns_ at 92.000132748169 "$god_ set-dist 6 48 1" +$ns_ at 92.043501223869 "$god_ set-dist 5 18 1" +$ns_ at 92.047259596699 "$god_ set-dist 18 41 1" +$ns_ at 92.088470794343 "$god_ set-dist 19 42 1" +$ns_ at 92.170908745613 "$node_(20) setdest 437.370021355563 172.635357107072 1.779124836917" +$ns_ at 92.351883542712 "$god_ set-dist 13 15 1" +$ns_ at 92.539545334286 "$god_ set-dist 29 40 1" +$ns_ at 92.640089211756 "$god_ set-dist 12 15 1" +$ns_ at 92.731780665972 "$god_ set-dist 13 37 1" +$ns_ at 92.806764009596 "$god_ set-dist 7 44 1" +$ns_ at 92.857578180993 "$node_(40) setdest 29.846014154137 442.395288035790 7.326389933910" +$ns_ at 93.199130801676 "$node_(10) setdest 240.686423159851 498.392273128404 0.000000000000" +$ns_ at 93.205151145745 "$god_ set-dist 2 11 2" +$ns_ at 93.305434710803 "$god_ set-dist 4 7 1" +$ns_ at 93.405987854267 "$god_ set-dist 29 33 1" +$ns_ at 93.439218108584 "$god_ set-dist 22 26 2" +$ns_ at 93.456697873801 "$god_ set-dist 25 42 1" +$ns_ at 93.669879808359 "$god_ set-dist 5 28 2" +$ns_ at 93.669879808359 "$god_ set-dist 5 43 1" +$ns_ at 93.699796258462 "$god_ set-dist 23 32 2" +$ns_ at 93.699796258462 "$god_ set-dist 23 48 3" +$ns_ at 93.843490281040 "$node_(37) setdest 355.618624940672 388.288609512158 3.089238606058" +$ns_ at 93.873822746790 "$god_ set-dist 4 19 1" +$ns_ at 93.977497253496 "$god_ set-dist 3 28 2" +$ns_ at 93.977497253496 "$god_ set-dist 3 43 1" +$ns_ at 94.047287148480 "$god_ set-dist 11 42 1" +$ns_ at 94.080768485842 "$god_ set-dist 16 22 2" +$ns_ at 94.104738189671 "$node_(11) setdest 134.159476590615 129.290831017423 0.000000000000" +$ns_ at 94.355307811346 "$god_ set-dist 23 48 2" +$ns_ at 94.355307811346 "$god_ set-dist 24 48 1" +$ns_ at 94.381457219150 "$god_ set-dist 3 28 3" +$ns_ at 94.381457219150 "$god_ set-dist 5 28 3" +$ns_ at 94.381457219150 "$god_ set-dist 21 28 3" +$ns_ at 94.381457219150 "$god_ set-dist 28 43 2" +$ns_ at 94.408031998526 "$god_ set-dist 13 27 1" +$ns_ at 94.494521783677 "$god_ set-dist 30 31 1" +$ns_ at 94.529578251852 "$god_ set-dist 8 21 2" +$ns_ at 94.606822050619 "$god_ set-dist 15 30 1" +$ns_ at 94.631631716200 "$god_ set-dist 26 47 2" +$ns_ at 94.762105048318 "$god_ set-dist 31 48 1" +$ns_ at 94.781818382173 "$god_ set-dist 15 48 1" +$ns_ at 94.783192259312 "$god_ set-dist 1 4 1" +$ns_ at 94.861824439541 "$god_ set-dist 6 49 1" +$ns_ at 95.006739045819 "$god_ set-dist 4 46 1" +$ns_ at 95.099829397845 "$god_ set-dist 7 18 1" +$ns_ at 95.173252420546 "$god_ set-dist 42 44 1" +$ns_ at 95.232095409227 "$node_(39) setdest 56.782033599602 61.469458575744 4.839594673048" +$ns_ at 95.253089504625 "$node_(49) setdest 242.774332523593 34.342956064114 7.923687905568" +$ns_ at 95.326205068244 "$god_ set-dist 26 42 1" +$ns_ at 95.609939846284 "$god_ set-dist 13 17 1" +$ns_ at 95.642972776743 "$god_ set-dist 25 39 1" +$ns_ at 95.734044031205 "$god_ set-dist 40 49 1" +$ns_ at 95.986862334349 "$god_ set-dist 14 22 2" +$ns_ at 96.146373662557 "$god_ set-dist 40 42 1" +$ns_ at 96.253606414900 "$god_ set-dist 11 21 2" +$ns_ at 96.300634795889 "$god_ set-dist 20 23 1" +$ns_ at 96.434768535421 "$god_ set-dist 6 42 1" +$ns_ at 96.479265513492 "$god_ set-dist 12 31 1" +$ns_ at 96.712883971022 "$god_ set-dist 18 19 1" +$ns_ at 96.767947869350 "$god_ set-dist 11 37 2" +$ns_ at 96.962312992435 "$node_(15) setdest 291.286374579083 268.166332104848 0.000000000000" +$ns_ at 96.976324490607 "$god_ set-dist 3 13 1" +$ns_ at 97.015666853205 "$god_ set-dist 4 49 1" +$ns_ at 97.088989117386 "$god_ set-dist 27 48 1" +$ns_ at 97.159614241323 "$god_ set-dist 27 42 1" +$ns_ at 97.381604516559 "$god_ set-dist 34 42 1" +$ns_ at 97.578185348893 "$node_(22) setdest 449.761821900136 294.528088593353 0.000000000000" +$ns_ at 97.602449621016 "$god_ set-dist 13 49 1" +$ns_ at 97.607259999376 "$god_ set-dist 1 18 1" +$ns_ at 97.656342127506 "$god_ set-dist 2 13 1" +$ns_ at 97.694217197359 "$god_ set-dist 10 32 2" +$ns_ at 97.754587988792 "$god_ set-dist 14 29 1" +$ns_ at 97.798316746923 "$god_ set-dist 9 42 1" +$ns_ at 97.813760221159 "$god_ set-dist 12 32 1" +$ns_ at 97.858506892990 "$god_ set-dist 42 47 2" +$ns_ at 97.928175322705 "$god_ set-dist 9 29 1" +$ns_ at 97.958570253763 "$god_ set-dist 27 30 1" +$ns_ at 98.202606929656 "$god_ set-dist 2 11 1" +$ns_ at 98.253992618226 "$god_ set-dist 7 13 1" +$ns_ at 98.358750451306 "$god_ set-dist 9 47 2" +$ns_ at 98.417432700555 "$god_ set-dist 18 46 1" +$ns_ at 98.453041720415 "$god_ set-dist 2 42 1" +$ns_ at 98.495423155200 "$god_ set-dist 9 49 1" +$ns_ at 98.496425115059 "$god_ set-dist 18 49 1" +$ns_ at 98.707991256523 "$god_ set-dist 35 45 2" +$ns_ at 98.843819045715 "$god_ set-dist 4 35 1" +$ns_ at 98.877431492915 "$god_ set-dist 20 25 1" +$ns_ at 98.912370429746 "$god_ set-dist 21 24 2" +$ns_ at 99.104316870080 "$god_ set-dist 33 49 1" +$ns_ at 99.194407663400 "$node_(3) setdest 450.291679627418 77.283058565780 6.784244666603" +$ns_ at 99.219329707650 "$god_ set-dist 14 47 2" +$ns_ at 99.540164151051 "$node_(38) setdest 436.063587945240 79.368498178350 0.000000000000" +$ns_ at 99.720282309090 "$god_ set-dist 45 49 1" +$ns_ at 99.743542523725 "$god_ set-dist 9 35 1" +$ns_ at 99.803542588862 "$god_ set-dist 48 49 1" +$ns_ at 99.843235749181 "$god_ set-dist 26 49 1" +$ns_ at 99.885425621112 "$god_ set-dist 36 42 1" +$ns_ at 99.886154342517 "$god_ set-dist 20 27 1" +$ns_ at 99.941743964915 "$god_ set-dist 44 49 1" +$ns_ at 100.003334622652 "$god_ set-dist 39 42 1" +$ns_ at 100.038501242187 "$god_ set-dist 8 45 2" +$ns_ at 100.038824903120 "$god_ set-dist 5 16 1" +$ns_ at 100.038824903120 "$god_ set-dist 5 28 2" +$ns_ at 100.048515868952 "$god_ set-dist 4 29 1" +$ns_ at 100.446693737853 "$god_ set-dist 1 41 2" +$ns_ at 100.457570305803 "$god_ set-dist 6 39 1" +$ns_ at 100.607787649828 "$god_ set-dist 23 25 1" +$ns_ at 100.615569261346 "$god_ set-dist 17 42 1" +$ns_ at 100.644897982213 "$god_ set-dist 46 47 1" +$ns_ at 100.661558319229 "$god_ set-dist 45 47 2" +$ns_ at 100.681502017892 "$god_ set-dist 22 32 2" +$ns_ at 100.728331626951 "$god_ set-dist 39 40 1" +$ns_ at 100.731842775073 "$god_ set-dist 32 39 2" +$ns_ at 100.754663446756 "$god_ set-dist 3 13 2" +$ns_ at 100.869595361621 "$god_ set-dist 20 41 1" +$ns_ at 100.942224956215 "$god_ set-dist 13 19 1" +$ns_ at 100.996467307198 "$god_ set-dist 3 16 1" +$ns_ at 100.996467307198 "$god_ set-dist 3 28 2" +$ns_ at 100.998304422463 "$god_ set-dist 20 32 2" +$ns_ at 101.099941034768 "$god_ set-dist 3 28 3" +$ns_ at 101.099941034768 "$god_ set-dist 5 28 3" +$ns_ at 101.099941034768 "$god_ set-dist 16 28 2" +$ns_ at 101.104796182099 "$god_ set-dist 4 8 1" +$ns_ at 101.237181137099 "$god_ set-dist 5 35 1" +$ns_ at 101.281994972849 "$god_ set-dist 21 43 2" +$ns_ at 101.524690204070 "$god_ set-dist 12 41 2" +$ns_ at 101.563731988483 "$god_ set-dist 9 22 2" +$ns_ at 101.597078145029 "$god_ set-dist 8 9 1" +$ns_ at 101.800783485170 "$god_ set-dist 3 37 2" +$ns_ at 101.873800054366 "$god_ set-dist 33 42 1" +$ns_ at 101.984645013175 "$god_ set-dist 32 47 2" +$ns_ at 101.991921283394 "$god_ set-dist 7 48 1" +$ns_ at 102.057573769781 "$god_ set-dist 42 45 1" +$ns_ at 102.095280422729 "$god_ set-dist 4 38 1" +$ns_ at 102.254537709076 "$god_ set-dist 29 42 1" +$ns_ at 102.370225542244 "$god_ set-dist 8 14 2" +$ns_ at 102.375573326266 "$god_ set-dist 0 13 1" +$ns_ at 102.491459678969 "$god_ set-dist 26 29 1" +$ns_ at 102.593356317715 "$node_(28) setdest 228.291281611795 287.671155840065 0.342220713194" +$ns_ at 102.627126598270 "$god_ set-dist 20 40 1" +$ns_ at 102.635546236803 "$god_ set-dist 7 21 2" +$ns_ at 102.717755003797 "$god_ set-dist 13 35 1" +$ns_ at 102.968941218194 "$god_ set-dist 1 31 1" +$ns_ at 103.097582559273 "$god_ set-dist 34 39 1" +$ns_ at 103.157031038999 "$god_ set-dist 3 43 2" +$ns_ at 103.186666007590 "$node_(8) setdest 98.224481900849 321.793287278387 6.788790342880" +$ns_ at 103.346363705597 "$god_ set-dist 28 48 1" +$ns_ at 103.389074029633 "$god_ set-dist 18 29 1" +$ns_ at 103.408502379760 "$god_ set-dist 29 44 1" +$ns_ at 103.411953321157 "$god_ set-dist 6 20 1" +$ns_ at 103.514810660502 "$god_ set-dist 10 41 1" +$ns_ at 103.539159867653 "$god_ set-dist 38 40 2" +$ns_ at 103.562369149501 "$god_ set-dist 8 14 1" +$ns_ at 103.598650641065 "$god_ set-dist 5 28 2" +$ns_ at 103.598650641065 "$god_ set-dist 5 49 1" +$ns_ at 103.614460006756 "$god_ set-dist 6 38 2" +$ns_ at 103.827195497523 "$god_ set-dist 36 49 1" +$ns_ at 103.861935139667 "$god_ set-dist 13 29 1" +$ns_ at 103.947022047503 "$god_ set-dist 7 36 1" +$ns_ at 104.065215632193 "$god_ set-dist 0 42 1" +$ns_ at 104.070067271734 "$god_ set-dist 33 47 2" +$ns_ at 104.285368773296 "$god_ set-dist 36 41 2" +$ns_ at 104.371118560829 "$node_(32) setdest 191.784763334140 193.257759138386 0.000000000000" +$ns_ at 104.412244445478 "$god_ set-dist 16 47 2" +$ns_ at 104.423835875934 "$god_ set-dist 14 38 2" +$ns_ at 104.429063376018 "$god_ set-dist 1 40 2" +$ns_ at 104.444001498346 "$god_ set-dist 8 13 1" +$ns_ at 104.456035589171 "$god_ set-dist 11 49 1" +$ns_ at 104.553336858611 "$god_ set-dist 6 47 2" +$ns_ at 104.584413942735 "$god_ set-dist 1 32 1" +$ns_ at 104.641726892174 "$god_ set-dist 5 28 3" +$ns_ at 104.641726892174 "$god_ set-dist 22 28 3" +$ns_ at 104.641726892174 "$god_ set-dist 28 49 2" +$ns_ at 104.788543066116 "$god_ set-dist 1 6 2" +$ns_ at 104.974709550719 "$node_(41) setdest 385.761746260906 301.501243890323 0.000000000000" +$ns_ at 105.014535269744 "$god_ set-dist 30 49 1" +$ns_ at 105.136043442163 "$god_ set-dist 37 48 1" +$ns_ at 105.170472423522 "$god_ set-dist 17 20 1" +$ns_ at 105.223422968091 "$god_ set-dist 13 20 1" +$ns_ at 105.389664535024 "$god_ set-dist 4 22 1" +$ns_ at 105.641277648170 "$god_ set-dist 2 48 1" +$ns_ at 105.673361483541 "$node_(13) setdest 139.459997300915 233.249458255220 0.000000000000" +$ns_ at 105.758216317213 "$god_ set-dist 4 39 1" +$ns_ at 105.770396584609 "$god_ set-dist 40 47 2" +$ns_ at 105.771981377830 "$god_ set-dist 19 36 1" +$ns_ at 105.795191219967 "$god_ set-dist 17 48 1" +$ns_ at 106.030940214034 "$god_ set-dist 21 32 2" +$ns_ at 106.124376196107 "$god_ set-dist 6 22 2" +$ns_ at 106.497048230727 "$god_ set-dist 18 21 2" +$ns_ at 106.514631100114 "$god_ set-dist 8 18 1" +$ns_ at 106.608444401253 "$god_ set-dist 10 16 2" +$ns_ at 106.748115687506 "$god_ set-dist 43 46 1" +$ns_ at 106.766889220357 "$god_ set-dist 6 21 2" +$ns_ at 106.873742905064 "$god_ set-dist 12 40 2" +$ns_ at 106.883336448388 "$node_(47) setdest 431.593085003868 386.046013398461 0.000000000000" +$ns_ at 106.891155715606 "$god_ set-dist 34 48 2" +$ns_ at 107.016991551649 "$god_ set-dist 36 41 1" +$ns_ at 107.077568490950 "$god_ set-dist 36 37 2" +$ns_ at 107.194168017694 "$god_ set-dist 13 39 1" +$ns_ at 107.298992169891 "$god_ set-dist 9 38 2" +$ns_ at 107.301073133915 "$god_ set-dist 21 40 2" +$ns_ at 107.304931730548 "$god_ set-dist 6 12 2" +$ns_ at 107.457562852068 "$god_ set-dist 5 39 1" +$ns_ at 107.489038580810 "$god_ set-dist 3 16 2" +$ns_ at 107.523536886674 "$god_ set-dist 14 35 2" +$ns_ at 107.529789924039 "$god_ set-dist 16 46 1" +$ns_ at 107.796494358378 "$god_ set-dist 23 27 2" +$ns_ at 107.865503832267 "$god_ set-dist 8 48 1" +$ns_ at 107.873473406610 "$god_ set-dist 19 48 1" +$ns_ at 107.928713477953 "$god_ set-dist 3 11 2" +$ns_ at 108.011997483354 "$god_ set-dist 29 48 1" +$ns_ at 108.041032196069 "$god_ set-dist 9 39 1" +$ns_ at 108.062441606052 "$god_ set-dist 32 39 1" +$ns_ at 108.092415484716 "$node_(35) setdest 2.040047995823 303.031135706808 3.054114460306" +$ns_ at 108.137824507709 "$god_ set-dist 20 48 1" +$ns_ at 108.169307241933 "$god_ set-dist 10 25 1" +$ns_ at 108.231695104424 "$god_ set-dist 14 21 2" +$ns_ at 108.332327831467 "$god_ set-dist 10 31 2" +$ns_ at 108.395115671625 "$god_ set-dist 9 21 2" +$ns_ at 108.519161730108 "$god_ set-dist 10 40 1" +$ns_ at 108.562924774212 "$god_ set-dist 29 36 1" +$ns_ at 108.861669483947 "$god_ set-dist 35 48 1" +$ns_ at 108.877775404853 "$god_ set-dist 10 42 2" +$ns_ at 108.962722638369 "$god_ set-dist 3 6 2" +$ns_ at 109.075135260903 "$god_ set-dist 3 40 2" +$ns_ at 109.131588851569 "$god_ set-dist 33 39 1" +$ns_ at 109.186296403783 "$god_ set-dist 1 15 1" +$ns_ at 109.408921571145 "$god_ set-dist 22 40 2" +$ns_ at 109.537864179260 "$god_ set-dist 18 35 1" +$ns_ at 109.663526515724 "$god_ set-dist 46 49 1" +$ns_ at 109.795224382854 "$god_ set-dist 8 44 1" +$ns_ at 109.860287818004 "$god_ set-dist 14 35 1" +$ns_ at 109.902556300350 "$god_ set-dist 6 46 2" +$ns_ at 109.941705820820 "$node_(16) setdest 188.856449509538 232.091499789392 0.000000000000" +$ns_ at 110.214783941449 "$god_ set-dist 39 48 1" +$ns_ at 110.234683768554 "$god_ set-dist 30 34 2" +$ns_ at 110.368448183074 "$god_ set-dist 21 29 2" +$ns_ at 110.684578438390 "$god_ set-dist 7 11 1" +$ns_ at 110.710188092256 "$god_ set-dist 22 45 2" +$ns_ at 110.720666257560 "$god_ set-dist 21 37 2" +$ns_ at 111.142804777868 "$god_ set-dist 18 39 1" +$ns_ at 111.369059646083 "$node_(48) setdest 89.389385677174 278.285769252907 0.000000000000" +$ns_ at 111.414248432492 "$god_ set-dist 1 9 2" +$ns_ at 111.442188630819 "$god_ set-dist 40 46 2" +$ns_ at 111.688093720396 "$god_ set-dist 21 36 2" +$ns_ at 112.024837716405 "$god_ set-dist 4 20 1" +$ns_ at 112.104540805288 "$god_ set-dist 3 9 2" +$ns_ at 112.266551087546 "$god_ set-dist 7 46 1" +$ns_ at 112.314720268051 "$god_ set-dist 21 44 2" +$ns_ at 112.662968394999 "$node_(21) setdest 475.818120867519 150.125425477998 0.000000000000" +$ns_ at 112.691166708251 "$god_ set-dist 14 39 1" +$ns_ at 112.963241877601 "$god_ set-dist 37 48 2" +$ns_ at 113.114227071343 "$god_ set-dist 3 32 2" +$ns_ at 113.192248291768 "$god_ set-dist 18 38 1" +$ns_ at 113.199130801676 "$node_(10) setdest 301.550036115201 89.867533462226 5.893780541584" +$ns_ at 113.224630272223 "$god_ set-dist 37 45 2" +$ns_ at 113.382436087588 "$god_ set-dist 4 47 1" +$ns_ at 113.384627080132 "$god_ set-dist 34 35 2" +$ns_ at 113.415733050471 "$god_ set-dist 26 37 2" +$ns_ at 113.461573982225 "$god_ set-dist 5 6 2" +$ns_ at 113.582508263277 "$god_ set-dist 1 25 2" +$ns_ at 113.896093637370 "$god_ set-dist 5 28 2" +$ns_ at 113.896093637370 "$god_ set-dist 28 40 1" +$ns_ at 113.912774675212 "$god_ set-dist 7 30 1" +$ns_ at 114.101179357252 "$god_ set-dist 23 49 2" +$ns_ at 114.104738189671 "$node_(11) setdest 188.821901049222 6.152906287416 6.079259976858" +$ns_ at 114.280149695065 "$god_ set-dist 9 12 2" +$ns_ at 114.430056935709 "$god_ set-dist 6 28 1" +$ns_ at 114.452440793395 "$god_ set-dist 21 44 1" +$ns_ at 114.550849257564 "$god_ set-dist 28 42 2" +$ns_ at 114.996124326768 "$god_ set-dist 9 20 1" +$ns_ at 115.211245183653 "$god_ set-dist 3 14 2" +$ns_ at 115.350143017625 "$god_ set-dist 6 41 2" +$ns_ at 115.377350860783 "$god_ set-dist 11 29 1" +$ns_ at 115.800240640656 "$god_ set-dist 10 31 1" +$ns_ at 115.885649478796 "$god_ set-dist 6 10 1" +$ns_ at 116.122610337183 "$god_ set-dist 39 44 1" +$ns_ at 116.200679590859 "$god_ set-dist 11 24 2" +$ns_ at 116.206105242755 "$god_ set-dist 3 25 2" +$ns_ at 116.339166524002 "$god_ set-dist 8 28 1" +$ns_ at 116.339166524002 "$god_ set-dist 22 28 2" +$ns_ at 116.431528229508 "$god_ set-dist 25 38 2" +$ns_ at 116.573955773594 "$god_ set-dist 37 44 2" +$ns_ at 116.749635336050 "$god_ set-dist 6 34 2" +$ns_ at 116.755380751561 "$god_ set-dist 10 27 1" +$ns_ at 116.778386895316 "$god_ set-dist 3 27 2" +$ns_ at 116.784245667333 "$god_ set-dist 14 37 2" +$ns_ at 116.831036045830 "$god_ set-dist 29 30 1" +$ns_ at 116.956189621846 "$god_ set-dist 5 40 2" +$ns_ at 116.962312992435 "$node_(15) setdest 429.028607611067 111.678798619935 3.073128848153" +$ns_ at 117.039741509663 "$god_ set-dist 1 11 1" +$ns_ at 117.049375028634 "$god_ set-dist 27 47 2" +$ns_ at 117.052982084495 "$god_ set-dist 10 16 1" +$ns_ at 117.094370866907 "$god_ set-dist 21 27 2" +$ns_ at 117.102271627580 "$god_ set-dist 3 18 2" +$ns_ at 117.152038371648 "$god_ set-dist 8 34 2" +$ns_ at 117.217640070720 "$god_ set-dist 9 46 2" +$ns_ at 117.288071615860 "$god_ set-dist 10 48 1" +$ns_ at 117.353679292613 "$god_ set-dist 10 17 1" +$ns_ at 117.578185348893 "$node_(22) setdest 215.446606933347 170.946999931935 4.302851323735" +$ns_ at 117.615532815690 "$god_ set-dist 12 49 1" +$ns_ at 117.748712233180 "$god_ set-dist 0 3 2" +$ns_ at 117.872909071803 "$god_ set-dist 28 34 3" +$ns_ at 117.872909071803 "$god_ set-dist 34 40 2" +$ns_ at 118.067714405912 "$god_ set-dist 27 38 2" +$ns_ at 118.098404098333 "$god_ set-dist 34 47 2" +$ns_ at 118.136144028560 "$god_ set-dist 8 36 1" +$ns_ at 118.327880959529 "$node_(3) setdest 450.291679627418 77.283058565780 0.000000000000" +$ns_ at 118.363710832413 "$god_ set-dist 37 42 2" +$ns_ at 118.415162176153 "$god_ set-dist 4 10 1" +$ns_ at 118.429791709769 "$god_ set-dist 21 36 1" +$ns_ at 118.640720968784 "$god_ set-dist 20 42 2" +$ns_ at 118.644298914759 "$god_ set-dist 24 46 1" +$ns_ at 118.988961963971 "$god_ set-dist 6 37 2" +$ns_ at 119.100416356402 "$god_ set-dist 4 23 1" +$ns_ at 119.114195274674 "$god_ set-dist 1 49 1" +$ns_ at 119.119103973654 "$god_ set-dist 12 25 2" +$ns_ at 119.359152458976 "$node_(42) setdest 142.283529647387 211.695068989083 0.000000000000" +$ns_ at 119.540164151051 "$node_(38) setdest 62.618164351345 264.734651792051 7.436106632629" +$ns_ at 119.572476877378 "$god_ set-dist 18 22 1" +$ns_ at 119.745144368189 "$god_ set-dist 8 30 1" +$ns_ at 119.929097379847 "$god_ set-dist 10 13 1" +$ns_ at 120.071508082379 "$god_ set-dist 38 49 1" +$ns_ at 120.335400262823 "$god_ set-dist 20 22 1" +$ns_ at 120.435761335377 "$god_ set-dist 9 10 1" +$ns_ at 120.481673946555 "$god_ set-dist 27 38 1" +$ns_ at 120.688992144242 "$god_ set-dist 25 38 1" +$ns_ at 120.788679160952 "$god_ set-dist 47 49 2" +$ns_ at 120.921430856753 "$god_ set-dist 0 6 2" +$ns_ at 120.938453780236 "$god_ set-dist 14 38 1" +$ns_ at 121.101673096828 "$god_ set-dist 7 11 2" +$ns_ at 121.109310708732 "$god_ set-dist 13 37 2" +$ns_ at 121.210267749142 "$god_ set-dist 10 22 1" +$ns_ at 121.325479491953 "$god_ set-dist 36 39 1" +$ns_ at 121.338254693690 "$god_ set-dist 9 41 2" +$ns_ at 121.538122853059 "$god_ set-dist 22 44 1" +$ns_ at 121.544438912435 "$god_ set-dist 12 22 1" +$ns_ at 121.709618191319 "$god_ set-dist 22 26 1" +$ns_ at 121.751603966099 "$god_ set-dist 21 49 1" +$ns_ at 121.777429611770 "$god_ set-dist 5 9 2" +$ns_ at 121.783622264802 "$god_ set-dist 13 34 2" +$ns_ at 121.807573442338 "$god_ set-dist 9 37 2" +$ns_ at 121.971989434816 "$god_ set-dist 16 22 1" +$ns_ at 122.009974851512 "$god_ set-dist 8 23 2" +$ns_ at 122.073168187439 "$god_ set-dist 41 45 2" +$ns_ at 122.130089745624 "$god_ set-dist 34 39 2" +$ns_ at 122.162223168460 "$god_ set-dist 40 45 2" +$ns_ at 122.166509940218 "$god_ set-dist 32 38 1" +$ns_ at 122.381991276510 "$god_ set-dist 26 39 1" +$ns_ at 122.387695241023 "$god_ set-dist 3 18 1" +$ns_ at 122.464004475123 "$god_ set-dist 9 34 2" +$ns_ at 122.637285298081 "$god_ set-dist 40 41 2" +$ns_ at 122.679476356915 "$god_ set-dist 20 42 1" +$ns_ at 122.848731408822 "$god_ set-dist 1 22 1" +$ns_ at 122.879815825204 "$god_ set-dist 6 17 2" +$ns_ at 122.910967172834 "$god_ set-dist 19 38 1" +$ns_ at 122.965217100606 "$god_ set-dist 26 40 2" +$ns_ at 122.966620910065 "$god_ set-dist 28 35 1" +$ns_ at 123.041669071837 "$god_ set-dist 11 40 2" +$ns_ at 123.060574365731 "$god_ set-dist 23 31 2" +$ns_ at 123.237372160809 "$god_ set-dist 34 37 2" +$ns_ at 123.328349686003 "$god_ set-dist 39 46 1" +$ns_ at 123.466415908976 "$god_ set-dist 38 43 1" +$ns_ at 123.612666374307 "$god_ set-dist 3 49 1" +$ns_ at 123.638099550749 "$god_ set-dist 2 11 2" +$ns_ at 123.660609031936 "$god_ set-dist 10 42 1" +$ns_ at 123.740488094469 "$god_ set-dist 6 26 2" +$ns_ at 123.831586256945 "$god_ set-dist 11 38 1" +$ns_ at 123.832787615961 "$god_ set-dist 10 32 1" +$ns_ at 123.844705863475 "$god_ set-dist 6 45 2" +$ns_ at 123.851877330713 "$god_ set-dist 24 45 2" +$ns_ at 123.929715826239 "$god_ set-dist 22 32 1" +$ns_ at 123.987396678920 "$god_ set-dist 6 33 2" +$ns_ at 124.054802920383 "$god_ set-dist 14 41 2" +$ns_ at 124.168104377721 "$god_ set-dist 5 42 1" +$ns_ at 124.371118560829 "$node_(32) setdest 492.236986613202 108.527228835426 5.265013451018" +$ns_ at 124.396566588869 "$god_ set-dist 10 18 1" +$ns_ at 124.454663466876 "$god_ set-dist 20 32 1" +$ns_ at 124.469716365430 "$god_ set-dist 34 42 2" +$ns_ at 124.568639721063 "$god_ set-dist 23 29 2" +$ns_ at 124.644902788463 "$god_ set-dist 22 36 1" +$ns_ at 124.711535853722 "$god_ set-dist 18 21 1" +$ns_ at 124.731243692844 "$god_ set-dist 9 28 1" +$ns_ at 124.974709550719 "$node_(41) setdest 467.896153177694 280.517599509950 3.030518440145" +$ns_ at 125.024436010073 "$god_ set-dist 16 38 1" +$ns_ at 125.141056516851 "$god_ set-dist 24 34 2" +$ns_ at 125.156132427933 "$god_ set-dist 28 29 1" +$ns_ at 125.156132427933 "$god_ set-dist 28 34 2" +$ns_ at 125.156132427933 "$god_ set-dist 28 46 2" +$ns_ at 125.161442639370 "$god_ set-dist 5 8 2" +$ns_ at 125.162199807965 "$god_ set-dist 11 46 1" +$ns_ at 125.281036473556 "$god_ set-dist 1 27 2" +$ns_ at 125.281649953105 "$god_ set-dist 8 47 2" +$ns_ at 125.391369795738 "$god_ set-dist 28 34 3" +$ns_ at 125.391369795738 "$god_ set-dist 29 34 2" +$ns_ at 125.494701693938 "$god_ set-dist 36 40 2" +$ns_ at 125.615003938059 "$god_ set-dist 2 30 1" +$ns_ at 125.618442440594 "$god_ set-dist 35 44 1" +$ns_ at 125.670947025899 "$god_ set-dist 2 6 2" +$ns_ at 125.673361483541 "$node_(13) setdest 331.335979843951 94.137962693511 2.475982742618" +$ns_ at 125.728078315998 "$god_ set-dist 6 15 2" +$ns_ at 125.756301167394 "$god_ set-dist 4 6 2" +$ns_ at 125.766881192909 "$god_ set-dist 32 37 2" +$ns_ at 125.780792883711 "$god_ set-dist 0 45 2" +$ns_ at 125.909286988567 "$god_ set-dist 11 29 2" +$ns_ at 126.008596551868 "$god_ set-dist 18 20 1" +$ns_ at 126.018244937807 "$god_ set-dist 33 40 2" +$ns_ at 126.057254855541 "$god_ set-dist 11 25 2" +$ns_ at 126.116216863673 "$god_ set-dist 7 34 2" +$ns_ at 126.175409047027 "$god_ set-dist 6 11 2" +$ns_ at 126.265100858500 "$god_ set-dist 21 45 2" +$ns_ at 126.348278053253 "$node_(37) setdest 355.618624940672 388.288609512158 0.000000000000" +$ns_ at 126.390992038468 "$god_ set-dist 6 19 2" +$ns_ at 126.449298514739 "$god_ set-dist 8 22 2" +$ns_ at 126.532036312563 "$god_ set-dist 5 10 1" +$ns_ at 126.559138081203 "$god_ set-dist 20 49 2" +$ns_ at 126.659147485074 "$god_ set-dist 32 37 1" +$ns_ at 126.672570425851 "$god_ set-dist 5 13 1" +$ns_ at 126.797976958147 "$god_ set-dist 6 36 2" +$ns_ at 126.883336448388 "$node_(47) setdest 201.136708221500 19.975501963614 4.843345756507" +$ns_ at 126.932905308422 "$god_ set-dist 30 39 1" +$ns_ at 127.035563847049 "$god_ set-dist 21 25 2" +$ns_ at 127.214581246362 "$god_ set-dist 28 46 3" +$ns_ at 127.214581246362 "$god_ set-dist 29 46 2" +$ns_ at 127.375831393472 "$god_ set-dist 10 33 1" +$ns_ at 127.554197065204 "$node_(6) setdest 48.565457947928 293.424655108789 0.000000000000" +$ns_ at 127.616917572751 "$god_ set-dist 33 47 1" +$ns_ at 127.648491474828 "$god_ set-dist 40 44 2" +$ns_ at 128.186085165300 "$god_ set-dist 12 27 2" +$ns_ at 128.240616266618 "$god_ set-dist 21 23 1" +$ns_ at 128.341637146489 "$god_ set-dist 17 40 2" +$ns_ at 128.592608210820 "$god_ set-dist 37 40 2" +$ns_ at 128.632617624631 "$god_ set-dist 11 17 2" +$ns_ at 128.684488115103 "$god_ set-dist 37 49 2" +$ns_ at 129.100693486601 "$god_ set-dist 26 48 2" +$ns_ at 129.252859261559 "$god_ set-dist 7 23 2" +$ns_ at 129.259244298682 "$god_ set-dist 38 42 1" +$ns_ at 129.376445980198 "$god_ set-dist 4 11 2" +$ns_ at 129.563919361698 "$god_ set-dist 4 40 2" +$ns_ at 129.573309346268 "$god_ set-dist 13 38 1" +$ns_ at 129.689155949085 "$god_ set-dist 29 47 2" +$ns_ at 129.713700876752 "$god_ set-dist 11 48 2" +$ns_ at 129.741645032652 "$god_ set-dist 7 28 1" +$ns_ at 129.741645032652 "$god_ set-dist 28 46 2" +$ns_ at 129.751742281078 "$god_ set-dist 7 38 1" +$ns_ at 129.751742281078 "$god_ set-dist 28 38 2" +$ns_ at 129.769374159227 "$god_ set-dist 15 40 2" +$ns_ at 129.841649685907 "$god_ set-dist 10 28 2" +$ns_ at 129.941705820820 "$node_(16) setdest 80.927878579357 207.754902358404 6.211671552627" +$ns_ at 129.943447735471 "$god_ set-dist 8 41 2" +$ns_ at 129.944810417414 "$god_ set-dist 38 39 1" +$ns_ at 129.952704967816 "$god_ set-dist 40 49 2" +$ns_ at 130.374167936214 "$god_ set-dist 17 30 1" +$ns_ at 130.553417719360 "$god_ set-dist 24 38 1" +$ns_ at 130.622864862425 "$god_ set-dist 4 30 2" +$ns_ at 130.728309841644 "$god_ set-dist 12 43 1" +$ns_ at 130.779842360136 "$god_ set-dist 3 32 1" +$ns_ at 130.790036714675 "$god_ set-dist 5 20 1" +$ns_ at 131.357002398366 "$god_ set-dist 13 22 1" +$ns_ at 131.369059646083 "$node_(48) setdest 418.598625824906 266.362017230899 3.570077140484" +$ns_ at 131.397106121494 "$god_ set-dist 16 34 2" +$ns_ at 131.420778463544 "$god_ set-dist 0 40 2" +$ns_ at 131.504245258190 "$god_ set-dist 0 48 1" +$ns_ at 131.516917843118 "$god_ set-dist 21 32 1" +$ns_ at 131.572863987876 "$god_ set-dist 31 40 2" +$ns_ at 131.643039578366 "$god_ set-dist 18 47 1" +$ns_ at 131.771917753795 "$god_ set-dist 13 46 1" +$ns_ at 132.142735164229 "$god_ set-dist 12 41 1" +$ns_ at 132.213302629710 "$node_(34) setdest 402.322333930769 108.723521142847 0.000000000000" +$ns_ at 132.256988384041 "$god_ set-dist 14 22 1" +$ns_ at 132.278059649449 "$god_ set-dist 14 40 2" +$ns_ at 132.366637084901 "$god_ set-dist 11 15 2" +$ns_ at 132.366637084901 "$god_ set-dist 11 23 3" +$ns_ at 132.439525400944 "$god_ set-dist 27 34 2" +$ns_ at 132.443240749062 "$god_ set-dist 30 38 1" +$ns_ at 132.507199317686 "$god_ set-dist 9 11 2" +$ns_ at 132.507199317686 "$god_ set-dist 11 28 3" +$ns_ at 132.508638897886 "$god_ set-dist 38 47 1" +$ns_ at 132.511003932390 "$god_ set-dist 10 44 1" +$ns_ at 132.662968394999 "$node_(21) setdest 63.510848141801 131.898637147368 0.013062242120" +$ns_ at 132.688903018467 "$god_ set-dist 6 44 2" +$ns_ at 132.726047045610 "$god_ set-dist 29 38 1" +$ns_ at 132.855085440777 "$god_ set-dist 10 49 2" +$ns_ at 132.896126663127 "$god_ set-dist 1 43 1" +$ns_ at 132.902297116408 "$god_ set-dist 32 40 2" +$ns_ at 132.955542019803 "$god_ set-dist 39 45 1" +$ns_ at 133.086556009242 "$node_(26) setdest 270.000419965965 93.873262411364 0.000000000000" +$ns_ at 133.156390306396 "$god_ set-dist 18 40 2" +$ns_ at 133.161069239829 "$god_ set-dist 6 49 2" +$ns_ at 133.184845953442 "$god_ set-dist 16 41 2" +$ns_ at 133.282205835413 "$god_ set-dist 35 49 2" +$ns_ at 133.508489589820 "$god_ set-dist 2 40 2" +$ns_ at 133.508489589820 "$god_ set-dist 3 40 3" +$ns_ at 133.608995226895 "$god_ set-dist 27 41 2" +$ns_ at 133.618416283387 "$god_ set-dist 34 47 1" +$ns_ at 133.631594227761 "$god_ set-dist 29 41 2" +$ns_ at 133.659833521776 "$god_ set-dist 32 47 1" +$ns_ at 133.776192901385 "$god_ set-dist 27 37 2" +$ns_ at 133.896123873334 "$god_ set-dist 4 9 2" +$ns_ at 133.899639717664 "$god_ set-dist 16 37 2" +$ns_ at 134.000502654602 "$god_ set-dist 22 42 1" +$ns_ at 134.004039199893 "$god_ set-dist 9 26 2" +$ns_ at 134.062197450904 "$god_ set-dist 0 9 2" +$ns_ at 134.117697659198 "$god_ set-dist 10 14 1" +$ns_ at 134.449411430910 "$god_ set-dist 30 40 2" +$ns_ at 134.525020491840 "$god_ set-dist 19 45 2" +$ns_ at 134.554983141514 "$god_ set-dist 26 48 1" +$ns_ at 134.651255844513 "$god_ set-dist 11 23 2" +$ns_ at 134.651255844513 "$god_ set-dist 23 43 1" +$ns_ at 134.982733060281 "$god_ set-dist 25 45 2" +$ns_ at 135.163056982849 "$god_ set-dist 10 38 1" +$ns_ at 135.189249370499 "$god_ set-dist 41 49 2" +$ns_ at 135.470426544647 "$god_ set-dist 10 46 1" +$ns_ at 135.472171868463 "$god_ set-dist 10 36 1" +$ns_ at 135.532442718687 "$god_ set-dist 9 15 2" +$ns_ at 135.814049840122 "$god_ set-dist 9 45 2" +$ns_ at 135.837797491603 "$god_ set-dist 8 49 2" +$ns_ at 136.113006656771 "$god_ set-dist 9 17 2" +$ns_ at 136.135192478646 "$god_ set-dist 11 23 3" +$ns_ at 136.135192478646 "$god_ set-dist 11 43 2" +$ns_ at 136.138754113192 "$god_ set-dist 19 40 2" +$ns_ at 136.138754113192 "$god_ set-dist 21 40 3" +$ns_ at 136.141181138201 "$god_ set-dist 11 23 2" +$ns_ at 136.141181138201 "$god_ set-dist 23 46 1" +$ns_ at 136.266215859258 "$node_(11) setdest 188.821901049222 6.152906287416 0.000000000000" +$ns_ at 136.299746939765 "$god_ set-dist 8 37 2" +$ns_ at 136.323354756482 "$god_ set-dist 6 19 1" +$ns_ at 136.458912865568 "$god_ set-dist 20 33 1" +$ns_ at 136.690355495501 "$god_ set-dist 11 43 1" +$ns_ at 136.701603802858 "$god_ set-dist 4 8 2" +$ns_ at 136.718873306699 "$god_ set-dist 5 29 2" +$ns_ at 136.737391338511 "$god_ set-dist 19 30 1" +$ns_ at 136.908247380556 "$god_ set-dist 21 40 2" +$ns_ at 136.908247380556 "$god_ set-dist 21 43 1" +$ns_ at 137.159054049418 "$god_ set-dist 16 46 2" +$ns_ at 137.247613446879 "$god_ set-dist 42 46 1" +$ns_ at 137.277392455808 "$god_ set-dist 38 48 1" +$ns_ at 137.381511451501 "$god_ set-dist 4 45 2" +$ns_ at 137.392983243529 "$god_ set-dist 26 41 2" +$ns_ at 137.515512927681 "$god_ set-dist 8 15 2" +$ns_ at 137.658340415282 "$god_ set-dist 9 33 2" +$ns_ at 137.819878680933 "$node_(14) setdest 169.192506976435 137.172629365676 0.000000000000" +$ns_ at 137.902236042025 "$god_ set-dist 9 49 2" +$ns_ at 137.903794086052 "$god_ set-dist 20 28 2" +$ns_ at 137.990680023426 "$node_(9) setdest 72.508695321578 280.048617569290 0.000000000000" +$ns_ at 138.154214054353 "$god_ set-dist 24 30 2" +$ns_ at 138.327880959529 "$node_(3) setdest 259.309350498101 200.841466028948 6.123889343294" +$ns_ at 138.341019755644 "$god_ set-dist 1 40 3" +$ns_ at 138.341019755644 "$god_ set-dist 12 40 3" +$ns_ at 138.341019755644 "$god_ set-dist 21 40 3" +$ns_ at 138.341019755644 "$god_ set-dist 40 43 2" +$ns_ at 138.425811746830 "$god_ set-dist 8 33 2" +$ns_ at 138.571629426009 "$god_ set-dist 0 49 2" +$ns_ at 138.579621846447 "$god_ set-dist 24 49 2" +$ns_ at 138.640974496734 "$node_(8) setdest 98.224481900849 321.793287278387 0.000000000000" +$ns_ at 138.677958826568 "$god_ set-dist 36 41 2" +$ns_ at 138.727774500326 "$god_ set-dist 23 39 2" +$ns_ at 138.732425968942 "$god_ set-dist 37 38 1" +$ns_ at 138.773061832828 "$node_(29) setdest 129.766889030932 281.811448656204 0.000000000000" +$ns_ at 139.128351337942 "$god_ set-dist 5 16 2" +$ns_ at 139.235130834823 "$god_ set-dist 6 32 2" +$ns_ at 139.359152458976 "$node_(42) setdest 454.399923215430 433.576881462706 9.807259964270" +$ns_ at 139.410927753002 "$god_ set-dist 22 48 1" +$ns_ at 139.456783564420 "$god_ set-dist 35 38 1" +$ns_ at 139.494138377260 "$god_ set-dist 44 47 1" +$ns_ at 139.534768647709 "$god_ set-dist 25 34 2" +$ns_ at 139.534768647709 "$god_ set-dist 34 40 3" +$ns_ at 139.719334780987 "$god_ set-dist 10 26 1" +$ns_ at 140.021048475048 "$god_ set-dist 5 45 2" +$ns_ at 140.178762675293 "$god_ set-dist 3 43 1" +$ns_ at 140.422957301832 "$god_ set-dist 3 47 1" +$ns_ at 140.650769483518 "$god_ set-dist 4 16 2" +$ns_ at 140.710808892901 "$god_ set-dist 8 36 2" +$ns_ at 140.749308100956 "$god_ set-dist 25 49 2" +$ns_ at 140.908960792685 "$god_ set-dist 3 19 1" +$ns_ at 141.224832123612 "$god_ set-dist 13 40 2" +$ns_ at 141.239198362624 "$god_ set-dist 35 41 2" +$ns_ at 141.328321100521 "$god_ set-dist 23 28 3" +$ns_ at 141.328321100521 "$god_ set-dist 23 35 2" +$ns_ at 141.696795809823 "$god_ set-dist 13 47 1" +$ns_ at 141.727839924927 "$god_ set-dist 2 6 1" +$ns_ at 141.757087900322 "$god_ set-dist 7 41 2" +$ns_ at 141.757087900322 "$god_ set-dist 28 41 3" +$ns_ at 141.799989274194 "$god_ set-dist 9 38 1" +$ns_ at 141.828695488187 "$god_ set-dist 10 30 1" +$ns_ at 141.900681249355 "$god_ set-dist 30 35 1" +$ns_ at 141.928163886503 "$god_ set-dist 42 47 1" +$ns_ at 142.048165975920 "$god_ set-dist 21 49 2" +$ns_ at 142.113322747845 "$god_ set-dist 4 49 2" +$ns_ at 142.114581756383 "$god_ set-dist 37 42 1" +$ns_ at 142.130576272805 "$god_ set-dist 36 47 1" +$ns_ at 142.222947067216 "$god_ set-dist 25 40 2" +$ns_ at 142.337521746578 "$god_ set-dist 8 38 1" +$ns_ at 142.370578031515 "$god_ set-dist 10 40 2" +$ns_ at 142.461522820252 "$god_ set-dist 29 49 2" +$ns_ at 142.513039014778 "$god_ set-dist 13 34 1" +$ns_ at 142.827604131570 "$god_ set-dist 16 20 2" +$ns_ at 142.921106640493 "$god_ set-dist 4 14 2" +$ns_ at 143.022229726393 "$god_ set-dist 27 46 2" +$ns_ at 143.036005447793 "$god_ set-dist 4 27 2" +$ns_ at 143.203403805873 "$god_ set-dist 48 49 2" +$ns_ at 143.279090768226 "$god_ set-dist 37 48 1" +$ns_ at 143.373009828235 "$god_ set-dist 4 29 2" +$ns_ at 143.563235024542 "$god_ set-dist 29 45 2" +$ns_ at 143.722232753920 "$god_ set-dist 0 3 1" +$ns_ at 143.740147072833 "$god_ set-dist 40 42 2" +$ns_ at 143.750908835851 "$god_ set-dist 20 38 1" +$ns_ at 143.758559711660 "$god_ set-dist 3 11 1" +$ns_ at 143.858912066463 "$god_ set-dist 27 40 2" +$ns_ at 143.882849124746 "$god_ set-dist 5 48 1" +$ns_ at 143.941641615540 "$god_ set-dist 10 34 1" +$ns_ at 143.977452453437 "$god_ set-dist 24 40 2" +$ns_ at 143.996419224676 "$god_ set-dist 0 16 2" +$ns_ at 144.177420721945 "$node_(40) setdest 29.846014154137 442.395288035791 0.000000000000" +$ns_ at 144.239539828788 "$god_ set-dist 26 47 1" +$ns_ at 144.299059655300 "$god_ set-dist 8 32 2" +$ns_ at 144.436508367153 "$god_ set-dist 5 27 2" +$ns_ at 144.503892079557 "$god_ set-dist 1 13 1" +$ns_ at 144.571283194655 "$god_ set-dist 9 32 2" +$ns_ at 144.629973899822 "$god_ set-dist 7 49 2" +$ns_ at 144.629973899822 "$god_ set-dist 28 49 3" +$ns_ at 144.642013390150 "$god_ set-dist 19 49 2" +$ns_ at 144.838078340560 "$god_ set-dist 2 45 2" +$ns_ at 144.899477999093 "$god_ set-dist 47 48 1" +$ns_ at 144.909511499819 "$god_ set-dist 15 16 2" +$ns_ at 144.938335555033 "$god_ set-dist 3 14 1" +$ns_ at 145.295690665838 "$god_ set-dist 16 22 2" +$ns_ at 145.380285628199 "$god_ set-dist 12 19 1" +$ns_ at 145.497395343007 "$god_ set-dist 6 38 1" +$ns_ at 145.500007627409 "$node_(49) setdest 242.774332523593 34.342956064114 0.000000000000" +$ns_ at 145.848430033849 "$god_ set-dist 22 45 1" +$ns_ at 145.879247324420 "$god_ set-dist 3 10 1" +$ns_ at 145.945068411804 "$god_ set-dist 39 41 2" +$ns_ at 146.019996311873 "$god_ set-dist 27 40 1" +$ns_ at 146.076136522724 "$god_ set-dist 34 42 1" +$ns_ at 146.206208692455 "$god_ set-dist 3 13 1" +$ns_ at 146.314055492930 "$god_ set-dist 1 19 1" +$ns_ at 146.328882654147 "$god_ set-dist 6 31 2" +$ns_ at 146.348278053253 "$node_(37) setdest 177.798884334547 181.427938918819 5.673842919096" +$ns_ at 146.501839606432 "$god_ set-dist 22 30 1" +$ns_ at 146.535662295239 "$god_ set-dist 25 30 2" +$ns_ at 146.805709833394 "$god_ set-dist 41 42 1" +$ns_ at 147.075480981845 "$god_ set-dist 12 13 1" +$ns_ at 147.100074550975 "$god_ set-dist 11 42 2" +$ns_ at 147.104738359142 "$god_ set-dist 13 37 1" +$ns_ at 147.139202877428 "$god_ set-dist 3 42 1" +$ns_ at 147.249474141744 "$god_ set-dist 12 47 1" +$ns_ at 147.296728806989 "$god_ set-dist 29 47 1" +$ns_ at 147.313937590283 "$god_ set-dist 17 45 2" +$ns_ at 147.475986298866 "$god_ set-dist 4 48 2" +$ns_ at 147.554197065204 "$node_(6) setdest 90.056684271384 497.580177499139 9.057151857737" +$ns_ at 147.753072323382 "$node_(16) setdest 80.927878579357 207.754902358404 0.000000000000" +$ns_ at 148.010430725162 "$god_ set-dist 15 30 2" +$ns_ at 148.267745939643 "$god_ set-dist 10 21 1" +$ns_ at 148.492323237700 "$god_ set-dist 45 48 2" +$ns_ at 148.575775504946 "$god_ set-dist 11 39 1" +$ns_ at 148.617519244096 "$god_ set-dist 8 22 1" +$ns_ at 148.685300387934 "$god_ set-dist 1 47 1" +$ns_ at 148.874763071058 "$god_ set-dist 19 49 1" +$ns_ at 148.966585428944 "$god_ set-dist 3 39 1" +$ns_ at 148.966585428944 "$god_ set-dist 3 40 2" +$ns_ at 148.995514016795 "$god_ set-dist 32 35 2" +$ns_ at 149.057738587637 "$god_ set-dist 20 27 2" +$ns_ at 149.092600502627 "$god_ set-dist 16 22 1" +$ns_ at 149.142517631764 "$god_ set-dist 41 44 2" +$ns_ at 149.219806622815 "$god_ set-dist 46 48 1" +$ns_ at 149.362362768767 "$god_ set-dist 15 35 2" +$ns_ at 149.432601988776 "$god_ set-dist 18 23 1" +$ns_ at 149.653337303689 "$god_ set-dist 6 18 2" +$ns_ at 149.746623008747 "$god_ set-dist 23 42 1" +$ns_ at 149.804318202236 "$god_ set-dist 8 37 1" +$ns_ at 149.973961199177 "$god_ set-dist 42 45 2" +$ns_ at 149.991854771066 "$god_ set-dist 15 27 2" +$ns_ at 150.198857489175 "$god_ set-dist 5 29 1" +$ns_ at 150.229208405034 "$god_ set-dist 10 49 1" +$ns_ at 150.242889367124 "$god_ set-dist 38 41 2" +$ns_ at 150.682721741213 "$god_ set-dist 8 44 2" +$ns_ at 150.743038647208 "$god_ set-dist 16 32 2" +$ns_ at 150.752741457458 "$god_ set-dist 4 35 2" +$ns_ at 150.775906267080 "$god_ set-dist 1 10 1" +$ns_ at 150.818986334330 "$god_ set-dist 21 38 2" +$ns_ at 150.919397377518 "$god_ set-dist 7 49 1" +$ns_ at 150.919397377518 "$god_ set-dist 28 49 2" +$ns_ at 150.940718224612 "$god_ set-dist 3 24 1" +$ns_ at 151.013662106099 "$god_ set-dist 37 44 1" +$ns_ at 151.033630042924 "$god_ set-dist 14 47 1" +$ns_ at 151.048070843247 "$god_ set-dist 10 12 1" +$ns_ at 151.057438357917 "$god_ set-dist 4 7 2" +$ns_ at 151.057438357917 "$god_ set-dist 4 28 3" +$ns_ at 151.139956258324 "$god_ set-dist 1 4 2" +$ns_ at 151.407285194232 "$god_ set-dist 3 40 3" +$ns_ at 151.407285194232 "$god_ set-dist 39 40 2" +$ns_ at 151.410313536585 "$god_ set-dist 3 37 1" +$ns_ at 151.421647771103 "$god_ set-dist 25 26 2" +$ns_ at 151.476756606083 "$god_ set-dist 0 27 2" +$ns_ at 151.595894838515 "$god_ set-dist 15 29 2" +$ns_ at 151.934291094065 "$god_ set-dist 20 32 2" +$ns_ at 151.948902983986 "$god_ set-dist 7 45 2" +$ns_ at 151.948902983986 "$god_ set-dist 28 45 3" +$ns_ at 152.142884278113 "$god_ set-dist 42 49 2" +$ns_ at 152.213302629710 "$node_(34) setdest 325.148326142424 37.805244644054 2.442898831359" +$ns_ at 152.320038591901 "$god_ set-dist 4 40 3" +$ns_ at 152.320038591901 "$god_ set-dist 20 40 2" +$ns_ at 152.320038591901 "$god_ set-dist 23 40 3" +$ns_ at 152.320038591901 "$god_ set-dist 40 41 3" +$ns_ at 152.369387168963 "$god_ set-dist 4 26 2" +$ns_ at 152.457868230425 "$god_ set-dist 3 25 1" +$ns_ at 152.681716842902 "$god_ set-dist 9 22 1" +$ns_ at 152.930952976061 "$god_ set-dist 35 44 2" +$ns_ at 152.943355023663 "$god_ set-dist 36 37 1" +$ns_ at 152.947640978311 "$node_(41) setdest 467.896153177694 280.517599509949 0.000000000000" +$ns_ at 153.086556009242 "$node_(26) setdest 479.574899480580 116.285696087271 9.973472129666" +$ns_ at 153.244367241642 "$god_ set-dist 4 39 2" +$ns_ at 153.336924255326 "$god_ set-dist 11 22 1" +$ns_ at 153.364087453785 "$god_ set-dist 15 45 2" +$ns_ at 153.456155498669 "$god_ set-dist 27 32 2" +$ns_ at 153.520484146958 "$god_ set-dist 4 13 2" +$ns_ at 153.696885312529 "$god_ set-dist 3 28 2" +$ns_ at 153.696885312529 "$god_ set-dist 3 40 2" +$ns_ at 153.696885312529 "$god_ set-dist 3 48 1" +$ns_ at 153.814474770829 "$god_ set-dist 4 40 2" +$ns_ at 153.814474770829 "$god_ set-dist 23 40 2" +$ns_ at 153.814474770829 "$god_ set-dist 25 40 1" +$ns_ at 153.814474770829 "$god_ set-dist 40 41 2" +$ns_ at 154.140592312883 "$god_ set-dist 29 32 2" +$ns_ at 154.361062821292 "$god_ set-dist 4 26 1" +$ns_ at 154.460088019780 "$god_ set-dist 8 33 1" +$ns_ at 154.562808643385 "$god_ set-dist 3 30 1" +$ns_ at 154.763242550807 "$god_ set-dist 20 46 1" +$ns_ at 154.773048911844 "$god_ set-dist 3 7 1" +$ns_ at 154.780192053860 "$god_ set-dist 4 12 2" +$ns_ at 154.874017410830 "$god_ set-dist 4 38 2" +$ns_ at 155.437840179466 "$god_ set-dist 6 14 2" +$ns_ at 155.481886108975 "$god_ set-dist 4 36 2" +$ns_ at 155.545594712528 "$god_ set-dist 48 49 1" +$ns_ at 155.907726765127 "$god_ set-dist 26 29 2" +$ns_ at 155.934464301956 "$god_ set-dist 26 41 1" +$ns_ at 156.075988125417 "$god_ set-dist 6 43 2" +$ns_ at 156.105584751728 "$god_ set-dist 26 37 1" +$ns_ at 156.223225022762 "$god_ set-dist 0 9 1" +$ns_ at 156.266215859258 "$node_(11) setdest 425.354010070123 125.432054998788 9.336773998115" +$ns_ at 156.284370275669 "$god_ set-dist 11 15 1" +$ns_ at 156.448253231097 "$god_ set-dist 30 46 1" +$ns_ at 156.654072006833 "$god_ set-dist 16 26 2" +$ns_ at 156.707365826231 "$god_ set-dist 6 30 2" +$ns_ at 156.711484557415 "$god_ set-dist 23 33 1" +$ns_ at 156.728027561582 "$god_ set-dist 21 37 1" +$ns_ at 156.732857975541 "$god_ set-dist 6 10 2" +$ns_ at 156.864567923879 "$god_ set-dist 10 11 1" +$ns_ at 156.897507960287 "$god_ set-dist 26 27 2" +$ns_ at 157.099097034566 "$god_ set-dist 12 38 2" +$ns_ at 157.339707166829 "$god_ set-dist 9 37 1" +$ns_ at 157.401956158386 "$god_ set-dist 5 49 2" +$ns_ at 157.443601691749 "$god_ set-dist 14 37 1" +$ns_ at 157.504109918786 "$god_ set-dist 30 42 2" +$ns_ at 157.532109314506 "$god_ set-dist 21 42 1" +$ns_ at 157.713926212274 "$god_ set-dist 17 27 2" +$ns_ at 157.803237907009 "$god_ set-dist 47 49 1" +$ns_ at 157.819878680933 "$node_(14) setdest 89.088374290239 335.068332076588 1.644844278257" +$ns_ at 157.919940074683 "$god_ set-dist 6 37 1" +$ns_ at 157.950020686025 "$god_ set-dist 4 44 2" +$ns_ at 157.990680023426 "$node_(9) setdest 13.367561805167 485.436075360212 3.029124941690" +$ns_ at 158.166260796108 "$god_ set-dist 45 46 2" +$ns_ at 158.210713100423 "$node_(45) setdest 169.830993126344 4.344038177179 0.000000000000" +$ns_ at 158.335064156511 "$god_ set-dist 0 34 2" +$ns_ at 158.417711775172 "$god_ set-dist 45 46 1" +$ns_ at 158.440714230559 "$god_ set-dist 7 11 1" +$ns_ at 158.440714230559 "$god_ set-dist 11 28 2" +$ns_ at 158.590993063701 "$god_ set-dist 27 42 2" +$ns_ at 158.640974496734 "$node_(8) setdest 309.225221704423 221.498908375337 7.806949893442" +$ns_ at 158.773061832828 "$node_(29) setdest 170.941550181211 322.183295272786 7.184282784427" +$ns_ at 158.823631664458 "$god_ set-dist 3 20 1" +$ns_ at 158.893395873341 "$god_ set-dist 6 13 2" +$ns_ at 158.894118748909 "$god_ set-dist 7 32 2" +$ns_ at 158.921034954365 "$god_ set-dist 16 28 1" +$ns_ at 158.921034954365 "$god_ set-dist 28 45 2" +$ns_ at 158.966142976624 "$god_ set-dist 34 37 1" +$ns_ at 159.002589207380 "$god_ set-dist 4 31 2" +$ns_ at 159.147700451261 "$god_ set-dist 31 41 2" +$ns_ at 159.183126656525 "$god_ set-dist 9 44 2" +$ns_ at 159.210291542519 "$god_ set-dist 1 38 2" +$ns_ at 159.304522978224 "$god_ set-dist 16 42 2" +$ns_ at 159.364431551481 "$god_ set-dist 7 15 2" +$ns_ at 159.366842387772 "$god_ set-dist 11 17 1" +$ns_ at 159.424991554007 "$god_ set-dist 3 29 1" +$ns_ at 159.530899163139 "$god_ set-dist 10 45 1" +$ns_ at 159.540352382498 "$god_ set-dist 30 32 2" +$ns_ at 159.559384433271 "$god_ set-dist 6 19 2" +$ns_ at 159.654088186297 "$god_ set-dist 8 36 1" +$ns_ at 159.685505220081 "$god_ set-dist 8 44 1" +$ns_ at 159.730447452948 "$god_ set-dist 8 47 1" +$ns_ at 159.770166673916 "$god_ set-dist 9 36 2" +$ns_ at 159.796125346473 "$god_ set-dist 1 6 3" +$ns_ at 159.796125346473 "$god_ set-dist 2 6 2" +$ns_ at 159.796125346473 "$god_ set-dist 6 12 3" +$ns_ at 159.871617896148 "$god_ set-dist 34 38 2" +$ns_ at 159.938367786315 "$god_ set-dist 11 19 1" +$ns_ at 159.976196010021 "$god_ set-dist 7 26 2" +$ns_ at 160.313658087637 "$god_ set-dist 6 42 2" +$ns_ at 160.323404609323 "$god_ set-dist 2 11 1" +$ns_ at 160.424158183359 "$god_ set-dist 25 27 2" +$ns_ at 160.543315390365 "$god_ set-dist 25 32 2" +$ns_ at 160.809237466616 "$god_ set-dist 34 42 2" +$ns_ at 160.880033621740 "$god_ set-dist 11 47 1" +$ns_ at 160.971486657583 "$god_ set-dist 16 37 1" +$ns_ at 161.051245247063 "$god_ set-dist 9 42 2" +$ns_ at 161.166680531099 "$god_ set-dist 11 48 1" +$ns_ at 161.220774224636 "$god_ set-dist 7 45 1" +$ns_ at 161.318934338737 "$god_ set-dist 30 47 1" +$ns_ at 161.398624922324 "$god_ set-dist 5 35 2" +$ns_ at 161.443506923168 "$god_ set-dist 32 45 2" +$ns_ at 161.821799840218 "$god_ set-dist 14 42 2" +$ns_ at 161.844609848329 "$god_ set-dist 0 21 2" +$ns_ at 161.879677228720 "$god_ set-dist 41 44 1" +$ns_ at 161.922879394861 "$god_ set-dist 15 28 3" +$ns_ at 161.922879394861 "$god_ set-dist 26 28 3" +$ns_ at 161.922879394861 "$god_ set-dist 28 32 3" +$ns_ at 161.922879394861 "$god_ set-dist 28 48 2" +$ns_ at 162.219801171421 "$god_ set-dist 18 45 2" +$ns_ at 162.415269074002 "$god_ set-dist 5 8 1" +$ns_ at 162.524585458074 "$god_ set-dist 3 16 1" +$ns_ at 162.565163017418 "$god_ set-dist 32 38 2" +$ns_ at 162.584343681714 "$god_ set-dist 3 8 1" +$ns_ at 162.603506733776 "$god_ set-dist 24 26 2" +$ns_ at 162.748314697464 "$god_ set-dist 38 40 1" +$ns_ at 162.879015638563 "$god_ set-dist 11 27 2" +$ns_ at 162.905578727607 "$god_ set-dist 26 38 2" +$ns_ at 163.148765617917 "$god_ set-dist 9 18 2" +$ns_ at 163.326173272109 "$god_ set-dist 27 49 2" +$ns_ at 163.370557147262 "$god_ set-dist 18 27 2" +$ns_ at 163.385207953222 "$god_ set-dist 5 11 1" +$ns_ at 163.387144235357 "$god_ set-dist 26 30 2" +$ns_ at 163.387462061160 "$god_ set-dist 27 33 2" +$ns_ at 163.419139665922 "$god_ set-dist 15 38 2" +$ns_ at 163.450728539732 "$god_ set-dist 29 46 1" +$ns_ at 163.478505573387 "$god_ set-dist 9 31 2" +$ns_ at 163.582231180584 "$god_ set-dist 6 39 2" +$ns_ at 163.699780773942 "$god_ set-dist 1 30 1" +$ns_ at 163.701582944058 "$god_ set-dist 31 35 2" +$ns_ at 163.839753979805 "$god_ set-dist 11 21 1" +$ns_ at 163.839988965227 "$god_ set-dist 20 31 2" +$ns_ at 163.848983236438 "$god_ set-dist 24 27 2" +$ns_ at 163.872265084690 "$god_ set-dist 32 39 2" +$ns_ at 163.898153858449 "$god_ set-dist 30 37 1" +$ns_ at 164.100183880253 "$god_ set-dist 22 23 2" +$ns_ at 164.137088532944 "$god_ set-dist 26 42 2" +$ns_ at 164.177420721945 "$node_(40) setdest 214.431590307916 342.347102637449 6.622309935615" +$ns_ at 164.202891714973 "$god_ set-dist 39 42 2" +$ns_ at 164.355101629137 "$god_ set-dist 26 39 2" +$ns_ at 164.409574231003 "$god_ set-dist 28 38 1" +$ns_ at 164.410863674104 "$god_ set-dist 4 34 2" +$ns_ at 164.609900542149 "$god_ set-dist 15 25 2" +$ns_ at 164.615508971522 "$god_ set-dist 4 28 2" +$ns_ at 164.615508971522 "$god_ set-dist 23 28 2" +$ns_ at 164.615508971522 "$god_ set-dist 25 28 1" +$ns_ at 164.615508971522 "$god_ set-dist 28 41 2" +$ns_ at 165.010572042934 "$god_ set-dist 6 27 2" +$ns_ at 165.058338013735 "$god_ set-dist 38 42 2" +$ns_ at 165.105398893836 "$god_ set-dist 6 21 3" +$ns_ at 165.105398893836 "$god_ set-dist 6 34 3" +$ns_ at 165.105398893836 "$god_ set-dist 6 37 2" +$ns_ at 165.147670290989 "$god_ set-dist 25 36 2" +$ns_ at 165.254081543644 "$god_ set-dist 36 42 2" +$ns_ at 165.351650782284 "$god_ set-dist 7 42 2" +$ns_ at 165.466731975696 "$god_ set-dist 31 42 2" +$ns_ at 165.500007627409 "$node_(49) setdest 404.485423265250 309.033526987530 5.789705038597" +$ns_ at 165.528714471848 "$god_ set-dist 8 46 1" +$ns_ at 165.694991479911 "$god_ set-dist 0 26 2" +$ns_ at 165.896184802419 "$god_ set-dist 24 40 1" +$ns_ at 165.903005786532 "$god_ set-dist 6 34 2" +$ns_ at 165.903005786532 "$god_ set-dist 34 40 2" +$ns_ at 165.903005786532 "$god_ set-dist 34 48 1" +$ns_ at 165.948377636618 "$god_ set-dist 26 45 2" +$ns_ at 165.970822272551 "$god_ set-dist 42 44 2" +$ns_ at 166.033440740066 "$god_ set-dist 15 39 2" +$ns_ at 166.068566869147 "$god_ set-dist 6 16 2" +$ns_ at 166.131312400350 "$god_ set-dist 16 47 1" +$ns_ at 166.302195002595 "$god_ set-dist 6 26 3" +$ns_ at 166.302195002595 "$god_ set-dist 26 40 3" +$ns_ at 166.302195002595 "$god_ set-dist 26 48 2" +$ns_ at 166.326371515706 "$god_ set-dist 25 44 2" +$ns_ at 166.382289384776 "$god_ set-dist 9 10 2" +$ns_ at 166.466898690133 "$god_ set-dist 10 23 2" +$ns_ at 166.511988522376 "$god_ set-dist 11 16 2" +$ns_ at 166.547395099537 "$god_ set-dist 25 31 2" +$ns_ at 166.564948640668 "$god_ set-dist 4 22 2" +$ns_ at 166.615571347407 "$god_ set-dist 5 49 1" +$ns_ at 166.785763610058 "$god_ set-dist 11 37 1" +$ns_ at 166.799594839957 "$node_(29) setdest 170.941550181211 322.183295272785 0.000000000000" +$ns_ at 166.879988669568 "$god_ set-dist 3 35 1" +$ns_ at 166.922977755011 "$god_ set-dist 23 48 1" +$ns_ at 167.103890620878 "$god_ set-dist 20 44 1" +$ns_ at 167.179192012932 "$god_ set-dist 14 26 2" +$ns_ at 167.276164184661 "$god_ set-dist 20 40 1" +$ns_ at 167.414792410860 "$god_ set-dist 41 48 1" +$ns_ at 167.501527431914 "$god_ set-dist 5 38 2" +$ns_ at 167.537530551572 "$god_ set-dist 21 49 1" +$ns_ at 167.543444127303 "$god_ set-dist 38 46 2" +$ns_ at 167.698843346840 "$god_ set-dist 11 38 2" +$ns_ at 167.753072323382 "$node_(16) setdest 389.464246111122 261.870958835157 2.396064977716" +$ns_ at 167.801053792267 "$god_ set-dist 35 42 2" +$ns_ at 167.837683856626 "$god_ set-dist 10 27 2" +$ns_ at 167.846914927549 "$god_ set-dist 14 32 2" +$ns_ at 167.960726479725 "$god_ set-dist 37 49 1" +$ns_ at 167.962621412264 "$god_ set-dist 13 42 2" +$ns_ at 168.182925619954 "$god_ set-dist 20 39 2" +$ns_ at 168.341244889485 "$god_ set-dist 27 44 2" +$ns_ at 168.448692895954 "$god_ set-dist 32 42 2" +$ns_ at 168.449644586571 "$node_(4) setdest 483.583687824525 332.193444971050 0.000000000000" +$ns_ at 168.456309259770 "$god_ set-dist 24 32 2" +$ns_ at 168.459187098387 "$god_ set-dist 30 34 1" +$ns_ at 168.591366901725 "$god_ set-dist 4 10 2" +$ns_ at 168.850246553763 "$god_ set-dist 7 11 2" +$ns_ at 168.850246553763 "$god_ set-dist 11 28 3" +$ns_ at 168.900385353736 "$god_ set-dist 8 49 1" +$ns_ at 168.917801837493 "$god_ set-dist 6 11 3" +$ns_ at 168.917801837493 "$god_ set-dist 6 32 3" +$ns_ at 168.917801837493 "$god_ set-dist 6 34 3" +$ns_ at 168.917801837493 "$god_ set-dist 6 48 2" +$ns_ at 168.928836035664 "$god_ set-dist 13 21 1" +$ns_ at 169.114632754573 "$god_ set-dist 20 36 1" +$ns_ at 169.216160124176 "$god_ set-dist 6 7 2" +$ns_ at 169.228977665656 "$node_(31) setdest 254.495389628002 120.481438366729 0.000000000000" +$ns_ at 169.315429842581 "$god_ set-dist 21 42 2" +$ns_ at 169.321068525807 "$god_ set-dist 12 14 2" +$ns_ at 169.498370620228 "$god_ set-dist 21 40 2" +$ns_ at 169.498370620228 "$god_ set-dist 26 40 2" +$ns_ at 169.498370620228 "$god_ set-dist 37 40 1" +$ns_ at 169.651929824108 "$god_ set-dist 6 45 3" +$ns_ at 169.651929824108 "$god_ set-dist 38 45 2" +$ns_ at 169.883489462503 "$god_ set-dist 2 27 2" +$ns_ at 169.943324967598 "$god_ set-dist 27 43 2" +$ns_ at 170.067210639791 "$god_ set-dist 5 39 2" +$ns_ at 170.072430183841 "$god_ set-dist 27 36 2" +$ns_ at 170.236662694747 "$god_ set-dist 1 37 1" +$ns_ at 170.236662694747 "$god_ set-dist 1 40 2" +$ns_ at 170.318405708360 "$god_ set-dist 10 35 2" +$ns_ at 170.473868330271 "$god_ set-dist 25 39 2" +$ns_ at 170.488430785553 "$god_ set-dist 6 11 2" +$ns_ at 170.488430785553 "$god_ set-dist 8 11 1" +$ns_ at 170.488430785553 "$god_ set-dist 11 28 2" +$ns_ at 170.520012815727 "$god_ set-dist 0 40 1" +$ns_ at 170.523176802114 "$god_ set-dist 5 7 2" +$ns_ at 170.555805952581 "$node_(6) setdest 90.056684271384 497.580177499139 0.000000000000" +$ns_ at 170.664819395552 "$god_ set-dist 0 32 2" +$ns_ at 170.799586065385 "$god_ set-dist 22 42 2" +$ns_ at 170.807072137457 "$god_ set-dist 10 42 2" +$ns_ at 170.852316648397 "$god_ set-dist 4 27 3" +$ns_ at 170.852316648397 "$god_ set-dist 19 27 2" +$ns_ at 170.889843716597 "$god_ set-dist 45 47 1" +$ns_ at 170.933218184814 "$god_ set-dist 38 49 2" +$ns_ at 170.970688459711 "$god_ set-dist 0 39 2" +$ns_ at 171.012928868223 "$god_ set-dist 15 20 2" +$ns_ at 171.020814574115 "$god_ set-dist 33 35 2" +$ns_ at 171.080446273283 "$god_ set-dist 26 37 2" +$ns_ at 171.080446273283 "$god_ set-dist 26 40 3" +$ns_ at 171.213402242592 "$god_ set-dist 9 43 2" +$ns_ at 171.248358510728 "$god_ set-dist 15 42 2" +$ns_ at 171.540074657365 "$god_ set-dist 3 4 2" +$ns_ at 171.584059029565 "$god_ set-dist 2 40 1" +$ns_ at 171.584059029565 "$god_ set-dist 12 40 2" +$ns_ at 171.584059029565 "$god_ set-dist 26 40 2" +$ns_ at 171.875256321663 "$god_ set-dist 14 20 1" +$ns_ at 172.128030596797 "$god_ set-dist 8 15 1" +$ns_ at 172.128030596797 "$god_ set-dist 15 28 2" +$ns_ at 172.257990985623 "$god_ set-dist 21 37 2" +$ns_ at 172.502070179570 "$god_ set-dist 35 47 2" +$ns_ at 172.634754344960 "$god_ set-dist 29 42 2" +$ns_ at 172.656598131265 "$god_ set-dist 11 41 1" +$ns_ at 172.768397075333 "$god_ set-dist 3 42 2" +$ns_ at 172.832328351840 "$god_ set-dist 3 9 1" +$ns_ at 172.946017947212 "$god_ set-dist 1 48 1" +$ns_ at 172.947640978311 "$node_(41) setdest 73.978412404542 285.420614962347 4.897649557961" +$ns_ at 173.057056334515 "$god_ set-dist 0 16 1" +$ns_ at 173.124488577796 "$god_ set-dist 2 26 2" +$ns_ at 173.124488577796 "$god_ set-dist 26 40 3" +$ns_ at 173.128665580317 "$god_ set-dist 6 8 2" +$ns_ at 173.128665580317 "$god_ set-dist 6 11 3" +$ns_ at 173.128665580317 "$god_ set-dist 6 49 3" +$ns_ at 173.143379706028 "$god_ set-dist 32 48 2" +$ns_ at 173.159299760786 "$god_ set-dist 36 41 1" +$ns_ at 173.208757984030 "$god_ set-dist 20 31 1" +$ns_ at 173.301305879650 "$god_ set-dist 18 38 2" +$ns_ at 173.357393537996 "$god_ set-dist 8 42 2" +$ns_ at 173.359438143179 "$god_ set-dist 8 28 2" +$ns_ at 173.359438143179 "$god_ set-dist 11 28 3" +$ns_ at 173.359438143179 "$god_ set-dist 15 28 3" +$ns_ at 173.535139474195 "$node_(5) setdest 361.901637929384 267.209487403643 0.000000000000" +$ns_ at 173.587946622990 "$god_ set-dist 19 40 1" +$ns_ at 173.587946622990 "$god_ set-dist 26 40 2" +$ns_ at 173.670265021999 "$god_ set-dist 27 31 2" +$ns_ at 173.696956612585 "$god_ set-dist 18 35 2" +$ns_ at 173.761209959889 "$god_ set-dist 42 46 2" +$ns_ at 173.791170463419 "$god_ set-dist 4 27 2" +$ns_ at 173.791170463419 "$god_ set-dist 4 48 1" +$ns_ at 173.852736447745 "$god_ set-dist 10 25 2" +$ns_ at 173.899631784139 "$god_ set-dist 42 43 2" +$ns_ at 173.901485488394 "$god_ set-dist 1 41 1" +$ns_ at 173.920020932356 "$god_ set-dist 22 26 2" +$ns_ at 173.958945354410 "$god_ set-dist 17 38 2" +$ns_ at 173.986034035076 "$god_ set-dist 27 37 1" +$ns_ at 174.127451960226 "$god_ set-dist 10 38 2" +$ns_ at 174.149168213863 "$god_ set-dist 14 25 2" +$ns_ at 174.216606195119 "$god_ set-dist 38 44 2" +$ns_ at 174.216629562639 "$god_ set-dist 33 42 2" +$ns_ at 174.219566797169 "$node_(26) setdest 479.574899480580 116.285696087271 0.000000000000" +$ns_ at 174.256789258130 "$god_ set-dist 20 38 2" +$ns_ at 174.272184291120 "$god_ set-dist 14 15 2" +$ns_ at 174.314802583232 "$god_ set-dist 8 34 1" +$ns_ at 174.382268495670 "$god_ set-dist 7 46 2" +$ns_ at 174.485080626122 "$node_(27) setdest 12.736651149863 194.779915039946 0.000000000000" +$ns_ at 174.545397024205 "$god_ set-dist 8 41 1" +$ns_ at 174.615445282295 "$god_ set-dist 42 45 3" +$ns_ at 174.615445282295 "$god_ set-dist 42 47 2" +$ns_ at 174.624216287542 "$god_ set-dist 33 38 2" +$ns_ at 174.692729363293 "$god_ set-dist 38 47 2" +$ns_ at 174.811207869177 "$god_ set-dist 3 27 1" +$ns_ at 174.896917840471 "$god_ set-dist 6 49 2" +$ns_ at 174.896917840471 "$god_ set-dist 24 49 1" +$ns_ at 174.948851122507 "$god_ set-dist 13 41 1" +$ns_ at 175.033976001813 "$god_ set-dist 15 23 2" +$ns_ at 175.126903288310 "$god_ set-dist 0 38 2" +$ns_ at 175.221458928251 "$god_ set-dist 36 38 2" +$ns_ at 175.454386351274 "$god_ set-dist 8 23 1" +$ns_ at 175.471975934913 "$node_(3) setdest 259.309350498101 200.841466028948 0.000000000000" +$ns_ at 175.575458630600 "$god_ set-dist 14 40 1" +$ns_ at 175.607107704601 "$node_(38) setdest 62.618164351345 264.734651792051 0.000000000000" +$ns_ at 175.735042894142 "$god_ set-dist 9 13 2" +$ns_ at 175.827460808122 "$god_ set-dist 32 37 2" +$ns_ at 175.831567642814 "$god_ set-dist 12 37 1" +$ns_ at 175.922272844096 "$god_ set-dist 1 8 1" +$ns_ at 176.081032271301 "$god_ set-dist 16 46 1" +$ns_ at 176.134585649549 "$god_ set-dist 6 20 2" +$ns_ at 176.177120812633 "$god_ set-dist 37 42 2" +$ns_ at 176.190053367696 "$god_ set-dist 21 22 2" +$ns_ at 176.385397018788 "$god_ set-dist 4 37 2" +$ns_ at 176.407260284198 "$god_ set-dist 16 20 1" +$ns_ at 176.432815192913 "$god_ set-dist 19 42 2" +$ns_ at 176.488440325191 "$god_ set-dist 4 27 3" +$ns_ at 176.488440325191 "$god_ set-dist 27 42 3" +$ns_ at 176.488440325191 "$god_ set-dist 27 48 2" +$ns_ at 176.593954514317 "$god_ set-dist 11 39 2" +$ns_ at 177.350317198096 "$god_ set-dist 31 41 1" +$ns_ at 177.511658238714 "$god_ set-dist 0 15 2" +$ns_ at 177.588747418864 "$god_ set-dist 41 49 1" +$ns_ at 177.625113844814 "$god_ set-dist 3 40 1" +$ns_ at 177.729872467673 "$god_ set-dist 42 48 2" +$ns_ at 177.783294257963 "$god_ set-dist 24 39 2" +$ns_ at 177.909211296917 "$god_ set-dist 2 42 2" +$ns_ at 177.972634756144 "$god_ set-dist 22 32 2" +$ns_ at 178.075251510300 "$god_ set-dist 29 49 1" +$ns_ at 178.134082878411 "$god_ set-dist 22 40 1" +$ns_ at 178.210713100423 "$node_(45) setdest 127.122709513997 212.437501220731 8.532156880174" +$ns_ at 178.270533164780 "$god_ set-dist 25 46 2" +$ns_ at 178.327228709016 "$god_ set-dist 2 32 2" +$ns_ at 178.369361687179 "$god_ set-dist 21 48 1" +$ns_ at 178.406420531115 "$node_(42) setdest 454.399923215430 433.576881462705 0.000000000000" +$ns_ at 178.486058481132 "$god_ set-dist 19 45 1" +$ns_ at 178.558491330174 "$god_ set-dist 8 12 1" +$ns_ at 178.558714565743 "$god_ set-dist 6 15 3" +$ns_ at 178.558714565743 "$god_ set-dist 15 24 2" +$ns_ at 178.684414770071 "$god_ set-dist 37 45 1" +$ns_ at 178.730861680598 "$god_ set-dist 23 47 2" +$ns_ at 178.830104530604 "$god_ set-dist 7 20 2" +$ns_ at 179.016843162534 "$god_ set-dist 0 49 1" +$ns_ at 179.108271246225 "$god_ set-dist 17 35 2" +$ns_ at 179.143722391146 "$node_(22) setdest 215.446606933348 170.946999931935 0.000000000000" +$ns_ at 179.210605085652 "$god_ set-dist 18 39 2" +$ns_ at 179.402859869181 "$god_ set-dist 8 45 1" +$ns_ at 179.462545588631 "$god_ set-dist 4 11 1" +$ns_ at 179.545502499455 "$god_ set-dist 9 20 2" +$ns_ at 179.683039243069 "$god_ set-dist 8 21 1" +$ns_ at 179.725066163501 "$god_ set-dist 13 25 2" +$ns_ at 179.735027085287 "$god_ set-dist 11 30 2" +$ns_ at 179.735514632179 "$god_ set-dist 12 48 1" +$ns_ at 179.759619312858 "$god_ set-dist 4 8 1" +$ns_ at 179.759619312858 "$god_ set-dist 4 27 2" +$ns_ at 179.766404046904 "$god_ set-dist 35 43 2" +$ns_ at 179.771202811944 "$god_ set-dist 0 38 1" +$ns_ at 179.803598091145 "$god_ set-dist 17 40 1" +$ns_ at 179.869114049534 "$god_ set-dist 3 9 2" +$ns_ at 179.961240478260 "$god_ set-dist 4 47 2" +$ns_ at 180.154066093881 "$god_ set-dist 20 49 1" +$ns_ at 180.213245460397 "$god_ set-dist 42 48 1" +$ns_ at 180.265660936898 "$god_ set-dist 10 29 2" +$ns_ at 180.442810597012 "$god_ set-dist 10 20 2" +$ns_ at 180.569951640289 "$god_ set-dist 7 25 2" +$ns_ at 180.574434204027 "$god_ set-dist 23 37 2" +$ns_ at 180.608691365239 "$god_ set-dist 7 18 2" +$ns_ at 180.993111171723 "$god_ set-dist 17 39 2" +$ns_ at 181.058058519923 "$god_ set-dist 0 10 2" +$ns_ at 181.216903075452 "$god_ set-dist 4 27 3" +$ns_ at 181.216903075452 "$god_ set-dist 8 27 2" +$ns_ at 181.216903075452 "$god_ set-dist 23 27 3" +$ns_ at 181.236899497413 "$god_ set-dist 11 14 2" +$ns_ at 181.563004403711 "$god_ set-dist 38 47 1" +$ns_ at 181.608463033437 "$god_ set-dist 9 32 3" +$ns_ at 181.608463033437 "$god_ set-dist 19 32 2" +$ns_ at 181.648468914737 "$god_ set-dist 2 45 1" +$ns_ at 181.668923593739 "$god_ set-dist 25 47 2" +$ns_ at 181.698601676391 "$god_ set-dist 11 45 2" +$ns_ at 181.989423385733 "$god_ set-dist 6 45 2" +$ns_ at 181.989423385733 "$god_ set-dist 38 45 1" +$ns_ at 182.018569921822 "$god_ set-dist 0 7 2" +$ns_ at 182.159260120098 "$god_ set-dist 8 26 1" +$ns_ at 182.398696623794 "$god_ set-dist 13 35 2" +$ns_ at 182.580067117641 "$god_ set-dist 0 6 1" +$ns_ at 182.902967817400 "$god_ set-dist 9 30 2" +$ns_ at 183.120400988120 "$god_ set-dist 5 40 1" +$ns_ at 183.228064788980 "$god_ set-dist 29 41 1" +$ns_ at 183.278717765751 "$node_(10) setdest 301.550036115201 89.867533462226 0.000000000000" +$ns_ at 183.287402724052 "$god_ set-dist 5 16 1" +$ns_ at 183.425940896722 "$god_ set-dist 8 9 2" +$ns_ at 183.486687379744 "$god_ set-dist 39 46 2" +$ns_ at 183.497149044651 "$god_ set-dist 40 43 1" +$ns_ at 183.556986733339 "$god_ set-dist 3 32 2" +$ns_ at 183.556986733339 "$god_ set-dist 32 35 3" +$ns_ at 183.642953880397 "$god_ set-dist 42 45 2" +$ns_ at 183.642953880397 "$god_ set-dist 45 48 1" +$ns_ at 183.662725660272 "$node_(32) setdest 492.236986613202 108.527228835426 0.000000000000" +$ns_ at 183.902440136342 "$god_ set-dist 18 40 1" +$ns_ at 184.069066562278 "$god_ set-dist 8 32 1" +$ns_ at 184.069066562278 "$god_ set-dist 32 35 2" +$ns_ at 184.128641792209 "$god_ set-dist 33 40 1" +$ns_ at 184.142671348994 "$god_ set-dist 7 10 2" +$ns_ at 184.304571667688 "$god_ set-dist 17 45 1" +$ns_ at 184.612638159129 "$god_ set-dist 6 10 3" +$ns_ at 184.612638159129 "$god_ set-dist 6 24 2" +$ns_ at 184.638494833665 "$node_(11) setdest 425.354010070123 125.432054998788 0.000000000000" +$ns_ at 184.799907787118 "$node_(15) setdest 429.028607611067 111.678798619935 0.000000000000" +$ns_ at 184.834269145591 "$god_ set-dist 9 39 2" +$ns_ at 184.886788189160 "$god_ set-dist 9 22 2" +$ns_ at 184.890315249408 "$god_ set-dist 13 27 2" +$ns_ at 184.890315249408 "$god_ set-dist 27 32 3" +$ns_ at 185.098762913751 "$god_ set-dist 4 27 2" +$ns_ at 185.098762913751 "$god_ set-dist 19 27 1" +$ns_ at 185.098762913751 "$god_ set-dist 23 27 2" +$ns_ at 185.199096604443 "$god_ set-dist 39 42 3" +$ns_ at 185.199096604443 "$god_ set-dist 39 48 2" +$ns_ at 185.445732305258 "$god_ set-dist 27 28 1" +$ns_ at 185.611710536146 "$god_ set-dist 9 48 2" +$ns_ at 185.749105433343 "$god_ set-dist 26 48 1" +$ns_ at 185.840721152072 "$god_ set-dist 9 19 2" +$ns_ at 185.840721152072 "$god_ set-dist 9 26 3" +$ns_ at 186.050306069413 "$god_ set-dist 22 25 2" +$ns_ at 186.111235096183 "$god_ set-dist 13 40 1" +$ns_ at 186.146818891548 "$god_ set-dist 3 23 1" +$ns_ at 186.315475157373 "$god_ set-dist 38 43 2" +$ns_ at 186.359498971818 "$god_ set-dist 11 20 1" +$ns_ at 186.382261990687 "$god_ set-dist 29 45 1" +$ns_ at 186.758619026759 "$god_ set-dist 8 35 2" +$ns_ at 186.758619026759 "$god_ set-dist 32 35 3" +$ns_ at 186.799594839957 "$node_(29) setdest 401.620218888159 54.060283173932 5.614002642155" +$ns_ at 187.229126509679 "$god_ set-dist 40 41 1" +$ns_ at 187.344706954558 "$god_ set-dist 7 17 2" +$ns_ at 187.434476016477 "$god_ set-dist 8 39 2" +$ns_ at 187.843730222662 "$god_ set-dist 20 35 2" +$ns_ at 187.925995877198 "$god_ set-dist 4 19 2" +$ns_ at 187.925995877198 "$god_ set-dist 4 27 3" +$ns_ at 187.946175410412 "$god_ set-dist 25 43 2" +$ns_ at 188.068659363172 "$god_ set-dist 12 45 2" +$ns_ at 188.449644586571 "$node_(4) setdest 8.157917111378 188.983202983743 2.291127342394" +$ns_ at 188.517156826114 "$god_ set-dist 8 38 2" +$ns_ at 188.566133477767 "$node_(8) setdest 309.225221704423 221.498908375336 0.000000000000" +$ns_ at 188.584588981372 "$god_ set-dist 35 45 1" +$ns_ at 188.758550440014 "$god_ set-dist 4 49 1" +$ns_ at 188.928910117477 "$god_ set-dist 33 39 2" +$ns_ at 188.952041087904 "$god_ set-dist 40 46 1" +$ns_ at 189.197616613100 "$god_ set-dist 4 19 1" +$ns_ at 189.197616613100 "$god_ set-dist 4 27 2" +$ns_ at 189.228977665656 "$node_(31) setdest 248.071376024477 134.285779421088 7.217930218049" +$ns_ at 189.362474394110 "$god_ set-dist 40 49 1" +$ns_ at 189.430908557992 "$god_ set-dist 15 37 2" +$ns_ at 189.502838581158 "$god_ set-dist 2 27 1" +$ns_ at 189.674902903366 "$god_ set-dist 31 40 1" +$ns_ at 189.791976644942 "$god_ set-dist 30 40 1" +$ns_ at 189.803804583691 "$god_ set-dist 6 10 2" +$ns_ at 189.803804583691 "$god_ set-dist 10 29 1" +$ns_ at 189.816061175894 "$god_ set-dist 16 28 2" +$ns_ at 189.835106186974 "$god_ set-dist 18 30 2" +$ns_ at 189.837108045517 "$god_ set-dist 27 31 1" +$ns_ at 189.837108045517 "$god_ set-dist 27 32 2" +$ns_ at 189.896810073636 "$god_ set-dist 40 47 1" +$ns_ at 189.901561314744 "$god_ set-dist 18 45 1" +$ns_ at 189.949298619332 "$god_ set-dist 7 49 2" +$ns_ at 190.152555495956 "$god_ set-dist 23 49 1" +$ns_ at 190.220373434770 "$god_ set-dist 20 21 1" +$ns_ at 190.446187536089 "$god_ set-dist 39 49 2" +$ns_ at 190.525358360877 "$god_ set-dist 35 48 2" +$ns_ at 190.555805952581 "$node_(6) setdest 29.523981535106 496.389016799842 4.760037909748" +$ns_ at 190.740281456361 "$god_ set-dist 23 40 1" +$ns_ at 190.807266139685 "$god_ set-dist 14 41 1" +$ns_ at 190.927952812569 "$god_ set-dist 32 48 1" +$ns_ at 190.945825132924 "$god_ set-dist 40 45 1" +$ns_ at 191.109819241781 "$god_ set-dist 2 39 2" +$ns_ at 191.210450694954 "$god_ set-dist 25 38 2" +$ns_ at 191.279062641470 "$god_ set-dist 12 37 2" +$ns_ at 191.282273592980 "$god_ set-dist 36 40 1" +$ns_ at 191.284571262635 "$god_ set-dist 16 41 1" +$ns_ at 191.338431677148 "$node_(31) setdest 248.071376024477 134.285779421088 0.000000000000" +$ns_ at 191.351029247390 "$god_ set-dist 2 21 2" +$ns_ at 191.351029247390 "$god_ set-dist 9 21 3" +$ns_ at 191.397646405610 "$god_ set-dist 24 45 1" +$ns_ at 191.425423786556 "$god_ set-dist 7 48 2" +$ns_ at 191.432883230906 "$god_ set-dist 7 24 2" +$ns_ at 191.432883230906 "$god_ set-dist 7 42 3" +$ns_ at 192.154251104816 "$god_ set-dist 7 28 2" +$ns_ at 192.188396321506 "$god_ set-dist 10 20 1" +$ns_ at 192.350331560844 "$god_ set-dist 25 37 2" +$ns_ at 192.469564378937 "$god_ set-dist 39 43 2" +$ns_ at 192.802590231254 "$god_ set-dist 11 24 1" +$ns_ at 192.854117308073 "$god_ set-dist 7 33 2" +$ns_ at 192.904069822669 "$god_ set-dist 3 4 1" +$ns_ at 192.951716703173 "$god_ set-dist 11 37 2" +$ns_ at 192.981821596181 "$god_ set-dist 29 39 2" +$ns_ at 193.078776019036 "$god_ set-dist 7 8 2" +$ns_ at 193.093622973763 "$god_ set-dist 7 44 2" +$ns_ at 193.496791989237 "$god_ set-dist 0 47 2" +$ns_ at 193.535139474195 "$node_(5) setdest 215.060714570020 303.330479327762 4.573157432307" +$ns_ at 193.630028085438 "$god_ set-dist 0 6 2" +$ns_ at 193.742012367405 "$god_ set-dist 13 38 2" +$ns_ at 193.888132916391 "$god_ set-dist 40 44 1" +$ns_ at 193.921014781747 "$god_ set-dist 38 48 2" +$ns_ at 194.145637685543 "$god_ set-dist 23 29 1" +$ns_ at 194.219566797169 "$node_(26) setdest 147.613420664238 405.478267078167 8.144146996546" +$ns_ at 194.297838861270 "$god_ set-dist 15 20 1" +$ns_ at 194.369393210891 "$node_(25) setdest 249.887007515993 436.101163786147 0.000000000000" +$ns_ at 194.425773764326 "$node_(37) setdest 177.798884334547 181.427938918819 0.000000000000" +$ns_ at 194.485080626122 "$node_(27) setdest 37.735742714497 392.315552011513 1.319323152867" +$ns_ at 194.512265107731 "$god_ set-dist 2 12 2" +$ns_ at 194.512265107731 "$god_ set-dist 9 12 3" +$ns_ at 194.559855925652 "$god_ set-dist 7 43 2" +$ns_ at 194.620575941642 "$god_ set-dist 5 45 1" +$ns_ at 195.117431052306 "$node_(34) setdest 325.148326142424 37.805244644054 0.000000000000" +$ns_ at 195.253103001226 "$god_ set-dist 6 10 3" +$ns_ at 195.253103001226 "$god_ set-dist 6 29 2" +$ns_ at 195.471975934913 "$node_(3) setdest 165.438462610170 238.686057074624 8.028824767097" +$ns_ at 195.607107704601 "$node_(38) setdest 429.494285684734 461.770961538041 4.342383417118" +$ns_ at 195.715108042340 "$god_ set-dist 8 38 1" +$ns_ at 195.881748767481 "$node_(40) setdest 214.431590307916 342.347102637449 0.000000000000" +$ns_ at 195.914361254637 "$god_ set-dist 11 23 1" +$ns_ at 195.929490833852 "$god_ set-dist 35 39 2" +$ns_ at 195.931198282862 "$god_ set-dist 9 37 2" +$ns_ at 196.181581583120 "$god_ set-dist 41 45 1" +$ns_ at 196.324821916145 "$god_ set-dist 23 26 1" +$ns_ at 196.520461774599 "$god_ set-dist 25 38 1" +$ns_ at 196.521986970540 "$god_ set-dist 20 26 1" +$ns_ at 196.824540223835 "$god_ set-dist 39 44 2" +$ns_ at 196.847242483110 "$god_ set-dist 0 35 2" +$ns_ at 196.869769680594 "$god_ set-dist 3 23 2" +$ns_ at 196.888166657395 "$god_ set-dist 0 45 1" +$ns_ at 196.899310353841 "$god_ set-dist 18 45 2" +$ns_ at 197.034374433487 "$god_ set-dist 22 26 1" +$ns_ at 197.322126239904 "$god_ set-dist 2 26 1" +$ns_ at 197.322126239904 "$god_ set-dist 9 26 2" +$ns_ at 197.357452220214 "$god_ set-dist 20 45 1" +$ns_ at 197.359037552479 "$god_ set-dist 9 24 2" +$ns_ at 197.366696328759 "$god_ set-dist 9 45 1" +$ns_ at 197.415836268490 "$god_ set-dist 4 40 1" +$ns_ at 197.417213810887 "$node_(39) setdest 56.782033599602 61.469458575744 0.000000000000" +$ns_ at 197.557030266290 "$god_ set-dist 3 4 2" +$ns_ at 197.717189004301 "$god_ set-dist 17 38 1" +$ns_ at 197.982058304291 "$god_ set-dist 40 47 2" +$ns_ at 198.370921651059 "$god_ set-dist 7 36 2" +$ns_ at 198.406420531115 "$node_(42) setdest 95.344657970520 126.395631183472 0.153612322628" +$ns_ at 198.492083424917 "$god_ set-dist 10 28 3" +$ns_ at 198.492083424917 "$god_ set-dist 28 29 2" +$ns_ at 198.527695748256 "$god_ set-dist 20 47 2" +$ns_ at 198.562566415828 "$god_ set-dist 1 29 1" +$ns_ at 198.580019939398 "$god_ set-dist 33 38 1" +$ns_ at 198.805185924436 "$god_ set-dist 25 35 2" +$ns_ at 198.914126301439 "$god_ set-dist 5 30 1" +$ns_ at 199.013497353458 "$god_ set-dist 16 34 1" +$ns_ at 199.029307758628 "$god_ set-dist 0 44 2" +$ns_ at 199.053965133538 "$god_ set-dist 3 21 2" +$ns_ at 199.054051706295 "$god_ set-dist 24 26 1" +$ns_ at 199.093343575724 "$god_ set-dist 24 35 2" +$ns_ at 199.093343575724 "$god_ set-dist 35 42 3" +$ns_ at 199.143722391146 "$node_(22) setdest 161.583924575117 435.168047555479 3.088337095076" +$ns_ at 199.187036893156 "$god_ set-dist 4 29 1" +$ns_ at 199.233964662048 "$god_ set-dist 1 16 1" +$ns_ at 199.490620613298 "$god_ set-dist 25 49 1" +$ns_ at 199.825724065594 "$god_ set-dist 7 13 2" +$ns_ at 199.899885141899 "$god_ set-dist 32 47 2" +$ns_ at 199.900402641568 "$god_ set-dist 11 29 1" +$ns_ at 199.967558811512 "$god_ set-dist 2 9 2" +$ns_ at 199.967558811512 "$god_ set-dist 9 15 3" +$ns_ at 199.967558811512 "$god_ set-dist 9 26 3" +$ns_ at 200.260525961822 "$god_ set-dist 1 45 2" +$ns_ at 200.289855579218 "$god_ set-dist 29 34 1" +$ns_ at 200.324395557387 "$god_ set-dist 9 26 2" +$ns_ at 200.324395557387 "$god_ set-dist 26 29 1" +$ns_ at 200.379353706843 "$god_ set-dist 42 49 1" +$ns_ at 200.455965352806 "$god_ set-dist 5 38 1" +$ns_ at 200.517785266132 "$god_ set-dist 20 38 1" +$ns_ at 200.697982546576 "$god_ set-dist 38 41 1" +$ns_ at 201.016057200458 "$god_ set-dist 34 45 2" +$ns_ at 201.050896050932 "$god_ set-dist 30 41 1" +$ns_ at 201.675273882949 "$god_ set-dist 24 47 2" +$ns_ at 201.821358369476 "$god_ set-dist 6 47 3" +$ns_ at 201.821358369476 "$god_ set-dist 28 47 3" +$ns_ at 201.821358369476 "$god_ set-dist 38 47 2" +$ns_ at 201.905035800602 "$god_ set-dist 9 15 2" +$ns_ at 201.905035800602 "$god_ set-dist 15 29 1" +$ns_ at 201.953778262838 "$god_ set-dist 19 23 2" +$ns_ at 201.953778262838 "$god_ set-dist 23 39 3" +$ns_ at 202.108646979137 "$god_ set-dist 3 12 2" +$ns_ at 202.289091654628 "$god_ set-dist 30 48 2" +$ns_ at 202.574809319071 "$god_ set-dist 19 35 2" +$ns_ at 202.574809319071 "$god_ set-dist 21 35 3" +$ns_ at 202.597589889599 "$god_ set-dist 21 47 2" +$ns_ at 202.660753115836 "$god_ set-dist 4 36 1" +$ns_ at 202.665402942139 "$god_ set-dist 1 14 2" +$ns_ at 202.759642294872 "$god_ set-dist 3 15 2" +$ns_ at 202.773629936599 "$god_ set-dist 26 37 1" +$ns_ at 202.840930228006 "$god_ set-dist 10 28 2" +$ns_ at 202.840930228006 "$god_ set-dist 28 45 1" +$ns_ at 202.840930228006 "$god_ set-dist 28 47 2" +$ns_ at 202.845596096131 "$god_ set-dist 9 11 3" +$ns_ at 202.845596096131 "$god_ set-dist 9 15 3" +$ns_ at 202.845596096131 "$god_ set-dist 9 26 3" +$ns_ at 202.845596096131 "$god_ set-dist 9 29 2" +$ns_ at 203.108391610659 "$node_(45) setdest 127.122709513997 212.437501220731 0.000000000000" +$ns_ at 203.275120916466 "$node_(6) setdest 29.523981535106 496.389016799842 0.000000000000" +$ns_ at 203.278717765751 "$node_(10) setdest 397.314761448994 13.245475770687 8.977173966647" +$ns_ at 203.291956481658 "$god_ set-dist 38 46 1" +$ns_ at 203.427775381878 "$god_ set-dist 0 26 1" +$ns_ at 203.427775381878 "$god_ set-dist 9 26 2" +$ns_ at 203.484130318573 "$god_ set-dist 3 9 1" +$ns_ at 203.484130318573 "$god_ set-dist 9 11 2" +$ns_ at 203.531904158554 "$god_ set-dist 14 34 2" +$ns_ at 203.662725660272 "$node_(32) setdest 492.725807937553 52.156255079550 9.165564972544" +$ns_ at 203.775680036258 "$god_ set-dist 14 18 2" +$ns_ at 203.783074744782 "$god_ set-dist 0 13 2" +$ns_ at 203.842982560650 "$god_ set-dist 10 39 2" +$ns_ at 203.856539827942 "$god_ set-dist 4 44 1" +$ns_ at 203.901560433365 "$god_ set-dist 3 11 2" +$ns_ at 203.901560433365 "$god_ set-dist 9 11 3" +$ns_ at 204.009794953530 "$god_ set-dist 32 41 2" +$ns_ at 204.072288340449 "$god_ set-dist 35 39 1" +$ns_ at 204.181080366842 "$god_ set-dist 12 29 1" +$ns_ at 204.237306022658 "$god_ set-dist 5 32 2" +$ns_ at 204.638494833665 "$node_(11) setdest 286.306390550856 253.684569445064 7.227413724945" +$ns_ at 204.799907787118 "$node_(15) setdest 296.879372501492 392.070869228509 7.010080005996" +$ns_ at 204.940512698952 "$god_ set-dist 16 26 1" +$ns_ at 205.078202324767 "$god_ set-dist 7 40 2" +$ns_ at 205.117885982528 "$god_ set-dist 22 25 1" +$ns_ at 205.248257230518 "$god_ set-dist 11 37 1" +$ns_ at 205.529374674046 "$god_ set-dist 10 24 2" +$ns_ at 205.788631111746 "$god_ set-dist 36 39 2" +$ns_ at 205.824098519607 "$god_ set-dist 18 47 2" +$ns_ at 205.964124883055 "$god_ set-dist 15 24 1" +$ns_ at 206.044866443275 "$god_ set-dist 7 9 2" +$ns_ at 206.069044565770 "$god_ set-dist 4 13 1" +$ns_ at 206.099892790567 "$god_ set-dist 13 39 2" +$ns_ at 206.099897792074 "$god_ set-dist 21 29 1" +$ns_ at 206.099897792074 "$god_ set-dist 21 35 2" +$ns_ at 206.306726177149 "$god_ set-dist 6 26 2" +$ns_ at 206.306726177149 "$god_ set-dist 26 28 2" +$ns_ at 206.306726177149 "$god_ set-dist 26 40 1" +$ns_ at 206.390234378972 "$god_ set-dist 15 23 1" +$ns_ at 206.511987242346 "$god_ set-dist 36 38 1" +$ns_ at 206.594015649127 "$god_ set-dist 7 32 3" +$ns_ at 206.594015649127 "$god_ set-dist 27 32 3" +$ns_ at 206.594015649127 "$god_ set-dist 31 32 2" +$ns_ at 206.594015649127 "$god_ set-dist 32 39 3" +$ns_ at 206.798501141840 "$god_ set-dist 1 28 2" +$ns_ at 206.798501141840 "$god_ set-dist 3 28 1" +$ns_ at 206.798501141840 "$god_ set-dist 28 34 2" +$ns_ at 206.968136103551 "$god_ set-dist 14 25 1" +$ns_ at 206.982571797147 "$god_ set-dist 30 49 2" +$ns_ at 206.997769559837 "$god_ set-dist 47 48 2" +$ns_ at 207.124327873394 "$god_ set-dist 3 34 2" +$ns_ at 207.124327873394 "$god_ set-dist 28 34 3" +$ns_ at 207.217336933821 "$god_ set-dist 15 37 1" +$ns_ at 207.232266809862 "$god_ set-dist 10 20 2" +$ns_ at 207.338169119835 "$god_ set-dist 4 32 2" +$ns_ at 207.386346276574 "$god_ set-dist 10 45 2" +$ns_ at 207.497973255746 "$god_ set-dist 21 35 3" +$ns_ at 207.497973255746 "$god_ set-dist 29 35 2" +$ns_ at 207.524181348654 "$god_ set-dist 9 11 2" +$ns_ at 207.524181348654 "$god_ set-dist 11 16 1" +$ns_ at 207.784547689511 "$god_ set-dist 14 28 1" +$ns_ at 207.878602161991 "$god_ set-dist 26 42 1" +$ns_ at 208.047047801078 "$god_ set-dist 17 32 2" +$ns_ at 208.058241860747 "$god_ set-dist 1 3 2" +$ns_ at 208.058241860747 "$god_ set-dist 1 28 3" +$ns_ at 208.078108997261 "$node_(3) setdest 165.438462610170 238.686057074624 0.000000000000" +$ns_ at 208.174661589399 "$god_ set-dist 4 12 1" +$ns_ at 208.257524196262 "$god_ set-dist 10 14 2" +$ns_ at 208.366148355203 "$god_ set-dist 1 3 1" +$ns_ at 208.366148355203 "$god_ set-dist 1 28 2" +$ns_ at 208.463038473265 "$god_ set-dist 9 11 3" +$ns_ at 208.463038473265 "$god_ set-dist 9 16 2" +$ns_ at 208.463038473265 "$god_ set-dist 9 34 3" +$ns_ at 208.469057089309 "$god_ set-dist 0 28 1" +$ns_ at 208.566133477767 "$node_(8) setdest 277.086666583555 155.802745816058 4.760976235914" +$ns_ at 208.641227751792 "$god_ set-dist 30 35 2" +$ns_ at 208.714301065272 "$god_ set-dist 3 10 2" +$ns_ at 208.714301065272 "$god_ set-dist 9 10 3" +$ns_ at 208.714301065272 "$god_ set-dist 10 28 3" +$ns_ at 208.808030234793 "$god_ set-dist 47 49 2" +$ns_ at 208.963594605708 "$god_ set-dist 11 30 1" +$ns_ at 208.963908860959 "$god_ set-dist 26 30 1" +$ns_ at 209.193096390766 "$node_(35) setdest 2.040047995823 303.031135706808 0.000000000000" +$ns_ at 209.342863207525 "$god_ set-dist 14 26 1" +$ns_ at 209.487299824841 "$god_ set-dist 15 16 1" +$ns_ at 209.587926248997 "$god_ set-dist 3 11 1" +$ns_ at 209.587926248997 "$god_ set-dist 9 11 2" +$ns_ at 209.587926248997 "$god_ set-dist 11 28 2" +$ns_ at 209.727554109326 "$god_ set-dist 1 20 1" +$ns_ at 209.813256837980 "$node_(32) setdest 492.725807937553 52.156255079550 0.000000000000" +$ns_ at 209.931941246676 "$god_ set-dist 5 47 2" +$ns_ at 209.935065822138 "$god_ set-dist 45 49 2" +$ns_ at 209.972039089637 "$god_ set-dist 5 34 2" +$ns_ at 209.989132335463 "$god_ set-dist 6 13 3" +$ns_ at 209.989132335463 "$god_ set-dist 13 40 2" +$ns_ at 210.157553421952 "$god_ set-dist 6 44 3" +$ns_ at 210.157553421952 "$god_ set-dist 40 44 2" +$ns_ at 210.205217560599 "$god_ set-dist 0 9 2" +$ns_ at 210.259354580528 "$god_ set-dist 45 48 2" +$ns_ at 210.769392323356 "$god_ set-dist 0 11 1" +$ns_ at 210.797736312587 "$god_ set-dist 41 47 2" +$ns_ at 210.918676974861 "$god_ set-dist 26 45 1" +$ns_ at 210.971586208176 "$god_ set-dist 5 12 2" +$ns_ at 210.988494697106 "$god_ set-dist 5 10 2" +$ns_ at 211.160847304899 "$god_ set-dist 10 16 2" +$ns_ at 211.166935036836 "$god_ set-dist 7 29 2" +$ns_ at 211.262656912761 "$god_ set-dist 10 41 2" +$ns_ at 211.338431677148 "$node_(31) setdest 377.411760273773 54.924850450915 6.497482147877" +$ns_ at 211.500679649267 "$god_ set-dist 2 10 2" +$ns_ at 211.507039873412 "$god_ set-dist 4 22 1" +$ns_ at 211.526409137795 "$god_ set-dist 12 41 2" +$ns_ at 211.825819412335 "$god_ set-dist 27 31 2" +$ns_ at 211.923344524960 "$god_ set-dist 6 11 2" +$ns_ at 211.923344524960 "$god_ set-dist 11 40 1" +$ns_ at 212.151524030250 "$god_ set-dist 34 41 2" +$ns_ at 212.243648439526 "$god_ set-dist 12 20 1" +$ns_ at 212.438208740500 "$god_ set-dist 23 43 2" +$ns_ at 212.479274286672 "$god_ set-dist 14 49 2" +$ns_ at 212.614375098735 "$god_ set-dist 7 32 2" +$ns_ at 212.614375098735 "$god_ set-dist 31 32 1" +$ns_ at 212.614375098735 "$god_ set-dist 32 39 2" +$ns_ at 212.653455236483 "$god_ set-dist 25 26 1" +$ns_ at 212.670303873914 "$god_ set-dist 27 29 2" +$ns_ at 212.957477710060 "$god_ set-dist 26 38 1" +$ns_ at 212.973299853155 "$god_ set-dist 12 22 2" +$ns_ at 212.973299853155 "$god_ set-dist 12 35 3" +$ns_ at 213.041486568697 "$god_ set-dist 14 48 2" +$ns_ at 213.091629399327 "$god_ set-dist 38 39 2" +$ns_ at 213.121037079194 "$god_ set-dist 3 15 1" +$ns_ at 213.121037079194 "$god_ set-dist 9 15 2" +$ns_ at 213.121037079194 "$god_ set-dist 15 28 2" +$ns_ at 213.215389463297 "$god_ set-dist 0 15 1" +$ns_ at 213.328443150241 "$god_ set-dist 9 45 2" +$ns_ at 213.348322129606 "$god_ set-dist 11 14 1" +$ns_ at 213.445214512012 "$god_ set-dist 7 31 2" +$ns_ at 213.445214512012 "$god_ set-dist 7 32 3" +$ns_ at 213.711338840658 "$god_ set-dist 0 31 2" +$ns_ at 213.792495288457 "$god_ set-dist 10 22 2" +$ns_ at 213.794371344885 "$god_ set-dist 19 25 2" +$ns_ at 213.983854749547 "$god_ set-dist 10 35 3" +$ns_ at 213.983854749547 "$god_ set-dist 10 37 2" +$ns_ at 214.311428740065 "$god_ set-dist 11 45 1" +$ns_ at 214.312061866816 "$god_ set-dist 10 49 2" +$ns_ at 214.369393210891 "$node_(25) setdest 147.769813480815 22.564993284996 2.727198881856" +$ns_ at 214.425773764326 "$node_(37) setdest 478.201460550983 333.079708689027 0.445075960033" +$ns_ at 214.427793185756 "$god_ set-dist 32 49 2" +$ns_ at 214.515458343555 "$god_ set-dist 4 31 1" +$ns_ at 214.674029985407 "$god_ set-dist 6 15 2" +$ns_ at 214.674029985407 "$god_ set-dist 15 40 1" +$ns_ at 214.722968045080 "$god_ set-dist 5 21 2" +$ns_ at 214.724765690256 "$god_ set-dist 34 49 2" +$ns_ at 214.729088755640 "$god_ set-dist 4 16 1" +$ns_ at 214.775524511419 "$god_ set-dist 21 41 2" +$ns_ at 214.779338953517 "$god_ set-dist 15 30 1" +$ns_ at 214.807745383704 "$god_ set-dist 1 9 3" +$ns_ at 214.807745383704 "$god_ set-dist 3 9 2" +$ns_ at 214.867649640925 "$god_ set-dist 26 47 2" +$ns_ at 214.981695041853 "$god_ set-dist 17 47 2" +$ns_ at 214.981695041853 "$god_ set-dist 42 47 3" +$ns_ at 215.079907856287 "$god_ set-dist 19 25 1" +$ns_ at 215.117431052306 "$node_(34) setdest 43.308388443697 194.105826405345 6.861207673124" +$ns_ at 215.584077970060 "$god_ set-dist 15 47 2" +$ns_ at 215.644032326351 "$god_ set-dist 0 36 2" +$ns_ at 215.648900285643 "$god_ set-dist 27 41 1" +$ns_ at 215.648900285643 "$god_ set-dist 27 42 2" +$ns_ at 215.881748767481 "$node_(40) setdest 178.829985832944 268.969855142229 4.065186000792" +$ns_ at 216.116773906707 "$god_ set-dist 34 41 1" +$ns_ at 216.166183288406 "$god_ set-dist 3 34 1" +$ns_ at 216.166183288406 "$god_ set-dist 28 34 2" +$ns_ at 216.195792510251 "$node_(47) setdest 201.136708221500 19.975501963614 0.000000000000" +$ns_ at 216.213735929532 "$god_ set-dist 10 48 2" +$ns_ at 216.321086249932 "$god_ set-dist 25 45 1" +$ns_ at 216.459049799669 "$node_(7) setdest 4.154672930987 150.809851328016 0.000000000000" +$ns_ at 216.645300794821 "$god_ set-dist 0 43 2" +$ns_ at 216.739159222300 "$god_ set-dist 10 30 2" +$ns_ at 216.757696323493 "$god_ set-dist 11 38 1" +$ns_ at 216.940601533360 "$node_(10) setdest 397.314761448994 13.245475770686 0.000000000000" +$ns_ at 216.983026934551 "$god_ set-dist 15 42 1" +$ns_ at 217.173696322543 "$god_ set-dist 38 49 1" +$ns_ at 217.177217866884 "$god_ set-dist 5 27 1" +$ns_ at 217.182013028491 "$god_ set-dist 9 13 3" +$ns_ at 217.182013028491 "$god_ set-dist 9 14 2" +$ns_ at 217.182013028491 "$god_ set-dist 9 44 3" +$ns_ at 217.182013028491 "$god_ set-dist 9 47 3" +$ns_ at 217.185096153965 "$god_ set-dist 35 41 1" +$ns_ at 217.185096153965 "$god_ set-dist 35 42 2" +$ns_ at 217.213558705686 "$god_ set-dist 34 45 1" +$ns_ at 217.221747305521 "$god_ set-dist 35 42 3" +$ns_ at 217.221747305521 "$god_ set-dist 41 42 2" +$ns_ at 217.341182790953 "$god_ set-dist 3 18 2" +$ns_ at 217.417213810887 "$node_(39) setdest 464.156408222516 208.357562040531 6.496040690964" +$ns_ at 217.781987344342 "$god_ set-dist 29 32 1" +$ns_ at 217.834230579717 "$god_ set-dist 34 39 1" +$ns_ at 217.869655174422 "$god_ set-dist 6 44 2" +$ns_ at 217.869655174422 "$god_ set-dist 9 44 2" +$ns_ at 217.869655174422 "$god_ set-dist 40 44 1" +$ns_ at 218.136731158051 "$god_ set-dist 26 32 2" +$ns_ at 218.240466368256 "$god_ set-dist 18 37 2" +$ns_ at 218.308985204548 "$god_ set-dist 5 35 1" +$ns_ at 218.308985204548 "$god_ set-dist 35 42 2" +$ns_ at 218.370148507970 "$god_ set-dist 25 46 1" +$ns_ at 218.537162820857 "$god_ set-dist 14 34 1" +$ns_ at 218.743219958059 "$god_ set-dist 10 18 2" +$ns_ at 218.772809218539 "$god_ set-dist 8 39 1" +$ns_ at 218.772809218539 "$god_ set-dist 23 39 2" +$ns_ at 218.776939118357 "$god_ set-dist 10 30 1" +$ns_ at 218.804296717758 "$god_ set-dist 8 25 2" +$ns_ at 218.922208890836 "$god_ set-dist 37 49 2" +$ns_ at 218.987323971746 "$god_ set-dist 11 25 1" +$ns_ at 218.996796852127 "$god_ set-dist 5 34 1" +$ns_ at 219.063413578427 "$god_ set-dist 36 39 1" +$ns_ at 219.168539102929 "$god_ set-dist 2 39 1" +$ns_ at 219.225541192957 "$god_ set-dist 25 37 1" +$ns_ at 219.535465742282 "$god_ set-dist 29 39 1" +$ns_ at 219.554026381183 "$god_ set-dist 31 38 2" +$ns_ at 219.614735791326 "$god_ set-dist 10 26 2" +$ns_ at 220.087714239795 "$god_ set-dist 20 34 1" +$ns_ at 220.183684235817 "$god_ set-dist 15 38 1" +$ns_ at 220.348702894031 "$node_(18) setdest 420.461363614528 263.782872787406 0.000000000000" +$ns_ at 220.405962791668 "$god_ set-dist 15 25 1" +$ns_ at 220.426728401674 "$god_ set-dist 5 28 1" +$ns_ at 220.486600268741 "$god_ set-dist 1 49 2" +$ns_ at 220.555661834843 "$node_(49) setdest 404.485423265251 309.033526987530 0.000000000000" +$ns_ at 220.764025881443 "$god_ set-dist 5 42 2" +$ns_ at 220.764025881443 "$god_ set-dist 27 42 3" +$ns_ at 220.764025881443 "$god_ set-dist 35 42 3" +$ns_ at 220.870333133662 "$god_ set-dist 1 5 2" +$ns_ at 220.889352417897 "$god_ set-dist 28 41 1" +$ns_ at 220.963574719379 "$god_ set-dist 39 44 1" +$ns_ at 221.062875593217 "$god_ set-dist 39 46 1" +$ns_ at 221.392419592852 "$node_(13) setdest 331.335979843950 94.137962693510 0.000000000000" +$ns_ at 221.419301702446 "$god_ set-dist 4 38 1" +$ns_ at 221.420242594926 "$god_ set-dist 14 15 1" +$ns_ at 221.615141674417 "$god_ set-dist 13 39 1" +$ns_ at 222.144575159867 "$god_ set-dist 25 29 2" +$ns_ at 222.232061707660 "$god_ set-dist 15 45 1" +$ns_ at 222.274176773939 "$god_ set-dist 11 42 1" +$ns_ at 222.274176773939 "$god_ set-dist 42 47 2" +$ns_ at 222.310788890020 "$god_ set-dist 8 23 2" +$ns_ at 222.321190695201 "$god_ set-dist 3 48 2" +$ns_ at 222.619744305051 "$god_ set-dist 1 39 1" +$ns_ at 222.715230079195 "$god_ set-dist 39 41 1" +$ns_ at 222.721840507675 "$god_ set-dist 1 49 1" +$ns_ at 223.075137280569 "$god_ set-dist 39 43 1" +$ns_ at 223.108391610659 "$node_(45) setdest 305.218135236151 8.425651875449 0.086122625022" +$ns_ at 223.201706348441 "$god_ set-dist 37 48 2" +$ns_ at 223.275120916466 "$node_(6) setdest 92.166709171300 382.185978697306 9.467550851230" +$ns_ at 223.643005507597 "$node_(48) setdest 418.598625824906 266.362017230899 0.000000000000" +$ns_ at 223.700239689059 "$god_ set-dist 6 31 3" +$ns_ at 223.700239689059 "$god_ set-dist 9 31 3" +$ns_ at 223.700239689059 "$god_ set-dist 31 40 2" +$ns_ at 223.827833839332 "$god_ set-dist 1 4 1" +$ns_ at 223.927685968695 "$node_(8) setdest 277.086666583555 155.802745816058 0.000000000000" +$ns_ at 224.067322885623 "$god_ set-dist 3 4 1" +$ns_ at 224.168910079728 "$god_ set-dist 0 6 1" +$ns_ at 224.249989110265 "$god_ set-dist 22 28 1" +$ns_ at 224.299024192023 "$god_ set-dist 16 23 1" +$ns_ at 224.396168192761 "$god_ set-dist 7 41 1" +$ns_ at 224.709191944765 "$god_ set-dist 6 34 2" +$ns_ at 224.709191944765 "$god_ set-dist 9 34 2" +$ns_ at 224.709191944765 "$god_ set-dist 34 40 1" +$ns_ at 224.797168542131 "$god_ set-dist 6 27 1" +$ns_ at 224.835885419579 "$god_ set-dist 13 14 2" +$ns_ at 224.859194824499 "$god_ set-dist 33 39 1" +$ns_ at 224.959109805244 "$god_ set-dist 39 40 1" +$ns_ at 225.106703568480 "$god_ set-dist 7 40 1" +$ns_ at 225.162323871884 "$god_ set-dist 38 48 1" +$ns_ at 225.270240511618 "$god_ set-dist 14 31 2" +$ns_ at 225.484483986451 "$god_ set-dist 11 32 2" +$ns_ at 225.536801326779 "$god_ set-dist 5 39 1" +$ns_ at 225.546599109066 "$god_ set-dist 24 34 1" +$ns_ at 225.639682257208 "$god_ set-dist 5 6 1" +$ns_ at 225.639682257208 "$god_ set-dist 6 13 2" +$ns_ at 225.639682257208 "$god_ set-dist 6 31 2" +$ns_ at 225.661406674685 "$god_ set-dist 1 41 2" +$ns_ at 225.720977900376 "$god_ set-dist 23 38 1" +$ns_ at 225.795558124748 "$god_ set-dist 6 14 1" +$ns_ at 225.795558124748 "$god_ set-dist 6 47 2" +$ns_ at 225.922375461951 "$god_ set-dist 18 38 1" +$ns_ at 225.965355413060 "$god_ set-dist 9 34 3" +$ns_ at 225.965355413060 "$god_ set-dist 9 40 2" +$ns_ at 225.965355413060 "$god_ set-dist 9 43 3" +$ns_ at 225.965355413060 "$god_ set-dist 9 44 3" +$ns_ at 226.003584836193 "$god_ set-dist 12 26 2" +$ns_ at 226.193116627936 "$god_ set-dist 6 41 1" +$ns_ at 226.242012216948 "$god_ set-dist 21 24 1" +$ns_ at 226.258787574981 "$god_ set-dist 11 39 1" +$ns_ at 226.258787574981 "$god_ set-dist 39 42 2" +$ns_ at 226.276476489297 "$god_ set-dist 13 40 1" +$ns_ at 226.416512123620 "$god_ set-dist 7 38 2" +$ns_ at 226.467683515565 "$god_ set-dist 34 48 2" +$ns_ at 226.492896784825 "$god_ set-dist 4 37 1" +$ns_ at 226.524584246176 "$god_ set-dist 37 48 1" +$ns_ at 226.574632358370 "$god_ set-dist 5 31 2" +$ns_ at 226.601643436461 "$node_(5) setdest 215.060714570020 303.330479327762 0.000000000000" +$ns_ at 226.758834090803 "$god_ set-dist 8 25 1" +$ns_ at 226.975762727125 "$god_ set-dist 18 34 2" +$ns_ at 227.643124587802 "$god_ set-dist 1 6 2" +$ns_ at 227.643124587802 "$god_ set-dist 3 6 1" +$ns_ at 227.673237123600 "$god_ set-dist 15 30 2" +$ns_ at 227.713355513837 "$god_ set-dist 31 45 2" +$ns_ at 227.761530750638 "$god_ set-dist 6 22 1" +$ns_ at 227.954415019708 "$god_ set-dist 31 41 2" +$ns_ at 227.983184533509 "$god_ set-dist 21 26 2" +$ns_ at 228.078108997261 "$node_(3) setdest 316.977014749129 367.716334989527 6.503122719622" +$ns_ at 228.153027225920 "$god_ set-dist 22 23 1" +$ns_ at 228.236082519390 "$god_ set-dist 10 15 2" +$ns_ at 228.328176011223 "$god_ set-dist 0 29 2" +$ns_ at 228.536618739133 "$god_ set-dist 7 32 2" +$ns_ at 228.536618739133 "$god_ set-dist 7 34 1" +$ns_ at 228.546043640938 "$god_ set-dist 7 32 3" +$ns_ at 228.546043640938 "$god_ set-dist 32 34 2" +$ns_ at 228.549913432342 "$node_(9) setdest 13.367561805167 485.436075360213 0.000000000000" +$ns_ at 228.578994831333 "$god_ set-dist 10 11 2" +$ns_ at 228.610489183605 "$god_ set-dist 15 32 2" +$ns_ at 228.626094759886 "$god_ set-dist 18 37 1" +$ns_ at 228.628956802666 "$god_ set-dist 14 43 2" +$ns_ at 228.649425125200 "$god_ set-dist 24 31 2" +$ns_ at 228.663224568492 "$god_ set-dist 17 39 1" +$ns_ at 228.725453467058 "$god_ set-dist 6 45 1" +$ns_ at 228.949582455923 "$god_ set-dist 3 48 1" +$ns_ at 229.051167355104 "$god_ set-dist 2 6 1" +$ns_ at 229.120336629407 "$god_ set-dist 35 39 2" +$ns_ at 229.193096390766 "$node_(35) setdest 105.691497908866 21.557349940745 4.438942159363" +$ns_ at 229.220424799944 "$god_ set-dist 35 39 1" +$ns_ at 229.238605154051 "$god_ set-dist 12 16 1" +$ns_ at 229.238605154051 "$god_ set-dist 12 35 2" +$ns_ at 229.256476104761 "$god_ set-dist 3 18 1" +$ns_ at 229.386352166251 "$god_ set-dist 6 26 1" +$ns_ at 229.488244410884 "$god_ set-dist 14 44 2" +$ns_ at 229.683028136527 "$god_ set-dist 26 31 2" +$ns_ at 229.813256837980 "$node_(32) setdest 438.960037497731 365.296188854055 8.886013810591" +$ns_ at 230.043223325890 "$god_ set-dist 26 27 1" +$ns_ at 230.043223325890 "$god_ set-dist 27 42 2" +$ns_ at 230.064752261283 "$god_ set-dist 10 17 2" +$ns_ at 230.064752261283 "$god_ set-dist 10 42 3" +$ns_ at 230.075139998602 "$god_ set-dist 1 26 2" +$ns_ at 230.142751213502 "$god_ set-dist 3 31 2" +$ns_ at 230.237925464843 "$god_ set-dist 22 31 2" +$ns_ at 230.237925464843 "$god_ set-dist 28 31 3" +$ns_ at 230.388322547809 "$god_ set-dist 23 41 2" +$ns_ at 230.554360991871 "$god_ set-dist 9 34 2" +$ns_ at 230.554360991871 "$god_ set-dist 34 38 1" +$ns_ at 230.642015080887 "$god_ set-dist 21 34 2" +$ns_ at 230.669775768686 "$god_ set-dist 26 28 1" +$ns_ at 230.727787034985 "$god_ set-dist 26 39 1" +$ns_ at 230.811593495105 "$node_(11) setdest 286.306390550856 253.684569445064 0.000000000000" +$ns_ at 230.931557116232 "$god_ set-dist 26 35 1" +$ns_ at 230.931557116232 "$god_ set-dist 35 42 2" +$ns_ at 231.020095559446 "$god_ set-dist 7 21 3" +$ns_ at 231.020095559446 "$god_ set-dist 19 21 2" +$ns_ at 231.020095559446 "$god_ set-dist 21 27 3" +$ns_ at 231.695814628781 "$god_ set-dist 2 28 1" +$ns_ at 231.695814628781 "$god_ set-dist 28 31 2" +$ns_ at 231.726178140698 "$god_ set-dist 6 21 2" +$ns_ at 231.726178140698 "$god_ set-dist 6 24 1" +$ns_ at 231.796211286018 "$god_ set-dist 20 32 1" +$ns_ at 231.845794331753 "$god_ set-dist 22 47 2" +$ns_ at 231.857655973473 "$god_ set-dist 23 40 2" +$ns_ at 231.939654025342 "$god_ set-dist 17 32 1" +$ns_ at 232.030426745770 "$god_ set-dist 6 12 2" +$ns_ at 232.030426745770 "$god_ set-dist 6 16 1" +$ns_ at 232.159645249997 "$god_ set-dist 9 29 3" +$ns_ at 232.159645249997 "$god_ set-dist 29 38 2" +$ns_ at 232.279842034353 "$god_ set-dist 32 49 1" +$ns_ at 232.394142166176 "$god_ set-dist 4 32 1" +$ns_ at 232.578550556054 "$god_ set-dist 23 29 2" +$ns_ at 232.598339211144 "$god_ set-dist 31 49 2" +$ns_ at 232.628781655506 "$god_ set-dist 27 34 1" +$ns_ at 232.801830344010 "$god_ set-dist 14 29 2" +$ns_ at 232.853594424170 "$god_ set-dist 30 38 2" +$ns_ at 233.033890013583 "$god_ set-dist 2 31 2" +$ns_ at 233.033890013583 "$god_ set-dist 28 31 3" +$ns_ at 233.238830512145 "$god_ set-dist 10 35 2" +$ns_ at 233.238830512145 "$god_ set-dist 19 35 1" +$ns_ at 233.343093551112 "$god_ set-dist 25 35 1" +$ns_ at 233.453486067892 "$god_ set-dist 1 45 1" +$ns_ at 233.472685738031 "$god_ set-dist 13 26 2" +$ns_ at 233.511771656342 "$god_ set-dist 18 41 2" +$ns_ at 233.634897776774 "$god_ set-dist 6 37 1" +$ns_ at 233.748008314366 "$god_ set-dist 3 23 1" +$ns_ at 233.932192169899 "$god_ set-dist 41 48 2" +$ns_ at 233.986462823168 "$god_ set-dist 13 41 2" +$ns_ at 234.361228266086 "$god_ set-dist 41 43 2" +$ns_ at 234.438712612841 "$god_ set-dist 30 35 1" +$ns_ at 234.468190543572 "$god_ set-dist 12 30 1" +$ns_ at 234.582858269158 "$god_ set-dist 26 43 2" +$ns_ at 234.597214764119 "$god_ set-dist 1 22 2" +$ns_ at 234.638580543118 "$god_ set-dist 26 44 2" +$ns_ at 234.693140311447 "$node_(31) setdest 377.411760273773 54.924850450915 0.000000000000" +$ns_ at 234.754456789514 "$god_ set-dist 10 39 1" +$ns_ at 234.814865354121 "$god_ set-dist 15 31 2" +$ns_ at 234.883143089260 "$god_ set-dist 7 16 2" +$ns_ at 234.970083641538 "$god_ set-dist 16 21 1" +$ns_ at 234.970083641538 "$god_ set-dist 21 27 2" +$ns_ at 234.970083641538 "$god_ set-dist 21 35 2" +$ns_ at 235.001251818394 "$god_ set-dist 6 11 1" +$ns_ at 235.192028210710 "$god_ set-dist 26 29 2" +$ns_ at 235.193175482748 "$god_ set-dist 29 41 2" +$ns_ at 235.212123627698 "$god_ set-dist 41 44 2" +$ns_ at 235.304597667959 "$god_ set-dist 38 42 1" +$ns_ at 235.385448664376 "$god_ set-dist 23 36 1" +$ns_ at 235.399458913716 "$god_ set-dist 6 32 2" +$ns_ at 235.399458913716 "$god_ set-dist 11 32 1" +$ns_ at 235.415627459739 "$god_ set-dist 26 30 2" +$ns_ at 235.435402558546 "$god_ set-dist 9 41 1" +$ns_ at 235.499260990931 "$god_ set-dist 3 47 2" +$ns_ at 235.541942177292 "$god_ set-dist 38 39 1" +$ns_ at 235.685814865379 "$god_ set-dist 1 24 1" +$ns_ at 235.941856836570 "$god_ set-dist 40 47 1" +$ns_ at 235.944280295417 "$node_(40) setdest 178.829985832944 268.969855142229 0.000000000000" +$ns_ at 236.007085834721 "$god_ set-dist 24 39 1" +$ns_ at 236.117156126512 "$god_ set-dist 34 35 1" +$ns_ at 236.195792510251 "$node_(47) setdest 70.820323478111 13.534079728436 2.909862241999" +$ns_ at 236.255313219885 "$god_ set-dist 14 47 2" +$ns_ at 236.456299104894 "$god_ set-dist 12 15 2" +$ns_ at 236.459049799669 "$node_(7) setdest 144.281707473703 360.621517526283 2.312663893922" +$ns_ at 236.589675106044 "$god_ set-dist 6 7 1" +$ns_ at 236.650897112481 "$god_ set-dist 9 26 1" +$ns_ at 236.696315861618 "$god_ set-dist 41 49 2" +$ns_ at 236.758680107776 "$god_ set-dist 25 27 1" +$ns_ at 236.940601533360 "$node_(10) setdest 434.904611893035 492.202906142502 8.795673232409" +$ns_ at 236.965021390612 "$god_ set-dist 12 39 1" +$ns_ at 236.984015593568 "$god_ set-dist 6 15 1" +$ns_ at 237.033199426132 "$node_(6) setdest 92.166709171300 382.185978697306 0.000000000000" +$ns_ at 237.051336227795 "$god_ set-dist 10 17 1" +$ns_ at 237.051336227795 "$god_ set-dist 10 42 2" +$ns_ at 237.084859255353 "$god_ set-dist 15 32 1" +$ns_ at 237.123022012007 "$god_ set-dist 10 18 1" +$ns_ at 237.175004665943 "$god_ set-dist 29 45 2" +$ns_ at 237.194486022026 "$god_ set-dist 1 40 1" +$ns_ at 237.220337321131 "$god_ set-dist 37 49 1" +$ns_ at 237.291528543307 "$god_ set-dist 11 47 2" +$ns_ at 237.291528543307 "$god_ set-dist 42 47 3" +$ns_ at 237.350532602220 "$god_ set-dist 23 32 1" +$ns_ at 237.396493730333 "$god_ set-dist 10 48 1" +$ns_ at 237.487927495514 "$god_ set-dist 20 39 1" +$ns_ at 237.513102064798 "$god_ set-dist 15 34 2" +$ns_ at 237.544337105905 "$god_ set-dist 26 42 2" +$ns_ at 237.867450375159 "$god_ set-dist 9 14 1" +$ns_ at 237.952153630069 "$god_ set-dist 9 38 2" +$ns_ at 238.006192553347 "$god_ set-dist 1 15 2" +$ns_ at 238.167213010748 "$god_ set-dist 22 29 2" +$ns_ at 238.287390262177 "$god_ set-dist 10 20 1" +$ns_ at 238.719639259401 "$god_ set-dist 26 36 2" +$ns_ at 238.842567498605 "$god_ set-dist 5 29 2" +$ns_ at 238.891506616474 "$god_ set-dist 6 10 2" +$ns_ at 238.891506616474 "$god_ set-dist 10 11 1" +$ns_ at 239.137958566331 "$god_ set-dist 29 40 2" +$ns_ at 239.364898923175 "$god_ set-dist 16 32 1" +$ns_ at 239.364898923175 "$god_ set-dist 27 32 2" +$ns_ at 239.364898923175 "$god_ set-dist 32 35 2" +$ns_ at 239.400948082439 "$god_ set-dist 3 7 2" +$ns_ at 239.450979346120 "$god_ set-dist 12 34 2" +$ns_ at 239.592602777392 "$god_ set-dist 10 16 1" +$ns_ at 239.659461386497 "$god_ set-dist 22 43 2" +$ns_ at 239.953820346988 "$god_ set-dist 8 23 1" +$ns_ at 240.003211561910 "$god_ set-dist 26 39 2" +$ns_ at 240.103314353604 "$god_ set-dist 43 45 2" +$ns_ at 240.267163122547 "$god_ set-dist 24 32 1" +$ns_ at 240.348702894031 "$node_(18) setdest 414.467245621883 84.663330370088 3.852419180633" +$ns_ at 240.555661834843 "$node_(49) setdest 169.175955860084 145.152016238221 3.868597134638" +$ns_ at 240.624059357477 "$god_ set-dist 15 29 2" +$ns_ at 240.754030693564 "$god_ set-dist 0 9 1" +$ns_ at 240.827278121931 "$god_ set-dist 25 36 1" +$ns_ at 240.842362990936 "$god_ set-dist 4 39 1" +$ns_ at 240.871985680574 "$god_ set-dist 18 26 2" +$ns_ at 240.899274106404 "$god_ set-dist 0 19 2" +$ns_ at 240.916488619338 "$god_ set-dist 14 20 2" +$ns_ at 240.920060808128 "$god_ set-dist 25 34 1" +$ns_ at 241.072623523515 "$god_ set-dist 4 10 1" +$ns_ at 241.213203908019 "$god_ set-dist 5 7 1" +$ns_ at 241.324404987355 "$god_ set-dist 26 48 2" +$ns_ at 241.367775683460 "$god_ set-dist 9 25 2" +$ns_ at 241.392419592852 "$node_(13) setdest 479.033337472690 142.177207878060 7.388173054610" +$ns_ at 241.425469928747 "$god_ set-dist 13 15 2" +$ns_ at 241.579540974561 "$god_ set-dist 13 22 2" +$ns_ at 241.619512798463 "$god_ set-dist 10 37 1" +$ns_ at 241.704027046426 "$god_ set-dist 15 21 2" +$ns_ at 241.723269508022 "$god_ set-dist 3 29 2" +$ns_ at 241.737531633324 "$god_ set-dist 25 39 1" +$ns_ at 241.759221495032 "$god_ set-dist 12 47 2" +$ns_ at 241.813091151938 "$god_ set-dist 22 44 2" +$ns_ at 241.838836306321 "$god_ set-dist 10 49 1" +$ns_ at 241.974589062553 "$god_ set-dist 15 43 2" +$ns_ at 242.327662063398 "$god_ set-dist 3 42 1" +$ns_ at 242.450396370207 "$god_ set-dist 4 14 1" +$ns_ at 242.475271005462 "$god_ set-dist 20 34 2" +$ns_ at 242.524107158693 "$god_ set-dist 36 41 2" +$ns_ at 242.611709865407 "$god_ set-dist 10 34 2" +$ns_ at 242.711517197931 "$god_ set-dist 18 39 1" +$ns_ at 242.723914679290 "$god_ set-dist 15 44 2" +$ns_ at 242.777203416162 "$god_ set-dist 31 49 1" +$ns_ at 243.079799976863 "$god_ set-dist 35 38 2" +$ns_ at 243.131900553090 "$god_ set-dist 40 47 2" +$ns_ at 243.225953456143 "$god_ set-dist 4 45 1" +$ns_ at 243.567109826215 "$god_ set-dist 39 48 1" +$ns_ at 243.585615065528 "$god_ set-dist 9 36 3" +$ns_ at 243.585615065528 "$god_ set-dist 14 36 2" +$ns_ at 243.640483680961 "$god_ set-dist 24 29 2" +$ns_ at 243.643005507597 "$node_(48) setdest 190.080425128510 448.890274127288 6.131952378304" +$ns_ at 243.678051415532 "$god_ set-dist 20 41 2" +$ns_ at 243.789756897174 "$god_ set-dist 5 43 2" +$ns_ at 243.899460705785 "$god_ set-dist 9 22 1" +$ns_ at 243.899460705785 "$god_ set-dist 9 36 2" +$ns_ at 243.927685968695 "$node_(8) setdest 11.170553468046 101.713583142596 1.581119827198" +$ns_ at 243.979332631891 "$god_ set-dist 2 29 2" +$ns_ at 243.979332631891 "$god_ set-dist 28 29 3" +$ns_ at 244.067020851972 "$god_ set-dist 27 38 2" +$ns_ at 244.121859358233 "$god_ set-dist 8 26 2" +$ns_ at 244.162981394844 "$god_ set-dist 39 49 1" +$ns_ at 244.174117824024 "$god_ set-dist 26 34 2" +$ns_ at 244.202136779816 "$node_(30) setdest 181.171121700572 87.801333228749 0.000000000000" +$ns_ at 244.218717631928 "$god_ set-dist 34 38 2" +$ns_ at 244.396988043521 "$god_ set-dist 23 26 2" +$ns_ at 244.403101755744 "$god_ set-dist 32 42 1" +$ns_ at 244.458268622446 "$god_ set-dist 13 45 2" +$ns_ at 244.883373006309 "$god_ set-dist 19 26 2" +$ns_ at 245.088833156039 "$god_ set-dist 7 21 2" +$ns_ at 245.088833156039 "$god_ set-dist 21 39 1" +$ns_ at 245.167144595820 "$god_ set-dist 6 34 1" +$ns_ at 245.326209813172 "$god_ set-dist 29 34 2" +$ns_ at 245.333824730970 "$god_ set-dist 9 35 2" +$ns_ at 245.353110275850 "$god_ set-dist 40 43 2" +$ns_ at 245.417156946800 "$god_ set-dist 1 3 2" +$ns_ at 245.442463362647 "$god_ set-dist 7 32 2" +$ns_ at 245.442463362647 "$god_ set-dist 32 39 1" +$ns_ at 245.451241246589 "$god_ set-dist 3 32 1" +$ns_ at 245.451241246589 "$god_ set-dist 28 32 2" +$ns_ at 245.595856437198 "$god_ set-dist 10 24 1" +$ns_ at 245.625857932399 "$god_ set-dist 31 34 2" +$ns_ at 245.709006727968 "$god_ set-dist 27 39 2" +$ns_ at 245.870686850667 "$god_ set-dist 15 19 2" +$ns_ at 246.091029141855 "$god_ set-dist 20 26 2" +$ns_ at 246.094451285209 "$god_ set-dist 20 45 2" +$ns_ at 246.286212056891 "$god_ set-dist 8 23 2" +$ns_ at 246.601643436461 "$node_(5) setdest 138.441628263299 120.647100288094 5.543860188481" +$ns_ at 246.702626917089 "$god_ set-dist 13 40 2" +$ns_ at 246.757925935363 "$god_ set-dist 35 46 1" +$ns_ at 246.819028783463 "$god_ set-dist 26 49 2" +$ns_ at 246.985059296146 "$god_ set-dist 4 41 2" +$ns_ at 247.109368275995 "$god_ set-dist 26 33 2" +$ns_ at 247.193228300250 "$god_ set-dist 10 47 2" +$ns_ at 247.479752251754 "$god_ set-dist 33 42 1" +$ns_ at 247.479752251754 "$god_ set-dist 42 47 2" +$ns_ at 247.509832543386 "$god_ set-dist 35 47 1" +$ns_ at 247.537542504099 "$god_ set-dist 3 35 2" +$ns_ at 247.599251665180 "$god_ set-dist 15 36 2" +$ns_ at 247.724505428748 "$god_ set-dist 10 23 1" +$ns_ at 247.786197895845 "$god_ set-dist 13 34 2" +$ns_ at 247.803174262477 "$god_ set-dist 3 43 2" +$ns_ at 247.976959115879 "$god_ set-dist 1 5 1" +$ns_ at 247.985481264928 "$god_ set-dist 8 35 1" +$ns_ at 248.064468953185 "$god_ set-dist 16 27 2" +$ns_ at 248.064468953185 "$god_ set-dist 21 27 3" +$ns_ at 248.134300383361 "$god_ set-dist 3 27 2" +$ns_ at 248.134300383361 "$god_ set-dist 27 32 3" +$ns_ at 248.163839879247 "$god_ set-dist 3 30 2" +$ns_ at 248.278286118776 "$node_(26) setdest 147.613420664238 405.478267078167 0.000000000000" +$ns_ at 248.305198867904 "$god_ set-dist 5 13 2" +$ns_ at 248.312091739330 "$god_ set-dist 33 47 2" +$ns_ at 248.312091739330 "$god_ set-dist 42 47 3" +$ns_ at 248.313774379252 "$god_ set-dist 2 10 1" +$ns_ at 248.313774379252 "$god_ set-dist 10 28 2" +$ns_ at 248.376925320261 "$god_ set-dist 18 22 2" +$ns_ at 248.394599731111 "$god_ set-dist 13 23 1" +$ns_ at 248.549913432342 "$node_(9) setdest 53.328909350655 364.548089058605 6.383932856344" +$ns_ at 248.797005998498 "$god_ set-dist 3 10 1" +$ns_ at 248.934067497043 "$god_ set-dist 7 8 1" +$ns_ at 249.018061455907 "$node_(15) setdest 296.879372501492 392.070869228510 0.000000000000" +$ns_ at 249.023832391595 "$god_ set-dist 32 38 1" +$ns_ at 249.230979600386 "$god_ set-dist 34 43 2" +$ns_ at 249.590197438778 "$god_ set-dist 16 47 2" +$ns_ at 249.590547141658 "$god_ set-dist 0 18 2" +$ns_ at 249.590547141658 "$god_ set-dist 9 18 3" +$ns_ at 249.611491498028 "$god_ set-dist 3 28 2" +$ns_ at 249.802496441009 "$node_(29) setdest 401.620218888159 54.060283173933 0.000000000000" +$ns_ at 249.964401878306 "$god_ set-dist 9 18 2" +$ns_ at 249.964401878306 "$god_ set-dist 9 25 1" +$ns_ at 250.010552529630 "$god_ set-dist 13 47 2" +$ns_ at 250.032089353553 "$god_ set-dist 19 38 2" +$ns_ at 250.044398805299 "$god_ set-dist 12 30 2" +$ns_ at 250.228475379739 "$god_ set-dist 0 8 2" +$ns_ at 250.617081006205 "$god_ set-dist 5 10 1" +$ns_ at 250.766571557433 "$god_ set-dist 36 38 2" +$ns_ at 250.771500777122 "$god_ set-dist 7 46 1" +$ns_ at 250.811593495105 "$node_(11) setdest 96.481226516910 343.686812903466 9.184879867932" +$ns_ at 251.045394933007 "$god_ set-dist 3 13 2" +$ns_ at 251.070045244567 "$god_ set-dist 34 44 2" +$ns_ at 251.338801268627 "$god_ set-dist 11 35 1" +$ns_ at 251.371449423735 "$god_ set-dist 24 34 2" +$ns_ at 251.480210535299 "$god_ set-dist 26 34 1" +$ns_ at 251.490499735130 "$god_ set-dist 5 43 1" +$ns_ at 251.534421679525 "$god_ set-dist 3 34 2" +$ns_ at 251.591604680865 "$god_ set-dist 33 41 2" +$ns_ at 251.621013488146 "$god_ set-dist 44 45 2" +$ns_ at 251.971870889457 "$god_ set-dist 2 13 2" +$ns_ at 251.971870889457 "$god_ set-dist 13 28 3" +$ns_ at 252.088072671409 "$god_ set-dist 45 49 1" +$ns_ at 252.162047009497 "$god_ set-dist 9 32 2" +$ns_ at 252.162047009497 "$god_ set-dist 25 32 1" +$ns_ at 252.162047009497 "$god_ set-dist 27 32 2" +$ns_ at 252.256249435136 "$god_ set-dist 7 28 1" +$ns_ at 252.293704482529 "$god_ set-dist 1 9 2" +$ns_ at 252.293704482529 "$god_ set-dist 9 40 1" +$ns_ at 252.293704482529 "$god_ set-dist 9 44 2" +$ns_ at 252.294733515534 "$god_ set-dist 16 42 1" +$ns_ at 252.316651785817 "$god_ set-dist 29 47 2" +$ns_ at 252.475251797107 "$god_ set-dist 7 39 2" +$ns_ at 252.489943726815 "$god_ set-dist 3 44 2" +$ns_ at 252.519023698404 "$god_ set-dist 11 27 1" +$ns_ at 252.519023698404 "$god_ set-dist 21 27 2" +$ns_ at 252.770154223100 "$god_ set-dist 26 48 1" +$ns_ at 252.884164462453 "$god_ set-dist 22 36 2" +$ns_ at 252.936705379293 "$god_ set-dist 25 30 1" +$ns_ at 253.024864701742 "$god_ set-dist 7 25 1" +$ns_ at 253.024864701742 "$god_ set-dist 7 42 2" +$ns_ at 253.076297181635 "$god_ set-dist 29 48 2" +$ns_ at 253.137271893501 "$god_ set-dist 26 49 1" +$ns_ at 253.340479577005 "$god_ set-dist 11 29 2" +$ns_ at 253.383827429867 "$node_(41) setdest 73.978412404542 285.420614962347 0.000000000000" +$ns_ at 253.649322022842 "$god_ set-dist 7 11 1" +$ns_ at 253.663627003290 "$god_ set-dist 39 41 2" +$ns_ at 253.694285705605 "$god_ set-dist 31 48 2" +$ns_ at 253.806495767855 "$god_ set-dist 1 34 2" +$ns_ at 253.887663043151 "$god_ set-dist 11 12 2" +$ns_ at 254.027458021655 "$god_ set-dist 9 10 2" +$ns_ at 254.027458021655 "$god_ set-dist 10 25 1" +$ns_ at 254.208864608051 "$god_ set-dist 15 39 1" +$ns_ at 254.282088947874 "$god_ set-dist 22 30 2" +$ns_ at 254.501928353146 "$god_ set-dist 10 38 1" +$ns_ at 254.525258893317 "$god_ set-dist 11 42 2" +$ns_ at 254.561000569537 "$god_ set-dist 34 36 2" +$ns_ at 254.631747220899 "$god_ set-dist 23 39 1" +$ns_ at 254.644189337115 "$god_ set-dist 5 47 1" +$ns_ at 254.645721698676 "$god_ set-dist 0 27 1" +$ns_ at 254.672041140341 "$god_ set-dist 11 21 2" +$ns_ at 254.672041140341 "$god_ set-dist 21 27 3" +$ns_ at 254.690567639761 "$god_ set-dist 10 15 1" +$ns_ at 254.693140311447 "$node_(31) setdest 87.473710112863 134.824101357584 3.061029148915" +$ns_ at 254.809184929452 "$god_ set-dist 7 26 1" +$ns_ at 254.815420597121 "$god_ set-dist 14 49 1" +$ns_ at 254.959310536967 "$god_ set-dist 35 39 2" +$ns_ at 255.042988554886 "$god_ set-dist 16 35 2" +$ns_ at 255.191435029328 "$god_ set-dist 13 30 2" +$ns_ at 255.219373043464 "$god_ set-dist 10 40 1" +$ns_ at 255.246822116598 "$god_ set-dist 11 31 2" +$ns_ at 255.466019029340 "$god_ set-dist 28 38 2" +$ns_ at 255.663997495462 "$god_ set-dist 9 35 1" +$ns_ at 255.663997495462 "$god_ set-dist 9 47 2" +$ns_ at 255.703100504691 "$god_ set-dist 5 9 1" +$ns_ at 255.703100504691 "$god_ set-dist 9 43 2" +$ns_ at 255.735439588012 "$god_ set-dist 2 9 1" +$ns_ at 255.863732255397 "$god_ set-dist 3 19 2" +$ns_ at 255.944280295417 "$node_(40) setdest 285.243752955157 277.571992188453 8.052969590066" +$ns_ at 256.027125672221 "$god_ set-dist 10 42 1" +$ns_ at 256.167675196489 "$god_ set-dist 9 45 1" +$ns_ at 256.185012723607 "$god_ set-dist 11 28 1" +$ns_ at 256.185012723607 "$god_ set-dist 13 28 2" +$ns_ at 256.236593588289 "$god_ set-dist 7 9 1" +$ns_ at 256.336204666272 "$god_ set-dist 23 40 1" +$ns_ at 256.406214067056 "$god_ set-dist 13 37 2" +$ns_ at 256.486711410108 "$god_ set-dist 33 34 2" +$ns_ at 256.522021685223 "$god_ set-dist 0 32 1" +$ns_ at 256.569737542310 "$god_ set-dist 14 48 1" +$ns_ at 256.687921809707 "$god_ set-dist 10 30 2" +$ns_ at 256.713882318398 "$god_ set-dist 11 13 2" +$ns_ at 256.713882318398 "$god_ set-dist 13 28 3" +$ns_ at 256.758182662246 "$god_ set-dist 2 43 2" +$ns_ at 256.909996677835 "$god_ set-dist 45 48 1" +$ns_ at 257.033199426132 "$node_(6) setdest 484.105364115423 449.085818699061 6.005461131953" +$ns_ at 257.270213586393 "$god_ set-dist 4 30 1" +$ns_ at 257.320081994306 "$god_ set-dist 17 34 2" +$ns_ at 257.352771096143 "$god_ set-dist 31 32 2" +$ns_ at 257.369613182497 "$god_ set-dist 1 32 2" +$ns_ at 257.504990928487 "$god_ set-dist 30 49 1" +$ns_ at 257.521796742616 "$god_ set-dist 9 11 1" +$ns_ at 257.596038612715 "$god_ set-dist 3 41 2" +$ns_ at 257.661799450598 "$god_ set-dist 38 41 2" +$ns_ at 257.732157641144 "$god_ set-dist 38 45 2" +$ns_ at 257.791045744237 "$god_ set-dist 5 23 2" +$ns_ at 257.908733399400 "$god_ set-dist 7 42 3" +$ns_ at 257.908733399400 "$god_ set-dist 25 42 2" +$ns_ at 257.908733399400 "$god_ set-dist 35 42 3" +$ns_ at 257.912424526050 "$god_ set-dist 12 48 2" +$ns_ at 257.915646077784 "$god_ set-dist 11 43 2" +$ns_ at 257.918112639174 "$god_ set-dist 28 34 1" +$ns_ at 258.018411594376 "$god_ set-dist 9 34 1" +$ns_ at 258.030161105326 "$god_ set-dist 29 32 2" +$ns_ at 258.063208421725 "$god_ set-dist 6 17 1" +$ns_ at 258.221226718519 "$god_ set-dist 6 46 1" +$ns_ at 258.360727543095 "$god_ set-dist 4 6 1" +$ns_ at 258.683330128155 "$node_(3) setdest 316.977014749128 367.716334989527 0.000000000000" +$ns_ at 258.701969337794 "$god_ set-dist 13 19 2" +$ns_ at 258.701969337794 "$god_ set-dist 13 27 3" +$ns_ at 258.785153643068 "$god_ set-dist 32 40 1" +$ns_ at 258.849308194806 "$god_ set-dist 6 48 1" +$ns_ at 258.893242144785 "$god_ set-dist 43 48 2" +$ns_ at 258.922694207475 "$god_ set-dist 34 39 2" +$ns_ at 258.956047410200 "$god_ set-dist 8 32 2" +$ns_ at 258.969449096555 "$god_ set-dist 28 35 2" +$ns_ at 259.208306551173 "$god_ set-dist 8 38 2" +$ns_ at 259.623297514976 "$god_ set-dist 5 31 1" +$ns_ at 259.623297514976 "$god_ set-dist 9 31 2" +$ns_ at 259.623297514976 "$god_ set-dist 28 31 2" +$ns_ at 259.651366639459 "$god_ set-dist 14 39 2" +$ns_ at 259.686663466563 "$god_ set-dist 19 48 2" +$ns_ at 259.692936427906 "$god_ set-dist 32 43 2" +$ns_ at 259.701274717568 "$god_ set-dist 1 48 2" +$ns_ at 259.738476828909 "$god_ set-dist 26 35 2" +$ns_ at 260.025726177652 "$god_ set-dist 16 34 2" +$ns_ at 260.025726177652 "$god_ set-dist 34 42 3" +$ns_ at 260.311833319676 "$god_ set-dist 43 47 2" +$ns_ at 260.696562870069 "$god_ set-dist 11 44 2" +$ns_ at 260.992393931394 "$god_ set-dist 24 43 2" +$ns_ at 261.151188095300 "$god_ set-dist 27 30 2" +$ns_ at 261.205380621854 "$god_ set-dist 4 41 1" +$ns_ at 261.415180293127 "$god_ set-dist 1 11 2" +$ns_ at 261.425260640759 "$god_ set-dist 22 39 2" +$ns_ at 261.528196808279 "$god_ set-dist 11 32 2" +$ns_ at 261.640917123295 "$god_ set-dist 31 40 1" +$ns_ at 261.719089856012 "$god_ set-dist 11 18 2" +$ns_ at 261.753018020828 "$god_ set-dist 44 47 2" +$ns_ at 261.816148624891 "$god_ set-dist 6 49 1" +$ns_ at 262.017511925771 "$god_ set-dist 40 43 1" +$ns_ at 262.086400465150 "$god_ set-dist 32 44 2" +$ns_ at 262.088578310604 "$node_(34) setdest 43.308388443697 194.105826405345 0.000000000000" +$ns_ at 262.157156192225 "$god_ set-dist 39 47 2" +$ns_ at 262.331718082843 "$god_ set-dist 12 32 2" +$ns_ at 262.391739153471 "$god_ set-dist 18 42 2" +$ns_ at 262.414326300773 "$node_(13) setdest 479.033337472690 142.177207878060 0.000000000000" +$ns_ at 262.613145353355 "$god_ set-dist 2 23 2" +$ns_ at 262.772535151968 "$god_ set-dist 36 47 2" +$ns_ at 262.908948440233 "$god_ set-dist 13 48 2" +$ns_ at 263.006360335713 "$god_ set-dist 19 22 2" +$ns_ at 263.045760052758 "$god_ set-dist 10 19 2" +$ns_ at 263.131256411371 "$god_ set-dist 20 22 2" +$ns_ at 263.325337965402 "$god_ set-dist 1 25 1" +$ns_ at 263.574722281576 "$god_ set-dist 0 10 1" +$ns_ at 263.875290133389 "$god_ set-dist 18 38 2" +$ns_ at 263.903161391996 "$god_ set-dist 44 48 2" +$ns_ at 263.913221306156 "$god_ set-dist 15 18 2" +$ns_ at 263.946228268543 "$god_ set-dist 5 28 2" +$ns_ at 264.158352264849 "$god_ set-dist 28 31 3" +$ns_ at 264.158352264849 "$god_ set-dist 28 40 2" +$ns_ at 264.158352264849 "$god_ set-dist 28 43 3" +$ns_ at 264.202136779816 "$node_(30) setdest 231.333455680255 269.434907599925 6.248107412738" +$ns_ at 264.353708825374 "$god_ set-dist 18 30 1" +$ns_ at 264.377769018126 "$god_ set-dist 9 29 2" +$ns_ at 264.377769018126 "$god_ set-dist 9 37 1" +$ns_ at 264.410733414506 "$god_ set-dist 37 38 2" +$ns_ at 264.457969141098 "$god_ set-dist 21 48 2" +$ns_ at 264.602660581284 "$god_ set-dist 10 11 2" +$ns_ at 264.619917895515 "$god_ set-dist 7 42 2" +$ns_ at 264.619917895515 "$god_ set-dist 34 42 2" +$ns_ at 264.619917895515 "$god_ set-dist 35 42 2" +$ns_ at 264.619917895515 "$god_ set-dist 40 42 1" +$ns_ at 264.673408824492 "$god_ set-dist 13 27 2" +$ns_ at 264.673408824492 "$god_ set-dist 21 27 2" +$ns_ at 264.673408824492 "$god_ set-dist 27 46 1" +$ns_ at 264.909064253140 "$god_ set-dist 2 31 1" +$ns_ at 264.909064253140 "$god_ set-dist 28 31 2" +$ns_ at 264.952956385298 "$god_ set-dist 6 35 2" +$ns_ at 265.007007416911 "$god_ set-dist 5 38 2" +$ns_ at 265.029949887223 "$god_ set-dist 11 23 2" +$ns_ at 265.073313323272 "$god_ set-dist 41 48 1" +$ns_ at 265.220916355440 "$god_ set-dist 14 38 2" +$ns_ at 265.227323835546 "$god_ set-dist 27 30 1" +$ns_ at 265.346319225538 "$god_ set-dist 9 15 1" +$ns_ at 265.406724115191 "$god_ set-dist 11 36 2" +$ns_ at 265.532441849757 "$god_ set-dist 24 30 1" +$ns_ at 265.568565688376 "$node_(32) setdest 438.960037497731 365.296188854055 0.000000000000" +$ns_ at 265.614365452525 "$god_ set-dist 6 33 1" +$ns_ at 265.661742424265 "$god_ set-dist 5 10 2" +$ns_ at 265.680876214978 "$god_ set-dist 22 35 2" +$ns_ at 265.776189391259 "$god_ set-dist 9 21 2" +$ns_ at 265.776189391259 "$god_ set-dist 21 40 1" +$ns_ at 265.793471590323 "$god_ set-dist 20 30 1" +$ns_ at 266.005180801877 "$god_ set-dist 2 18 2" +$ns_ at 266.263956729317 "$god_ set-dist 11 20 2" +$ns_ at 266.439620739611 "$node_(43) setdest 380.658321705865 65.516179689989 0.000000000000" +$ns_ at 266.650927914823 "$god_ set-dist 41 49 1" +$ns_ at 266.657413853015 "$god_ set-dist 11 39 2" +$ns_ at 266.664534504559 "$god_ set-dist 24 31 1" +$ns_ at 267.050628380117 "$god_ set-dist 9 13 2" +$ns_ at 267.050628380117 "$god_ set-dist 13 40 1" +$ns_ at 267.128279739540 "$god_ set-dist 0 20 2" +$ns_ at 267.317769716434 "$god_ set-dist 8 15 2" +$ns_ at 267.594313925958 "$god_ set-dist 35 40 2" +$ns_ at 267.594313925958 "$god_ set-dist 35 42 3" +$ns_ at 267.686011810079 "$god_ set-dist 19 27 2" +$ns_ at 267.772404757123 "$god_ set-dist 5 18 2" +$ns_ at 267.862154753188 "$god_ set-dist 27 40 2" +$ns_ at 267.895709190277 "$god_ set-dist 9 12 2" +$ns_ at 267.895709190277 "$god_ set-dist 12 40 1" +$ns_ at 267.956150835827 "$god_ set-dist 9 48 1" +$ns_ at 268.278286118776 "$node_(26) setdest 229.478840537276 472.786834891807 0.765899901583" +$ns_ at 268.440924586174 "$god_ set-dist 34 40 2" +$ns_ at 268.440924586174 "$god_ set-dist 34 42 3" +$ns_ at 268.493998039101 "$node_(9) setdest 53.328909350655 364.548089058605 0.000000000000" +$ns_ at 268.601296482009 "$god_ set-dist 25 44 1" +$ns_ at 269.018061455907 "$node_(15) setdest 257.038295493453 285.946327372649 7.707357155888" +$ns_ at 269.093173483086 "$god_ set-dist 31 45 1" +$ns_ at 269.179172764940 "$god_ set-dist 8 15 1" +$ns_ at 269.201611512355 "$node_(40) setdest 285.243752955157 277.571992188454 0.000000000000" +$ns_ at 269.263592815165 "$god_ set-dist 15 28 1" +$ns_ at 269.666742927705 "$god_ set-dist 16 41 2" +$ns_ at 269.795518880513 "$god_ set-dist 6 23 1" +$ns_ at 269.802496441009 "$node_(29) setdest 269.847273623625 135.986908056139 8.378456242550" +$ns_ at 269.818007762176 "$god_ set-dist 10 31 2" +$ns_ at 269.930842528036 "$god_ set-dist 18 48 2" +$ns_ at 269.930964081211 "$god_ set-dist 39 45 2" +$ns_ at 270.064799731498 "$god_ set-dist 28 48 1" +$ns_ at 270.079448064407 "$god_ set-dist 29 40 1" +$ns_ at 270.202527918409 "$god_ set-dist 10 29 2" +$ns_ at 270.303936749851 "$god_ set-dist 25 31 1" +$ns_ at 270.458116498536 "$god_ set-dist 15 36 1" +$ns_ at 270.818842219181 "$god_ set-dist 1 10 2" +$ns_ at 270.860381456612 "$god_ set-dist 10 37 2" +$ns_ at 271.042502524814 "$god_ set-dist 10 43 2" +$ns_ at 271.050521956737 "$god_ set-dist 2 10 2" +$ns_ at 271.175459307325 "$god_ set-dist 8 22 2" +$ns_ at 271.198799047855 "$god_ set-dist 11 38 2" +$ns_ at 271.245676547422 "$god_ set-dist 8 10 2" +$ns_ at 271.739567082641 "$god_ set-dist 0 5 2" +$ns_ at 272.013990187328 "$god_ set-dist 2 44 2" +$ns_ at 272.057068877385 "$god_ set-dist 2 47 2" +$ns_ at 272.076721451502 "$god_ set-dist 5 29 1" +$ns_ at 272.120419841896 "$god_ set-dist 3 5 2" +$ns_ at 272.161435282076 "$god_ set-dist 32 46 2" +$ns_ at 272.161435282076 "$god_ set-dist 32 47 3" +$ns_ at 272.164158884068 "$god_ set-dist 11 19 2" +$ns_ at 272.194829372441 "$god_ set-dist 39 42 1" +$ns_ at 272.293304565443 "$god_ set-dist 15 30 1" +$ns_ at 272.352951650081 "$god_ set-dist 6 10 1" +$ns_ at 272.574201627777 "$god_ set-dist 11 33 2" +$ns_ at 272.771446373712 "$god_ set-dist 36 48 2" +$ns_ at 272.836857855554 "$god_ set-dist 2 38 2" +$ns_ at 272.945513691930 "$god_ set-dist 3 18 2" +$ns_ at 272.956246830964 "$god_ set-dist 12 19 2" +$ns_ at 273.113070160087 "$god_ set-dist 6 34 2" +$ns_ at 273.196171836118 "$god_ set-dist 7 49 1" +$ns_ at 273.307681556934 "$god_ set-dist 5 20 2" +$ns_ at 273.338911939054 "$god_ set-dist 24 29 1" +$ns_ at 273.368353769579 "$god_ set-dist 18 25 2" +$ns_ at 273.368353769579 "$god_ set-dist 18 28 3" +$ns_ at 273.383827429867 "$node_(41) setdest 217.265622851264 8.463055072426 4.713078511488" +$ns_ at 273.409188521491 "$god_ set-dist 30 48 1" +$ns_ at 273.516077339388 "$god_ set-dist 11 16 2" +$ns_ at 273.591539165789 "$god_ set-dist 38 46 2" +$ns_ at 273.591539165789 "$god_ set-dist 38 47 3" +$ns_ at 273.684067824361 "$node_(11) setdest 96.481226516910 343.686812903466 0.000000000000" +$ns_ at 273.771682391063 "$god_ set-dist 6 32 1" +$ns_ at 273.787126481640 "$god_ set-dist 4 7 1" +$ns_ at 273.984036352132 "$god_ set-dist 1 35 1" +$ns_ at 274.184470330203 "$god_ set-dist 10 12 2" +$ns_ at 274.190712574085 "$god_ set-dist 3 30 1" +$ns_ at 274.200420324376 "$god_ set-dist 10 44 2" +$ns_ at 274.230525275300 "$god_ set-dist 5 48 2" +$ns_ at 274.288076633369 "$god_ set-dist 9 35 2" +$ns_ at 274.302232493469 "$god_ set-dist 5 39 2" +$ns_ at 274.505651024960 "$god_ set-dist 6 30 1" +$ns_ at 274.630291320790 "$node_(2) setdest 174.967028874238 251.190133450447 0.000000000000" +$ns_ at 274.714725967765 "$god_ set-dist 6 42 1" +$ns_ at 274.723906919190 "$god_ set-dist 31 35 1" +$ns_ at 274.826178320628 "$god_ set-dist 22 30 1" +$ns_ at 274.889586603261 "$god_ set-dist 5 26 2" +$ns_ at 274.922790545210 "$god_ set-dist 8 13 2" +$ns_ at 275.155859384985 "$god_ set-dist 25 29 1" +$ns_ at 275.155859384985 "$god_ set-dist 28 29 2" +$ns_ at 275.502101405966 "$god_ set-dist 5 6 2" +$ns_ at 275.747681034131 "$god_ set-dist 22 23 2" +$ns_ at 275.878442564754 "$god_ set-dist 5 22 2" +$ns_ at 275.909682484964 "$god_ set-dist 2 29 1" +$ns_ at 275.944501532170 "$god_ set-dist 39 48 2" +$ns_ at 276.071756520294 "$god_ set-dist 35 42 2" +$ns_ at 276.071756520294 "$god_ set-dist 35 49 1" +$ns_ at 276.110399946770 "$god_ set-dist 7 15 1" +$ns_ at 276.384530570499 "$god_ set-dist 34 42 2" +$ns_ at 276.384530570499 "$god_ set-dist 34 49 1" +$ns_ at 276.402605913300 "$god_ set-dist 14 16 2" +$ns_ at 276.489582141729 "$god_ set-dist 2 39 2" +$ns_ at 276.501995555733 "$god_ set-dist 34 42 3" +$ns_ at 276.501995555733 "$god_ set-dist 35 42 3" +$ns_ at 276.501995555733 "$god_ set-dist 42 49 2" +$ns_ at 276.553958443570 "$god_ set-dist 14 33 2" +$ns_ at 276.779765020210 "$god_ set-dist 8 48 2" +$ns_ at 276.794512277798 "$god_ set-dist 19 39 2" +$ns_ at 276.795201761416 "$god_ set-dist 9 30 1" +$ns_ at 276.903478052512 "$god_ set-dist 27 48 1" +$ns_ at 276.967868222472 "$god_ set-dist 26 30 1" +$ns_ at 276.999193462217 "$god_ set-dist 33 41 1" +$ns_ at 277.221192054498 "$god_ set-dist 15 27 1" +$ns_ at 277.268881647232 "$god_ set-dist 29 45 1" +$ns_ at 277.270173325326 "$god_ set-dist 0 7 1" +$ns_ at 277.427853733398 "$god_ set-dist 10 47 3" +$ns_ at 277.427853733398 "$god_ set-dist 23 47 3" +$ns_ at 277.427853733398 "$god_ set-dist 46 47 2" +$ns_ at 277.631138255720 "$god_ set-dist 10 18 2" +$ns_ at 277.656539962114 "$god_ set-dist 1 15 1" +$ns_ at 277.693816604975 "$god_ set-dist 25 32 2" +$ns_ at 277.723538927972 "$god_ set-dist 15 19 1" +$ns_ at 277.780232082496 "$god_ set-dist 15 29 1" +$ns_ at 278.045972196990 "$god_ set-dist 19 20 2" +$ns_ at 278.158702888707 "$god_ set-dist 19 24 2" +$ns_ at 278.210158349337 "$god_ set-dist 8 21 2" +$ns_ at 278.225751363719 "$god_ set-dist 10 46 2" +$ns_ at 278.256063837256 "$god_ set-dist 0 30 1" +$ns_ at 278.551369615590 "$god_ set-dist 41 47 1" +$ns_ at 278.600680061471 "$god_ set-dist 4 9 1" +$ns_ at 278.628222322224 "$god_ set-dist 18 32 2" +$ns_ at 278.648683993395 "$god_ set-dist 10 36 2" +$ns_ at 278.683330128155 "$node_(3) setdest 361.342875673277 462.758060953039 5.328728633089" +$ns_ at 278.701277039514 "$god_ set-dist 9 46 1" +$ns_ at 278.710385128807 "$god_ set-dist 22 34 2" +$ns_ at 278.744012788568 "$god_ set-dist 15 31 1" +$ns_ at 278.881184219086 "$god_ set-dist 7 17 1" +$ns_ at 279.088406835705 "$god_ set-dist 1 47 2" +$ns_ at 279.301395232495 "$god_ set-dist 11 35 2" +$ns_ at 279.301792310979 "$god_ set-dist 10 25 2" +$ns_ at 279.367043454941 "$god_ set-dist 15 44 1" +$ns_ at 279.521019550522 "$god_ set-dist 10 13 2" +$ns_ at 279.586194240266 "$god_ set-dist 20 48 2" +$ns_ at 279.680065520155 "$god_ set-dist 3 45 2" +$ns_ at 279.809841720947 "$god_ set-dist 22 33 2" +$ns_ at 279.815002389626 "$god_ set-dist 14 19 2" +$ns_ at 279.905706945621 "$god_ set-dist 29 35 1" +$ns_ at 279.919133757933 "$god_ set-dist 25 38 2" +$ns_ at 280.004630231653 "$god_ set-dist 3 8 2" +$ns_ at 280.269342259433 "$god_ set-dist 15 18 1" +$ns_ at 280.269342259433 "$god_ set-dist 18 28 2" +$ns_ at 280.286465098009 "$god_ set-dist 5 9 2" +$ns_ at 280.445703696150 "$god_ set-dist 7 48 1" +$ns_ at 280.552572690442 "$god_ set-dist 10 21 2" +$ns_ at 280.585105613436 "$god_ set-dist 15 34 1" +$ns_ at 280.585105613436 "$god_ set-dist 34 42 2" +$ns_ at 280.739317391128 "$god_ set-dist 4 34 1" +$ns_ at 280.812248586004 "$god_ set-dist 5 24 2" +$ns_ at 281.034851420731 "$node_(47) setdest 70.820323478111 13.534079728436 0.000000000000" +$ns_ at 281.296962005053 "$god_ set-dist 35 38 3" +$ns_ at 281.296962005053 "$god_ set-dist 38 49 2" +$ns_ at 281.734240632586 "$god_ set-dist 25 39 2" +$ns_ at 281.805077470210 "$god_ set-dist 16 26 2" +$ns_ at 282.010050463229 "$god_ set-dist 23 30 1" +$ns_ at 282.010050463229 "$god_ set-dist 23 47 2" +$ns_ at 282.028030631216 "$god_ set-dist 16 22 2" +$ns_ at 282.061107157705 "$god_ set-dist 5 16 2" +$ns_ at 282.088578310604 "$node_(34) setdest 403.614649887161 310.110177729027 4.576577414276" +$ns_ at 282.334909403692 "$node_(5) setdest 138.441628263299 120.647100288094 0.000000000000" +$ns_ at 282.346453855783 "$god_ set-dist 10 35 3" +$ns_ at 282.346453855783 "$god_ set-dist 10 49 2" +$ns_ at 282.414326300773 "$node_(13) setdest 389.376670818391 207.686117314434 7.610762841776" +$ns_ at 282.526920878748 "$god_ set-dist 37 39 2" +$ns_ at 282.804723862943 "$god_ set-dist 3 36 2" +$ns_ at 283.071736482570 "$god_ set-dist 29 41 1" +$ns_ at 283.127434801192 "$god_ set-dist 8 39 2" +$ns_ at 283.134904210873 "$god_ set-dist 14 35 2" +$ns_ at 283.384231276854 "$god_ set-dist 34 40 1" +$ns_ at 283.725651410942 "$node_(15) setdest 257.038295493453 285.946327372649 0.000000000000" +$ns_ at 283.810489993028 "$god_ set-dist 6 7 2" +$ns_ at 284.055379565249 "$god_ set-dist 4 27 1" +$ns_ at 284.080487264773 "$node_(39) setdest 464.156408222517 208.357562040531 0.000000000000" +$ns_ at 284.240451587437 "$god_ set-dist 18 23 2" +$ns_ at 284.320510685287 "$god_ set-dist 13 15 1" +$ns_ at 284.320510685287 "$god_ set-dist 13 28 2" +$ns_ at 284.400262472016 "$god_ set-dist 31 41 1" +$ns_ at 284.419712969921 "$god_ set-dist 29 47 1" +$ns_ at 284.968936525966 "$god_ set-dist 29 34 1" +$ns_ at 284.980803199260 "$god_ set-dist 15 18 2" +$ns_ at 284.980803199260 "$god_ set-dist 18 28 3" +$ns_ at 284.984808182599 "$god_ set-dist 8 13 1" +$ns_ at 285.005055058499 "$god_ set-dist 27 35 2" +$ns_ at 285.060099406657 "$god_ set-dist 6 27 2" +$ns_ at 285.080287270494 "$god_ set-dist 3 14 2" +$ns_ at 285.138050475439 "$god_ set-dist 26 38 2" +$ns_ at 285.568565688376 "$node_(32) setdest 336.960753329992 163.217509037173 0.413139531373" +$ns_ at 285.578006560872 "$god_ set-dist 23 47 3" +$ns_ at 285.578006560872 "$god_ set-dist 30 47 2" +$ns_ at 285.606611220787 "$god_ set-dist 13 30 1" +$ns_ at 285.945626134444 "$god_ set-dist 7 29 1" +$ns_ at 286.196665327846 "$god_ set-dist 16 19 2" +$ns_ at 286.439620739611 "$node_(43) setdest 495.718119458614 334.246522635984 3.829586102291" +$ns_ at 286.457780277284 "$node_(22) setdest 161.583924575117 435.168047555479 0.000000000000" +$ns_ at 286.490426512351 "$god_ set-dist 17 34 1" +$ns_ at 286.500635293669 "$god_ set-dist 13 37 1" +$ns_ at 286.680671450235 "$god_ set-dist 22 38 2" +$ns_ at 286.705247749460 "$god_ set-dist 31 34 1" +$ns_ at 286.786352035446 "$god_ set-dist 24 43 1" +$ns_ at 286.814972550261 "$god_ set-dist 4 12 2" +$ns_ at 286.870070524099 "$node_(18) setdest 414.467245621883 84.663330370089 0.000000000000" +$ns_ at 286.984165646112 "$god_ set-dist 10 20 2" +$ns_ at 287.004804716013 "$god_ set-dist 20 38 2" +$ns_ at 287.087622568215 "$god_ set-dist 23 29 1" +$ns_ at 287.087622568215 "$god_ set-dist 23 47 2" +$ns_ at 287.168252155928 "$god_ set-dist 5 44 2" +$ns_ at 287.270137611661 "$god_ set-dist 4 10 2" +$ns_ at 287.319814667983 "$god_ set-dist 38 39 2" +$ns_ at 287.327522453982 "$god_ set-dist 6 41 2" +$ns_ at 287.383286324210 "$god_ set-dist 3 37 2" +$ns_ at 287.383286324210 "$god_ set-dist 3 47 3" +$ns_ at 287.391776586065 "$god_ set-dist 10 33 2" +$ns_ at 287.466460466326 "$god_ set-dist 10 39 2" +$ns_ at 287.480303509826 "$god_ set-dist 25 43 1" +$ns_ at 287.480303509826 "$god_ set-dist 28 43 2" +$ns_ at 287.615315412198 "$node_(14) setdest 89.088374290238 335.068332076589 0.000000000000" +$ns_ at 287.619736826216 "$god_ set-dist 15 43 1" +$ns_ at 287.665920391866 "$god_ set-dist 3 11 2" +$ns_ at 287.736159780164 "$god_ set-dist 6 45 2" +$ns_ at 287.760859232365 "$god_ set-dist 1 41 1" +$ns_ at 287.856490644997 "$god_ set-dist 23 37 1" +$ns_ at 288.166873910323 "$god_ set-dist 22 34 1" +$ns_ at 288.321980858236 "$node_(29) setdest 269.847273623625 135.986908056139 0.000000000000" +$ns_ at 288.328529147581 "$god_ set-dist 10 15 2" +$ns_ at 288.493998039101 "$node_(9) setdest 221.558957380304 438.337519106968 0.208938686051" +$ns_ at 288.541047766126 "$god_ set-dist 13 25 1" +$ns_ at 288.561219601915 "$god_ set-dist 5 43 2" +$ns_ at 288.987271167717 "$god_ set-dist 10 17 2" +$ns_ at 289.088211206238 "$god_ set-dist 30 32 1" +$ns_ at 289.115104157672 "$god_ set-dist 18 28 2" +$ns_ at 289.115104157672 "$god_ set-dist 28 30 1" +$ns_ at 289.195081033172 "$god_ set-dist 32 48 2" +$ns_ at 289.201611512355 "$node_(40) setdest 100.652137756265 358.673156379726 5.049050208228" +$ns_ at 289.334700443751 "$god_ set-dist 22 49 2" +$ns_ at 289.422950004894 "$god_ set-dist 33 48 2" +$ns_ at 289.492533105383 "$god_ set-dist 4 38 2" +$ns_ at 289.518630123413 "$god_ set-dist 16 48 2" +$ns_ at 289.590426235117 "$god_ set-dist 32 49 2" +$ns_ at 289.642692086535 "$god_ set-dist 13 42 1" +$ns_ at 289.782369422372 "$god_ set-dist 27 49 1" +$ns_ at 289.903537632706 "$god_ set-dist 5 10 3" +$ns_ at 289.903537632706 "$god_ set-dist 10 19 3" +$ns_ at 289.903537632706 "$god_ set-dist 10 34 3" +$ns_ at 289.903537632706 "$god_ set-dist 10 40 2" +$ns_ at 289.974343792783 "$god_ set-dist 12 24 1" +$ns_ at 290.107495841796 "$god_ set-dist 48 49 2" +$ns_ at 290.143662735618 "$god_ set-dist 12 40 2" +$ns_ at 290.271007381133 "$god_ set-dist 2 20 2" +$ns_ at 290.407941485405 "$god_ set-dist 42 48 2" +$ns_ at 290.524111037622 "$god_ set-dist 33 38 2" +$ns_ at 290.597221500138 "$god_ set-dist 7 24 1" +$ns_ at 290.657390283083 "$god_ set-dist 37 48 2" +$ns_ at 290.771375213786 "$god_ set-dist 33 34 1" +$ns_ at 290.788261308133 "$god_ set-dist 8 12 2" +$ns_ at 290.861090249513 "$god_ set-dist 18 28 3" +$ns_ at 290.861090249513 "$god_ set-dist 18 30 2" +$ns_ at 290.922894157006 "$god_ set-dist 3 49 2" +$ns_ at 291.189950350445 "$god_ set-dist 41 48 2" +$ns_ at 291.223008835982 "$god_ set-dist 3 39 2" +$ns_ at 291.287149335032 "$god_ set-dist 27 40 1" +$ns_ at 291.338633399086 "$node_(48) setdest 190.080425128510 448.890274127288 0.000000000000" +$ns_ at 291.508115519613 "$node_(38) setdest 429.494285684734 461.770961538041 0.000000000000" +$ns_ at 291.523205678666 "$god_ set-dist 3 46 2" +$ns_ at 291.561803210964 "$node_(10) setdest 434.904611893035 492.202906142503 0.000000000000" +$ns_ at 291.715540636052 "$god_ set-dist 12 23 1" +$ns_ at 291.765125452603 "$god_ set-dist 47 49 1" +$ns_ at 291.868848547586 "$god_ set-dist 6 9 2" +$ns_ at 292.013633345360 "$god_ set-dist 3 25 2" +$ns_ at 292.031461857078 "$god_ set-dist 30 35 2" +$ns_ at 292.031461857078 "$god_ set-dist 32 35 3" +$ns_ at 292.044410910870 "$god_ set-dist 2 23 1" +$ns_ at 292.082806128591 "$god_ set-dist 2 3 2" +$ns_ at 292.082806128591 "$god_ set-dist 3 35 3" +$ns_ at 292.358045120224 "$god_ set-dist 3 20 2" +$ns_ at 292.382924004989 "$god_ set-dist 21 46 2" +$ns_ at 292.547358668336 "$god_ set-dist 2 13 1" +$ns_ at 292.582834808990 "$god_ set-dist 10 34 2" +$ns_ at 292.582834808990 "$god_ set-dist 24 34 1" +$ns_ at 292.651589281871 "$god_ set-dist 16 45 2" +$ns_ at 292.811978106697 "$god_ set-dist 25 47 1" +$ns_ at 293.036694273268 "$god_ set-dist 0 34 1" +$ns_ at 293.037253036682 "$god_ set-dist 6 28 2" +$ns_ at 293.323604709330 "$god_ set-dist 18 40 2" +$ns_ at 293.400122262751 "$god_ set-dist 1 34 1" +$ns_ at 293.413484507273 "$god_ set-dist 6 13 1" +$ns_ at 293.467548556850 "$god_ set-dist 21 28 2" +$ns_ at 293.467548556850 "$god_ set-dist 28 40 1" +$ns_ at 293.684067824361 "$node_(11) setdest 147.614972014892 328.526656686688 3.701449187915" +$ns_ at 293.710917398130 "$god_ set-dist 21 28 3" +$ns_ at 293.710917398130 "$god_ set-dist 21 40 2" +$ns_ at 293.823867486183 "$god_ set-dist 4 42 2" +$ns_ at 293.923779609493 "$god_ set-dist 23 43 1" +$ns_ at 294.297227858662 "$god_ set-dist 0 41 2" +$ns_ at 294.360557491993 "$node_(30) setdest 231.333455680255 269.434907599926 0.000000000000" +$ns_ at 294.434415984387 "$god_ set-dist 9 12 3" +$ns_ at 294.434415984387 "$god_ set-dist 12 46 2" +$ns_ at 294.630291320790 "$node_(2) setdest 179.042670931871 254.307254426160 2.615615374885" +$ns_ at 294.876118506366 "$god_ set-dist 4 21 2" +$ns_ at 294.876118506366 "$god_ set-dist 9 21 3" +$ns_ at 294.958403541420 "$god_ set-dist 9 12 2" +$ns_ at 294.958403541420 "$god_ set-dist 9 21 2" +$ns_ at 294.958403541420 "$god_ set-dist 9 49 1" +$ns_ at 294.996847102404 "$god_ set-dist 7 47 2" +$ns_ at 295.101700058522 "$god_ set-dist 0 16 2" +$ns_ at 295.402678079042 "$god_ set-dist 7 31 1" +$ns_ at 295.471260542669 "$god_ set-dist 6 49 2" +$ns_ at 295.764565152355 "$god_ set-dist 4 28 1" +$ns_ at 295.764565152355 "$god_ set-dist 18 28 2" +$ns_ at 295.837872978381 "$god_ set-dist 6 37 2" +$ns_ at 296.024775006559 "$god_ set-dist 0 49 2" +$ns_ at 296.128075148849 "$god_ set-dist 6 14 2" +$ns_ at 296.197852861513 "$god_ set-dist 34 48 1" +$ns_ at 296.490888085582 "$god_ set-dist 46 47 1" +$ns_ at 296.505877213770 "$god_ set-dist 36 41 1" +$ns_ at 296.533732238090 "$god_ set-dist 11 33 1" +$ns_ at 296.536510748778 "$god_ set-dist 40 44 2" +$ns_ at 296.591976409054 "$node_(2) setdest 179.042670931871 254.307254426160 0.000000000000" +$ns_ at 296.669086475105 "$god_ set-dist 22 41 2" +$ns_ at 296.737333020525 "$node_(19) setdest 173.634366392147 66.653950341051 0.000000000000" +$ns_ at 296.745670680206 "$god_ set-dist 9 21 3" +$ns_ at 296.745670680206 "$god_ set-dist 21 27 3" +$ns_ at 296.745670680206 "$god_ set-dist 21 49 2" +$ns_ at 296.765919811083 "$node_(35) setdest 105.691497908866 21.557349940746 0.000000000000" +$ns_ at 297.004104302564 "$node_(13) setdest 389.376670818391 207.686117314434 0.000000000000" +$ns_ at 297.822491403161 "$god_ set-dist 6 25 2" +$ns_ at 297.964179362290 "$god_ set-dist 1 47 1" +$ns_ at 298.306057822441 "$god_ set-dist 28 41 2" +$ns_ at 298.366615822575 "$node_(3) setdest 361.342875673277 462.758060953039 0.000000000000" +$ns_ at 298.486709370191 "$node_(16) setdest 389.464246111122 261.870958835157 0.000000000000" +$ns_ at 298.541849938505 "$god_ set-dist 6 39 1" +$ns_ at 298.608208312047 "$god_ set-dist 38 40 2" +$ns_ at 298.690813854972 "$god_ set-dist 33 38 1" +$ns_ at 298.762108822883 "$god_ set-dist 7 35 2" +$ns_ at 299.005934459120 "$god_ set-dist 0 32 2" +$ns_ at 299.079740413484 "$god_ set-dist 25 28 2" +$ns_ at 299.364307014247 "$god_ set-dist 9 12 3" +$ns_ at 299.364307014247 "$god_ set-dist 12 27 3" +$ns_ at 299.364307014247 "$god_ set-dist 12 49 2" +$ns_ at 299.366002118144 "$god_ set-dist 7 33 1" +$ns_ at 299.807675131456 "$god_ set-dist 32 43 1" +$ns_ at 299.919017790916 "$god_ set-dist 39 49 2" +$ns_ at 300.138102888716 "$god_ set-dist 23 49 2" +$ns_ at 300.150041474417 "$god_ set-dist 26 41 2" +$ns_ at 300.223206906032 "$god_ set-dist 40 43 2" +$ns_ at 300.278791660012 "$god_ set-dist 31 39 2" +$ns_ at 300.456831696225 "$god_ set-dist 6 46 2" +$ns_ at 300.456831696225 "$god_ set-dist 6 47 3" +$ns_ at 300.476885757107 "$god_ set-dist 11 29 1" +$ns_ at 300.610652170442 "$god_ set-dist 36 45 2" +$ns_ at 300.730640641591 "$god_ set-dist 39 40 2" +$ns_ at 300.900575692583 "$god_ set-dist 26 49 2" +$ns_ at 300.916894859722 "$god_ set-dist 23 25 2" +$ns_ at 301.034851420731 "$node_(47) setdest 164.665500575310 351.088456117175 1.336070042547" +$ns_ at 301.941548277574 "$god_ set-dist 6 11 2" +$ns_ at 302.123437840808 "$god_ set-dist 2 6 2" +$ns_ at 302.123437840808 "$god_ set-dist 6 35 3" +$ns_ at 302.334909403692 "$node_(5) setdest 39.591463686671 181.907545387924 9.711272742121" +$ns_ at 302.620965481435 "$god_ set-dist 4 18 2" +$ns_ at 302.620965481435 "$god_ set-dist 18 28 3" +$ns_ at 302.795650248814 "$god_ set-dist 8 20 2" +$ns_ at 302.974987069479 "$god_ set-dist 40 42 2" +$ns_ at 303.045421169437 "$god_ set-dist 30 44 2" +$ns_ at 303.497520436047 "$god_ set-dist 5 9 1" +$ns_ at 303.629301191209 "$god_ set-dist 20 40 2" +$ns_ at 303.725651410942 "$node_(15) setdest 146.162914322197 115.323079048470 8.613307834968" +$ns_ at 303.860624376105 "$god_ set-dist 5 36 2" +$ns_ at 303.960598666905 "$god_ set-dist 25 48 2" +$ns_ at 304.080487264773 "$node_(39) setdest 463.525960900215 84.340411131923 4.190319620908" +$ns_ at 304.165776299451 "$god_ set-dist 15 38 2" +$ns_ at 304.217179149708 "$god_ set-dist 34 36 1" +$ns_ at 304.282567301943 "$god_ set-dist 13 34 1" +$ns_ at 304.758201480784 "$god_ set-dist 16 34 1" +$ns_ at 304.797521188725 "$god_ set-dist 21 31 2" +$ns_ at 305.099333676516 "$god_ set-dist 18 25 1" +$ns_ at 305.292788632134 "$god_ set-dist 0 33 2" +$ns_ at 305.743405826893 "$god_ set-dist 23 26 1" +$ns_ at 305.828620194641 "$god_ set-dist 11 31 1" +$ns_ at 305.845764259560 "$god_ set-dist 37 39 1" +$ns_ at 305.936829609631 "$god_ set-dist 15 18 1" +$ns_ at 305.936829609631 "$god_ set-dist 18 28 2" +$ns_ at 306.033477888048 "$god_ set-dist 26 33 1" +$ns_ at 306.196649925140 "$god_ set-dist 15 42 2" +$ns_ at 306.201021685658 "$god_ set-dist 0 42 2" +$ns_ at 306.201021685658 "$god_ set-dist 9 42 3" +$ns_ at 306.201021685658 "$god_ set-dist 27 42 3" +$ns_ at 306.201021685658 "$god_ set-dist 28 42 3" +$ns_ at 306.437066975936 "$god_ set-dist 0 25 2" +$ns_ at 306.457780277284 "$node_(22) setdest 200.428939119265 409.645188065758 9.599260430933" +$ns_ at 306.698405409653 "$node_(12) setdest 457.800226454262 100.323733493531 0.000000000000" +$ns_ at 306.842809301279 "$god_ set-dist 3 4 2" +$ns_ at 306.870070524099 "$node_(18) setdest 92.007735194082 25.342242040482 1.655414510594" +$ns_ at 306.979508676943 "$god_ set-dist 5 33 2" +$ns_ at 307.471519837656 "$god_ set-dist 6 39 2" +$ns_ at 307.604175796377 "$god_ set-dist 37 48 1" +$ns_ at 307.615315412198 "$node_(14) setdest 464.418622338929 339.210189309837 3.416596264730" +$ns_ at 307.627569943937 "$god_ set-dist 13 41 1" +$ns_ at 307.629295993080 "$god_ set-dist 19 43 2" +$ns_ at 307.682726143801 "$god_ set-dist 20 42 2" +$ns_ at 307.686840880308 "$god_ set-dist 22 23 1" +$ns_ at 307.728792950446 "$node_(20) setdest 437.370021355563 172.635357107071 0.000000000000" +$ns_ at 307.794608497624 "$god_ set-dist 19 40 2" +$ns_ at 307.877304191543 "$god_ set-dist 4 39 2" +$ns_ at 307.935842540616 "$god_ set-dist 39 46 2" +$ns_ at 307.952417781423 "$god_ set-dist 22 33 1" +$ns_ at 308.010685587698 "$god_ set-dist 4 44 2" +$ns_ at 308.042317589424 "$god_ set-dist 4 6 2" +$ns_ at 308.076256119134 "$god_ set-dist 36 40 2" +$ns_ at 308.092954774648 "$node_(11) setdest 147.614972014892 328.526656686688 0.000000000000" +$ns_ at 308.321980858236 "$node_(29) setdest 114.712848994013 272.401865608894 2.244105280091" +$ns_ at 308.327448058342 "$god_ set-dist 20 42 1" +$ns_ at 308.661843464396 "$god_ set-dist 1 40 2" +$ns_ at 308.814990438314 "$god_ set-dist 20 49 2" +$ns_ at 308.921058543455 "$god_ set-dist 3 15 2" +$ns_ at 308.928624708291 "$god_ set-dist 6 15 2" +$ns_ at 309.102851644576 "$god_ set-dist 22 38 1" +$ns_ at 309.349461515260 "$god_ set-dist 9 41 2" +$ns_ at 309.596068527828 "$god_ set-dist 20 25 2" +$ns_ at 310.005306879098 "$god_ set-dist 0 10 2" +$ns_ at 310.081971318676 "$god_ set-dist 15 35 1" +$ns_ at 310.081971318676 "$god_ set-dist 32 35 2" +$ns_ at 310.180256968787 "$god_ set-dist 9 42 2" +$ns_ at 310.180256968787 "$god_ set-dist 22 42 1" +$ns_ at 310.180256968787 "$god_ set-dist 27 42 2" +$ns_ at 310.180256968787 "$god_ set-dist 28 42 2" +$ns_ at 310.187932552928 "$god_ set-dist 22 32 1" +$ns_ at 310.248452688585 "$god_ set-dist 16 22 1" +$ns_ at 310.376792394495 "$god_ set-dist 8 16 2" +$ns_ at 310.457894907109 "$god_ set-dist 5 17 2" +$ns_ at 310.457894907109 "$god_ set-dist 5 38 3" +$ns_ at 310.457894907109 "$god_ set-dist 5 42 3" +$ns_ at 310.488921069072 "$god_ set-dist 6 40 2" +$ns_ at 310.492868437270 "$god_ set-dist 32 40 2" +$ns_ at 310.712097419289 "$god_ set-dist 27 41 2" +$ns_ at 311.057720513449 "$god_ set-dist 10 22 1" +$ns_ at 311.256826143376 "$god_ set-dist 1 5 2" +$ns_ at 311.299776386916 "$node_(22) setdest 200.428939119265 409.645188065758 0.000000000000" +$ns_ at 311.331835801652 "$god_ set-dist 30 39 2" +$ns_ at 311.338633399086 "$node_(48) setdest 434.091671204909 323.213084188365 9.430475987387" +$ns_ at 311.487090273155 "$god_ set-dist 15 47 1" +$ns_ at 311.487090273155 "$god_ set-dist 32 47 2" +$ns_ at 311.508115519613 "$node_(38) setdest 427.564763099298 210.285978214695 9.235369377061" +$ns_ at 311.561803210964 "$node_(10) setdest 449.817979606367 371.844869070624 2.541440254687" +$ns_ at 311.584095757550 "$god_ set-dist 5 28 1" +$ns_ at 311.623741772729 "$god_ set-dist 2 47 1" +$ns_ at 311.624464214015 "$god_ set-dist 42 48 1" +$ns_ at 311.741450278876 "$god_ set-dist 15 39 2" +$ns_ at 311.741450278876 "$god_ set-dist 28 39 3" +$ns_ at 311.778836125490 "$god_ set-dist 15 32 2" +$ns_ at 311.778836125490 "$god_ set-dist 32 35 3" +$ns_ at 311.778836125490 "$god_ set-dist 32 47 3" +$ns_ at 311.801683865162 "$god_ set-dist 5 6 3" +$ns_ at 311.801683865162 "$god_ set-dist 6 30 2" +$ns_ at 311.929449055927 "$god_ set-dist 23 34 1" +$ns_ at 312.129158803566 "$god_ set-dist 14 33 1" +$ns_ at 312.141444142135 "$god_ set-dist 33 48 1" +$ns_ at 312.167334995818 "$god_ set-dist 12 31 2" +$ns_ at 312.177739154813 "$god_ set-dist 25 26 2" +$ns_ at 312.239788960420 "$god_ set-dist 14 29 1" +$ns_ at 312.300263585281 "$god_ set-dist 13 38 1" +$ns_ at 312.414420431081 "$god_ set-dist 18 41 1" +$ns_ at 312.451561215314 "$god_ set-dist 8 43 2" +$ns_ at 312.461851558819 "$god_ set-dist 39 42 2" +$ns_ at 312.532050184621 "$god_ set-dist 32 48 1" +$ns_ at 312.741124869151 "$god_ set-dist 15 28 2" +$ns_ at 312.741124869151 "$god_ set-dist 18 28 3" +$ns_ at 312.741124869151 "$god_ set-dist 28 44 3" +$ns_ at 313.060713470322 "$god_ set-dist 6 26 2" +$ns_ at 313.726696960652 "$god_ set-dist 43 49 2" +$ns_ at 313.777592143764 "$god_ set-dist 4 35 1" +$ns_ at 313.777592143764 "$god_ set-dist 32 35 2" +$ns_ at 313.847808430772 "$god_ set-dist 14 31 1" +$ns_ at 313.925227990544 "$god_ set-dist 16 48 1" +$ns_ at 313.973271191921 "$god_ set-dist 10 41 3" +$ns_ at 313.973271191921 "$god_ set-dist 24 41 2" +$ns_ at 314.072306037758 "$god_ set-dist 13 40 2" +$ns_ at 314.310021719049 "$node_(5) setdest 39.591463686671 181.907545387924 0.000000000000" +$ns_ at 314.360557491993 "$node_(30) setdest 349.532681215275 362.455983504384 4.526210066735" +$ns_ at 314.399022046330 "$god_ set-dist 18 28 2" +$ns_ at 314.399022046330 "$god_ set-dist 28 44 2" +$ns_ at 314.399022046330 "$god_ set-dist 28 46 1" +$ns_ at 314.407316003624 "$god_ set-dist 44 49 2" +$ns_ at 314.512952138572 "$god_ set-dist 4 32 2" +$ns_ at 314.512952138572 "$god_ set-dist 32 35 3" +$ns_ at 314.513805571096 "$god_ set-dist 34 43 1" +$ns_ at 314.679099458291 "$node_(49) setdest 169.175955860083 145.152016238221 0.000000000000" +$ns_ at 314.683869958685 "$god_ set-dist 8 44 2" +$ns_ at 314.979779960451 "$god_ set-dist 0 6 2" +$ns_ at 315.048553206533 "$god_ set-dist 41 44 1" +$ns_ at 315.160055609370 "$god_ set-dist 5 38 2" +$ns_ at 315.160055609370 "$god_ set-dist 30 38 1" +$ns_ at 315.700841591088 "$god_ set-dist 0 15 2" +$ns_ at 315.760303179607 "$god_ set-dist 20 38 1" +$ns_ at 315.904086826439 "$god_ set-dist 20 31 2" +$ns_ at 316.034544472208 "$god_ set-dist 4 47 1" +$ns_ at 316.057650368373 "$god_ set-dist 38 43 1" +$ns_ at 316.325681631384 "$god_ set-dist 5 42 2" +$ns_ at 316.325681631384 "$god_ set-dist 30 42 1" +$ns_ at 316.544709633405 "$god_ set-dist 0 37 2" +$ns_ at 316.591976409054 "$node_(2) setdest 45.580215281966 417.345255684995 8.538558840756" +$ns_ at 316.657702369445 "$god_ set-dist 16 31 2" +$ns_ at 316.734379847399 "$god_ set-dist 42 43 1" +$ns_ at 316.737333020525 "$node_(19) setdest 285.629254977891 279.238646054091 8.057541976676" +$ns_ at 316.743148127562 "$god_ set-dist 27 49 2" +$ns_ at 316.765919811083 "$node_(35) setdest 327.744333578931 353.475193381971 7.585227125726" +$ns_ at 316.792689320879 "$god_ set-dist 15 23 2" +$ns_ at 317.004104302564 "$node_(13) setdest 248.252037362294 456.734890584102 8.221413337172" +$ns_ at 317.144239715902 "$god_ set-dist 9 39 3" +$ns_ at 317.144239715902 "$god_ set-dist 27 39 3" +$ns_ at 317.144239715902 "$god_ set-dist 37 39 2" +$ns_ at 317.175489560785 "$god_ set-dist 6 22 2" +$ns_ at 317.533396204170 "$god_ set-dist 20 34 1" +$ns_ at 317.619504110902 "$god_ set-dist 0 38 2" +$ns_ at 317.843712678354 "$god_ set-dist 18 30 1" +$ns_ at 317.881135873786 "$god_ set-dist 3 13 1" +$ns_ at 317.889228909654 "$god_ set-dist 13 48 1" +$ns_ at 317.906508028780 "$god_ set-dist 13 19 1" +$ns_ at 318.027328871193 "$god_ set-dist 28 44 3" +$ns_ at 318.027328871193 "$god_ set-dist 44 46 2" +$ns_ at 318.197916590907 "$god_ set-dist 23 40 2" +$ns_ at 318.265445444795 "$god_ set-dist 16 40 2" +$ns_ at 318.366615822575 "$node_(3) setdest 169.432387976427 157.828950748877 2.938810952770" +$ns_ at 318.382224164145 "$god_ set-dist 15 26 2" +$ns_ at 318.414122094847 "$god_ set-dist 4 20 2" +$ns_ at 318.437110041062 "$god_ set-dist 31 43 2" +$ns_ at 318.472660882464 "$god_ set-dist 2 36 2" +$ns_ at 318.486709370191 "$node_(16) setdest 259.699170481746 148.584388640139 2.599677730057" +$ns_ at 318.521503951588 "$god_ set-dist 22 25 2" +$ns_ at 318.553465656099 "$god_ set-dist 15 20 2" +$ns_ at 318.625244348033 "$god_ set-dist 21 38 1" +$ns_ at 318.718299144476 "$god_ set-dist 11 19 1" +$ns_ at 318.790425193037 "$god_ set-dist 13 45 1" +$ns_ at 318.838490664410 "$god_ set-dist 38 39 1" +$ns_ at 318.972855464122 "$god_ set-dist 0 45 2" +$ns_ at 319.018371044762 "$god_ set-dist 15 48 2" +$ns_ at 319.048388496451 "$god_ set-dist 2 47 2" +$ns_ at 319.093569583862 "$god_ set-dist 11 16 1" +$ns_ at 319.134803560352 "$god_ set-dist 36 38 1" +$ns_ at 319.244032840921 "$god_ set-dist 15 44 2" +$ns_ at 319.267765751119 "$god_ set-dist 3 11 1" +$ns_ at 319.314712957153 "$god_ set-dist 25 43 2" +$ns_ at 319.506927522473 "$god_ set-dist 32 34 1" +$ns_ at 319.506927522473 "$god_ set-dist 32 35 2" +$ns_ at 319.506927522473 "$god_ set-dist 32 47 2" +$ns_ at 319.593241268578 "$god_ set-dist 18 34 1" +$ns_ at 319.730919387329 "$god_ set-dist 40 41 2" +$ns_ at 319.809644105648 "$god_ set-dist 25 27 2" +$ns_ at 319.845734736061 "$god_ set-dist 15 43 2" +$ns_ at 319.905547819185 "$god_ set-dist 10 13 1" +$ns_ at 319.905547819185 "$god_ set-dist 10 19 2" +$ns_ at 319.905547819185 "$god_ set-dist 10 41 2" +$ns_ at 319.965721540075 "$god_ set-dist 0 23 2" +$ns_ at 320.032726741327 "$god_ set-dist 11 13 1" +$ns_ at 320.059962902114 "$god_ set-dist 6 17 2" +$ns_ at 320.231964152984 "$god_ set-dist 14 41 2" +$ns_ at 320.232737243071 "$god_ set-dist 14 19 1" +$ns_ at 320.338335593829 "$god_ set-dist 13 22 1" +$ns_ at 320.754514749060 "$god_ set-dist 19 24 1" +$ns_ at 320.975867234751 "$god_ set-dist 34 38 1" +$ns_ at 320.975867234751 "$god_ set-dist 35 38 2" +$ns_ at 320.975867234751 "$god_ set-dist 38 47 2" +$ns_ at 320.992590406876 "$god_ set-dist 2 23 2" +$ns_ at 321.044230943951 "$god_ set-dist 15 22 2" +$ns_ at 321.128357651814 "$god_ set-dist 10 33 1" +$ns_ at 321.135686413498 "$god_ set-dist 19 40 1" +$ns_ at 321.249391154853 "$god_ set-dist 16 19 1" +$ns_ at 321.393387934602 "$god_ set-dist 32 47 3" +$ns_ at 321.393387934602 "$god_ set-dist 34 47 2" +$ns_ at 321.393387934602 "$god_ set-dist 38 47 3" +$ns_ at 321.429469667551 "$god_ set-dist 3 34 1" +$ns_ at 321.429469667551 "$god_ set-dist 3 35 2" +$ns_ at 321.540145907509 "$god_ set-dist 3 14 1" +$ns_ at 321.722148129989 "$god_ set-dist 29 48 1" +$ns_ at 321.772529495564 "$god_ set-dist 6 33 2" +$ns_ at 321.836353673850 "$god_ set-dist 10 17 1" +$ns_ at 321.855873580183 "$god_ set-dist 13 14 1" +$ns_ at 322.134759836620 "$god_ set-dist 6 27 3" +$ns_ at 322.134759836620 "$god_ set-dist 27 48 2" +$ns_ at 322.139919513319 "$god_ set-dist 5 10 2" +$ns_ at 322.139919513319 "$god_ set-dist 10 30 1" +$ns_ at 322.210982464536 "$god_ set-dist 15 27 2" +$ns_ at 322.219034381686 "$god_ set-dist 4 43 2" +$ns_ at 322.272827038519 "$god_ set-dist 6 41 3" +$ns_ at 322.272827038519 "$god_ set-dist 13 41 2" +$ns_ at 322.307546107939 "$god_ set-dist 11 41 2" +$ns_ at 322.345637996064 "$god_ set-dist 25 44 2" +$ns_ at 322.617224723615 "$god_ set-dist 1 2 2" +$ns_ at 322.617417916723 "$god_ set-dist 19 20 1" +$ns_ at 323.215348484920 "$god_ set-dist 43 48 1" +$ns_ at 323.238286167273 "$god_ set-dist 5 10 3" +$ns_ at 323.238286167273 "$god_ set-dist 5 30 2" +$ns_ at 323.238286167273 "$god_ set-dist 5 42 3" +$ns_ at 323.240807265287 "$node_(6) setdest 484.105364115424 449.085818699061 0.000000000000" +$ns_ at 323.248649239149 "$god_ set-dist 7 41 2" +$ns_ at 323.261622014482 "$god_ set-dist 16 31 1" +$ns_ at 323.411874563617 "$god_ set-dist 9 25 2" +$ns_ at 323.552079010577 "$god_ set-dist 14 16 1" +$ns_ at 323.760863459036 "$god_ set-dist 12 38 1" +$ns_ at 323.792149929380 "$god_ set-dist 19 43 1" +$ns_ at 323.999355210492 "$god_ set-dist 31 44 2" +$ns_ at 324.066489380616 "$god_ set-dist 9 15 2" +$ns_ at 324.087177423721 "$god_ set-dist 16 45 1" +$ns_ at 324.110581526063 "$god_ set-dist 18 35 1" +$ns_ at 324.158540315106 "$god_ set-dist 13 26 1" +$ns_ at 324.208326897942 "$god_ set-dist 10 35 2" +$ns_ at 324.208326897942 "$god_ set-dist 17 35 1" +$ns_ at 324.208326897942 "$god_ set-dist 35 42 2" +$ns_ at 324.293212374509 "$god_ set-dist 45 48 2" +$ns_ at 324.314962577501 "$god_ set-dist 7 13 1" +$ns_ at 324.318418975320 "$god_ set-dist 37 38 1" +$ns_ at 324.318418975320 "$god_ set-dist 38 47 2" +$ns_ at 324.669899392431 "$god_ set-dist 7 35 1" +$ns_ at 324.694127415704 "$god_ set-dist 3 40 2" +$ns_ at 324.957269232947 "$god_ set-dist 2 16 2" +$ns_ at 325.113307893498 "$god_ set-dist 15 16 2" +$ns_ at 325.276077580382 "$god_ set-dist 14 23 1" +$ns_ at 325.319995801553 "$god_ set-dist 2 41 2" +$ns_ at 325.516849736629 "$god_ set-dist 6 43 1" +$ns_ at 325.574589583223 "$god_ set-dist 20 48 1" +$ns_ at 325.601355563659 "$god_ set-dist 6 9 3" +$ns_ at 325.601355563659 "$god_ set-dist 9 48 2" +$ns_ at 325.776739174661 "$god_ set-dist 30 41 2" +$ns_ at 325.806781595826 "$god_ set-dist 11 35 1" +$ns_ at 325.833478513193 "$god_ set-dist 38 44 1" +$ns_ at 325.863916878285 "$god_ set-dist 15 24 2" +$ns_ at 325.943260698225 "$god_ set-dist 6 28 3" +$ns_ at 325.943260698225 "$god_ set-dist 28 48 2" +$ns_ at 326.022780884872 "$god_ set-dist 24 31 2" +$ns_ at 326.161742072886 "$god_ set-dist 29 38 1" +$ns_ at 326.163113542229 "$god_ set-dist 6 15 3" +$ns_ at 326.163113542229 "$god_ set-dist 13 15 2" +$ns_ at 326.165925810803 "$god_ set-dist 10 43 1" +$ns_ at 326.182454803178 "$god_ set-dist 33 35 1" +$ns_ at 326.216551127320 "$god_ set-dist 8 24 2" +$ns_ at 326.355361761340 "$god_ set-dist 22 29 1" +$ns_ at 326.360010940269 "$god_ set-dist 18 38 1" +$ns_ at 326.425064308709 "$god_ set-dist 33 40 2" +$ns_ at 326.431204450938 "$god_ set-dist 36 48 1" +$ns_ at 326.535295739512 "$god_ set-dist 12 19 1" +$ns_ at 326.698405409653 "$node_(12) setdest 34.177474237260 228.024181427674 3.918818869887" +$ns_ at 326.769322685501 "$god_ set-dist 0 13 1" +$ns_ at 326.911260191767 "$god_ set-dist 13 40 1" +$ns_ at 326.947878260342 "$god_ set-dist 6 8 3" +$ns_ at 326.947878260342 "$god_ set-dist 8 13 2" +$ns_ at 326.968910627287 "$god_ set-dist 14 35 1" +$ns_ at 327.073803202068 "$god_ set-dist 27 30 2" +$ns_ at 327.275329200513 "$god_ set-dist 3 43 1" +$ns_ at 327.348434954579 "$god_ set-dist 12 32 1" +$ns_ at 327.349997583357 "$node_(15) setdest 146.162914322197 115.323079048470 0.000000000000" +$ns_ at 327.456590078771 "$god_ set-dist 35 36 1" +$ns_ at 327.509228696786 "$god_ set-dist 9 21 2" +$ns_ at 327.509228696786 "$god_ set-dist 21 28 2" +$ns_ at 327.509228696786 "$god_ set-dist 21 30 1" +$ns_ at 327.550209564027 "$god_ set-dist 27 37 2" +$ns_ at 327.550209564027 "$god_ set-dist 27 44 3" +$ns_ at 327.555728280585 "$god_ set-dist 15 36 2" +$ns_ at 327.561139275764 "$god_ set-dist 13 31 2" +$ns_ at 327.660638450512 "$god_ set-dist 6 8 2" +$ns_ at 327.660638450512 "$god_ set-dist 6 9 2" +$ns_ at 327.660638450512 "$god_ set-dist 6 15 2" +$ns_ at 327.660638450512 "$god_ set-dist 6 28 2" +$ns_ at 327.660638450512 "$god_ set-dist 6 30 1" +$ns_ at 327.695208510500 "$god_ set-dist 18 30 2" +$ns_ at 327.728792950446 "$node_(20) setdest 229.663563838699 383.687216859996 2.245501793703" +$ns_ at 327.855653731541 "$god_ set-dist 1 38 1" +$ns_ at 327.938083742258 "$god_ set-dist 6 35 2" +$ns_ at 327.938083742258 "$god_ set-dist 30 35 1" +$ns_ at 327.969752333532 "$god_ set-dist 38 46 1" +$ns_ at 328.092954774648 "$node_(11) setdest 13.535758670289 331.205661848834 4.004927767214" +$ns_ at 328.196196293436 "$god_ set-dist 3 7 1" +$ns_ at 328.286221518020 "$god_ set-dist 22 38 2" +$ns_ at 328.393995510903 "$god_ set-dist 19 39 1" +$ns_ at 328.423089617265 "$god_ set-dist 9 12 2" +$ns_ at 328.423089617265 "$god_ set-dist 12 37 1" +$ns_ at 328.606658241513 "$god_ set-dist 43 46 2" +$ns_ at 328.688118026131 "$god_ set-dist 8 36 2" +$ns_ at 328.822034447988 "$god_ set-dist 19 48 1" +$ns_ at 328.986145888026 "$god_ set-dist 5 42 2" +$ns_ at 328.986145888026 "$god_ set-dist 34 42 1" +$ns_ at 329.031346001467 "$god_ set-dist 19 23 1" +$ns_ at 329.134286354458 "$node_(40) setdest 100.652137756265 358.673156379726 0.000000000000" +$ns_ at 329.280243309524 "$god_ set-dist 21 27 2" +$ns_ at 329.280243309524 "$god_ set-dist 21 34 1" +$ns_ at 329.376648135976 "$god_ set-dist 19 38 1" +$ns_ at 329.652011196919 "$god_ set-dist 32 39 2" +$ns_ at 329.688541504236 "$god_ set-dist 16 35 1" +$ns_ at 329.765958816185 "$god_ set-dist 2 33 2" +$ns_ at 329.877194895219 "$god_ set-dist 12 27 2" +$ns_ at 329.877194895219 "$god_ set-dist 12 28 2" +$ns_ at 329.877194895219 "$god_ set-dist 12 34 1" +$ns_ at 329.927231067921 "$god_ set-dist 19 22 1" +$ns_ at 330.014407146385 "$god_ set-dist 19 21 1" +$ns_ at 330.303368600977 "$god_ set-dist 21 48 1" +$ns_ at 330.397977494764 "$god_ set-dist 8 16 1" +$ns_ at 330.477536760565 "$god_ set-dist 40 48 2" +$ns_ at 330.677226354730 "$god_ set-dist 2 48 2" +$ns_ at 331.052870425408 "$god_ set-dist 13 39 2" +$ns_ at 331.097727592827 "$god_ set-dist 12 41 1" +$ns_ at 331.164332909496 "$god_ set-dist 13 44 2" +$ns_ at 331.299776386916 "$node_(22) setdest 96.394265664277 440.495481161182 7.026819333336" +$ns_ at 331.352077347116 "$god_ set-dist 24 35 1" +$ns_ at 331.640540150807 "$god_ set-dist 6 15 3" +$ns_ at 331.640540150807 "$god_ set-dist 15 30 2" +$ns_ at 331.739120423769 "$god_ set-dist 3 40 1" +$ns_ at 331.746551909519 "$god_ set-dist 12 27 3" +$ns_ at 331.746551909519 "$god_ set-dist 21 27 3" +$ns_ at 331.746551909519 "$god_ set-dist 27 34 2" +$ns_ at 331.746551909519 "$god_ set-dist 27 43 3" +$ns_ at 331.808929513388 "$god_ set-dist 6 15 2" +$ns_ at 331.808929513388 "$god_ set-dist 15 16 1" +$ns_ at 331.946259198762 "$god_ set-dist 31 36 2" +$ns_ at 332.064572903792 "$god_ set-dist 2 35 2" +$ns_ at 332.170699427495 "$god_ set-dist 35 40 1" +$ns_ at 332.407522841611 "$god_ set-dist 10 22 2" +$ns_ at 332.407522841611 "$god_ set-dist 10 27 3" +$ns_ at 332.416473868777 "$god_ set-dist 30 31 2" +$ns_ at 332.447330282440 "$god_ set-dist 5 10 2" +$ns_ at 332.447330282440 "$god_ set-dist 10 34 1" +$ns_ at 332.524661173764 "$god_ set-dist 2 15 2" +$ns_ at 332.546708281898 "$god_ set-dist 2 24 2" +$ns_ at 332.570286637161 "$god_ set-dist 3 37 1" +$ns_ at 332.570286637161 "$god_ set-dist 3 47 2" +$ns_ at 332.581893222317 "$god_ set-dist 2 25 2" +$ns_ at 332.666408961622 "$god_ set-dist 28 44 2" +$ns_ at 332.666408961622 "$god_ set-dist 34 44 1" +$ns_ at 332.721894611972 "$god_ set-dist 13 35 1" +$ns_ at 332.752422074752 "$god_ set-dist 13 25 2" +$ns_ at 332.795022999066 "$god_ set-dist 11 16 2" +$ns_ at 332.869035624292 "$god_ set-dist 32 37 1" +$ns_ at 332.869035624292 "$god_ set-dist 32 47 2" +$ns_ at 332.915904306451 "$god_ set-dist 29 39 2" +$ns_ at 332.919271157773 "$god_ set-dist 8 30 2" +$ns_ at 332.926021592363 "$god_ set-dist 2 31 2" +$ns_ at 333.025348095611 "$god_ set-dist 22 32 2" +$ns_ at 333.025348095611 "$god_ set-dist 27 32 3" +$ns_ at 333.025678648971 "$god_ set-dist 13 18 2" +$ns_ at 333.028124240252 "$god_ set-dist 22 42 2" +$ns_ at 333.028124240252 "$god_ set-dist 27 42 3" +$ns_ at 333.106295719178 "$god_ set-dist 23 39 2" +$ns_ at 333.408806482938 "$god_ set-dist 11 48 2" +$ns_ at 333.418440018584 "$god_ set-dist 4 36 2" +$ns_ at 333.481621749671 "$god_ set-dist 6 28 3" +$ns_ at 333.481621749671 "$god_ set-dist 28 30 2" +$ns_ at 333.534494521087 "$god_ set-dist 1 23 1" +$ns_ at 333.641883384157 "$god_ set-dist 33 41 2" +$ns_ at 333.646683268120 "$god_ set-dist 16 22 2" +$ns_ at 333.676977407084 "$node_(39) setdest 463.525960900215 84.340411131923 0.000000000000" +$ns_ at 333.698297136741 "$god_ set-dist 12 48 1" +$ns_ at 333.753031482245 "$god_ set-dist 19 32 1" +$ns_ at 333.859909983026 "$god_ set-dist 7 48 2" +$ns_ at 333.878052307620 "$god_ set-dist 10 28 3" +$ns_ at 333.878052307620 "$god_ set-dist 12 28 3" +$ns_ at 333.878052307620 "$god_ set-dist 21 28 3" +$ns_ at 333.878052307620 "$god_ set-dist 28 32 3" +$ns_ at 333.878052307620 "$god_ set-dist 28 34 2" +$ns_ at 333.878052307620 "$god_ set-dist 28 42 3" +$ns_ at 333.878052307620 "$god_ set-dist 28 43 3" +$ns_ at 333.878052307620 "$god_ set-dist 28 44 3" +$ns_ at 333.902968419214 "$god_ set-dist 4 23 2" +$ns_ at 334.038555010021 "$god_ set-dist 3 46 1" +$ns_ at 334.157292271474 "$god_ set-dist 25 40 2" +$ns_ at 334.268979512736 "$god_ set-dist 14 32 1" +$ns_ at 334.268979512736 "$god_ set-dist 27 32 2" +$ns_ at 334.268979512736 "$god_ set-dist 28 32 2" +$ns_ at 334.310021719049 "$node_(5) setdest 295.570665150578 170.299831992566 7.464345428763" +$ns_ at 334.320307763324 "$god_ set-dist 2 8 2" +$ns_ at 334.365734830421 "$god_ set-dist 3 19 1" +$ns_ at 334.394952643476 "$god_ set-dist 12 35 1" +$ns_ at 334.441615048641 "$god_ set-dist 9 19 1" +$ns_ at 334.441615048641 "$god_ set-dist 9 39 2" +$ns_ at 334.535773462536 "$god_ set-dist 19 26 1" +$ns_ at 334.626957312270 "$god_ set-dist 12 13 2" +$ns_ at 334.679099458291 "$node_(49) setdest 424.522930011332 5.854346141616 8.214740894890" +$ns_ at 334.688641129682 "$god_ set-dist 12 30 1" +$ns_ at 334.691203319627 "$god_ set-dist 20 35 1" +$ns_ at 334.709394135521 "$god_ set-dist 4 48 2" +$ns_ at 334.837120733715 "$god_ set-dist 10 20 1" +$ns_ at 334.966212787897 "$god_ set-dist 6 8 3" +$ns_ at 334.966212787897 "$god_ set-dist 6 15 3" +$ns_ at 334.966212787897 "$god_ set-dist 6 16 2" +$ns_ at 334.966212787897 "$god_ set-dist 6 31 3" +$ns_ at 335.026437630048 "$god_ set-dist 2 49 2" +$ns_ at 335.032130472441 "$god_ set-dist 34 41 2" +$ns_ at 335.040031534718 "$god_ set-dist 9 49 2" +$ns_ at 335.047558288314 "$god_ set-dist 2 17 2" +$ns_ at 335.089979362175 "$god_ set-dist 25 30 2" +$ns_ at 335.151575245383 "$god_ set-dist 0 48 2" +$ns_ at 335.201386759451 "$god_ set-dist 7 16 1" +$ns_ at 335.222237995754 "$god_ set-dist 21 29 2" +$ns_ at 335.378218444536 "$god_ set-dist 2 29 2" +$ns_ at 335.554335082546 "$god_ set-dist 10 41 3" +$ns_ at 335.554335082546 "$god_ set-dist 17 41 2" +$ns_ at 335.554335082546 "$god_ set-dist 41 42 3" +$ns_ at 335.645757223545 "$god_ set-dist 12 49 1" +$ns_ at 335.799359676003 "$god_ set-dist 13 21 2" +$ns_ at 335.986282682838 "$god_ set-dist 20 49 1" +$ns_ at 336.005402279841 "$god_ set-dist 3 20 1" +$ns_ at 336.031927855099 "$god_ set-dist 9 29 1" +$ns_ at 336.246357617860 "$god_ set-dist 9 13 1" +$ns_ at 336.355033412437 "$god_ set-dist 2 19 2" +$ns_ at 336.355033412437 "$god_ set-dist 2 39 3" +$ns_ at 336.383549126100 "$god_ set-dist 9 30 2" +$ns_ at 336.574868745844 "$god_ set-dist 22 48 2" +$ns_ at 336.607527927999 "$god_ set-dist 22 23 2" +$ns_ at 336.684513762986 "$god_ set-dist 1 5 1" +$ns_ at 336.775192804265 "$god_ set-dist 6 25 3" +$ns_ at 336.775192804265 "$god_ set-dist 24 25 2" +$ns_ at 336.818549896040 "$god_ set-dist 12 25 1" +$ns_ at 336.823770773699 "$god_ set-dist 6 28 2" +$ns_ at 336.823770773699 "$god_ set-dist 10 28 2" +$ns_ at 336.823770773699 "$god_ set-dist 13 28 1" +$ns_ at 336.823770773699 "$god_ set-dist 28 42 2" +$ns_ at 336.823770773699 "$god_ set-dist 28 43 2" +$ns_ at 336.881150832112 "$god_ set-dist 35 38 1" +$ns_ at 336.898559517498 "$god_ set-dist 1 13 2" +$ns_ at 336.971850076089 "$god_ set-dist 6 8 2" +$ns_ at 336.971850076089 "$god_ set-dist 6 15 2" +$ns_ at 336.971850076089 "$god_ set-dist 6 25 2" +$ns_ at 336.971850076089 "$god_ set-dist 6 31 2" +$ns_ at 336.971850076089 "$god_ set-dist 6 33 1" +$ns_ at 337.038072209414 "$god_ set-dist 2 30 2" +$ns_ at 337.126475995597 "$god_ set-dist 22 33 2" +$ns_ at 337.153396296518 "$god_ set-dist 22 29 2" +$ns_ at 337.241733177114 "$god_ set-dist 5 17 1" +$ns_ at 337.396089876038 "$god_ set-dist 46 48 2" +$ns_ at 337.518493248911 "$god_ set-dist 2 21 3" +$ns_ at 337.518493248911 "$god_ set-dist 2 34 2" +$ns_ at 337.609112278622 "$god_ set-dist 44 49 1" +$ns_ at 337.656131307111 "$god_ set-dist 13 49 2" +$ns_ at 337.934430234002 "$god_ set-dist 38 49 1" +$ns_ at 337.952949440886 "$god_ set-dist 2 12 3" +$ns_ at 337.952949440886 "$god_ set-dist 2 37 2" +$ns_ at 337.952949440886 "$god_ set-dist 2 44 3" +$ns_ at 338.039467091052 "$god_ set-dist 26 42 1" +$ns_ at 338.039467091052 "$god_ set-dist 27 42 2" +$ns_ at 338.183919826769 "$god_ set-dist 26 48 2" +$ns_ at 338.337427493697 "$god_ set-dist 9 35 1" +$ns_ at 338.590816557311 "$god_ set-dist 29 48 2" +$ns_ at 338.608709742291 "$god_ set-dist 29 43 2" +$ns_ at 338.739553169052 "$node_(38) setdest 427.564763099298 210.285978214695 0.000000000000" +$ns_ at 338.754026094260 "$god_ set-dist 39 48 1" +$ns_ at 338.822131243608 "$god_ set-dist 40 49 2" +$ns_ at 339.082359064686 "$god_ set-dist 11 33 2" +$ns_ at 339.131022054069 "$god_ set-dist 9 39 3" +$ns_ at 339.131022054069 "$god_ set-dist 19 39 2" +$ns_ at 339.546107604719 "$node_(41) setdest 217.265622851264 8.463055072426 0.000000000000" +$ns_ at 339.760757513847 "$god_ set-dist 3 4 1" +$ns_ at 339.765644097734 "$god_ set-dist 23 35 1" +$ns_ at 339.844182737168 "$god_ set-dist 9 34 2" +$ns_ at 339.901827884555 "$god_ set-dist 35 44 1" +$ns_ at 339.952398814364 "$god_ set-dist 44 48 1" +$ns_ at 339.989315682776 "$god_ set-dist 2 12 2" +$ns_ at 339.989315682776 "$god_ set-dist 12 27 2" +$ns_ at 339.989315682776 "$god_ set-dist 12 28 2" +$ns_ at 339.989315682776 "$god_ set-dist 12 46 1" +$ns_ at 340.105142364655 "$god_ set-dist 13 36 2" +$ns_ at 340.381738431490 "$god_ set-dist 7 25 2" +$ns_ at 340.443684708983 "$node_(48) setdest 434.091671204909 323.213084188365 0.000000000000" +$ns_ at 340.517300823754 "$god_ set-dist 3 29 1" +$ns_ at 340.663884060500 "$god_ set-dist 14 42 1" +$ns_ at 340.696485784299 "$god_ set-dist 0 19 1" +$ns_ at 340.918257282361 "$god_ set-dist 19 47 2" +$ns_ at 340.931145806653 "$god_ set-dist 19 42 1" +$ns_ at 340.931145806653 "$god_ set-dist 41 42 2" +$ns_ at 341.025676778229 "$god_ set-dist 30 49 2" +$ns_ at 341.081904895864 "$god_ set-dist 10 41 2" +$ns_ at 341.081904895864 "$god_ set-dist 16 41 1" +$ns_ at 341.175450787052 "$god_ set-dist 39 49 1" +$ns_ at 341.268029132906 "$node_(2) setdest 45.580215281966 417.345255684996 0.000000000000" +$ns_ at 341.316669898022 "$god_ set-dist 10 19 1" +$ns_ at 341.432954439551 "$god_ set-dist 6 31 3" +$ns_ at 341.432954439551 "$god_ set-dist 31 33 2" +$ns_ at 341.539039223227 "$god_ set-dist 5 6 2" +$ns_ at 341.539039223227 "$god_ set-dist 6 31 2" +$ns_ at 341.539039223227 "$god_ set-dist 6 34 1" +$ns_ at 341.666379782250 "$god_ set-dist 9 31 1" +$ns_ at 341.674799726115 "$god_ set-dist 1 14 1" +$ns_ at 341.795465082827 "$god_ set-dist 23 39 1" +$ns_ at 341.820422699129 "$god_ set-dist 29 44 2" +$ns_ at 341.828993261008 "$god_ set-dist 7 49 2" +$ns_ at 341.994577833979 "$god_ set-dist 3 35 1" +$ns_ at 342.010196260970 "$god_ set-dist 5 16 1" +$ns_ at 342.021066755582 "$god_ set-dist 11 49 2" +$ns_ at 342.027929458565 "$god_ set-dist 22 24 2" +$ns_ at 342.156505364468 "$god_ set-dist 11 24 2" +$ns_ at 342.174541195867 "$god_ set-dist 10 14 1" +$ns_ at 342.174541195867 "$god_ set-dist 10 27 2" +$ns_ at 342.211348292800 "$god_ set-dist 6 27 2" +$ns_ at 342.211348292800 "$god_ set-dist 13 27 1" +$ns_ at 342.211348292800 "$god_ set-dist 27 43 2" +$ns_ at 342.299350544492 "$god_ set-dist 14 20 1" +$ns_ at 342.346287514792 "$god_ set-dist 5 33 1" +$ns_ at 342.490071237834 "$god_ set-dist 34 39 1" +$ns_ at 342.508145445068 "$god_ set-dist 21 49 1" +$ns_ at 342.702730397968 "$god_ set-dist 1 30 2" +$ns_ at 342.807188863195 "$god_ set-dist 19 41 2" +$ns_ at 342.948927813780 "$god_ set-dist 0 17 2" +$ns_ at 343.002102958228 "$god_ set-dist 22 37 2" +$ns_ at 343.132913832042 "$god_ set-dist 12 15 1" +$ns_ at 343.240807265287 "$node_(6) setdest 464.180097228256 189.125018622261 2.504632857387" +$ns_ at 343.291882925944 "$god_ set-dist 17 22 2" +$ns_ at 343.484898123542 "$god_ set-dist 8 33 2" +$ns_ at 343.505281881064 "$god_ set-dist 11 30 2" +$ns_ at 343.509848251397 "$god_ set-dist 14 38 1" +$ns_ at 343.775956916018 "$god_ set-dist 6 31 3" +$ns_ at 343.775956916018 "$god_ set-dist 31 34 2" +$ns_ at 343.792509137215 "$god_ set-dist 30 45 2" +$ns_ at 343.877237521642 "$god_ set-dist 11 25 2" +$ns_ at 343.890130455542 "$god_ set-dist 22 34 2" +$ns_ at 343.890130455542 "$god_ set-dist 22 39 3" +$ns_ at 343.996047235973 "$god_ set-dist 35 48 1" +$ns_ at 344.119414328549 "$god_ set-dist 26 35 1" +$ns_ at 344.464139466892 "$god_ set-dist 19 44 2" +$ns_ at 344.464139466892 "$god_ set-dist 22 44 3" +$ns_ at 344.496667336080 "$god_ set-dist 14 25 2" +$ns_ at 344.525427147005 "$god_ set-dist 6 8 3" +$ns_ at 344.525427147005 "$god_ set-dist 8 34 2" +$ns_ at 344.752546466704 "$god_ set-dist 25 36 2" +$ns_ at 344.849916312440 "$god_ set-dist 32 35 1" +$ns_ at 344.857625108623 "$god_ set-dist 38 46 2" +$ns_ at 344.935501637145 "$god_ set-dist 2 5 2" +$ns_ at 345.069862820494 "$god_ set-dist 0 24 2" +$ns_ at 345.085067435778 "$god_ set-dist 5 24 1" +$ns_ at 345.106596868797 "$god_ set-dist 13 38 2" +$ns_ at 345.271564206116 "$god_ set-dist 21 37 1" +$ns_ at 345.404308356736 "$node_(27) setdest 37.735742714497 392.315552011513 0.000000000000" +$ns_ at 345.404637440156 "$god_ set-dist 22 30 2" +$ns_ at 345.406935191173 "$god_ set-dist 3 28 1" +$ns_ at 345.452120320216 "$god_ set-dist 13 20 2" +$ns_ at 345.536065424777 "$god_ set-dist 37 44 2" +$ns_ at 345.550993882682 "$god_ set-dist 13 45 2" +$ns_ at 345.555075543465 "$node_(7) setdest 144.281707473703 360.621517526283 0.000000000000" +$ns_ at 345.684083945309 "$god_ set-dist 5 18 1" +$ns_ at 345.685882368350 "$god_ set-dist 9 44 3" +$ns_ at 345.685882368350 "$god_ set-dist 35 44 2" +$ns_ at 345.701904948502 "$god_ set-dist 3 11 2" +$ns_ at 345.711331411020 "$god_ set-dist 25 34 2" +$ns_ at 345.984603213174 "$god_ set-dist 11 34 2" +$ns_ at 346.130794696524 "$god_ set-dist 21 35 1" +$ns_ at 346.190665867594 "$god_ set-dist 37 43 2" +$ns_ at 346.218836181981 "$god_ set-dist 1 43 2" +$ns_ at 346.218836181981 "$god_ set-dist 43 47 3" +$ns_ at 346.356236451277 "$god_ set-dist 35 43 1" +$ns_ at 346.356236451277 "$god_ set-dist 43 47 2" +$ns_ at 346.499545618965 "$god_ set-dist 6 20 1" +$ns_ at 346.503388232981 "$god_ set-dist 18 31 2" +$ns_ at 346.558004220901 "$node_(19) setdest 285.629254977890 279.238646054091 0.000000000000" +$ns_ at 346.742390512059 "$node_(22) setdest 96.394265664277 440.495481161182 0.000000000000" +$ns_ at 346.929161002831 "$god_ set-dist 0 34 2" +$ns_ at 346.929161002831 "$god_ set-dist 0 39 3" +$ns_ at 346.929161002831 "$god_ set-dist 0 44 3" +$ns_ at 346.955980188153 "$god_ set-dist 44 48 2" +$ns_ at 346.972696424857 "$god_ set-dist 4 30 2" +$ns_ at 347.067942903050 "$god_ set-dist 2 43 3" +$ns_ at 347.067942903050 "$god_ set-dist 13 43 2" +$ns_ at 347.067942903050 "$god_ set-dist 27 43 3" +$ns_ at 347.293565700913 "$god_ set-dist 5 12 1" +$ns_ at 347.349997583357 "$node_(15) setdest 73.605429453293 133.474790552341 6.451142095457" +$ns_ at 347.410389232064 "$node_(24) setdest 341.286553416309 295.784952473657 0.000000000000" +$ns_ at 347.499215056614 "$god_ set-dist 15 34 2" +$ns_ at 347.592044395090 "$node_(30) setdest 349.532681215275 362.455983504384 0.000000000000" +$ns_ at 347.632643919626 "$god_ set-dist 26 29 1" +$ns_ at 348.514385727289 "$god_ set-dist 3 9 1" +$ns_ at 348.643648703366 "$god_ set-dist 18 45 1" +$ns_ at 348.676963487621 "$god_ set-dist 10 21 1" +$ns_ at 348.703949027777 "$god_ set-dist 14 49 2" +$ns_ at 348.891130693911 "$god_ set-dist 2 43 2" +$ns_ at 348.891130693911 "$god_ set-dist 14 43 1" +$ns_ at 348.891130693911 "$god_ set-dist 27 43 2" +$ns_ at 348.973188439433 "$god_ set-dist 2 36 3" +$ns_ at 348.973188439433 "$god_ set-dist 27 36 3" +$ns_ at 348.973188439433 "$god_ set-dist 28 36 3" +$ns_ at 348.973188439433 "$god_ set-dist 36 46 2" +$ns_ at 349.067391304849 "$god_ set-dist 18 43 2" +$ns_ at 349.134286354458 "$node_(40) setdest 5.854505863445 453.763000872616 5.282966640977" +$ns_ at 349.280661212137 "$god_ set-dist 28 29 1" +$ns_ at 349.280661212137 "$god_ set-dist 28 36 2" +$ns_ at 349.415856976963 "$god_ set-dist 24 40 2" +$ns_ at 349.430584393573 "$god_ set-dist 30 40 2" +$ns_ at 349.491197393696 "$god_ set-dist 10 36 1" +$ns_ at 349.548728349274 "$god_ set-dist 13 29 2" +$ns_ at 349.612474839186 "$god_ set-dist 4 13 2" +$ns_ at 349.615790247687 "$god_ set-dist 12 45 1" +$ns_ at 349.716583834452 "$god_ set-dist 34 40 2" +$ns_ at 349.738318479079 "$god_ set-dist 6 8 2" +$ns_ at 349.738318479079 "$god_ set-dist 6 19 1" +$ns_ at 349.738318479079 "$god_ set-dist 6 31 2" +$ns_ at 349.740446534605 "$god_ set-dist 5 20 1" +$ns_ at 349.997632236709 "$god_ set-dist 25 33 2" +$ns_ at 350.091913692007 "$god_ set-dist 12 14 1" +$ns_ at 350.157071019949 "$god_ set-dist 21 28 2" +$ns_ at 350.157071019949 "$god_ set-dist 28 35 1" +$ns_ at 350.206934494379 "$god_ set-dist 15 33 2" +$ns_ at 350.340388874788 "$god_ set-dist 0 4 2" +$ns_ at 350.386018947317 "$god_ set-dist 13 16 2" +$ns_ at 350.530838852665 "$god_ set-dist 5 28 2" +$ns_ at 350.592377119041 "$god_ set-dist 11 17 2" +$ns_ at 350.592377119041 "$god_ set-dist 11 39 3" +$ns_ at 350.592377119041 "$god_ set-dist 11 44 3" +$ns_ at 350.934934099444 "$god_ set-dist 5 27 2" +$ns_ at 350.949475390209 "$god_ set-dist 3 45 1" +$ns_ at 351.050561903940 "$god_ set-dist 5 36 1" +$ns_ at 351.117219011075 "$god_ set-dist 10 35 1" +$ns_ at 351.117219011075 "$god_ set-dist 10 47 2" +$ns_ at 351.221967092869 "$god_ set-dist 14 31 2" +$ns_ at 351.297167240652 "$god_ set-dist 3 5 1" +$ns_ at 351.369042812997 "$god_ set-dist 8 14 2" +$ns_ at 351.398321516885 "$god_ set-dist 27 29 1" +$ns_ at 351.398321516885 "$god_ set-dist 27 36 2" +$ns_ at 351.822226793828 "$node_(13) setdest 248.252037362295 456.734890584102 0.000000000000" +$ns_ at 351.822587440336 "$god_ set-dist 26 45 2" +$ns_ at 352.013070936805 "$god_ set-dist 6 17 1" +$ns_ at 352.304028606319 "$god_ set-dist 35 42 1" +$ns_ at 352.304028606319 "$god_ set-dist 42 47 2" +$ns_ at 352.371575787921 "$god_ set-dist 8 40 2" +$ns_ at 352.547194041087 "$god_ set-dist 0 35 1" +$ns_ at 352.747215173359 "$god_ set-dist 14 15 2" +$ns_ at 352.907731089938 "$god_ set-dist 15 40 2" +$ns_ at 352.942998126886 "$node_(31) setdest 87.473710112863 134.824101357584 0.000000000000" +$ns_ at 352.962716884938 "$god_ set-dist 9 15 1" +$ns_ at 353.067360623560 "$god_ set-dist 18 47 1" +$ns_ at 353.071775574387 "$god_ set-dist 22 35 1" +$ns_ at 353.138703371021 "$god_ set-dist 5 38 1" +$ns_ at 353.492862102177 "$god_ set-dist 3 12 1" +$ns_ at 353.545951324512 "$god_ set-dist 8 12 1" +$ns_ at 353.636374601402 "$god_ set-dist 5 30 1" +$ns_ at 353.648409160934 "$god_ set-dist 12 15 2" +$ns_ at 353.676977407084 "$node_(39) setdest 317.466148997880 27.333705379956 0.689962686392" +$ns_ at 353.716450140768 "$god_ set-dist 35 41 2" +$ns_ at 353.895825947433 "$god_ set-dist 6 14 1" +$ns_ at 353.909845168117 "$god_ set-dist 3 36 1" +$ns_ at 354.283045813832 "$god_ set-dist 5 23 1" +$ns_ at 354.421794073794 "$god_ set-dist 19 28 1" +$ns_ at 354.443309211194 "$god_ set-dist 4 34 2" +$ns_ at 354.675962742719 "$god_ set-dist 10 47 3" +$ns_ at 354.675962742719 "$god_ set-dist 35 47 2" +$ns_ at 354.675962742719 "$god_ set-dist 42 47 3" +$ns_ at 354.675962742719 "$god_ set-dist 43 47 3" +$ns_ at 354.725666043224 "$god_ set-dist 11 19 2" +$ns_ at 354.740136419547 "$god_ set-dist 2 36 2" +$ns_ at 354.740136419547 "$god_ set-dist 14 36 1" +$ns_ at 354.759510171419 "$god_ set-dist 4 49 2" +$ns_ at 354.819354759670 "$god_ set-dist 19 25 2" +$ns_ at 355.037413163699 "$god_ set-dist 4 12 1" +$ns_ at 355.179037644995 "$god_ set-dist 17 40 2" +$ns_ at 355.179037644995 "$god_ set-dist 39 40 3" +$ns_ at 355.179037644995 "$god_ set-dist 40 44 3" +$ns_ at 355.587878997244 "$god_ set-dist 24 44 2" +$ns_ at 355.697462463772 "$god_ set-dist 16 42 2" +$ns_ at 355.697462463772 "$god_ set-dist 41 42 3" +$ns_ at 355.862361418051 "$node_(0) setdest 151.568239095201 477.618329772869 0.000000000000" +$ns_ at 356.039359327176 "$god_ set-dist 31 40 2" +$ns_ at 356.099936292166 "$god_ set-dist 15 18 2" +$ns_ at 356.210167544730 "$god_ set-dist 34 45 2" +$ns_ at 356.412324894086 "$god_ set-dist 31 49 2" +$ns_ at 356.550829040668 "$god_ set-dist 5 40 2" +$ns_ at 356.649953292831 "$god_ set-dist 15 49 2" +$ns_ at 356.713930785007 "$god_ set-dist 10 47 2" +$ns_ at 356.713930785007 "$god_ set-dist 16 47 1" +$ns_ at 356.713930785007 "$god_ set-dist 43 47 2" +$ns_ at 356.854436079979 "$god_ set-dist 22 29 1" +$ns_ at 356.868067478811 "$god_ set-dist 6 35 1" +$ns_ at 356.899497493038 "$god_ set-dist 11 13 2" +$ns_ at 357.031361467920 "$god_ set-dist 11 35 2" +$ns_ at 357.202010045271 "$god_ set-dist 15 19 2" +$ns_ at 357.279678445076 "$god_ set-dist 25 35 2" +$ns_ at 357.641730117044 "$god_ set-dist 15 17 2" +$ns_ at 357.721268199744 "$god_ set-dist 45 49 2" +$ns_ at 358.017138059412 "$god_ set-dist 43 44 2" +$ns_ at 358.019018380903 "$god_ set-dist 6 15 3" +$ns_ at 358.019018380903 "$god_ set-dist 15 35 2" +$ns_ at 358.019018380903 "$god_ set-dist 15 42 3" +$ns_ at 358.026139724736 "$god_ set-dist 34 49 2" +$ns_ at 358.211868387759 "$god_ set-dist 47 49 2" +$ns_ at 358.316671011814 "$god_ set-dist 2 49 3" +$ns_ at 358.316671011814 "$god_ set-dist 46 49 2" +$ns_ at 358.377097924950 "$god_ set-dist 2 29 1" +$ns_ at 358.377097924950 "$god_ set-dist 2 49 2" +$ns_ at 358.409211974999 "$god_ set-dist 8 49 2" +$ns_ at 358.521973577236 "$god_ set-dist 5 11 2" +$ns_ at 358.573631739600 "$god_ set-dist 37 40 2" +$ns_ at 358.636278767065 "$god_ set-dist 5 9 2" +$ns_ at 358.739553169052 "$node_(38) setdest 131.750225416396 340.873102983834 0.747520512781" +$ns_ at 358.769634440857 "$god_ set-dist 12 31 1" +$ns_ at 358.852030329145 "$god_ set-dist 7 23 1" +$ns_ at 358.912605668160 "$god_ set-dist 19 40 2" +$ns_ at 358.929178071541 "$god_ set-dist 6 25 3" +$ns_ at 358.929178071541 "$god_ set-dist 17 25 2" +$ns_ at 358.929178071541 "$god_ set-dist 25 42 3" +$ns_ at 358.943841947884 "$node_(15) setdest 73.605429453293 133.474790552341 0.000000000000" +$ns_ at 358.958827913031 "$god_ set-dist 12 47 1" +$ns_ at 358.987362940262 "$god_ set-dist 8 35 2" +$ns_ at 359.037425667324 "$god_ set-dist 5 21 1" +$ns_ at 359.149944574147 "$god_ set-dist 31 35 2" +$ns_ at 359.282170796885 "$node_(10) setdest 449.817979606367 371.844869070624 0.000000000000" +$ns_ at 359.357806734068 "$god_ set-dist 5 44 1" +$ns_ at 359.378262696221 "$god_ set-dist 35 49 2" +$ns_ at 359.416099024577 "$god_ set-dist 5 39 1" +$ns_ at 359.546107604719 "$node_(41) setdest 491.167139649104 174.210384775829 6.362425972099" +$ns_ at 359.550315419406 "$god_ set-dist 26 32 1" +$ns_ at 359.600642753936 "$god_ set-dist 18 31 1" +$ns_ at 359.833190523433 "$god_ set-dist 21 40 3" +$ns_ at 359.833190523433 "$god_ set-dist 35 40 2" +$ns_ at 359.889656789216 "$god_ set-dist 24 49 2" +$ns_ at 360.058545089854 "$god_ set-dist 4 26 2" +$ns_ at 360.078015514319 "$god_ set-dist 39 41 1" +$ns_ at 360.233050477732 "$god_ set-dist 6 11 3" +$ns_ at 360.233050477732 "$god_ set-dist 10 11 3" +$ns_ at 360.233050477732 "$god_ set-dist 11 14 2" +$ns_ at 360.233050477732 "$god_ set-dist 11 43 3" +$ns_ at 360.407100885176 "$god_ set-dist 5 48 1" +$ns_ at 360.443684708983 "$node_(48) setdest 489.444367076370 436.967760531533 1.284866136790" +$ns_ at 360.756712920927 "$god_ set-dist 5 32 1" +$ns_ at 360.757948288347 "$god_ set-dist 11 21 3" +$ns_ at 360.757948288347 "$god_ set-dist 11 37 2" +$ns_ at 360.757948288347 "$god_ set-dist 11 48 3" +$ns_ at 360.867975629310 "$god_ set-dist 1 3 1" +$ns_ at 360.978993593527 "$god_ set-dist 12 43 2" +$ns_ at 361.219205057388 "$god_ set-dist 2 49 3" +$ns_ at 361.219205057388 "$god_ set-dist 11 49 3" +$ns_ at 361.219205057388 "$god_ set-dist 27 49 3" +$ns_ at 361.219205057388 "$god_ set-dist 29 49 2" +$ns_ at 361.219205057388 "$god_ set-dist 40 49 3" +$ns_ at 361.220417548323 "$god_ set-dist 0 49 3" +$ns_ at 361.220417548323 "$god_ set-dist 19 49 2" +$ns_ at 361.220417548323 "$god_ set-dist 22 49 3" +$ns_ at 361.220417548323 "$god_ set-dist 28 49 3" +$ns_ at 361.220965061469 "$god_ set-dist 7 34 2" +$ns_ at 361.268029132906 "$node_(2) setdest 48.792578081800 26.783152499910 7.991782306296" +$ns_ at 361.526773191774 "$god_ set-dist 39 43 2" +$ns_ at 361.578196645199 "$node_(11) setdest 13.535758670289 331.205661848834 0.000000000000" +$ns_ at 361.584749693522 "$god_ set-dist 4 24 2" +$ns_ at 361.702138913220 "$god_ set-dist 20 45 1" +$ns_ at 361.713918922001 "$god_ set-dist 11 36 3" +$ns_ at 361.713918922001 "$god_ set-dist 29 36 2" +$ns_ at 362.038533594763 "$god_ set-dist 8 19 2" +$ns_ at 362.094420278639 "$god_ set-dist 17 44 2" +$ns_ at 362.492825101688 "$god_ set-dist 12 15 1" +$ns_ at 362.499119005274 "$god_ set-dist 6 41 2" +$ns_ at 362.499119005274 "$god_ set-dist 17 41 1" +$ns_ at 362.499119005274 "$god_ set-dist 41 42 2" +$ns_ at 362.773314185025 "$node_(43) setdest 495.718119458613 334.246522635984 0.000000000000" +$ns_ at 362.844976178152 "$god_ set-dist 18 34 2" +$ns_ at 362.880997885947 "$god_ set-dist 13 29 1" +$ns_ at 362.944578918795 "$god_ set-dist 6 21 1" +$ns_ at 363.120806636825 "$god_ set-dist 3 40 2" +$ns_ at 363.432900325451 "$god_ set-dist 2 3 1" +$ns_ at 363.444953941200 "$god_ set-dist 34 46 2" +$ns_ at 363.621978259454 "$god_ set-dist 18 35 2" +$ns_ at 363.746357315094 "$god_ set-dist 11 47 1" +$ns_ at 363.933555841729 "$god_ set-dist 20 41 1" +$ns_ at 363.959779360713 "$god_ set-dist 14 27 2" +$ns_ at 363.959779360713 "$god_ set-dist 27 36 3" +$ns_ at 363.959779360713 "$god_ set-dist 27 43 3" +$ns_ at 364.155622667463 "$god_ set-dist 14 40 2" +$ns_ at 364.155622667463 "$god_ set-dist 36 40 3" +$ns_ at 364.155622667463 "$god_ set-dist 40 43 3" +$ns_ at 364.480253668460 "$god_ set-dist 4 33 2" +$ns_ at 364.636744826502 "$god_ set-dist 17 49 2" +$ns_ at 364.706022057997 "$god_ set-dist 6 8 3" +$ns_ at 364.706022057997 "$god_ set-dist 8 17 2" +$ns_ at 364.706022057997 "$god_ set-dist 8 42 3" +$ns_ at 364.796737241507 "$node_(34) setdest 403.614649887161 310.110177729027 0.000000000000" +$ns_ at 364.797392487527 "$god_ set-dist 33 41 1" +$ns_ at 364.968733373771 "$god_ set-dist 6 36 1" +$ns_ at 365.372014659452 "$god_ set-dist 8 43 3" +$ns_ at 365.372014659452 "$god_ set-dist 15 43 3" +$ns_ at 365.372014659452 "$god_ set-dist 16 43 2" +$ns_ at 365.372014659452 "$god_ set-dist 25 43 3" +$ns_ at 365.372014659452 "$god_ set-dist 43 47 3" +$ns_ at 365.404308356736 "$node_(27) setdest 359.780523188959 285.401140307877 1.474988594837" +$ns_ at 365.555075543465 "$node_(7) setdest 294.271856129297 86.050619231194 6.856238326546" +$ns_ at 365.699427118867 "$god_ set-dist 2 15 1" +$ns_ at 365.773574847324 "$god_ set-dist 2 31 1" +$ns_ at 365.889864593947 "$god_ set-dist 11 38 3" +$ns_ at 365.889864593947 "$god_ set-dist 27 38 3" +$ns_ at 365.889864593947 "$god_ set-dist 29 38 2" +$ns_ at 365.889864593947 "$god_ set-dist 38 40 3" +$ns_ at 365.958763184778 "$god_ set-dist 38 41 1" +$ns_ at 366.159972595833 "$god_ set-dist 4 35 2" +$ns_ at 366.166258378581 "$god_ set-dist 21 41 1" +$ns_ at 366.167654817154 "$god_ set-dist 28 35 2" +$ns_ at 366.434089712570 "$god_ set-dist 19 41 1" +$ns_ at 366.476716681116 "$god_ set-dist 9 49 3" +$ns_ at 366.476716681116 "$god_ set-dist 37 49 2" +$ns_ at 366.558004220901 "$node_(19) setdest 111.115632022743 226.274947883838 6.383427846654" +$ns_ at 366.562568904041 "$god_ set-dist 9 35 2" +$ns_ at 366.678351856585 "$god_ set-dist 25 49 2" +$ns_ at 366.711825898259 "$god_ set-dist 39 48 2" +$ns_ at 366.742390512059 "$node_(22) setdest 461.250306908056 10.369724514173 7.037643246313" +$ns_ at 366.993696197608 "$god_ set-dist 2 21 2" +$ns_ at 366.993696197608 "$god_ set-dist 2 37 1" +$ns_ at 367.098087204904 "$god_ set-dist 3 27 1" +$ns_ at 367.098087204904 "$god_ set-dist 27 36 2" +$ns_ at 367.098087204904 "$god_ set-dist 27 38 2" +$ns_ at 367.098087204904 "$god_ set-dist 27 43 2" +$ns_ at 367.410389232064 "$node_(24) setdest 190.424913914963 97.438246772428 2.007973533510" +$ns_ at 367.578092379654 "$god_ set-dist 2 19 1" +$ns_ at 367.592044395090 "$node_(30) setdest 270.705296612974 277.932583775832 6.707873557517" +$ns_ at 367.599233622750 "$god_ set-dist 7 20 1" +$ns_ at 367.699787351051 "$god_ set-dist 2 14 2" +$ns_ at 367.759023716760 "$god_ set-dist 6 15 2" +$ns_ at 367.759023716760 "$god_ set-dist 15 19 1" +$ns_ at 367.759023716760 "$god_ set-dist 15 42 2" +$ns_ at 367.759023716760 "$god_ set-dist 15 43 2" +$ns_ at 367.819781902670 "$god_ set-dist 13 49 3" +$ns_ at 367.819781902670 "$god_ set-dist 26 49 3" +$ns_ at 367.819781902670 "$god_ set-dist 33 49 2" +$ns_ at 367.899303378021 "$god_ set-dist 8 10 3" +$ns_ at 367.899303378021 "$god_ set-dist 10 16 2" +$ns_ at 367.899303378021 "$god_ set-dist 10 25 3" +$ns_ at 367.899303378021 "$god_ set-dist 10 47 3" +$ns_ at 367.940732828574 "$god_ set-dist 7 12 1" +$ns_ at 367.959746676026 "$god_ set-dist 6 8 2" +$ns_ at 367.959746676026 "$god_ set-dist 8 10 2" +$ns_ at 367.959746676026 "$god_ set-dist 8 19 1" +$ns_ at 367.959746676026 "$god_ set-dist 8 42 2" +$ns_ at 367.959746676026 "$god_ set-dist 8 43 2" +$ns_ at 367.984825816637 "$god_ set-dist 2 8 1" +$ns_ at 368.115251302497 "$god_ set-dist 40 45 2" +$ns_ at 368.333682668023 "$god_ set-dist 15 18 1" +$ns_ at 368.353222052623 "$god_ set-dist 34 44 2" +$ns_ at 368.436979973041 "$god_ set-dist 7 47 1" +$ns_ at 368.451438651823 "$god_ set-dist 29 34 2" +$ns_ at 368.554663192771 "$god_ set-dist 6 47 2" +$ns_ at 368.554663192771 "$god_ set-dist 10 47 2" +$ns_ at 368.554663192771 "$god_ set-dist 19 47 1" +$ns_ at 368.554663192771 "$god_ set-dist 42 47 2" +$ns_ at 368.554663192771 "$god_ set-dist 43 47 2" +$ns_ at 368.638852326449 "$node_(5) setdest 295.570665150578 170.299831992566 0.000000000000" +$ns_ at 368.704674117465 "$god_ set-dist 22 30 1" +$ns_ at 368.732238199272 "$god_ set-dist 4 41 2" +$ns_ at 368.815713165960 "$god_ set-dist 29 40 2" +$ns_ at 368.947718593090 "$god_ set-dist 7 34 1" +$ns_ at 369.236551326846 "$god_ set-dist 17 22 1" +$ns_ at 369.236551326846 "$god_ set-dist 22 39 2" +$ns_ at 369.412762297243 "$god_ set-dist 13 20 1" +$ns_ at 369.412762297243 "$god_ set-dist 13 49 2" +$ns_ at 369.413731653562 "$node_(35) setdest 327.744333578931 353.475193381971 0.000000000000" +$ns_ at 369.488319324405 "$god_ set-dist 22 37 1" +$ns_ at 369.599083329304 "$god_ set-dist 1 30 1" +$ns_ at 369.913326724706 "$god_ set-dist 4 14 2" +$ns_ at 369.951864109287 "$god_ set-dist 19 27 1" +$ns_ at 369.951864109287 "$god_ set-dist 21 27 2" +$ns_ at 370.018750126499 "$god_ set-dist 2 47 1" +$ns_ at 370.087515672105 "$node_(49) setdest 424.522930011333 5.854346141616 0.000000000000" +$ns_ at 370.171031604336 "$god_ set-dist 30 45 1" +$ns_ at 370.407949830783 "$god_ set-dist 0 29 1" +$ns_ at 370.558165409436 "$node_(25) setdest 147.769813480815 22.564993284996 0.000000000000" +$ns_ at 370.694980512692 "$god_ set-dist 1 7 1" +$ns_ at 371.079593972596 "$god_ set-dist 24 41 1" +$ns_ at 371.410457318496 "$god_ set-dist 6 11 2" +$ns_ at 371.410457318496 "$god_ set-dist 10 11 2" +$ns_ at 371.410457318496 "$god_ set-dist 11 19 1" +$ns_ at 371.410457318496 "$god_ set-dist 11 21 2" +$ns_ at 371.410457318496 "$god_ set-dist 11 36 2" +$ns_ at 371.410457318496 "$god_ set-dist 11 38 2" +$ns_ at 371.410457318496 "$god_ set-dist 11 43 2" +$ns_ at 371.410457318496 "$god_ set-dist 11 48 2" +$ns_ at 371.495993076592 "$god_ set-dist 14 21 1" +$ns_ at 371.704194484910 "$god_ set-dist 8 43 3" +$ns_ at 371.704194484910 "$god_ set-dist 11 43 3" +$ns_ at 371.704194484910 "$god_ set-dist 15 43 3" +$ns_ at 371.704194484910 "$god_ set-dist 19 43 2" +$ns_ at 371.704194484910 "$god_ set-dist 43 47 3" +$ns_ at 371.772879550812 "$god_ set-dist 22 24 1" +$ns_ at 371.787442691799 "$god_ set-dist 2 39 2" +$ns_ at 371.787442691799 "$god_ set-dist 9 39 2" +$ns_ at 371.787442691799 "$god_ set-dist 37 39 1" +$ns_ at 371.822226793828 "$node_(13) setdest 292.126027462588 359.511029738536 4.078564936840" +$ns_ at 371.857445939925 "$god_ set-dist 6 8 3" +$ns_ at 371.857445939925 "$god_ set-dist 6 11 3" +$ns_ at 371.857445939925 "$god_ set-dist 6 15 3" +$ns_ at 371.857445939925 "$god_ set-dist 6 19 2" +$ns_ at 371.857445939925 "$god_ set-dist 6 47 3" +$ns_ at 371.895097425762 "$god_ set-dist 11 21 3" +$ns_ at 371.895097425762 "$god_ set-dist 19 21 2" +$ns_ at 371.895097425762 "$god_ set-dist 21 27 3" +$ns_ at 372.240551272446 "$god_ set-dist 18 40 3" +$ns_ at 372.240551272446 "$god_ set-dist 40 41 3" +$ns_ at 372.240551272446 "$god_ set-dist 40 46 2" +$ns_ at 372.942998126886 "$node_(31) setdest 479.365791591835 120.174388866004 0.353303168315" +$ns_ at 373.432647606807 "$god_ set-dist 23 46 2" +$ns_ at 373.463141850201 "$god_ set-dist 9 17 1" +$ns_ at 373.642651887903 "$god_ set-dist 4 40 2" +$ns_ at 373.642651887903 "$god_ set-dist 25 40 3" +$ns_ at 373.868380841442 "$god_ set-dist 6 47 2" +$ns_ at 373.868380841442 "$god_ set-dist 17 47 1" +$ns_ at 373.868380841442 "$god_ set-dist 43 47 2" +$ns_ at 374.452330714786 "$god_ set-dist 9 14 2" +$ns_ at 374.515805870409 "$god_ set-dist 7 32 1" +$ns_ at 374.550097266138 "$node_(40) setdest 5.854505863445 453.763000872616 0.000000000000" +$ns_ at 374.684980306481 "$god_ set-dist 14 28 2" +$ns_ at 374.684980306481 "$god_ set-dist 21 28 3" +$ns_ at 374.794038013111 "$god_ set-dist 8 42 3" +$ns_ at 374.794038013111 "$god_ set-dist 15 42 3" +$ns_ at 374.794038013111 "$god_ set-dist 19 42 2" +$ns_ at 374.927008768509 "$god_ set-dist 13 49 3" +$ns_ at 374.927008768509 "$god_ set-dist 20 49 2" +$ns_ at 374.992502273620 "$god_ set-dist 9 30 1" +$ns_ at 375.246762161232 "$god_ set-dist 21 28 2" +$ns_ at 375.246762161232 "$god_ set-dist 28 30 1" +$ns_ at 375.389893197606 "$god_ set-dist 22 33 1" +$ns_ at 375.389893197606 "$god_ set-dist 22 44 2" +$ns_ at 375.407578076537 "$god_ set-dist 2 13 2" +$ns_ at 375.544555449648 "$god_ set-dist 12 48 2" +$ns_ at 375.862361418051 "$node_(0) setdest 459.129399503329 419.325495422749 4.833630857848" +$ns_ at 375.922272618640 "$god_ set-dist 2 17 1" +$ns_ at 376.148814007407 "$god_ set-dist 6 40 3" +$ns_ at 376.148814007407 "$god_ set-dist 10 40 3" +$ns_ at 376.148814007407 "$god_ set-dist 13 40 2" +$ns_ at 376.148814007407 "$god_ set-dist 40 48 3" +$ns_ at 376.174637813516 "$god_ set-dist 7 38 1" +$ns_ at 376.174637813516 "$god_ set-dist 38 40 2" +$ns_ at 376.367753627608 "$god_ set-dist 8 10 3" +$ns_ at 376.367753627608 "$god_ set-dist 10 11 3" +$ns_ at 376.367753627608 "$god_ set-dist 10 15 3" +$ns_ at 376.367753627608 "$god_ set-dist 10 19 2" +$ns_ at 376.614668414135 "$god_ set-dist 19 25 1" +$ns_ at 377.052227760939 "$god_ set-dist 30 41 1" +$ns_ at 377.450650798962 "$god_ set-dist 15 41 2" +$ns_ at 377.534040491289 "$god_ set-dist 20 22 1" +$ns_ at 377.583131739487 "$god_ set-dist 18 30 1" +$ns_ at 377.616014498749 "$god_ set-dist 22 23 1" +$ns_ at 377.634137611747 "$god_ set-dist 8 41 2" +$ns_ at 377.799137174722 "$god_ set-dist 16 48 2" +$ns_ at 377.953514786784 "$god_ set-dist 7 18 1" +$ns_ at 377.953514786784 "$god_ set-dist 18 40 2" +$ns_ at 378.041681932930 "$god_ set-dist 3 41 1" +$ns_ at 378.105697150044 "$god_ set-dist 12 22 1" +$ns_ at 378.105697150044 "$god_ set-dist 22 49 2" +$ns_ at 378.253601081373 "$god_ set-dist 2 12 1" +$ns_ at 378.253601081373 "$god_ set-dist 2 44 2" +$ns_ at 378.253601081373 "$god_ set-dist 2 49 2" +$ns_ at 378.359563016555 "$god_ set-dist 0 17 1" +$ns_ at 378.359563016555 "$god_ set-dist 0 39 2" +$ns_ at 378.476408217956 "$god_ set-dist 23 41 1" +$ns_ at 378.489663133839 "$god_ set-dist 16 22 1" +$ns_ at 378.516311220747 "$god_ set-dist 22 31 1" +$ns_ at 378.567018079548 "$god_ set-dist 7 41 1" +$ns_ at 378.567018079548 "$god_ set-dist 40 41 2" +$ns_ at 378.652401004239 "$god_ set-dist 1 40 3" +$ns_ at 378.652401004239 "$god_ set-dist 5 40 3" +$ns_ at 378.652401004239 "$god_ set-dist 7 40 2" +$ns_ at 378.652401004239 "$god_ set-dist 18 40 3" +$ns_ at 378.652401004239 "$god_ set-dist 38 40 3" +$ns_ at 378.652401004239 "$god_ set-dist 40 41 3" +$ns_ at 378.862320621462 "$god_ set-dist 11 48 3" +$ns_ at 378.862320621462 "$god_ set-dist 19 48 2" +$ns_ at 378.943841947884 "$node_(15) setdest 478.459119801292 172.455313352566 2.551933243126" +$ns_ at 378.954239162129 "$god_ set-dist 5 22 1" +$ns_ at 378.954239162129 "$god_ set-dist 5 40 2" +$ns_ at 378.972101010017 "$god_ set-dist 20 26 1" +$ns_ at 379.106959333819 "$god_ set-dist 3 31 1" +$ns_ at 379.168763665591 "$god_ set-dist 34 41 1" +$ns_ at 379.282170796885 "$node_(10) setdest 262.586135910339 213.238964754554 1.939041713094" +$ns_ at 379.324943760895 "$god_ set-dist 2 26 2" +$ns_ at 379.350770445676 "$god_ set-dist 3 18 1" +$ns_ at 379.370489841328 "$god_ set-dist 11 36 3" +$ns_ at 379.370489841328 "$god_ set-dist 19 36 2" +$ns_ at 379.590419365711 "$god_ set-dist 2 30 1" +$ns_ at 379.643028491009 "$god_ set-dist 2 16 1" +$ns_ at 379.652554945855 "$god_ set-dist 4 30 1" +$ns_ at 379.779333855159 "$god_ set-dist 15 22 1" +$ns_ at 379.798542785529 "$god_ set-dist 21 27 2" +$ns_ at 379.798542785529 "$god_ set-dist 27 30 1" +$ns_ at 380.422473877012 "$god_ set-dist 13 43 1" +$ns_ at 380.481379998391 "$god_ set-dist 0 24 1" +$ns_ at 380.684705223587 "$god_ set-dist 22 34 1" +$ns_ at 380.692596704664 "$god_ set-dist 6 15 2" +$ns_ at 380.692596704664 "$god_ set-dist 10 15 2" +$ns_ at 380.692596704664 "$god_ set-dist 15 17 1" +$ns_ at 380.692596704664 "$god_ set-dist 15 42 2" +$ns_ at 380.692596704664 "$god_ set-dist 15 43 2" +$ns_ at 380.932339119786 "$god_ set-dist 7 25 1" +$ns_ at 380.982812691516 "$god_ set-dist 10 11 2" +$ns_ at 380.982812691516 "$god_ set-dist 10 26 1" +$ns_ at 380.982812691516 "$god_ set-dist 10 40 2" +$ns_ at 381.003067792548 "$god_ set-dist 31 41 2" +$ns_ at 381.076194340813 "$god_ set-dist 0 2 2" +$ns_ at 381.120362757273 "$god_ set-dist 41 46 2" +$ns_ at 381.275071251768 "$god_ set-dist 29 41 2" +$ns_ at 381.286822250602 "$god_ set-dist 5 10 1" +$ns_ at 381.286822250602 "$god_ set-dist 8 10 2" +$ns_ at 381.286822250602 "$god_ set-dist 10 25 2" +$ns_ at 381.311742461269 "$god_ set-dist 3 47 1" +$ns_ at 381.578196645199 "$node_(11) setdest 489.770229643259 448.214683385718 4.246974560286" +$ns_ at 381.596033025376 "$god_ set-dist 3 15 1" +$ns_ at 381.611900178178 "$god_ set-dist 3 11 1" +$ns_ at 381.611900178178 "$god_ set-dist 6 11 2" +$ns_ at 381.611900178178 "$god_ set-dist 11 36 2" +$ns_ at 381.611900178178 "$god_ set-dist 11 43 2" +$ns_ at 381.611900178178 "$god_ set-dist 11 48 2" +$ns_ at 381.806394581301 "$god_ set-dist 13 38 1" +$ns_ at 381.806394581301 "$god_ set-dist 13 49 2" +$ns_ at 381.817401337284 "$god_ set-dist 27 37 1" +$ns_ at 381.817401337284 "$god_ set-dist 27 39 2" +$ns_ at 381.825720984620 "$god_ set-dist 30 31 1" +$ns_ at 381.952559274777 "$god_ set-dist 22 47 1" +$ns_ at 382.041686472705 "$god_ set-dist 2 25 1" +$ns_ at 382.041686472705 "$god_ set-dist 25 40 2" +$ns_ at 382.110851237350 "$god_ set-dist 5 13 1" +$ns_ at 382.398829894328 "$god_ set-dist 30 47 1" +$ns_ at 382.518128999919 "$god_ set-dist 1 40 2" +$ns_ at 382.518128999919 "$god_ set-dist 18 40 2" +$ns_ at 382.518128999919 "$god_ set-dist 29 40 1" +$ns_ at 382.726081633999 "$god_ set-dist 15 30 1" +$ns_ at 382.773314185025 "$node_(43) setdest 22.319811313069 416.606834543455 7.841383868597" +$ns_ at 382.829998143650 "$god_ set-dist 14 45 2" +$ns_ at 382.871131825928 "$god_ set-dist 12 44 2" +$ns_ at 383.030152599810 "$god_ set-dist 13 45 1" +$ns_ at 383.096482327451 "$god_ set-dist 28 37 1" +$ns_ at 383.096482327451 "$god_ set-dist 28 39 2" +$ns_ at 383.159295961280 "$god_ set-dist 19 32 2" +$ns_ at 383.299552589187 "$god_ set-dist 22 32 1" +$ns_ at 383.339697824890 "$god_ set-dist 10 37 1" +$ns_ at 383.460513949293 "$god_ set-dist 12 13 1" +$ns_ at 383.620005174443 "$god_ set-dist 41 47 2" +$ns_ at 383.672899142874 "$god_ set-dist 14 41 1" +$ns_ at 383.743173235297 "$god_ set-dist 0 42 1" +$ns_ at 383.988669301655 "$god_ set-dist 15 27 1" +$ns_ at 384.010341112525 "$god_ set-dist 32 41 1" +$ns_ at 384.155445458770 "$god_ set-dist 23 29 2" +$ns_ at 384.387353652318 "$god_ set-dist 0 23 1" +$ns_ at 384.415646711200 "$god_ set-dist 11 21 2" +$ns_ at 384.415646711200 "$god_ set-dist 11 37 1" +$ns_ at 384.415646711200 "$god_ set-dist 11 39 2" +$ns_ at 384.517291228707 "$god_ set-dist 5 43 1" +$ns_ at 384.517291228707 "$god_ set-dist 8 43 2" +$ns_ at 384.517291228707 "$god_ set-dist 25 43 2" +$ns_ at 384.653542022428 "$god_ set-dist 1 22 1" +$ns_ at 384.669391465110 "$god_ set-dist 7 36 1" +$ns_ at 384.748003036085 "$node_(16) setdest 259.699170481746 148.584388640140 0.000000000000" +$ns_ at 384.796737241507 "$node_(34) setdest 75.989689399920 181.034937886351 0.957147087689" +$ns_ at 384.822042463813 "$node_(30) setdest 270.705296612974 277.932583775832 0.000000000000" +$ns_ at 384.892254743386 "$god_ set-dist 11 30 1" +$ns_ at 384.927294222788 "$god_ set-dist 27 31 1" +$ns_ at 385.582300967223 "$god_ set-dist 5 6 1" +$ns_ at 385.582300967223 "$god_ set-dist 6 8 2" +$ns_ at 385.582300967223 "$god_ set-dist 6 25 2" +$ns_ at 385.939116262634 "$god_ set-dist 0 20 1" +$ns_ at 385.939116262634 "$god_ set-dist 0 44 2" +$ns_ at 385.943802072690 "$god_ set-dist 11 13 1" +$ns_ at 386.152888224334 "$god_ set-dist 1 2 1" +$ns_ at 386.311761313318 "$god_ set-dist 4 17 2" +$ns_ at 386.333915670985 "$god_ set-dist 12 49 2" +$ns_ at 386.359812543590 "$god_ set-dist 41 45 2" +$ns_ at 386.582158795308 "$god_ set-dist 22 38 1" +$ns_ at 386.582158795308 "$god_ set-dist 38 40 2" +$ns_ at 386.645469549834 "$god_ set-dist 40 46 1" +$ns_ at 386.937782044532 "$god_ set-dist 19 41 2" +$ns_ at 386.940234375869 "$god_ set-dist 37 43 1" +$ns_ at 386.944430989179 "$god_ set-dist 19 34 2" +$ns_ at 386.948114991624 "$god_ set-dist 0 33 1" +$ns_ at 387.127419638109 "$god_ set-dist 2 17 2" +$ns_ at 387.260543252542 "$god_ set-dist 4 5 2" +$ns_ at 387.288125909893 "$god_ set-dist 19 38 2" +$ns_ at 387.296735543473 "$god_ set-dist 10 22 1" +$ns_ at 387.302846816825 "$god_ set-dist 9 47 1" +$ns_ at 387.561106091477 "$god_ set-dist 2 40 2" +$ns_ at 387.585435068755 "$god_ set-dist 13 16 1" +$ns_ at 387.600824622477 "$god_ set-dist 0 34 1" +$ns_ at 388.181809398979 "$god_ set-dist 20 44 2" +$ns_ at 388.195887035938 "$god_ set-dist 0 10 1" +$ns_ at 388.336177332115 "$god_ set-dist 11 12 1" +$ns_ at 388.370483779663 "$god_ set-dist 14 46 2" +$ns_ at 388.438962068537 "$god_ set-dist 2 5 1" +$ns_ at 388.521527296688 "$god_ set-dist 41 43 1" +$ns_ at 388.567480114397 "$god_ set-dist 0 32 1" +$ns_ at 388.619920702517 "$god_ set-dist 5 8 2" +$ns_ at 388.619920702517 "$god_ set-dist 6 8 3" +$ns_ at 388.638852326449 "$node_(5) setdest 126.505913984317 182.295370827764 6.738590903493" +$ns_ at 388.645043948093 "$god_ set-dist 5 8 1" +$ns_ at 388.645043948093 "$god_ set-dist 6 8 2" +$ns_ at 388.748300794331 "$god_ set-dist 12 32 2" +$ns_ at 388.906157412514 "$god_ set-dist 6 41 1" +$ns_ at 388.914207281371 "$god_ set-dist 15 24 1" +$ns_ at 389.070651332397 "$god_ set-dist 22 43 1" +$ns_ at 389.070651332397 "$god_ set-dist 40 43 2" +$ns_ at 389.182772379907 "$god_ set-dist 12 21 2" +$ns_ at 389.263773372403 "$god_ set-dist 4 5 1" +$ns_ at 389.413731653562 "$node_(35) setdest 376.670540042099 177.975283357980 5.157533894006" +$ns_ at 389.466754323295 "$god_ set-dist 17 27 1" +$ns_ at 389.590988523811 "$god_ set-dist 14 29 2" +$ns_ at 389.592434768410 "$god_ set-dist 24 47 1" +$ns_ at 389.700516405989 "$god_ set-dist 35 41 1" +$ns_ at 389.719241629583 "$god_ set-dist 0 7 2" +$ns_ at 389.817078237537 "$god_ set-dist 7 26 2" +$ns_ at 389.828272169315 "$god_ set-dist 9 12 1" +$ns_ at 389.832610093432 "$god_ set-dist 19 23 2" +$ns_ at 389.909348401644 "$god_ set-dist 25 41 2" +$ns_ at 389.949556102496 "$god_ set-dist 0 37 1" +$ns_ at 389.996259924125 "$god_ set-dist 14 19 2" +$ns_ at 390.041804175734 "$god_ set-dist 22 42 1" +$ns_ at 390.087515672105 "$node_(49) setdest 288.192581721595 405.963405254387 1.676125737986" +$ns_ at 390.153119384236 "$god_ set-dist 26 43 1" +$ns_ at 390.173328284580 "$god_ set-dist 0 43 1" +$ns_ at 390.285769551571 "$god_ set-dist 5 48 2" +$ns_ at 390.306009128273 "$god_ set-dist 7 43 1" +$ns_ at 390.548496938494 "$god_ set-dist 5 6 2" +$ns_ at 390.548496938494 "$god_ set-dist 6 8 3" +$ns_ at 390.548496938494 "$god_ set-dist 6 25 3" +$ns_ at 390.558165409436 "$node_(25) setdest 410.026715902043 435.655956649324 2.558517877984" +$ns_ at 390.684212919770 "$god_ set-dist 22 48 1" +$ns_ at 390.684212919770 "$god_ set-dist 40 48 2" +$ns_ at 390.825908522663 "$god_ set-dist 10 41 1" +$ns_ at 390.953161777589 "$god_ set-dist 7 39 1" +$ns_ at 391.224104109598 "$god_ set-dist 0 48 1" +$ns_ at 391.264256975050 "$god_ set-dist 7 21 1" +$ns_ at 391.353242407853 "$god_ set-dist 11 17 1" +$ns_ at 391.444110163776 "$god_ set-dist 12 27 1" +$ns_ at 391.451322682212 "$god_ set-dist 22 40 2" +$ns_ at 391.451322682212 "$god_ set-dist 38 40 3" +$ns_ at 391.489456867036 "$god_ set-dist 26 37 2" +$ns_ at 391.566214132511 "$god_ set-dist 24 31 1" +$ns_ at 391.815004232326 "$god_ set-dist 0 19 2" +$ns_ at 391.883611135338 "$god_ set-dist 19 26 2" +$ns_ at 392.133193911651 "$god_ set-dist 7 28 2" +$ns_ at 392.336702460493 "$god_ set-dist 41 48 1" +$ns_ at 392.505916514873 "$god_ set-dist 27 47 1" +$ns_ at 392.635634980668 "$god_ set-dist 18 22 1" +$ns_ at 392.746214753066 "$god_ set-dist 1 4 2" +$ns_ at 392.749095941201 "$god_ set-dist 18 29 2" +$ns_ at 392.841946335791 "$god_ set-dist 2 30 2" +$ns_ at 392.877112963542 "$god_ set-dist 12 39 2" +$ns_ at 392.932105047928 "$god_ set-dist 2 18 1" +$ns_ at 393.085546993825 "$god_ set-dist 6 8 2" +$ns_ at 393.085546993825 "$god_ set-dist 6 25 2" +$ns_ at 393.085546993825 "$god_ set-dist 6 37 1" +$ns_ at 393.284760461114 "$god_ set-dist 4 30 2" +$ns_ at 393.306066578627 "$god_ set-dist 17 28 1" +$ns_ at 393.542584464625 "$god_ set-dist 5 44 2" +$ns_ at 394.050012376766 "$god_ set-dist 16 43 1" +$ns_ at 394.206743287118 "$god_ set-dist 8 48 3" +$ns_ at 394.206743287118 "$god_ set-dist 25 48 3" +$ns_ at 394.206743287118 "$god_ set-dist 37 48 2" +$ns_ at 394.339409624668 "$god_ set-dist 2 28 2" +$ns_ at 394.354323959440 "$god_ set-dist 7 27 2" +$ns_ at 394.376280661527 "$god_ set-dist 6 39 1" +$ns_ at 394.437759822343 "$god_ set-dist 22 41 1" +$ns_ at 394.513340999833 "$god_ set-dist 7 9 2" +$ns_ at 394.550097266138 "$node_(40) setdest 118.947997628987 34.710339787358 8.479703854252" +$ns_ at 394.678751151815 "$god_ set-dist 19 40 1" +$ns_ at 394.754718793816 "$god_ set-dist 7 49 1" +$ns_ at 394.754718793816 "$god_ set-dist 11 49 2" +$ns_ at 394.886867300420 "$god_ set-dist 1 14 2" +$ns_ at 395.127869972124 "$node_(19) setdest 111.115632022743 226.274947883838 0.000000000000" +$ns_ at 395.192980842148 "$god_ set-dist 5 11 1" +$ns_ at 395.248664377432 "$god_ set-dist 6 22 1" +$ns_ at 395.278534364072 "$god_ set-dist 5 10 2" +$ns_ at 395.570755963402 "$god_ set-dist 12 36 2" +$ns_ at 395.694215198344 "$god_ set-dist 4 40 1" +$ns_ at 395.813301183232 "$god_ set-dist 12 28 1" +$ns_ at 395.853247270048 "$god_ set-dist 12 14 2" +$ns_ at 396.016145657563 "$god_ set-dist 3 25 1" +$ns_ at 396.016145657563 "$god_ set-dist 25 42 2" +$ns_ at 396.016145657563 "$god_ set-dist 25 48 2" +$ns_ at 396.061505814952 "$god_ set-dist 1 13 1" +$ns_ at 396.605328833958 "$god_ set-dist 11 24 1" +$ns_ at 396.623084928587 "$god_ set-dist 22 36 1" +$ns_ at 396.776546727645 "$god_ set-dist 0 44 3" +$ns_ at 396.776546727645 "$god_ set-dist 26 44 3" +$ns_ at 396.776546727645 "$god_ set-dist 33 44 2" +$ns_ at 397.237718579337 "$god_ set-dist 2 27 2" +$ns_ at 397.610927611331 "$god_ set-dist 22 25 1" +$ns_ at 397.650505847239 "$god_ set-dist 0 46 2" +$ns_ at 397.836414636670 "$god_ set-dist 2 9 2" +$ns_ at 397.974789320602 "$node_(13) setdest 292.126027462588 359.511029738536 0.000000000000" +$ns_ at 398.187179692513 "$god_ set-dist 7 11 2" +$ns_ at 398.269816603362 "$god_ set-dist 5 27 1" +$ns_ at 398.269816603362 "$god_ set-dist 27 49 2" +$ns_ at 398.585418373330 "$god_ set-dist 11 20 1" +$ns_ at 398.759747693769 "$god_ set-dist 40 45 1" +$ns_ at 398.779414995172 "$god_ set-dist 15 20 1" +$ns_ at 398.943395774396 "$god_ set-dist 5 9 1" +$ns_ at 398.943395774396 "$god_ set-dist 9 49 2" +$ns_ at 398.966475902493 "$god_ set-dist 24 25 1" +$ns_ at 399.073595398641 "$god_ set-dist 12 41 2" +$ns_ at 399.175521839962 "$god_ set-dist 35 39 1" +$ns_ at 399.294830687546 "$god_ set-dist 0 40 2" +$ns_ at 399.294830687546 "$god_ set-dist 40 48 3" +$ns_ at 399.340857882299 "$god_ set-dist 5 21 2" +$ns_ at 399.410343856175 "$god_ set-dist 5 49 2" +$ns_ at 399.410343856175 "$god_ set-dist 9 49 3" +$ns_ at 399.410343856175 "$god_ set-dist 11 49 3" +$ns_ at 399.410343856175 "$god_ set-dist 27 49 3" +$ns_ at 399.558535633476 "$god_ set-dist 2 22 2" +$ns_ at 399.950881223933 "$god_ set-dist 2 42 3" +$ns_ at 399.950881223933 "$god_ set-dist 3 42 2" +# +# Destination Unreachables: 0 +# +# Route Changes: 4528 +# +# Link Changes: 3759 +# +# Node | Route Changes | Link Changes +# 0 | 134 | 128 +# 1 | 142 | 99 +# 2 | 144 | 127 +# 3 | 190 | 176 +# 4 | 186 | 168 +# 5 | 190 | 161 +# 6 | 286 | 188 +# 7 | 163 | 145 +# 8 | 161 | 135 +# 9 | 242 | 171 +# 10 | 247 | 193 +# 11 | 245 | 192 +# 12 | 158 | 123 +# 13 | 215 | 179 +# 14 | 131 | 131 +# 15 | 209 | 169 +# 16 | 152 | 150 +# 17 | 84 | 84 +# 18 | 149 | 129 +# 19 | 150 | 142 +# 20 | 163 | 141 +# 21 | 164 | 119 +# 22 | 192 | 177 +# 23 | 143 | 110 +# 24 | 99 | 99 +# 25 | 178 | 162 +# 26 | 166 | 148 +# 27 | 215 | 147 +# 28 | 236 | 94 +# 29 | 170 | 156 +# 30 | 162 | 153 +# 31 | 132 | 116 +# 32 | 234 | 173 +# 33 | 96 | 96 +# 34 | 218 | 190 +# 35 | 216 | 176 +# 36 | 116 | 100 +# 37 | 140 | 139 +# 38 | 211 | 192 +# 39 | 216 | 189 +# 40 | 264 | 206 +# 41 | 213 | 193 +# 42 | 273 | 193 +# 43 | 173 | 132 +# 44 | 140 | 117 +# 45 | 155 | 149 +# 46 | 111 | 102 +# 47 | 222 | 166 +# 48 | 241 | 201 +# 49 | 219 | 192 +# diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/scen-no_movement-test ns/tbf/scen-no_movement-test --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/scen-no_movement-test Wed Dec 31 19:00:00 1969 +++ ns/tbf/scen-no_movement-test Mon Jun 2 19:21:37 2003 @@ -0,0 +1,1487 @@ +# +# nodes: 50, pause: 200.00, max speed: 1.00 max x = 500.00, max y: 500.00 +# +$node_(0) set X_ 236.088386877995 +$node_(0) set Y_ 410.303527918443 +$node_(0) set Z_ 0.000000000000 +$node_(1) set X_ 212.813347639790 +$node_(1) set Y_ 353.085436379018 +$node_(1) set Z_ 0.000000000000 +$node_(2) set X_ 61.345036551302 +$node_(2) set Y_ 300.228649738142 +$node_(2) set Z_ 0.000000000000 +$node_(3) set X_ 73.755884273263 +$node_(3) set Y_ 363.673821823708 +$node_(3) set Z_ 0.000000000000 +$node_(4) set X_ 332.518038727285 +$node_(4) set Y_ 285.689556254872 +$node_(4) set Z_ 0.000000000000 +$node_(5) set X_ 291.038821809011 +$node_(5) set Y_ 338.195290729548 +$node_(5) set Z_ 0.000000000000 +$node_(6) set X_ 381.675373387634 +$node_(6) set Y_ 107.186158838384 +$node_(6) set Z_ 0.000000000000 +$node_(7) set X_ 220.710247267906 +$node_(7) set Y_ 254.564013553158 +$node_(7) set Z_ 0.000000000000 +$node_(8) set X_ 263.870898607454 +$node_(8) set Y_ 71.254518423448 +$node_(8) set Z_ 0.000000000000 +$node_(9) set X_ 333.757310039718 +$node_(9) set Y_ 71.003171445024 +$node_(9) set Z_ 0.000000000000 +$node_(10) set X_ 360.022528419431 +$node_(10) set Y_ 217.197870527664 +$node_(10) set Z_ 0.000000000000 +$node_(11) set X_ 408.567502624830 +$node_(11) set Y_ 185.860046688209 +$node_(11) set Z_ 0.000000000000 +$node_(12) set X_ 83.378127273789 +$node_(12) set Y_ 264.163164292913 +$node_(12) set Z_ 0.000000000000 +$node_(13) set X_ 427.980486308211 +$node_(13) set Y_ 496.227154441934 +$node_(13) set Z_ 0.000000000000 +$node_(14) set X_ 197.454920869931 +$node_(14) set Y_ 290.346132333389 +$node_(14) set Z_ 0.000000000000 +$node_(15) set X_ 93.638801592605 +$node_(15) set Y_ 351.760960804829 +$node_(15) set Z_ 0.000000000000 +$node_(16) set X_ 98.585779780020 +$node_(16) set Y_ 450.518702903737 +$node_(16) set Z_ 0.000000000000 +$node_(17) set X_ 106.101199302135 +$node_(17) set Y_ 190.278400452320 +$node_(17) set Z_ 0.000000000000 +$node_(18) set X_ 323.923626652945 +$node_(18) set Y_ 401.263965867205 +$node_(18) set Z_ 0.000000000000 +$node_(19) set X_ 236.292485065953 +$node_(19) set Y_ 429.844835053134 +$node_(19) set Z_ 0.000000000000 +$node_(20) set X_ 285.198181011067 +$node_(20) set Y_ 236.877890832397 +$node_(20) set Z_ 0.000000000000 +$node_(21) set X_ 101.645052815362 +$node_(21) set Y_ 0.626458816767 +$node_(21) set Z_ 0.000000000000 +$node_(22) set X_ 333.387547951334 +$node_(22) set Y_ 474.018299275964 +$node_(22) set Z_ 0.000000000000 +$node_(23) set X_ 480.271223093480 +$node_(23) set Y_ 181.088420834018 +$node_(23) set Z_ 0.000000000000 +$node_(24) set X_ 227.432629281186 +$node_(24) set Y_ 12.309125987882 +$node_(24) set Z_ 0.000000000000 +$node_(25) set X_ 165.520937398159 +$node_(25) set Y_ 250.199042503117 +$node_(25) set Z_ 0.000000000000 +$node_(26) set X_ 182.853157290597 +$node_(26) set Y_ 106.594897031723 +$node_(26) set Z_ 0.000000000000 +$node_(27) set X_ 481.198009473548 +$node_(27) set Y_ 115.026025782668 +$node_(27) set Z_ 0.000000000000 +$node_(28) set X_ 300.612072815958 +$node_(28) set Y_ 445.843822494036 +$node_(28) set Z_ 0.000000000000 +$node_(29) set X_ 342.107949000423 +$node_(29) set Y_ 150.731342460988 +$node_(29) set Z_ 0.000000000000 +$node_(30) set X_ 230.695058122410 +$node_(30) set Y_ 413.278559097541 +$node_(30) set Z_ 0.000000000000 +$node_(31) set X_ 76.787806109494 +$node_(31) set Y_ 341.644505868214 +$node_(31) set Z_ 0.000000000000 +$node_(32) set X_ 320.623571097316 +$node_(32) set Y_ 15.663965083217 +$node_(32) set Z_ 0.000000000000 +$node_(33) set X_ 234.069395620943 +$node_(33) set Y_ 414.554434764973 +$node_(33) set Z_ 0.000000000000 +$node_(34) set X_ 192.519120765845 +$node_(34) set Y_ 348.440953873964 +$node_(34) set Z_ 0.000000000000 +$node_(35) set X_ 398.456059135231 +$node_(35) set Y_ 99.114792215609 +$node_(35) set Z_ 0.000000000000 +$node_(36) set X_ 117.945555954398 +$node_(36) set Y_ 38.194596405252 +$node_(36) set Z_ 0.000000000000 +$node_(37) set X_ 128.255408880563 +$node_(37) set Y_ 182.375188086657 +$node_(37) set Z_ 0.000000000000 +$node_(38) set X_ 261.816537929196 +$node_(38) set Y_ 242.651135188396 +$node_(38) set Z_ 0.000000000000 +$node_(39) set X_ 327.266027352618 +$node_(39) set Y_ 268.854347737903 +$node_(39) set Z_ 0.000000000000 +$node_(40) set X_ 421.637955052009 +$node_(40) set Y_ 299.173235015020 +$node_(40) set Z_ 0.000000000000 +$node_(41) set X_ 308.269217056222 +$node_(41) set Y_ 429.882666076439 +$node_(41) set Z_ 0.000000000000 +$node_(42) set X_ 62.532108977129 +$node_(42) set Y_ 144.176935774461 +$node_(42) set Z_ 0.000000000000 +$node_(43) set X_ 150.369874499024 +$node_(43) set Y_ 439.474310123049 +$node_(43) set Z_ 0.000000000000 +$node_(44) set X_ 349.349231613949 +$node_(44) set Y_ 344.290593199535 +$node_(44) set Z_ 0.000000000000 +$node_(45) set X_ 87.849174573233 +$node_(45) set Y_ 246.598337030144 +$node_(45) set Z_ 0.000000000000 +$node_(46) set X_ 499.067766663175 +$node_(46) set Y_ 208.570049349817 +$node_(46) set Z_ 0.000000000000 +$node_(47) set X_ 42.397979255482 +$node_(47) set Y_ 414.666938304604 +$node_(47) set Z_ 0.000000000000 +$node_(48) set X_ 323.166209789592 +$node_(48) set Y_ 427.563633987037 +$node_(48) set Z_ 0.000000000000 +$node_(49) set X_ 23.287198120667 +$node_(49) set Y_ 469.519925690290 +$node_(49) set Z_ 0.000000000000 +$god_ set-dist 0 1 1 +$god_ set-dist 0 2 1 +$god_ set-dist 0 3 1 +$god_ set-dist 0 4 1 +$god_ set-dist 0 5 1 +$god_ set-dist 0 6 2 +$god_ set-dist 0 7 1 +$god_ set-dist 0 8 2 +$god_ set-dist 0 9 2 +$god_ set-dist 0 10 1 +$god_ set-dist 0 11 2 +$god_ set-dist 0 12 1 +$god_ set-dist 0 13 1 +$god_ set-dist 0 14 1 +$god_ set-dist 0 15 1 +$god_ set-dist 0 16 1 +$god_ set-dist 0 17 2 +$god_ set-dist 0 18 1 +$god_ set-dist 0 19 1 +$god_ set-dist 0 20 1 +$god_ set-dist 0 21 2 +$god_ set-dist 0 22 1 +$god_ set-dist 0 23 2 +$god_ set-dist 0 24 2 +$god_ set-dist 0 25 1 +$god_ set-dist 0 26 2 +$god_ set-dist 0 27 2 +$god_ set-dist 0 28 1 +$god_ set-dist 0 29 2 +$god_ set-dist 0 30 1 +$god_ set-dist 0 31 1 +$god_ set-dist 0 32 2 +$god_ set-dist 0 33 1 +$god_ set-dist 0 34 1 +$god_ set-dist 0 35 2 +$god_ set-dist 0 36 2 +$god_ set-dist 0 37 2 +$god_ set-dist 0 38 1 +$god_ set-dist 0 39 1 +$god_ set-dist 0 40 1 +$god_ set-dist 0 41 1 +$god_ set-dist 0 42 2 +$god_ set-dist 0 43 1 +$god_ set-dist 0 44 1 +$god_ set-dist 0 45 1 +$god_ set-dist 0 46 2 +$god_ set-dist 0 47 1 +$god_ set-dist 0 48 1 +$god_ set-dist 0 49 1 +$god_ set-dist 1 2 1 +$god_ set-dist 1 3 1 +$god_ set-dist 1 4 1 +$god_ set-dist 1 5 1 +$god_ set-dist 1 6 2 +$god_ set-dist 1 7 1 +$god_ set-dist 1 8 2 +$god_ set-dist 1 9 2 +$god_ set-dist 1 10 1 +$god_ set-dist 1 11 2 +$god_ set-dist 1 12 1 +$god_ set-dist 1 13 2 +$god_ set-dist 1 14 1 +$god_ set-dist 1 15 1 +$god_ set-dist 1 16 1 +$god_ set-dist 1 17 1 +$god_ set-dist 1 18 1 +$god_ set-dist 1 19 1 +$god_ set-dist 1 20 1 +$god_ set-dist 1 21 2 +$god_ set-dist 1 22 1 +$god_ set-dist 1 23 2 +$god_ set-dist 1 24 2 +$god_ set-dist 1 25 1 +$god_ set-dist 1 26 1 +$god_ set-dist 1 27 2 +$god_ set-dist 1 28 1 +$god_ set-dist 1 29 1 +$god_ set-dist 1 30 1 +$god_ set-dist 1 31 1 +$god_ set-dist 1 32 2 +$god_ set-dist 1 33 1 +$god_ set-dist 1 34 1 +$god_ set-dist 1 35 2 +$god_ set-dist 1 36 2 +$god_ set-dist 1 37 1 +$god_ set-dist 1 38 1 +$god_ set-dist 1 39 1 +$god_ set-dist 1 40 1 +$god_ set-dist 1 41 1 +$god_ set-dist 1 42 2 +$god_ set-dist 1 43 1 +$god_ set-dist 1 44 1 +$god_ set-dist 1 45 1 +$god_ set-dist 1 46 2 +$god_ set-dist 1 47 1 +$god_ set-dist 1 48 1 +$god_ set-dist 1 49 1 +$god_ set-dist 2 3 1 +$god_ set-dist 2 4 2 +$god_ set-dist 2 5 1 +$god_ set-dist 2 6 2 +$god_ set-dist 2 7 1 +$god_ set-dist 2 8 2 +$god_ set-dist 2 9 2 +$god_ set-dist 2 10 2 +$god_ set-dist 2 11 2 +$god_ set-dist 2 12 1 +$god_ set-dist 2 13 2 +$god_ set-dist 2 14 1 +$god_ set-dist 2 15 1 +$god_ set-dist 2 16 1 +$god_ set-dist 2 17 1 +$god_ set-dist 2 18 2 +$god_ set-dist 2 19 1 +$god_ set-dist 2 20 1 +$god_ set-dist 2 21 2 +$god_ set-dist 2 22 2 +$god_ set-dist 2 23 2 +$god_ set-dist 2 24 2 +$god_ set-dist 2 25 1 +$god_ set-dist 2 26 1 +$god_ set-dist 2 27 2 +$god_ set-dist 2 28 2 +$god_ set-dist 2 29 2 +$god_ set-dist 2 30 1 +$god_ set-dist 2 31 1 +$god_ set-dist 2 32 2 +$god_ set-dist 2 33 1 +$god_ set-dist 2 34 1 +$god_ set-dist 2 35 2 +$god_ set-dist 2 36 2 +$god_ set-dist 2 37 1 +$god_ set-dist 2 38 1 +$god_ set-dist 2 39 2 +$god_ set-dist 2 40 2 +$god_ set-dist 2 41 2 +$god_ set-dist 2 42 1 +$god_ set-dist 2 43 1 +$god_ set-dist 2 44 2 +$god_ set-dist 2 45 1 +$god_ set-dist 2 46 2 +$god_ set-dist 2 47 1 +$god_ set-dist 2 48 2 +$god_ set-dist 2 49 1 +$god_ set-dist 3 4 2 +$god_ set-dist 3 5 1 +$god_ set-dist 3 6 2 +$god_ set-dist 3 7 1 +$god_ set-dist 3 8 2 +$god_ set-dist 3 9 2 +$god_ set-dist 3 10 2 +$god_ set-dist 3 11 2 +$god_ set-dist 3 12 1 +$god_ set-dist 3 13 2 +$god_ set-dist 3 14 1 +$god_ set-dist 3 15 1 +$god_ set-dist 3 16 1 +$god_ set-dist 3 17 1 +$god_ set-dist 3 18 2 +$god_ set-dist 3 19 1 +$god_ set-dist 3 20 1 +$god_ set-dist 3 21 2 +$god_ set-dist 3 22 2 +$god_ set-dist 3 23 2 +$god_ set-dist 3 24 2 +$god_ set-dist 3 25 1 +$god_ set-dist 3 26 2 +$god_ set-dist 3 27 2 +$god_ set-dist 3 28 1 +$god_ set-dist 3 29 2 +$god_ set-dist 3 30 1 +$god_ set-dist 3 31 1 +$god_ set-dist 3 32 2 +$god_ set-dist 3 33 1 +$god_ set-dist 3 34 1 +$god_ set-dist 3 35 2 +$god_ set-dist 3 36 2 +$god_ set-dist 3 37 1 +$god_ set-dist 3 38 1 +$god_ set-dist 3 39 2 +$god_ set-dist 3 40 2 +$god_ set-dist 3 41 1 +$god_ set-dist 3 42 1 +$god_ set-dist 3 43 1 +$god_ set-dist 3 44 2 +$god_ set-dist 3 45 1 +$god_ set-dist 3 46 2 +$god_ set-dist 3 47 1 +$god_ set-dist 3 48 2 +$god_ set-dist 3 49 1 +$god_ set-dist 4 5 1 +$god_ set-dist 4 6 1 +$god_ set-dist 4 7 1 +$god_ set-dist 4 8 1 +$god_ set-dist 4 9 1 +$god_ set-dist 4 10 1 +$god_ set-dist 4 11 1 +$god_ set-dist 4 12 2 +$god_ set-dist 4 13 1 +$god_ set-dist 4 14 1 +$god_ set-dist 4 15 1 +$god_ set-dist 4 16 2 +$god_ set-dist 4 17 1 +$god_ set-dist 4 18 1 +$god_ set-dist 4 19 1 +$god_ set-dist 4 20 1 +$god_ set-dist 4 21 2 +$god_ set-dist 4 22 1 +$god_ set-dist 4 23 1 +$god_ set-dist 4 24 2 +$god_ set-dist 4 25 1 +$god_ set-dist 4 26 1 +$god_ set-dist 4 27 1 +$god_ set-dist 4 28 1 +$god_ set-dist 4 29 1 +$god_ set-dist 4 30 1 +$god_ set-dist 4 31 2 +$god_ set-dist 4 32 2 +$god_ set-dist 4 33 1 +$god_ set-dist 4 34 1 +$god_ set-dist 4 35 1 +$god_ set-dist 4 36 2 +$god_ set-dist 4 37 1 +$god_ set-dist 4 38 1 +$god_ set-dist 4 39 1 +$god_ set-dist 4 40 1 +$god_ set-dist 4 41 1 +$god_ set-dist 4 42 2 +$god_ set-dist 4 43 1 +$god_ set-dist 4 44 1 +$god_ set-dist 4 45 1 +$god_ set-dist 4 46 1 +$god_ set-dist 4 47 2 +$god_ set-dist 4 48 1 +$god_ set-dist 4 49 2 +$god_ set-dist 5 6 1 +$god_ set-dist 5 7 1 +$god_ set-dist 5 8 2 +$god_ set-dist 5 9 2 +$god_ set-dist 5 10 1 +$god_ set-dist 5 11 1 +$god_ set-dist 5 12 1 +$god_ set-dist 5 13 1 +$god_ set-dist 5 14 1 +$god_ set-dist 5 15 1 +$god_ set-dist 5 16 1 +$god_ set-dist 5 17 1 +$god_ set-dist 5 18 1 +$god_ set-dist 5 19 1 +$god_ set-dist 5 20 1 +$god_ set-dist 5 21 2 +$god_ set-dist 5 22 1 +$god_ set-dist 5 23 1 +$god_ set-dist 5 24 2 +$god_ set-dist 5 25 1 +$god_ set-dist 5 26 2 +$god_ set-dist 5 27 2 +$god_ set-dist 5 28 1 +$god_ set-dist 5 29 1 +$god_ set-dist 5 30 1 +$god_ set-dist 5 31 1 +$god_ set-dist 5 32 2 +$god_ set-dist 5 33 1 +$god_ set-dist 5 34 1 +$god_ set-dist 5 35 2 +$god_ set-dist 5 36 2 +$god_ set-dist 5 37 1 +$god_ set-dist 5 38 1 +$god_ set-dist 5 39 1 +$god_ set-dist 5 40 1 +$god_ set-dist 5 41 1 +$god_ set-dist 5 42 2 +$god_ set-dist 5 43 1 +$god_ set-dist 5 44 1 +$god_ set-dist 5 45 1 +$god_ set-dist 5 46 1 +$god_ set-dist 5 47 2 +$god_ set-dist 5 48 1 +$god_ set-dist 5 49 2 +$god_ set-dist 6 7 1 +$god_ set-dist 6 8 1 +$god_ set-dist 6 9 1 +$god_ set-dist 6 10 1 +$god_ set-dist 6 11 1 +$god_ set-dist 6 12 2 +$god_ set-dist 6 13 2 +$god_ set-dist 6 14 2 +$god_ set-dist 6 15 2 +$god_ set-dist 6 16 2 +$god_ set-dist 6 17 2 +$god_ set-dist 6 18 2 +$god_ set-dist 6 19 2 +$god_ set-dist 6 20 1 +$god_ set-dist 6 21 2 +$god_ set-dist 6 22 2 +$god_ set-dist 6 23 1 +$god_ set-dist 6 24 1 +$god_ set-dist 6 25 2 +$god_ set-dist 6 26 1 +$god_ set-dist 6 27 1 +$god_ set-dist 6 28 2 +$god_ set-dist 6 29 1 +$god_ set-dist 6 30 2 +$god_ set-dist 6 31 2 +$god_ set-dist 6 32 1 +$god_ set-dist 6 33 2 +$god_ set-dist 6 34 2 +$god_ set-dist 6 35 1 +$god_ set-dist 6 36 2 +$god_ set-dist 6 37 2 +$god_ set-dist 6 38 1 +$god_ set-dist 6 39 1 +$god_ set-dist 6 40 1 +$god_ set-dist 6 41 2 +$god_ set-dist 6 42 2 +$god_ set-dist 6 43 2 +$god_ set-dist 6 44 1 +$god_ set-dist 6 45 2 +$god_ set-dist 6 46 1 +$god_ set-dist 6 47 2 +$god_ set-dist 6 48 2 +$god_ set-dist 6 49 3 +$god_ set-dist 7 8 1 +$god_ set-dist 7 9 1 +$god_ set-dist 7 10 1 +$god_ set-dist 7 11 1 +$god_ set-dist 7 12 1 +$god_ set-dist 7 13 2 +$god_ set-dist 7 14 1 +$god_ set-dist 7 15 1 +$god_ set-dist 7 16 1 +$god_ set-dist 7 17 1 +$god_ set-dist 7 18 1 +$god_ set-dist 7 19 1 +$god_ set-dist 7 20 1 +$god_ set-dist 7 21 2 +$god_ set-dist 7 22 1 +$god_ set-dist 7 23 2 +$god_ set-dist 7 24 1 +$god_ set-dist 7 25 1 +$god_ set-dist 7 26 1 +$god_ set-dist 7 27 2 +$god_ set-dist 7 28 1 +$god_ set-dist 7 29 1 +$god_ set-dist 7 30 1 +$god_ set-dist 7 31 1 +$god_ set-dist 7 32 2 +$god_ set-dist 7 33 1 +$god_ set-dist 7 34 1 +$god_ set-dist 7 35 1 +$god_ set-dist 7 36 1 +$god_ set-dist 7 37 1 +$god_ set-dist 7 38 1 +$god_ set-dist 7 39 1 +$god_ set-dist 7 40 1 +$god_ set-dist 7 41 1 +$god_ set-dist 7 42 1 +$god_ set-dist 7 43 1 +$god_ set-dist 7 44 1 +$god_ set-dist 7 45 1 +$god_ set-dist 7 46 2 +$god_ set-dist 7 47 1 +$god_ set-dist 7 48 1 +$god_ set-dist 7 49 2 +$god_ set-dist 8 9 1 +$god_ set-dist 8 10 1 +$god_ set-dist 8 11 1 +$god_ set-dist 8 12 2 +$god_ set-dist 8 13 2 +$god_ set-dist 8 14 1 +$god_ set-dist 8 15 2 +$god_ set-dist 8 16 2 +$god_ set-dist 8 17 1 +$god_ set-dist 8 18 2 +$god_ set-dist 8 19 2 +$god_ set-dist 8 20 1 +$god_ set-dist 8 21 1 +$god_ set-dist 8 22 2 +$god_ set-dist 8 23 1 +$god_ set-dist 8 24 1 +$god_ set-dist 8 25 1 +$god_ set-dist 8 26 1 +$god_ set-dist 8 27 1 +$god_ set-dist 8 28 2 +$god_ set-dist 8 29 1 +$god_ set-dist 8 30 2 +$god_ set-dist 8 31 2 +$god_ set-dist 8 32 1 +$god_ set-dist 8 33 2 +$god_ set-dist 8 34 2 +$god_ set-dist 8 35 1 +$god_ set-dist 8 36 1 +$god_ set-dist 8 37 1 +$god_ set-dist 8 38 1 +$god_ set-dist 8 39 1 +$god_ set-dist 8 40 2 +$god_ set-dist 8 41 2 +$god_ set-dist 8 42 1 +$god_ set-dist 8 43 2 +$god_ set-dist 8 44 2 +$god_ set-dist 8 45 1 +$god_ set-dist 8 46 2 +$god_ set-dist 8 47 2 +$god_ set-dist 8 48 2 +$god_ set-dist 8 49 2 +$god_ set-dist 9 10 1 +$god_ set-dist 9 11 1 +$god_ set-dist 9 12 2 +$god_ set-dist 9 13 2 +$god_ set-dist 9 14 2 +$god_ set-dist 9 15 2 +$god_ set-dist 9 16 2 +$god_ set-dist 9 17 2 +$god_ set-dist 9 18 2 +$god_ set-dist 9 19 2 +$god_ set-dist 9 20 1 +$god_ set-dist 9 21 1 +$god_ set-dist 9 22 2 +$god_ set-dist 9 23 1 +$god_ set-dist 9 24 1 +$god_ set-dist 9 25 1 +$god_ set-dist 9 26 1 +$god_ set-dist 9 27 1 +$god_ set-dist 9 28 2 +$god_ set-dist 9 29 1 +$god_ set-dist 9 30 2 +$god_ set-dist 9 31 2 +$god_ set-dist 9 32 1 +$god_ set-dist 9 33 2 +$god_ set-dist 9 34 2 +$god_ set-dist 9 35 1 +$god_ set-dist 9 36 1 +$god_ set-dist 9 37 1 +$god_ set-dist 9 38 1 +$god_ set-dist 9 39 1 +$god_ set-dist 9 40 1 +$god_ set-dist 9 41 2 +$god_ set-dist 9 42 2 +$god_ set-dist 9 43 2 +$god_ set-dist 9 44 2 +$god_ set-dist 9 45 2 +$god_ set-dist 9 46 1 +$god_ set-dist 9 47 2 +$god_ set-dist 9 48 2 +$god_ set-dist 9 49 3 +$god_ set-dist 10 11 1 +$god_ set-dist 10 12 2 +$god_ set-dist 10 13 2 +$god_ set-dist 10 14 1 +$god_ set-dist 10 15 2 +$god_ set-dist 10 16 2 +$god_ set-dist 10 17 2 +$god_ set-dist 10 18 1 +$god_ set-dist 10 19 1 +$god_ set-dist 10 20 1 +$god_ set-dist 10 21 2 +$god_ set-dist 10 22 2 +$god_ set-dist 10 23 1 +$god_ set-dist 10 24 1 +$god_ set-dist 10 25 1 +$god_ set-dist 10 26 1 +$god_ set-dist 10 27 1 +$god_ set-dist 10 28 1 +$god_ set-dist 10 29 1 +$god_ set-dist 10 30 1 +$god_ set-dist 10 31 2 +$god_ set-dist 10 32 1 +$god_ set-dist 10 33 1 +$god_ set-dist 10 34 1 +$god_ set-dist 10 35 1 +$god_ set-dist 10 36 2 +$god_ set-dist 10 37 1 +$god_ set-dist 10 38 1 +$god_ set-dist 10 39 1 +$god_ set-dist 10 40 1 +$god_ set-dist 10 41 1 +$god_ set-dist 10 42 2 +$god_ set-dist 10 43 2 +$god_ set-dist 10 44 1 +$god_ set-dist 10 45 2 +$god_ set-dist 10 46 1 +$god_ set-dist 10 47 2 +$god_ set-dist 10 48 1 +$god_ set-dist 10 49 2 +$god_ set-dist 11 12 2 +$god_ set-dist 11 13 2 +$god_ set-dist 11 14 1 +$god_ set-dist 11 15 2 +$god_ set-dist 11 16 2 +$god_ set-dist 11 17 2 +$god_ set-dist 11 18 1 +$god_ set-dist 11 19 2 +$god_ set-dist 11 20 1 +$god_ set-dist 11 21 2 +$god_ set-dist 11 22 2 +$god_ set-dist 11 23 1 +$god_ set-dist 11 24 2 +$god_ set-dist 11 25 2 +$god_ set-dist 11 26 1 +$god_ set-dist 11 27 1 +$god_ set-dist 11 28 2 +$god_ set-dist 11 29 1 +$god_ set-dist 11 30 2 +$god_ set-dist 11 31 2 +$god_ set-dist 11 32 1 +$god_ set-dist 11 33 2 +$god_ set-dist 11 34 2 +$god_ set-dist 11 35 1 +$god_ set-dist 11 36 2 +$god_ set-dist 11 37 2 +$god_ set-dist 11 38 1 +$god_ set-dist 11 39 1 +$god_ set-dist 11 40 1 +$god_ set-dist 11 41 2 +$god_ set-dist 11 42 2 +$god_ set-dist 11 43 2 +$god_ set-dist 11 44 1 +$god_ set-dist 11 45 2 +$god_ set-dist 11 46 1 +$god_ set-dist 11 47 2 +$god_ set-dist 11 48 2 +$god_ set-dist 11 49 2 +$god_ set-dist 12 13 2 +$god_ set-dist 12 14 1 +$god_ set-dist 12 15 1 +$god_ set-dist 12 16 1 +$god_ set-dist 12 17 1 +$god_ set-dist 12 18 2 +$god_ set-dist 12 19 1 +$god_ set-dist 12 20 1 +$god_ set-dist 12 21 2 +$god_ set-dist 12 22 2 +$god_ set-dist 12 23 2 +$god_ set-dist 12 24 2 +$god_ set-dist 12 25 1 +$god_ set-dist 12 26 1 +$god_ set-dist 12 27 2 +$god_ set-dist 12 28 2 +$god_ set-dist 12 29 2 +$god_ set-dist 12 30 1 +$god_ set-dist 12 31 1 +$god_ set-dist 12 32 2 +$god_ set-dist 12 33 1 +$god_ set-dist 12 34 1 +$god_ set-dist 12 35 2 +$god_ set-dist 12 36 1 +$god_ set-dist 12 37 1 +$god_ set-dist 12 38 1 +$god_ set-dist 12 39 1 +$god_ set-dist 12 40 2 +$god_ set-dist 12 41 2 +$god_ set-dist 12 42 1 +$god_ set-dist 12 43 1 +$god_ set-dist 12 44 2 +$god_ set-dist 12 45 1 +$god_ set-dist 12 46 2 +$god_ set-dist 12 47 1 +$god_ set-dist 12 48 2 +$god_ set-dist 12 49 1 +$god_ set-dist 13 14 2 +$god_ set-dist 13 15 2 +$god_ set-dist 13 16 2 +$god_ set-dist 13 17 2 +$god_ set-dist 13 18 1 +$god_ set-dist 13 19 1 +$god_ set-dist 13 20 2 +$god_ set-dist 13 21 3 +$god_ set-dist 13 22 1 +$god_ set-dist 13 23 2 +$god_ set-dist 13 24 3 +$god_ set-dist 13 25 2 +$god_ set-dist 13 26 2 +$god_ set-dist 13 27 2 +$god_ set-dist 13 28 1 +$god_ set-dist 13 29 2 +$god_ set-dist 13 30 1 +$god_ set-dist 13 31 2 +$god_ set-dist 13 32 3 +$god_ set-dist 13 33 1 +$god_ set-dist 13 34 2 +$god_ set-dist 13 35 2 +$god_ set-dist 13 36 3 +$god_ set-dist 13 37 2 +$god_ set-dist 13 38 2 +$god_ set-dist 13 39 1 +$god_ set-dist 13 40 1 +$god_ set-dist 13 41 1 +$god_ set-dist 13 42 3 +$god_ set-dist 13 43 2 +$god_ set-dist 13 44 1 +$god_ set-dist 13 45 2 +$god_ set-dist 13 46 2 +$god_ set-dist 13 47 2 +$god_ set-dist 13 48 1 +$god_ set-dist 13 49 2 +$god_ set-dist 14 15 1 +$god_ set-dist 14 16 1 +$god_ set-dist 14 17 1 +$god_ set-dist 14 18 1 +$god_ set-dist 14 19 1 +$god_ set-dist 14 20 1 +$god_ set-dist 14 21 2 +$god_ set-dist 14 22 1 +$god_ set-dist 14 23 2 +$god_ set-dist 14 24 2 +$god_ set-dist 14 25 1 +$god_ set-dist 14 26 1 +$god_ set-dist 14 27 2 +$god_ set-dist 14 28 1 +$god_ set-dist 14 29 1 +$god_ set-dist 14 30 1 +$god_ set-dist 14 31 1 +$god_ set-dist 14 32 2 +$god_ set-dist 14 33 1 +$god_ set-dist 14 34 1 +$god_ set-dist 14 35 2 +$god_ set-dist 14 36 2 +$god_ set-dist 14 37 1 +$god_ set-dist 14 38 1 +$god_ set-dist 14 39 1 +$god_ set-dist 14 40 1 +$god_ set-dist 14 41 1 +$god_ set-dist 14 42 1 +$god_ set-dist 14 43 1 +$god_ set-dist 14 44 1 +$god_ set-dist 14 45 1 +$god_ set-dist 14 46 2 +$god_ set-dist 14 47 1 +$god_ set-dist 14 48 1 +$god_ set-dist 14 49 1 +$god_ set-dist 15 16 1 +$god_ set-dist 15 17 1 +$god_ set-dist 15 18 1 +$god_ set-dist 15 19 1 +$god_ set-dist 15 20 1 +$god_ set-dist 15 21 2 +$god_ set-dist 15 22 2 +$god_ set-dist 15 23 2 +$god_ set-dist 15 24 2 +$god_ set-dist 15 25 1 +$god_ set-dist 15 26 2 +$god_ set-dist 15 27 2 +$god_ set-dist 15 28 1 +$god_ set-dist 15 29 2 +$god_ set-dist 15 30 1 +$god_ set-dist 15 31 1 +$god_ set-dist 15 32 2 +$god_ set-dist 15 33 1 +$god_ set-dist 15 34 1 +$god_ set-dist 15 35 2 +$god_ set-dist 15 36 2 +$god_ set-dist 15 37 1 +$god_ set-dist 15 38 1 +$god_ set-dist 15 39 1 +$god_ set-dist 15 40 2 +$god_ set-dist 15 41 1 +$god_ set-dist 15 42 1 +$god_ set-dist 15 43 1 +$god_ set-dist 15 44 2 +$god_ set-dist 15 45 1 +$god_ set-dist 15 46 2 +$god_ set-dist 15 47 1 +$god_ set-dist 15 48 1 +$god_ set-dist 15 49 1 +$god_ set-dist 16 17 2 +$god_ set-dist 16 18 1 +$god_ set-dist 16 19 1 +$god_ set-dist 16 20 2 +$god_ set-dist 16 21 2 +$god_ set-dist 16 22 1 +$god_ set-dist 16 23 2 +$god_ set-dist 16 24 2 +$god_ set-dist 16 25 1 +$god_ set-dist 16 26 2 +$god_ set-dist 16 27 3 +$god_ set-dist 16 28 1 +$god_ set-dist 16 29 2 +$god_ set-dist 16 30 1 +$god_ set-dist 16 31 1 +$god_ set-dist 16 32 3 +$god_ set-dist 16 33 1 +$god_ set-dist 16 34 1 +$god_ set-dist 16 35 2 +$god_ set-dist 16 36 2 +$god_ set-dist 16 37 2 +$god_ set-dist 16 38 2 +$god_ set-dist 16 39 2 +$god_ set-dist 16 40 2 +$god_ set-dist 16 41 1 +$god_ set-dist 16 42 2 +$god_ set-dist 16 43 1 +$god_ set-dist 16 44 2 +$god_ set-dist 16 45 1 +$god_ set-dist 16 46 2 +$god_ set-dist 16 47 1 +$god_ set-dist 16 48 1 +$god_ set-dist 16 49 1 +$god_ set-dist 17 18 2 +$god_ set-dist 17 19 2 +$god_ set-dist 17 20 1 +$god_ set-dist 17 21 1 +$god_ set-dist 17 22 2 +$god_ set-dist 17 23 2 +$god_ set-dist 17 24 1 +$god_ set-dist 17 25 1 +$god_ set-dist 17 26 1 +$god_ set-dist 17 27 2 +$god_ set-dist 17 28 2 +$god_ set-dist 17 29 1 +$god_ set-dist 17 30 2 +$god_ set-dist 17 31 1 +$god_ set-dist 17 32 2 +$god_ set-dist 17 33 2 +$god_ set-dist 17 34 1 +$god_ set-dist 17 35 2 +$god_ set-dist 17 36 1 +$god_ set-dist 17 37 1 +$god_ set-dist 17 38 1 +$god_ set-dist 17 39 1 +$god_ set-dist 17 40 2 +$god_ set-dist 17 41 2 +$god_ set-dist 17 42 1 +$god_ set-dist 17 43 2 +$god_ set-dist 17 44 2 +$god_ set-dist 17 45 1 +$god_ set-dist 17 46 2 +$god_ set-dist 17 47 1 +$god_ set-dist 17 48 2 +$god_ set-dist 17 49 2 +$god_ set-dist 18 19 1 +$god_ set-dist 18 20 1 +$god_ set-dist 18 21 3 +$god_ set-dist 18 22 1 +$god_ set-dist 18 23 2 +$god_ set-dist 18 24 2 +$god_ set-dist 18 25 1 +$god_ set-dist 18 26 2 +$god_ set-dist 18 27 2 +$god_ set-dist 18 28 1 +$god_ set-dist 18 29 2 +$god_ set-dist 18 30 1 +$god_ set-dist 18 31 2 +$god_ set-dist 18 32 2 +$god_ set-dist 18 33 1 +$god_ set-dist 18 34 1 +$god_ set-dist 18 35 2 +$god_ set-dist 18 36 2 +$god_ set-dist 18 37 2 +$god_ set-dist 18 38 1 +$god_ set-dist 18 39 1 +$god_ set-dist 18 40 1 +$god_ set-dist 18 41 1 +$god_ set-dist 18 42 2 +$god_ set-dist 18 43 1 +$god_ set-dist 18 44 1 +$god_ set-dist 18 45 2 +$god_ set-dist 18 46 2 +$god_ set-dist 18 47 2 +$god_ set-dist 18 48 1 +$god_ set-dist 18 49 2 +$god_ set-dist 19 20 1 +$god_ set-dist 19 21 2 +$god_ set-dist 19 22 1 +$god_ set-dist 19 23 2 +$god_ set-dist 19 24 2 +$god_ set-dist 19 25 1 +$god_ set-dist 19 26 2 +$god_ set-dist 19 27 2 +$god_ set-dist 19 28 1 +$god_ set-dist 19 29 2 +$god_ set-dist 19 30 1 +$god_ set-dist 19 31 1 +$god_ set-dist 19 32 2 +$god_ set-dist 19 33 1 +$god_ set-dist 19 34 1 +$god_ set-dist 19 35 2 +$god_ set-dist 19 36 2 +$god_ set-dist 19 37 2 +$god_ set-dist 19 38 1 +$god_ set-dist 19 39 1 +$god_ set-dist 19 40 1 +$god_ set-dist 19 41 1 +$god_ set-dist 19 42 2 +$god_ set-dist 19 43 1 +$god_ set-dist 19 44 1 +$god_ set-dist 19 45 1 +$god_ set-dist 19 46 2 +$god_ set-dist 19 47 1 +$god_ set-dist 19 48 1 +$god_ set-dist 19 49 1 +$god_ set-dist 20 21 2 +$god_ set-dist 20 22 1 +$god_ set-dist 20 23 1 +$god_ set-dist 20 24 1 +$god_ set-dist 20 25 1 +$god_ set-dist 20 26 1 +$god_ set-dist 20 27 1 +$god_ set-dist 20 28 1 +$god_ set-dist 20 29 1 +$god_ set-dist 20 30 1 +$god_ set-dist 20 31 1 +$god_ set-dist 20 32 1 +$god_ set-dist 20 33 1 +$god_ set-dist 20 34 1 +$god_ set-dist 20 35 1 +$god_ set-dist 20 36 2 +$god_ set-dist 20 37 1 +$god_ set-dist 20 38 1 +$god_ set-dist 20 39 1 +$god_ set-dist 20 40 1 +$god_ set-dist 20 41 1 +$god_ set-dist 20 42 1 +$god_ set-dist 20 43 1 +$god_ set-dist 20 44 1 +$god_ set-dist 20 45 1 +$god_ set-dist 20 46 1 +$god_ set-dist 20 47 2 +$god_ set-dist 20 48 1 +$god_ set-dist 20 49 2 +$god_ set-dist 21 22 3 +$god_ set-dist 21 23 2 +$god_ set-dist 21 24 1 +$god_ set-dist 21 25 2 +$god_ set-dist 21 26 1 +$god_ set-dist 21 27 2 +$god_ set-dist 21 28 3 +$god_ set-dist 21 29 2 +$god_ set-dist 21 30 2 +$god_ set-dist 21 31 2 +$god_ set-dist 21 32 1 +$god_ set-dist 21 33 2 +$god_ set-dist 21 34 2 +$god_ set-dist 21 35 2 +$god_ set-dist 21 36 1 +$god_ set-dist 21 37 1 +$god_ set-dist 21 38 2 +$god_ set-dist 21 39 2 +$god_ set-dist 21 40 2 +$god_ set-dist 21 41 3 +$god_ set-dist 21 42 1 +$god_ set-dist 21 43 2 +$god_ set-dist 21 44 3 +$god_ set-dist 21 45 1 +$god_ set-dist 21 46 2 +$god_ set-dist 21 47 2 +$god_ set-dist 21 48 3 +$god_ set-dist 21 49 2 +$god_ set-dist 22 23 2 +$god_ set-dist 22 24 2 +$god_ set-dist 22 25 2 +$god_ set-dist 22 26 2 +$god_ set-dist 22 27 2 +$god_ set-dist 22 28 1 +$god_ set-dist 22 29 2 +$god_ set-dist 22 30 1 +$god_ set-dist 22 31 2 +$god_ set-dist 22 32 2 +$god_ set-dist 22 33 1 +$god_ set-dist 22 34 1 +$god_ set-dist 22 35 2 +$god_ set-dist 22 36 2 +$god_ set-dist 22 37 2 +$god_ set-dist 22 38 1 +$god_ set-dist 22 39 1 +$god_ set-dist 22 40 1 +$god_ set-dist 22 41 1 +$god_ set-dist 22 42 2 +$god_ set-dist 22 43 1 +$god_ set-dist 22 44 1 +$god_ set-dist 22 45 2 +$god_ set-dist 22 46 2 +$god_ set-dist 22 47 2 +$god_ set-dist 22 48 1 +$god_ set-dist 22 49 2 +$god_ set-dist 23 24 2 +$god_ set-dist 23 25 2 +$god_ set-dist 23 26 2 +$god_ set-dist 23 27 1 +$god_ set-dist 23 28 2 +$god_ set-dist 23 29 1 +$god_ set-dist 23 30 2 +$god_ set-dist 23 31 2 +$god_ set-dist 23 32 1 +$god_ set-dist 23 33 2 +$god_ set-dist 23 34 2 +$god_ set-dist 23 35 1 +$god_ set-dist 23 36 2 +$god_ set-dist 23 37 2 +$god_ set-dist 23 38 1 +$god_ set-dist 23 39 1 +$god_ set-dist 23 40 1 +$god_ set-dist 23 41 2 +$god_ set-dist 23 42 2 +$god_ set-dist 23 43 2 +$god_ set-dist 23 44 1 +$god_ set-dist 23 45 2 +$god_ set-dist 23 46 1 +$god_ set-dist 23 47 3 +$god_ set-dist 23 48 2 +$god_ set-dist 23 49 3 +$god_ set-dist 24 25 1 +$god_ set-dist 24 26 1 +$god_ set-dist 24 27 2 +$god_ set-dist 24 28 2 +$god_ set-dist 24 29 1 +$god_ set-dist 24 30 2 +$god_ set-dist 24 31 2 +$god_ set-dist 24 32 1 +$god_ set-dist 24 33 2 +$god_ set-dist 24 34 2 +$god_ set-dist 24 35 1 +$god_ set-dist 24 36 1 +$god_ set-dist 24 37 1 +$god_ set-dist 24 38 1 +$god_ set-dist 24 39 2 +$god_ set-dist 24 40 2 +$god_ set-dist 24 41 2 +$god_ set-dist 24 42 1 +$god_ set-dist 24 43 2 +$god_ set-dist 24 44 2 +$god_ set-dist 24 45 2 +$god_ set-dist 24 46 2 +$god_ set-dist 24 47 2 +$god_ set-dist 24 48 2 +$god_ set-dist 24 49 3 +$god_ set-dist 25 26 1 +$god_ set-dist 25 27 2 +$god_ set-dist 25 28 1 +$god_ set-dist 25 29 1 +$god_ set-dist 25 30 1 +$god_ set-dist 25 31 1 +$god_ set-dist 25 32 2 +$god_ set-dist 25 33 1 +$god_ set-dist 25 34 1 +$god_ set-dist 25 35 2 +$god_ set-dist 25 36 1 +$god_ set-dist 25 37 1 +$god_ set-dist 25 38 1 +$god_ set-dist 25 39 1 +$god_ set-dist 25 40 2 +$god_ set-dist 25 41 1 +$god_ set-dist 25 42 1 +$god_ set-dist 25 43 1 +$god_ set-dist 25 44 1 +$god_ set-dist 25 45 1 +$god_ set-dist 25 46 2 +$god_ set-dist 25 47 1 +$god_ set-dist 25 48 1 +$god_ set-dist 25 49 2 +$god_ set-dist 26 27 2 +$god_ set-dist 26 28 2 +$god_ set-dist 26 29 1 +$god_ set-dist 26 30 2 +$god_ set-dist 26 31 2 +$god_ set-dist 26 32 1 +$god_ set-dist 26 33 2 +$god_ set-dist 26 34 1 +$god_ set-dist 26 35 1 +$god_ set-dist 26 36 1 +$god_ set-dist 26 37 1 +$god_ set-dist 26 38 1 +$god_ set-dist 26 39 1 +$god_ set-dist 26 40 2 +$god_ set-dist 26 41 2 +$god_ set-dist 26 42 1 +$god_ set-dist 26 43 2 +$god_ set-dist 26 44 2 +$god_ set-dist 26 45 1 +$god_ set-dist 26 46 2 +$god_ set-dist 26 47 2 +$god_ set-dist 26 48 2 +$god_ set-dist 26 49 2 +$god_ set-dist 27 28 2 +$god_ set-dist 27 29 1 +$god_ set-dist 27 30 2 +$god_ set-dist 27 31 2 +$god_ set-dist 27 32 1 +$god_ set-dist 27 33 2 +$god_ set-dist 27 34 2 +$god_ set-dist 27 35 1 +$god_ set-dist 27 36 2 +$god_ set-dist 27 37 2 +$god_ set-dist 27 38 2 +$god_ set-dist 27 39 1 +$god_ set-dist 27 40 1 +$god_ set-dist 27 41 2 +$god_ set-dist 27 42 2 +$god_ set-dist 27 43 2 +$god_ set-dist 27 44 2 +$god_ set-dist 27 45 2 +$god_ set-dist 27 46 1 +$god_ set-dist 27 47 3 +$god_ set-dist 27 48 2 +$god_ set-dist 27 49 3 +$god_ set-dist 28 29 2 +$god_ set-dist 28 30 1 +$god_ set-dist 28 31 1 +$god_ set-dist 28 32 2 +$god_ set-dist 28 33 1 +$god_ set-dist 28 34 1 +$god_ set-dist 28 35 2 +$god_ set-dist 28 36 2 +$god_ set-dist 28 37 2 +$god_ set-dist 28 38 1 +$god_ set-dist 28 39 1 +$god_ set-dist 28 40 1 +$god_ set-dist 28 41 1 +$god_ set-dist 28 42 2 +$god_ set-dist 28 43 1 +$god_ set-dist 28 44 1 +$god_ set-dist 28 45 2 +$god_ set-dist 28 46 2 +$god_ set-dist 28 47 2 +$god_ set-dist 28 48 1 +$god_ set-dist 28 49 2 +$god_ set-dist 29 30 2 +$god_ set-dist 29 31 2 +$god_ set-dist 29 32 1 +$god_ set-dist 29 33 2 +$god_ set-dist 29 34 1 +$god_ set-dist 29 35 1 +$god_ set-dist 29 36 2 +$god_ set-dist 29 37 1 +$god_ set-dist 29 38 1 +$god_ set-dist 29 39 1 +$god_ set-dist 29 40 1 +$god_ set-dist 29 41 2 +$god_ set-dist 29 42 2 +$god_ set-dist 29 43 2 +$god_ set-dist 29 44 1 +$god_ set-dist 29 45 2 +$god_ set-dist 29 46 1 +$god_ set-dist 29 47 2 +$god_ set-dist 29 48 2 +$god_ set-dist 29 49 2 +$god_ set-dist 30 31 1 +$god_ set-dist 30 32 2 +$god_ set-dist 30 33 1 +$god_ set-dist 30 34 1 +$god_ set-dist 30 35 2 +$god_ set-dist 30 36 2 +$god_ set-dist 30 37 2 +$god_ set-dist 30 38 1 +$god_ set-dist 30 39 1 +$god_ set-dist 30 40 1 +$god_ set-dist 30 41 1 +$god_ set-dist 30 42 2 +$god_ set-dist 30 43 1 +$god_ set-dist 30 44 1 +$god_ set-dist 30 45 1 +$god_ set-dist 30 46 2 +$god_ set-dist 30 47 1 +$god_ set-dist 30 48 1 +$god_ set-dist 30 49 1 +$god_ set-dist 31 32 2 +$god_ set-dist 31 33 1 +$god_ set-dist 31 34 1 +$god_ set-dist 31 35 2 +$god_ set-dist 31 36 2 +$god_ set-dist 31 37 1 +$god_ set-dist 31 38 1 +$god_ set-dist 31 39 2 +$god_ set-dist 31 40 2 +$god_ set-dist 31 41 1 +$god_ set-dist 31 42 1 +$god_ set-dist 31 43 1 +$god_ set-dist 31 44 2 +$god_ set-dist 31 45 1 +$god_ set-dist 31 46 2 +$god_ set-dist 31 47 1 +$god_ set-dist 31 48 2 +$god_ set-dist 31 49 1 +$god_ set-dist 32 33 2 +$god_ set-dist 32 34 2 +$god_ set-dist 32 35 1 +$god_ set-dist 32 36 1 +$god_ set-dist 32 37 2 +$god_ set-dist 32 38 1 +$god_ set-dist 32 39 2 +$god_ set-dist 32 40 2 +$god_ set-dist 32 41 2 +$god_ set-dist 32 42 2 +$god_ set-dist 32 43 2 +$god_ set-dist 32 44 2 +$god_ set-dist 32 45 2 +$god_ set-dist 32 46 2 +$god_ set-dist 32 47 3 +$god_ set-dist 32 48 2 +$god_ set-dist 32 49 3 +$god_ set-dist 33 34 1 +$god_ set-dist 33 35 2 +$god_ set-dist 33 36 2 +$god_ set-dist 33 37 2 +$god_ set-dist 33 38 1 +$god_ set-dist 33 39 1 +$god_ set-dist 33 40 1 +$god_ set-dist 33 41 1 +$god_ set-dist 33 42 2 +$god_ set-dist 33 43 1 +$god_ set-dist 33 44 1 +$god_ set-dist 33 45 1 +$god_ set-dist 33 46 2 +$god_ set-dist 33 47 1 +$god_ set-dist 33 48 1 +$god_ set-dist 33 49 1 +$god_ set-dist 34 35 2 +$god_ set-dist 34 36 2 +$god_ set-dist 34 37 1 +$god_ set-dist 34 38 1 +$god_ set-dist 34 39 1 +$god_ set-dist 34 40 1 +$god_ set-dist 34 41 1 +$god_ set-dist 34 42 1 +$god_ set-dist 34 43 1 +$god_ set-dist 34 44 1 +$god_ set-dist 34 45 1 +$god_ set-dist 34 46 2 +$god_ set-dist 34 47 1 +$god_ set-dist 34 48 1 +$god_ set-dist 34 49 1 +$god_ set-dist 35 36 2 +$god_ set-dist 35 37 2 +$god_ set-dist 35 38 1 +$god_ set-dist 35 39 1 +$god_ set-dist 35 40 1 +$god_ set-dist 35 41 2 +$god_ set-dist 35 42 2 +$god_ set-dist 35 43 2 +$god_ set-dist 35 44 2 +$god_ set-dist 35 45 2 +$god_ set-dist 35 46 1 +$god_ set-dist 35 47 2 +$god_ set-dist 35 48 2 +$god_ set-dist 35 49 3 +$god_ set-dist 36 37 1 +$god_ set-dist 36 38 2 +$god_ set-dist 36 39 2 +$god_ set-dist 36 40 2 +$god_ set-dist 36 41 2 +$god_ set-dist 36 42 1 +$god_ set-dist 36 43 2 +$god_ set-dist 36 44 2 +$god_ set-dist 36 45 1 +$god_ set-dist 36 46 2 +$god_ set-dist 36 47 2 +$god_ set-dist 36 48 2 +$god_ set-dist 36 49 2 +$god_ set-dist 37 38 1 +$god_ set-dist 37 39 1 +$god_ set-dist 37 40 2 +$god_ set-dist 37 41 2 +$god_ set-dist 37 42 1 +$god_ set-dist 37 43 2 +$god_ set-dist 37 44 2 +$god_ set-dist 37 45 1 +$god_ set-dist 37 46 2 +$god_ set-dist 37 47 1 +$god_ set-dist 37 48 2 +$god_ set-dist 37 49 2 +$god_ set-dist 38 39 1 +$god_ set-dist 38 40 1 +$god_ set-dist 38 41 1 +$god_ set-dist 38 42 1 +$god_ set-dist 38 43 1 +$god_ set-dist 38 44 1 +$god_ set-dist 38 45 1 +$god_ set-dist 38 46 1 +$god_ set-dist 38 47 2 +$god_ set-dist 38 48 1 +$god_ set-dist 38 49 2 +$god_ set-dist 39 40 1 +$god_ set-dist 39 41 1 +$god_ set-dist 39 42 2 +$god_ set-dist 39 43 1 +$god_ set-dist 39 44 1 +$god_ set-dist 39 45 1 +$god_ set-dist 39 46 1 +$god_ set-dist 39 47 2 +$god_ set-dist 39 48 1 +$god_ set-dist 39 49 2 +$god_ set-dist 40 41 1 +$god_ set-dist 40 42 2 +$god_ set-dist 40 43 2 +$god_ set-dist 40 44 1 +$god_ set-dist 40 45 2 +$god_ set-dist 40 46 1 +$god_ set-dist 40 47 2 +$god_ set-dist 40 48 1 +$god_ set-dist 40 49 2 +$god_ set-dist 41 42 2 +$god_ set-dist 41 43 1 +$god_ set-dist 41 44 1 +$god_ set-dist 41 45 2 +$god_ set-dist 41 46 2 +$god_ set-dist 41 47 2 +$god_ set-dist 41 48 1 +$god_ set-dist 41 49 2 +$god_ set-dist 42 43 2 +$god_ set-dist 42 44 2 +$god_ set-dist 42 45 1 +$god_ set-dist 42 46 2 +$god_ set-dist 42 47 2 +$god_ set-dist 42 48 2 +$god_ set-dist 42 49 2 +$god_ set-dist 43 44 1 +$god_ set-dist 43 45 1 +$god_ set-dist 43 46 2 +$god_ set-dist 43 47 1 +$god_ set-dist 43 48 1 +$god_ set-dist 43 49 1 +$god_ set-dist 44 45 2 +$god_ set-dist 44 46 1 +$god_ set-dist 44 47 2 +$god_ set-dist 44 48 1 +$god_ set-dist 44 49 2 +$god_ set-dist 45 46 2 +$god_ set-dist 45 47 1 +$god_ set-dist 45 48 2 +$god_ set-dist 45 49 1 +$god_ set-dist 46 47 3 +$god_ set-dist 46 48 2 +$god_ set-dist 46 49 3 +$god_ set-dist 47 48 2 +$god_ set-dist 47 49 1 +$god_ set-dist 48 49 2 +$ns_ at 200.000000000000 "$node_(0) setdest 464.436108503190 485.894524274874 0.049742332275" +$ns_ at 200.000000000000 "$node_(1) setdest 312.294729393279 271.241097109892 0.178450842648" +$ns_ at 200.000000000000 "$node_(2) setdest 257.400762298926 282.629406495699 0.466866856233" +$ns_ at 200.000000000000 "$node_(3) setdest 406.863880722711 474.829662187158 0.405867677746" +$ns_ at 200.000000000000 "$node_(4) setdest 129.270766253658 53.740368498954 0.599667582598" +$ns_ at 200.000000000000 "$node_(5) setdest 388.118638244615 102.419028362063 0.299495884519" +$ns_ at 200.000000000000 "$node_(6) setdest 343.222987812567 411.654348164821 0.402044431918" +$ns_ at 200.000000000000 "$node_(7) setdest 189.454117302423 177.067116794633 0.579284284844" +$ns_ at 200.000000000000 "$node_(8) setdest 336.048958566548 202.274122641659 0.790972074615" +$ns_ at 200.000000000000 "$node_(9) setdest 486.227277814242 320.062742818392 0.529761883242" +$ns_ at 200.000000000000 "$node_(10) setdest 355.061554548518 362.887057121961 0.903128348955" +$ns_ at 200.000000000000 "$node_(11) setdest 237.931585519055 348.073395644144 0.624501592223" +$ns_ at 200.000000000000 "$node_(12) setdest 395.459022316029 182.704077917721 0.964414314506" +$ns_ at 200.000000000000 "$node_(13) setdest 339.161093823031 116.062212069738 0.170850887088" +$ns_ at 200.000000000000 "$node_(14) setdest 108.537193172550 304.887263550551 0.438501886839" +$ns_ at 200.000000000000 "$node_(15) setdest 136.678305903703 472.742253176493 0.459880492570" +$ns_ at 200.000000000000 "$node_(16) setdest 176.550181052284 117.614399749738 0.685392823201" +$ns_ at 200.000000000000 "$node_(17) setdest 490.019043656988 269.026660932588 0.825959913386" +$ns_ at 200.000000000000 "$node_(18) setdest 136.129229170009 345.175401027427 0.516901308791" +$ns_ at 200.000000000000 "$node_(19) setdest 141.109519603378 179.859533303134 0.900971238129" +$ns_ at 200.000000000000 "$node_(20) setdest 93.213035699053 451.702243987021 0.868203566779" +$ns_ at 200.000000000000 "$node_(21) setdest 73.398204349639 118.855576664666 0.805899398547" +$ns_ at 200.000000000000 "$node_(22) setdest 486.480231673431 487.682753577366 0.722328148606" +$ns_ at 200.000000000000 "$node_(23) setdest 201.735218744940 416.637033959968 0.183888819825" +$ns_ at 200.000000000000 "$node_(24) setdest 1.814875490380 439.731152021345 0.246418615863" +$ns_ at 200.000000000000 "$node_(25) setdest 398.104971811602 254.544392098960 0.658676197521" +$ns_ at 200.000000000000 "$node_(26) setdest 372.634621222504 435.197831718519 0.207178415752" +$ns_ at 200.000000000000 "$node_(27) setdest 88.939421460824 106.753226650104 0.918804807847" +$ns_ at 200.000000000000 "$node_(28) setdest 102.930190020585 1.227334317585 0.335285571576" +$ns_ at 200.000000000000 "$node_(29) setdest 3.061360129333 168.567664237245 0.930574773475" +$ns_ at 200.000000000000 "$node_(30) setdest 28.841582475940 382.142378712449 0.154216131446" +$ns_ at 200.000000000000 "$node_(31) setdest 339.611158855055 26.984830878872 0.689598454730" +$ns_ at 200.000000000000 "$node_(32) setdest 435.903844113462 340.039528260991 0.059471346058" +$ns_ at 200.000000000000 "$node_(33) setdest 302.685429448860 241.455713920945 0.442756745520" +$ns_ at 200.000000000000 "$node_(34) setdest 46.084214021805 82.935279992069 0.409226284390" +$ns_ at 200.000000000000 "$node_(35) setdest 447.442236954343 462.754543580335 0.954354962452" +$ns_ at 200.000000000000 "$node_(36) setdest 195.619045684291 272.516760552182 0.630224033046" +$ns_ at 200.000000000000 "$node_(37) setdest 223.058403911104 159.320261361686 0.298229133252" +$ns_ at 200.000000000000 "$node_(38) setdest 438.525848955237 84.843163296436 0.199323288272" +$ns_ at 200.000000000000 "$node_(39) setdest 199.395786266384 496.324678239304 0.397650363788" +$ns_ at 200.000000000000 "$node_(40) setdest 229.764905593149 411.451634504353 0.127916654480" +$ns_ at 200.000000000000 "$node_(41) setdest 321.080703820285 94.444527790058 0.906181658498" +$ns_ at 200.000000000000 "$node_(42) setdest 61.045644967233 330.993074771613 0.901366145696" +$ns_ at 200.000000000000 "$node_(43) setdest 179.220960307391 121.644200361798 0.054191990120" +$ns_ at 200.000000000000 "$node_(44) setdest 239.071449783366 11.789318046574 0.478741122544" +$ns_ at 200.000000000000 "$node_(45) setdest 117.831361598550 208.391984190217 0.216647222187" +$ns_ at 200.000000000000 "$node_(46) setdest 193.142066982936 302.825698276922 0.299692384744" +$ns_ at 200.000000000000 "$node_(47) setdest 281.660119557126 19.432375333722 0.654917656729" +$ns_ at 200.000000000000 "$node_(48) setdest 317.337854068324 88.412967252055 0.702826238048" +$ns_ at 200.000000000000 "$node_(49) setdest 470.926515281367 29.547847375728 0.397671634731" +# +# Destination Unreachables: 0 +# +# Route Changes: 0 +# +# Link Changes: 0 +# +# Node | Route Changes | Link Changes +# 0 | 0 | 0 +# 1 | 0 | 0 +# 2 | 0 | 0 +# 3 | 0 | 0 +# 4 | 0 | 0 +# 5 | 0 | 0 +# 6 | 0 | 0 +# 7 | 0 | 0 +# 8 | 0 | 0 +# 9 | 0 | 0 +# 10 | 0 | 0 +# 11 | 0 | 0 +# 12 | 0 | 0 +# 13 | 0 | 0 +# 14 | 0 | 0 +# 15 | 0 | 0 +# 16 | 0 | 0 +# 17 | 0 | 0 +# 18 | 0 | 0 +# 19 | 0 | 0 +# 20 | 0 | 0 +# 21 | 0 | 0 +# 22 | 0 | 0 +# 23 | 0 | 0 +# 24 | 0 | 0 +# 25 | 0 | 0 +# 26 | 0 | 0 +# 27 | 0 | 0 +# 28 | 0 | 0 +# 29 | 0 | 0 +# 30 | 0 | 0 +# 31 | 0 | 0 +# 32 | 0 | 0 +# 33 | 0 | 0 +# 34 | 0 | 0 +# 35 | 0 | 0 +# 36 | 0 | 0 +# 37 | 0 | 0 +# 38 | 0 | 0 +# 39 | 0 | 0 +# 40 | 0 | 0 +# 41 | 0 | 0 +# 42 | 0 | 0 +# 43 | 0 | 0 +# 44 | 0 | 0 +# 45 | 0 | 0 +# 46 | 0 | 0 +# 47 | 0 | 0 +# 48 | 0 | 0 +# 49 | 0 | 0 +# Binary files /home/ns/ns-allinone-2.26/ns-2.26/tbf/snapshot1.png and ns/tbf/snapshot1.png differ diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/tbf.cc ns/tbf/tbf.cc --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/tbf.cc Wed Dec 31 19:00:00 1969 +++ ns/tbf/tbf.cc Mon Jun 2 19:21:37 2003 @@ -0,0 +1,910 @@ +/* + + Copyright (C) 2003 + Department of Computer Science, Rutgers, The State University of New Jersey + + All rights reserved. + + NOTICE: This software is provided "as is", without any warranty, + including any implied warranty for merchantability or fitness for a + particular purpose. Under no circumstances shall Harvard University + or its faculty, staff, students or agents be liable for any use of, + misuse of, or inability to use this software, including incidental + and consequential damages. + + License is hereby given to use, modify, and redistribute this + software, in whole or in part, for any commercial or non-commercial + purpose, provided that the user agrees to the terms of this + copyright notice, including disclaimer of warranty, and provided + that this copyright notice, including disclaimer of warranty, is + preserved in the source code and documentation of anything derived + from this software. Any redistributor of this software or anything + derived from this software assumes responsibility for ensuring that + any parties to whom such a redistribution is made are fully aware of + the terms of this license and disclaimer. + + Author: Prashant Mekaraj, DCS, Rutgers, 2003. mekaraj@paul.rutgers.edu + + This code(Most of the beacon/neighbour code) is based on Brad Karp's + GPSR extensions to NS2. + +*/ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + + +#define BEACON_RESCHED \ + beacon_timer_->resched(bint_ + Random::uniform(2*bdesync_* bint_) - \ + bdesync_ * bint_) + + +inline double distance(double x1, double y1, double z1, double x2, double y2, + double z2) +{ + return sqrt((x1 - x2)*(x1 - x2) + + (y1 - y2)*(y1 - y2) + + (z1 - z2)*(z1 - z2)); +} + +/* +inline double bearing(double x1, double y1, double x2, double y2) +{ + double brg; + + // XXX only deal with 2D for now + // XXX check for (0, 0) args, a domain error + brg = atan2(y2 - y1, x2 - x1); + if (brg < 0) + brg += 2*M_PI; + return brg; +} +*/ + + + +static int NeighbEntCmp(const void *a, const void *b) +{ + nsaddr_t ia = ((const NeighbEnt *) a)->dst; + nsaddr_t ib = (*(const NeighbEnt **) b)->dst; + if (ia > ib) return 1; + if (ib > ia) return -1; + return 0; +} + +NeighbTable::NeighbTable(TBF_Agent *mya) +{ + int i; + + nents = 0; + maxents = 100; + tab = new (NeighbEnt *)[100]; + a = mya; + for (i = 0; i < 100; i++) + tab[i] = new NeighbEnt(a); +} + +NeighbTable::~NeighbTable() +{ + int i; + + // cancel timers + for (i = 0; i < nents; i++) { + tab[i]->dnt.force_cancel(); + //tab[i]->ppt.force_cancel(); + delete tab[i]; + } + delete[] tab; +} + +NeighbTableIter NeighbTable::InitLoop() { + return (NeighbTableIter) 0; +} + +NeighbEnt *NeighbTable::NextLoop(NeighbTableIter *it) { + if (((unsigned int) *it) >= (unsigned int) nents) + return 0; + + return tab[(*it)++]; +} + +NeighbEnt * +NeighbTable::ent_findshortest(MobileNode *mn, double x, double y, double z) +{ + NeighbEnt *ne = 0; + double shortest, t, myx, myy, myz; + int i; + + mn->getLoc(&myx, &myy, &myz); + shortest = distance(myx, myy, myz, x, y, z); + for (i = 0; i < nents; i++) + if ((t = distance(tab[i]->x, tab[i]->y, tab[i]->z, x, y, z)) < shortest) { + shortest = t; + ne = tab[i]; + } + return ne; +} + +NeighbEnt * +NeighbTable::ent_findclosesttotraj(MobileNode *mn, Packet *p,LocDbase *ldb_) { + NeighbEnt *ne = 0; + MobileNode *smn,*dmn; + int i=0; + double shortest, t, to_go, myx, myy, myz,sx,sy,sz,dx,dy,dz; + hdr_ip *iph = hdr_ip::access(p); + + found = 1; + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + + /* DEBUG + printf("Finding Closest to trajectory at Node %d to Node %d. \ + Num Neighbours are %d\n",src,dst,nents); */ + + smn = ldb_->nlookup(src); + smn->getLoc(&sx,&sy,&sz); + dmn = ldb_->nlookup(dst); + dmn->getLoc(&dx,&dy,&dz); + + mn->getLoc(&myx,&myy,&myz); + + shortest = distance(dx,dy,dz,myx, myy, myz); + to_go = shortest; + + for(i = 0; i < nents; i++) { + t = distance(dx,dy,dz,tab[i]->x,tab[i]->y,tab[i]->z); + + //DEBUG + /* printf(" \nLocations are : \n Destination : %f %f %f \n \ + My : %f %f %f \n Neighbour %d : %f %f %f \n",dx,dy,dz,myx \ + ,myy,myz,i, tab[i]->x,tab[i]->y,tab[i]->z); + printf(" \n Distances : Shortest = %f , t = %f\n",shortest,t); + */ + + if( t < shortest ) { + shortest = t; + ne = tab[i]; + } + } + + // Should ideally check if the next hop selected is same as current node. + // But the Neighbour table overhead to to do this is too high. So checking + // shortest distances. + // Update: Could possibly check the myx.... with ne->x.... Needs investigation + if(shortest == to_go ) { + + // DEBUG + //printf(" Unable to make forward progress !!!, dropping packet \n"); + //ne = 0; + // Not actually dropping packet, just sending it back to forwardPacket + // Any route recovery code must be put in here. + + ne = tab[i]; + found = 0; + } + + return ne; +} + +NeighbEnt *NeighbTable::ent_finddst(nsaddr_t dst) +{ + NeighbEnt ne(NULL), **pne; + + ne.dst = dst; + pne = ((NeighbEnt **) bsearch(&ne, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp)); + if (pne) + return *pne; + else + return NULL; +} + +void NeighbTable::ent_delete(const NeighbEnt *ent) +{ + NeighbEnt **pne, *owslot; + int i, j; + + if ((pne = (NeighbEnt **) bsearch(ent, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp))) { + i = pne - tab; + // make sure no timers scheduled for this neighbor + (*pne)->dnt.force_cancel(); + // slide any subsequent table entries backward + if (i < (nents - 1)) + owslot = tab[i]; + for (j = i; j < nents - 1; j++) + tab[j] = tab[j+1]; + if (i < (nents - 1)) + tab[nents-1] = owslot; + nents--; + } +} + +NeighbEnt *NeighbTable::ent_add(const NeighbEnt *ent) +{ + NeighbEnt **pne, *owslot; + int i, j, r, l; + + if ((pne = (NeighbEnt **) bsearch(ent, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp))) { + // already in table; overwrite + // make sure there is no pending timer + i = pne - tab; + (*pne)->dnt.force_cancel(); + /* XXX overwriting table entry shouldn't affect when to probe this + perimeter */ + // (*pne)->ppt.force_cancel(); + // careful not to overwrite timers! + (*pne)->dst = ent->dst; + (*pne)->x = ent->x; + (*pne)->y = ent->y; + (*pne)->z = ent->z; + return *pne; + } + + // may have to grow table + if (nents == maxents) { + NeighbEnt **tmp = tab; + maxents *= 2; + tab = new (NeighbEnt *)[maxents]; + bcopy(tmp, tab, nents*sizeof(NeighbEnt *)); + for (i = nents; i < maxents; i++) + tab[i] = new NeighbEnt(a); + delete[] tmp; + } + + // binary search for insertion point + if (nents == 0) + i = 0; + else { + l = 0; + r = nents - 1; + while ((r - l) > 0) { + if (ent->dst < tab[l + ((r-l) / 2)]->dst) + r = l + ((r - l) / 2) - 1; + else + l += (r - l) / 2 + 1; + } + if (r < l) + i = r+1; + else + // r == l + if (ent->dst < tab[r]->dst) + i = r; + else + i = r+1; + } + + // slide subsequent entries forward + if (i <= (nents - 1)) + owslot = tab[nents]; + j = nents-1; + while (j >= i) + tab[j+1] = tab[j--]; + // slam into table, without overwriting timers + if (i <= (nents - 1)) + tab[i] = owslot; + tab[i]->dst = ent->dst; + tab[i]->x = ent->x; + tab[i]->y = ent->y; + tab[i]->z = ent->z; + // XXX gross way to indicate entry is *new* entry, graph needs planarizing + tab[i]->live = -1; + nents++; + return tab[i]; +} + + +// TBF CLASS Definition +int hdr_tbf::offset_; + +class TBFHeaderClass : public PacketHeaderClass { +public: + TBFHeaderClass() : PacketHeaderClass("PacketHeader/TBF", sizeof(hdr_tbf)) + { + bind_offset(&hdr_tbf::offset_); + } +} class_tbfhdr; + + + + + +static class TBFClass:public TclClass +{ +public: + TBFClass():TclClass ("Agent/TBF") + { + } + TclObject *create (int, const char *const *) + { + return (new TBF_Agent ()); + } +} class_tbf; + +TBF_Agent::TBF_Agent(void) : Agent(PT_TBF), beacon_timer_(0), + use_mac_(1), + verbose_(1), + drop_debug_(0), + use_implicit_beacon_(1), + bint_(TBF_ALIVE_INT), + bdesync_(TBF_ALIVE_DESYNC), + bexp_(TBF_ALIVE_EXP), + ldb_(0), + mn_(0), + ifq_(0) +{ + ntab_ = new NeighbTable(this); + + bind_time("bint_", &bint_); + bind_time("bexp_", &bexp_); + bind_time("bdesync_", &bdesync_); + + + bind("verbose_", &verbose_); + bind("drop_debug_", &drop_debug_); + bind("use_mac_", &use_mac_); + bind("use_implicit_beacon_", &use_implicit_beacon_); + bind("off_tbf_", &off_tbf_); +} + + + +// Tracing not working as of now !!!!!! +void TBF_Agent::trace(char *fmt,...) +{ + va_list ap; + + if (!tracetarget) + return; + + va_start(ap, fmt); + + // This part is not compiling becuase of changes in + // the ns structure maybe. DSR/DSDV also use + // similar code :( + //vsprintf(tracetarget->pt->buffer(), fmt, ap); + // tracetarget->pt->dump(); + va_end(ap); +} + + + +void TBF_Agent::tracepkt(Packet *p, double now, int me, const char *type) +{ + char buf[1024]; + + hdr_tbf *tbfh = hdr_tbf::access(p); + + snprintf (buf, 1024, "V%s %.5f _%d_:", type, now, me); + + if (tbfh->mode_ == TBFH_BEACON) { + snprintf (buf, 1024, "%s (%f,%f,%f)", buf, tbfh->sx_, + tbfh->sy_, tbfh->sz_); + //snprintf (buf, 1024, "%s (%f,%f,%f)", buf, tbfh->hops_[0].x, + //tbfh->hops_[0].y, tbfh->hops_[0].z); + if (verbose_) + trace("%s", buf); + } +} + + +// don't drop or modify the packet--it's not a copy! +void TBF_Agent::tap(const Packet *p) +{ + hdr_cmn *hdrc = HDR_CMN(p); + //hdr_tbf *tbfh = hdr_tbf::access(p); + hdr_tbf *tbfh = (hdr_tbf *) p->access(off_tbf_); + + /* ignore non-IP packets. + ignore beacons; we process those on regular receive. + assumes the MAC tap includes all unicast packets bound for us. + process those here, and avoid calls to beacon_proc() elsewhere. */ + if (use_implicit_beacon_ && + (hdrc->addr_type_ == AF_INET) && + (hdrc->next_hop_ != (nsaddr_t) IP_BROADCAST)) { + + // snoop it as proof of its sender's existence. + // Modes in TBF maybe a slight overhead, but ignoring that. + + switch (tbfh->mode_) { + case TBFH_DATA_GREEDY: + // prev hop position lives in lasthopip, read that + // then have to read it in in tap, snooping packets for beacons + beacon_proc(tbfh->lasthopip, tbfh->sx_, tbfh->sy_, tbfh->sz_); + break; + default: + fprintf(stderr, "Yow! tap got packet of unk type %d!\n", tbfh->mode_); + abort(); + break; + } + } +} + + +// Need to remove this. UGLY hack. +void TBF_Agent::count_drop() { + FILE *fp; + int count; + fp = fopen("count_drop","r"); + fscanf(fp,"%d",&count); + fclose(fp); + count++; + fp = fopen("count_drop","w+"); + fprintf(fp,"%d",count); + fclose(fp); +} + + +// Need to decide what to do here +// First find that DSR does on a MAC callback. +// As of now. TBF - Dropping packet without any retries. + +void TBF_Agent::lost_link(Packet *p) +{ + hdr_cmn *hdrc = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + NeighbEnt *ne; + + // count_drop(); + // DEBUG + // printf(" Dropping Packet by default on Mac Callback\n"); + drop(p, DROP_RTR_MAC_CALLBACK); + + + // Remove dead node from NeighbTable + if (hdrc->addr_type_ == AF_INET) { + ne = ntab_->ent_finddst(hdrc->next_hop_); + if (ne) { + ne->dnt.force_cancel(); + deadneighb_callback(ne); + } + } + + return; + + + + /* Here is the code for retrying based on how GPSR + and DSR(partially) do it. + Pick packets bound for that destination from the + ifq, send them into forwardPacket, so that + retransmissions using a new next hop maybe attempted. + Theoritcal infinite loop here, but very unlikely that + the sequence of node failures needed for that to happen + will occur. + */ + +/* + if (use_mac_ == 0) { + count_drop(); + + // DEBUG + // printf(" Dropping Packet Because of no Mac\n"); + drop(p, DROP_RTR_MAC_CALLBACK); + return; + } + + + + + if (verbose_ && hdrc->addr_type_ == AF_INET) + trace ("VLL %.8f %d->%d lost at %d", + Scheduler::instance().clock(), + ((hdr_ip *) p->access(off_ip_))->src_, + ((hdr_ip *) p->access(off_ip_))->dst_, + mn_->address()); + + if (hdrc->addr_type_ == AF_INET) { + ne = ntab_->ent_finddst(hdrc->next_hop_); + if (verbose_) + trace ("VLP %.5f %d:%d->%d:%d lost at %d [hop %d]", + Scheduler::instance().clock(), + ((hdr_ip *) p->access(off_ip_))->src_, + ((hdr_ip *) p->access(off_ip_))->sport_, + ((hdr_ip *) p->access(off_ip_))->dst_, + ((hdr_ip *) p->access(off_ip_))->dport_, + mn_->address(), hdrc->next_hop_); + + if (ne) { + ne->dnt.force_cancel(); + deadneighb_callback(ne); + } + } + + // grab packets in the ifq bound for the same next hop + Packet *r, *rh, *rt; + rh = rt = p; + rh->next_ = 0; + while ((r = ifq_->filter((nsaddr_t) hdrc->next_hop_))) { + rt->next_ = r; + r->next_ = 0; + rt = r; + } + + // retarget all packets we got to a new next hop + while (rh) { + rt = rh; + rh = rh->next_; + + hdrc = HDR_CMN(rt); + tbfh = hdr_tbf::access(rt); + + if (hdrc->addr_type_ != AF_INET) { + count_drop(); + printf(" Dropping Pakcet : Unknown reason !! Mac Callback \n"); + drop(rt, DROP_RTR_MAC_CALLBACK); + continue; + } + + + if (((hdr_ip *) rt->access(off_ip_))->dport_ == TBF_PORT) { + if (tbfh->mode_ == TBFH_PPROBE) { + if (hdrc->numforwards() == 1) { + // we originated it. the neighbor is gone, according to the MAC + // layer. drop the probe--it was *only* meant for that neighbor. + + drop(rt, DROP_RTR_NEXT_SRCRT_HOP); + continue; + } + // we were forwarding the probe, so instead try to recover by + // forwarding it to a remaining appropriate next hop + // This is what is done in GPSR. Havent been able to figure out + // why beacons are being forwarded. + tbfh->nhops_--; + hdrc->size() = tbfh->size() + IP_HDR_LEN; + } + } + else { + switch (tbfh->mode_) { + + case TBFH_DATA_GREEDY: + //give the packet another chance--exercise greedy's good recovery + forwardPacket(rt); + break; + default: + fprintf(stderr,"yow! non-data packet for non-TBF port bounced by MAC!\n"); + abort(); + break; + } + } + } + + */ // End recovery Code section. +} + +static void mac_callback(Packet * p, void *arg) +{ + ((TBF_Agent *) arg)->lost_link(p); +} + + + + +// construct and return an alive beacon packet + +Packet *TBF_Agent::makeAlive(void) +{ + Packet *p = allocpkt(); + hdr_ip *iph = hdr_ip::access(p); + hdr_cmn *hdrc = hdr_cmn::access(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + // set up header + hdrc->next_hop_ = IP_BROADCAST; + hdrc->addr_type_ = AF_INET; + hdrc->ptype_ = PT_TBF; + iph->daddr() = IP_BROADCAST << Address::instance().nodeshift(); + iph->dport_ = TBF_PORT; + // Set last hop ip to current node for beacon processing + tbfh->lasthopip = mn_->address(); + tbfh->mode_ = TBFH_BEACON; + tbfh->nhops_ = 1; + mn_->getLoc(&tbfh->sx_, &tbfh->sy_, &tbfh->sz_); + // simulated size: hdr_tbf, IP header + hdrc->size() = tbfh->size() + IP_HDR_LEN; + return p; +} + + + +void TBF_Agent::beacon_callback(void) +{ + Scheduler &s = Scheduler::instance(); + + Packet *p = makeAlive(); + + // schedule the transmission of this beacon + if (p) { + assert (!HDR_CMN(p)->xmit_failure_); + s.schedule (target_, p, 0); + } + // schedule the next beacon generation event + BEACON_RESCHED; +} + +void TBF_Agent::deadneighb_callback(NeighbEnt *ne) +{ + Scheduler &s = Scheduler::instance(); + double now = s.clock (); + + if (verbose_) + trace ("VTO %.5f _%d_ %d->%d", now, mn_->address(), mn_->address(), + ne->dst); + // remove the neighbor entry from the table! + ntab_->ent_delete(ne); + +} + + +void TBF_Agent::beacon_proc(int src, double x, double y, double z) +{ + NeighbEnt *ne; + NeighbEnt nne(this); + + nne.dst = src; + nne.x = x; + nne.y = y; + nne.z = z; + ne = ntab_->ent_add(&nne); + if (ne->live == -1) { + ne->live = 1; + } + ne->dnt.resched(bexp_); +} + +void TBF_Agent::beaconIn(Packet *p, hdr_tbf *tbfh) +{ + hdr_ip *hdrip = hdr_ip::access(p); + int src = tbfh->lasthopip; + + // DEBUG + //printf(" Processing beacon\n"); + beacon_proc(src, tbfh->sx_, tbfh->sy_, tbfh->sz_); + // we consumed the packet; free it! + Packet::free(p); +} + +void TBF_Agent::recv(Packet *p,Handler *) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + + Scheduler &s = Scheduler::instance(); + double now = s.clock(); + + int count; + FILE *fp; + // DEBUG + // printf(" Received Packet at Node %d from %d to Node %d at time %f\n",mn_->address(),src,dst,now); + + MobileNode *dmn; + + // DEBUG + /*if(dst == mn_->address()) { + printf(" Packet reached destination \n"); + } + */ + + if((src == mn_->address()) && (cmh->num_forwards() == 0)) { + // Packet I am originating, called by upper layer, need + // to calc trajectory to dest and fill it in. + // Must calculate header size, add dst position + cmh->size() += IP_HDR_LEN + 8; + iph->ttl_ = IP_DEF_TTL; + + // Fill destination position + dmn = ldb_->nlookup(dst); + dmn->getLoc(&iph->dx(),&iph->dy(),&iph->dz()); + if(iph->dport_ != TBF_PORT) + tbfh->mode_ = TBFH_DATA_GREEDY; // Data packet, not control. + + + /* Calculate the trajectory to the destination based on the locdbase + info. As of now using a straight line trajectory + fill in values in tbfh->traj[] */ + + /* Count Number of sent packets, ugly hack, but easier than tramping + through the trace file. Putting the counter into a file, might have + to be protected by a mutex !! */ + + fp = fopen("count_packet","r"); + fscanf(fp,"%d",&count); + fclose(fp); + count++; + fp = fopen("count_packet","w+"); + fprintf(fp,"%d",count); + fclose(fp); + } + else if(( src == mn_->address()) && (tbfh->mode_ == TBFH_DATA_GREEDY)) { + // Received a packet I sent, drop it theres a loop + count_drop(); + drop(p,DROP_RTR_ROUTE_LOOP); + return; + } + else { + // Forwarding packet, check ttl + if(--iph->ttl_ == 0) { + count_drop(); + drop(p,DROP_RTR_TTL); + return; + } + } + + //forward if not sent to the TBF port aka control packet + if( iph->dport_ == TBF_PORT ) { + char *as; + // DEBUG + //printf(" Beacon packet \n"); + switch( tbfh->mode_) { + case TBFH_BEACON: + if(src != mn_->address()) + // if not my own beacon. + beaconIn(p,tbfh); + break; + // Space here for other error conditions. handle if needed. + default: + as = Address::instance().print_nodeaddr(mn_->address()); + fprintf(stderr," Wrong packet type %d @ %s:TBF_PORT !\n",tbfh->mode_,as); + fflush(stderr); + delete[] as; + break; + } + } + else + forwardPacket(p); + +}//recv + + + + +void TBF_Agent::forwardPacket(Packet *p) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + double xx,yy,zz; + NeighbEnt *ne; + + Scheduler &s = Scheduler::instance(); + double now = s.clock(); + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + ne = ntab_->ent_findclosesttotraj(mn_,p,ldb_); + + // DEBUG + // printf(" Forwarding Packet at Node %d through Node \ + %d to Node %d from Node %d\n",mn_->address(),ne->dst,dst,src); + mn_->getLoc(&xx,&yy,&zz); + printf("1111 %f %f %f\n",xx,yy,zz); + if(found) { + cmh->next_hop_ = ne->dst; + } + else { + // no route to dest along this trajectory. Initiate recovery + // As of now dropping it. + // DEBUG + //printf(" Dropping packet \n"); + count_drop(); + drop(p,DROP_NO_ROUTE_TO_DEST); + return; + } + + + // NS_AF_INET or AF_INET ??? + cmh->addr_type_ = AF_INET; + cmh->xmit_failure_ = mac_callback; + cmh->xmit_failure_data_ = this; + + // point packet down the stack + cmh->direction() = hdr_cmn::DOWN; + + // data packet can serve as implicit beacon. put self in tbfh sx,sy,sz + + double myx,myy,myz; + mn_->getLoc(&myx,&myy,&myz); + + // Set last hop ip to current node for beacon processing + tbfh->lasthopip = mn_->address(); + tbfh->sx_ = myx; + tbfh->sy_ = myy; + tbfh->sz_ = myz; + + //send off packet + target_->recv(p,(Handler *)0); + // Data packets are implicit beacons so reschedule beacon timer. + BEACON_RESCHED; + return; +} + + + + + + +int TBF_Agent::command(int argc, const char *const *argv) +{ + + if (argc == 2) { + if (strcmp(argv[1], "start-tbf") == 0) { + init(); + return TCL_OK; + } + } + else if (argc == 3) { + TclObject *obj; + + if (strcasecmp(argv[1], "tracetarget") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], argv[2]); + return TCL_ERROR; + } + tracetarget = (Trace *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "install-tap") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + Mac *m = (Mac *) obj; + m->installTap(this); + return TCL_OK; + } + if (strcmp(argv[1], "node") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + printf( "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + mn_ = (MobileNode *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "ldb") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + ldb_ = (LocDbase *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "add-ifq") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + ifq_ = (PriQueue *) obj; + return TCL_OK; + } + } + return (Agent::command (argc, argv)); +} + +void TBF_Agent::init(void) +{ + beacon_timer_ = new TBF_BeaconTimer(this); + beacon_timer_->sched(Random::uniform(bint_)); +} diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/tbf.cc.1 ns/tbf/tbf.cc.1 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/tbf.cc.1 Wed Dec 31 19:00:00 1969 +++ ns/tbf/tbf.cc.1 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,122 @@ +#include +#include +#include + + + + + + +void TBFAgent::recv(Packet *p,Handler *) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = HDR_TBF(p); + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + + if((src == mn_->address()) && (cmh->num_forwards() == 0)) { + // Packet I am originating, called by upper layer, need + // to calc trajectory to dest and fill it in. + // Must calculate header size, add dst position + cmh->size() += IP_HDR_LEN + 8; + iph->ttl_ = IP_DEF_TTL; + + // Fill destination position + dmn = ldb_->nlookup(dst); + dmn->getLoc(&iph->dx(),&iph->dy(),&iph->dz()); + if(iph->dport_ != TBF_PORT) + tbfh->mode_ = TBF_DATA; // Data packet, not control. + // calculate the trajectory to the destination based on the locdbase + // info. As of now using a straight line trajectory + // fill in values in tbfh->traj[] + } + else if(( src == mn_->address()) && (tbfh->mode_ == TBF_DATA)) { + // Received a packet I sent, drop it theres a loop + drop(p,DROP_RTR_ROUTE_LOOP); + return; + } + else { + // Forwarding packet, check ttl + if(--iph->ttl_ == 0) { + drop(p,DROP_RTR_TTL); + return; + } + } + + if( iph->dport_ == TBF_PORT ) { + char *as; + switch( tbfh->mode_) { + case TBFH_BEACON: + if(src != mn_->address()) + // if not my own beacon. + beaconIn(p,tbfh); + break; + // Space here for other error conditions. handle later. + default: + as = Address::instance().print_nodeaddr(addr_); + fprintf(stderr," Wrong packet type %d @ %s:TBF_PORT !\n",tbh->mode_,as); + fflush(stderr); + delete[] as; + break; + } + } + else + forwardPacket(p); +}//recv + + +} + +void TBFAgent::forwardPacket(Packet *p) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = HDR_TBF(p); + + NeighbEnt *ne; + + Scheduler &s = Scheduler::instance(); + double now = s.clock(); + + ne = ntab_->ent_findclosesttotraj(tbfh->traj,tbfh->progress); + + if(ne) { + cmh->next_hop_ = ne->dst; + } + else { + // no route to dest along this trajectory. Initiate recovery + // As of now dropping it. + drop(p,NO_ROUTE_TO_DEST); + return; + } + + send: + // Hook to branch to from recovery procedures. + + cmh->addr_type_ = NS_AF_INET; + cmh->xmit_failure = mac_callback; + cmh->xmit_faliure_data = this; + + // point packet down the stack + cmh->direction_ = -1; + + // data packet cans erve as implicit beacon. put self in hops_[0] + + double myx,myy,myz; + mn_->getLoc(&myx,&myy,&myz); + + tbfh->hops_[0].ip = mn_address(); + tbfh->hops_[0].x = myx; + tbfh->hops_[0].y = myy; + tbfh->hops_[0].z = myz; + + //send off packet + target_->recv(p,(Handler *)0); + // Data packets are implicit beacons so reschedule beacon timer. + BEACON_RESCHED; + return; +} + + diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/tbf.cc.backup ns/tbf/tbf.cc.backup --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/tbf.cc.backup Wed Dec 31 19:00:00 1969 +++ ns/tbf/tbf.cc.backup Mon Jun 2 19:21:37 2003 @@ -0,0 +1,817 @@ +/* + + Copyright (C) 2000 + + President and Fellows of Harvard College, + Department of Computer Science, Rutgers, The State University of New Jersey + + All rights reserved. + + NOTICE: This software is provided "as is", without any warranty, + including any implied warranty for merchantability or fitness for a + particular purpose. Under no circumstances shall Harvard University + or its faculty, staff, students or agents be liable for any use of, + misuse of, or inability to use this software, including incidental + and consequential damages. + + License is hereby given to use, modify, and redistribute this + software, in whole or in part, for any commercial or non-commercial + purpose, provided that the user agrees to the terms of this + copyright notice, including disclaimer of warranty, and provided + that this copyright notice, including disclaimer of warranty, is + preserved in the source code and documentation of anything derived + from this software. Any redistributor of this software or anything + derived from this software assumes responsibility for ensuring that + any parties to whom such a redistribution is made are fully aware of + the terms of this license and disclaimer. + + Author: Prashant Mekaraj, DCS, Rutgers, 2003. mekaraj@paul.rutgers.edu + + This code is heavily based on Brad Karp's GPSR extensions to NS2. + +*/ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + + +#define BEACON_RESCHED \ + beacon_timer_->resched(bint_ + Random::uniform(2*bdesync_* bint_) - \ + bdesync_ * bint_) + + +inline double distance(double x1, double y1, double z1, double x2, double y2, + double z2) +{ + return sqrt((x1 - x2)*(x1 - x2) + + (y1 - y2)*(y1 - y2) + + (z1 - z2)*(z1 - z2)); +} + +inline double bearing(double x1, double y1, double x2, double y2) +{ + double brg; + + // XXX only deal with 2D for now + // XXX check for (0, 0) args, a domain error + brg = atan2(y2 - y1, x2 - x1); + if (brg < 0) + brg += 2*M_PI; + return brg; +} + +static int NeighbEntCmp(const void *a, const void *b) +{ + nsaddr_t ia = ((const NeighbEnt *) a)->dst; + nsaddr_t ib = (*(const NeighbEnt **) b)->dst; + if (ia > ib) return 1; + if (ib > ia) return -1; + return 0; +} + +NeighbTable::NeighbTable(TBF_Agent *mya) +{ + int i; + + nents = 0; + maxents = 100; + tab = new (NeighbEnt *)[100]; + a = mya; + for (i = 0; i < 100; i++) + tab[i] = new NeighbEnt(a); +} + +NeighbTable::~NeighbTable() +{ + int i; + + // cancel timers + for (i = 0; i < nents; i++) { + tab[i]->dnt.force_cancel(); + //tab[i]->ppt.force_cancel(); + delete tab[i]; + } + delete[] tab; +} + +NeighbTableIter NeighbTable::InitLoop() { + return (NeighbTableIter) 0; +} + +NeighbEnt *NeighbTable::NextLoop(NeighbTableIter *it) { + if (((unsigned int) *it) >= (unsigned int) nents) + return 0; + + return tab[(*it)++]; +} + +NeighbEnt * +NeighbTable::ent_findshortest(MobileNode *mn, double x, double y, double z) +{ + NeighbEnt *ne = 0; + double shortest, t, myx, myy, myz; + int i; + + mn->getLoc(&myx, &myy, &myz); + shortest = distance(myx, myy, myz, x, y, z); + for (i = 0; i < nents; i++) + if ((t = distance(tab[i]->x, tab[i]->y, tab[i]->z, x, y, z)) < shortest) { + shortest = t; + ne = tab[i]; + } + return ne; +} + +NeighbEnt * +NeighbTable::ent_findclosesttotraj(MobileNode *mn, Packet *p) { + NeighbEnt *ne = 0; + double shortest, t, myx, myy, myz; + hdr_ip *iph = hdr_ip::access(p); + mn->getLoc(&myx,&myy,&myz); + return ne; +} + +NeighbEnt *NeighbTable::ent_finddst(nsaddr_t dst) +{ + NeighbEnt ne(NULL), **pne; + + ne.dst = dst; + pne = ((NeighbEnt **) bsearch(&ne, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp)); + if (pne) + return *pne; + else + return NULL; +} + +void NeighbTable::ent_delete(const NeighbEnt *ent) +{ + NeighbEnt **pne, *owslot; + int i, j; + + if ((pne = (NeighbEnt **) bsearch(ent, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp))) { + i = pne - tab; + // make sure no timers scheduled for this neighbor + (*pne)->dnt.force_cancel(); + //(*pne)->ppt.force_cancel(); + // slide any subsequent table entries backward + if (i < (nents - 1)) + owslot = tab[i]; + for (j = i; j < nents - 1; j++) + tab[j] = tab[j+1]; + if (i < (nents - 1)) + tab[nents-1] = owslot; + nents--; + } +} + +NeighbEnt *NeighbTable::ent_add(const NeighbEnt *ent) +{ + NeighbEnt **pne, *owslot; + int i, j, r, l; + + if ((pne = (NeighbEnt **) bsearch(ent, tab, nents, + sizeof(NeighbEnt *), NeighbEntCmp))) { + // already in table; overwrite + // make sure there is no pending timer + i = pne - tab; + (*pne)->dnt.force_cancel(); + /* XXX overwriting table entry shouldn't affect when to probe this + perimeter */ + // (*pne)->ppt.force_cancel(); + // careful not to overwrite timers! + (*pne)->dst = ent->dst; + (*pne)->x = ent->x; + (*pne)->y = ent->y; + (*pne)->z = ent->z; + return *pne; + } + + // may have to grow table + if (nents == maxents) { + NeighbEnt **tmp = tab; + maxents *= 2; + tab = new (NeighbEnt *)[maxents]; + bcopy(tmp, tab, nents*sizeof(NeighbEnt *)); + for (i = nents; i < maxents; i++) + tab[i] = new NeighbEnt(a); + delete[] tmp; + } + + // binary search for insertion point + if (nents == 0) + i = 0; + else { + l = 0; + r = nents - 1; + while ((r - l) > 0) { + if (ent->dst < tab[l + ((r-l) / 2)]->dst) + r = l + ((r - l) / 2) - 1; + else + l += (r - l) / 2 + 1; + } + if (r < l) + i = r+1; + else + // r == l + if (ent->dst < tab[r]->dst) + i = r; + else + i = r+1; + } + + // slide subsequent entries forward + if (i <= (nents - 1)) + owslot = tab[nents]; + j = nents-1; + while (j >= i) + tab[j+1] = tab[j--]; + // slam into table, without overwriting timers + if (i <= (nents - 1)) + tab[i] = owslot; + tab[i]->dst = ent->dst; + tab[i]->x = ent->x; + tab[i]->y = ent->y; + tab[i]->z = ent->z; + // invalidate the perimeter that may be cached by this neighbor entry + tab[i]->perilen = 0; + // XXX gross way to indicate entry is *new* entry, graph needs planarizing + tab[i]->live = -1; + nents++; + return tab[i]; +} + + +// TBF CLASS Definition +int hdr_tbf::offset_; + +class TBFHeaderClass : public PacketHeaderClass { +public: + TBFHeaderClass() : PacketHeaderClass("PacketHeader/TBF", sizeof(hdr_tbf)) + { + bind_offset(&hdr_tbf::offset_); + } +} class_tbfhdr; + +static class TBFClass:public TclClass +{ +public: + TBFClass():TclClass ("Agent/TBF") + { + } + TclObject *create (int, const char *const *) + { + return (new TBF_Agent ()); + } +} class_tbf; + +TBF_Agent::TBF_Agent(void) : Agent(PT_TBF), beacon_timer_(0), + use_mac_(0), + verbose_(1), drop_debug_(0), + use_implicit_beacon_(0), + bint_(TBF_ALIVE_INT), bdesync_(TBF_ALIVE_DESYNC), + bexp_(TBF_ALIVE_EXP), + //lpexp_(TBF_PPROBE_EXP), ldb_(0), mn_(0), ifq_(0) + ldb_(0), mn_(0), ifq_(0) +{ + ntab_ = new NeighbTable(this); + + bind_time("bint_", &bint_); + bind_time("bexp_", &bexp_); + bind_time("bdesync_", &bdesync_); + + + //bind_time("lpexp_", &lpexp_); + bind("verbose_", &verbose_); + bind("drop_debug_", &drop_debug_); + + bind("use_mac_", &use_mac_); + + bind("use_implicit_beacon_", &use_implicit_beacon_); + + // bind("use_loop_detect_", &use_loop_detect_); + + bind("off_tbf_", &off_tbf_); +} + + + +// Tracing not working as of now !!!!!! +void TBF_Agent::trace(char *fmt,...) +{ + va_list ap; + + if (!tracetarget) + return; + + va_start(ap, fmt); + //vsprintf(tracetarget->buffer(), fmt, ap); + //tracetarget->dump(); + va_end(ap); +} + + + +void TBF_Agent::tracepkt(Packet *p, double now, int me, const char *type) +{ + char buf[1024]; + + hdr_tbf *tbfh = hdr_tbf::access(p); + + snprintf (buf, 1024, "V%s %.5f _%d_:", type, now, me); + + if (tbfh->mode_ == TBFH_BEACON) { + snprintf (buf, 1024, "%s (%f,%f,%f)", buf, tbfh->sx_, + tbfh->sy_, tbfh->sz_); + //snprintf (buf, 1024, "%s (%f,%f,%f)", buf, tbfh->hops_[0].x, + //tbfh->hops_[0].y, tbfh->hops_[0].z); + if (verbose_) + trace("%s", buf); + } +} + + +// don't drop or modify the packet--it's not a copy! +void TBF_Agent::tap(const Packet *p) +{ + hdr_cmn *hdrc = HDR_CMN(p); + //hdr_tbf *tbfh = hdr_tbf::access(p); + hdr_tbf *tbfh = (hdr_tbf *) p->access(off_tbf_); + + /* ignore non-IP packets. + ignore beacons; we process those on regular receive. + assumes the MAC tap includes all unicast packets bound for us. + process those here, and avoid calls to beacon_proc() elsewhere. */ + if (use_implicit_beacon_ && + (hdrc->addr_type_ == AF_INET) && + (hdrc->next_hop_ != (nsaddr_t) IP_BROADCAST)) { + // snoop it as proof of its sender's existence. + switch (tbfh->mode_) { + //*************************** CHECK MODE + case TBFH_DATA_GREEDY: + // prev hop position lives in hops_[0] + // ******************************************************** + // NEEED TO ADD THE PREVIOUS HOPS LOCATION IN THE PACKET HEADER + // *********************************************************** + // and then have to read it in in tap, snooping packets for beacons + + beacon_proc(tbfh->lasthopip, tbfh->sx_, tbfh->sy_, + tbfh->sz_); + //beacon_proc(tbfh->hops_[0].ip, tbfh->hops_[0].x, tbfh->hops_[0].y, + //tbfh->hops_[0].z); + break; + default: + fprintf(stderr, "Yow! tap got packet of unk type %d!\n", tbfh->mode_); + abort(); + break; + } + } +} + +void TBF_Agent::lost_link(Packet *p) +{ + hdr_cmn *hdrc = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + NeighbEnt *ne; + + if (use_mac_ == 0) { + drop(p, DROP_RTR_MAC_CALLBACK); + return; + } + + //DEBUG + //printf("(%d)..Lost link..\n",myaddr_); + + /* + if (verbose_ && hdrc->addr_type_ == AF_INET) + trace ("VLL %.8f %d->%d lost at %d", + Scheduler::instance().clock(), + ((hdr_ip *) p->access(off_ip_))->src_, + ((hdr_ip *) p->access(off_ip_))->dst_, + mn_->address()); +*/ + if (hdrc->addr_type_ == AF_INET) { + ne = ntab_->ent_finddst(hdrc->next_hop_); + /* if (verbose_) + trace ("VLP %.5f %d:%d->%d:%d lost at %d [hop %d]", + Scheduler::instance().clock(), + ((hdr_ip *) p->access(off_ip_))->src_, + ((hdr_ip *) p->access(off_ip_))->sport_, + ((hdr_ip *) p->access(off_ip_))->dst_, + ((hdr_ip *) p->access(off_ip_))->dport_, + mn_->address(), hdrc->next_hop_); + */ + if (ne) { + ne->dnt.force_cancel(); + deadneighb_callback(ne); + } + } + + // grab packets in the ifq bound for the same next hop + Packet *r, *rh, *rt; + rh = rt = p; + rh->next_ = 0; + while ((r = ifq_->filter((nsaddr_t) hdrc->next_hop_))) { + rt->next_ = r; + r->next_ = 0; + rt = r; + } + + // retarget all packets we got to a new next hop + while (rh) { + rt = rh; + rh = rh->next_; + + hdrc = HDR_CMN(rt); + tbfh = hdr_tbf::access(rt); + + if (hdrc->addr_type_ != AF_INET) { + drop(rt, DROP_RTR_MAC_CALLBACK); + continue; + } + + +//********************** Check this part + // for GPSR perimeter probes, chop off our own perimeter entry before + // passing the probe back into the agent for reforwarding +/* if (((hdr_ip *) rt->access(off_ip_))->dport_ == GPSR_PORT) { + if (gpsrh->mode_ == GPSRH_PPROBE) { + if (gpsrh->nhops_ == 1) { + // we originated it. the neighbor is gone, according to the MAC + // layer. drop the probe--it was *only* meant for that neighbor. + drop(rt, DROP_RTR_NEXT_SRCRT_HOP); + continue; + } + // we were forwarding the probe, so instead try to recover by + // forwarding it to a remaining appropriate next hop + gpsrh->nhops_--; + hdrc->size() = gpsrh->size() + IP_HDR_LEN; + periIn(rt, gpsrh, GPSR_PPROBE_RTX); + } + }*/ + //else { + switch (tbfh->mode_) { + //****************** Check the mode + + case TBFH_DATA_GREEDY: + // give the packet another chance--exercise greedy's good recovery + forwardPacket(rt); + break; + default: + fprintf(stderr, "yow! non-data packet for non-GPSR port bounced by MAC!\n"); + abort(); + break; + } + //} + } +} + +static void mac_callback(Packet * p, void *arg) +{ + ((TBF_Agent *) arg)->lost_link(p); +} + +// construct and return an alive beacon packet +Packet *TBF_Agent::makeAlive(void) +{ + Packet *p = allocpkt(); + hdr_ip *iph = hdr_ip::access(p); + //(hdr_ip *) p->access (off_ip_); + hdr_cmn *hdrc = hdr_cmn::access(p); + //HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + // set up header + hdrc->next_hop_ = IP_BROADCAST; + hdrc->addr_type_ = AF_INET; + hdrc->ptype_ = PT_TBF; + iph->daddr() = IP_BROADCAST << Address::instance().nodeshift(); + iph->dport() = TBF_PORT; + // Set last hop ip to current node for beacon processing + tbfh->lasthopip = mn_->address(); + tbfh->mode_ = TBFH_BEACON; + tbfh->nhops_ = 1; + mn_->getLoc(&tbfh->sx_, &tbfh->sy_, &tbfh->sz_); + // simulated size: hdr_tbf, IP header + hdrc->size() = tbfh->size() + IP_HDR_LEN; + return p; +} + + + +void TBF_Agent::beacon_callback(void) +{ + Scheduler &s = Scheduler::instance(); + + Packet *p = makeAlive(); + + // schedule the transmission of this beacon + if (p) { + assert (!HDR_CMN(p)->xmit_failure_); + s.schedule (target_, p, 0); + } + // schedule the next beacon generation event + BEACON_RESCHED; +} + +void TBF_Agent::deadneighb_callback(NeighbEnt *ne) +{ + Scheduler &s = Scheduler::instance(); + double now = s.clock (); + + if (verbose_) + trace ("VTO %.5f _%d_ %d->%d", now, mn_->address(), mn_->address(), + ne->dst); + // remove the neighbor entry from the table! + ntab_->ent_delete(ne); + +} + + +void TBF_Agent::beacon_proc(int src, double x, double y, double z) +{ + NeighbEnt *ne; + NeighbEnt nne(this); + + nne.dst = src; + nne.x = x; + nne.y = y; + nne.z = z; + ne = ntab_->ent_add(&nne); + //****************** Check + if (ne->live == -1) { + // entry wasn't in table before. need to planarize, if option dictates. + ne->live = 1; + /*if (use_planar_) { + double myx, myy, myz; + + mn_->getLoc(&myx, &myy, &myz); + ntab_->planarize(PLANARIZE_RNG, myx, myy, myz); + }*/ + } + ne->dnt.resched(bexp_); + //********************* Check + /*if (use_peri_ && (ne->ppt.status() == TIMER_IDLE)) + // no perimeter probe is pending; launch one + if (peri_proact_) + ne->ppt.sched(pint_ + + Random::uniform(2 * pdesync_ * pint_) - pdesync_ * pint_); + */ +} + +void TBF_Agent::beaconIn(Packet *p, hdr_tbf *tbfh) +{ + hdr_ip *hdrip = hdr_ip::access(p); + //hdr_tbf *tbfh = hdr_tbf::access(p); + + //(hdr_ip *) p->access(off_ip_); + //int src = Address::instance().get_nodeaddr(hdrip->saddr()); + int src = tbfh->lasthopip; + // Changing the beacon_proc method to work on the sx,sy,sz of the tbfh + beacon_proc(src, tbfh->sx_, tbfh->sy_, tbfh->sz_); + //beacon_proc(src, tbfh->hops_[0].x, tbfh->hops_[0].y, tbfh->hops_[0].z); + // we consumed the packet; free it! + Packet::free(p); +} + + +/* GPSR Code .. might be useful +inline int cross_segment(double x1, double y1, double x2, double y2, + double x3, double y3, double x4, double y4, + double *xi = 0, double *yi = 0) +{ + double dy[2], dx[2], m[2], b[2]; + double xint, yint; + + dy[0] = y2 - y1; + dx[0] = x2 - x1; + dy[1] = y4 - y3; + dx[1] = x4 - x3; + m[0] = dy[0] / dx[0]; + m[1] = dy[1] / dx[1]; + b[0] = y1 - m[0] * x1; + b[1] = y3 - m[1] * x3; + if (m[0] != m[1]) { + // slopes not equal, compute intercept + xint = (b[0] - b[1]) / (m[1] - m[0]); + yint = m[1] * xint + b[1]; + // is intercept in both line segments? + if ((xint <= max(x1, x2)) && (xint >= min(x1, x2)) && + (yint <= max(y1, y2)) && (yint >= min(y1, y2)) && + (xint <= max(x3, x4)) && (xint >= min(x3, x4)) && + (yint <= max(y3, y4)) && (yint >= min(y3, y4))) { + if (xi && yi) { + *xi = xint; + *yi = yint; + } + return 1; + } + } + return 0; +} + +*/ + + + + + +void TBF_Agent::recv(Packet *p,Handler *) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + int src = Address::instance().get_nodeaddr(iph->saddr()); + int dst = Address::instance().get_nodeaddr(iph->daddr()); + + MobileNode *dmn; + if((src == mn_->address()) && (cmh->num_forwards() == 0)) { + // Packet I am originating, called by upper layer, need + // to calc trajectory to dest and fill it in. + // Must calculate header size, add dst position + cmh->size() += IP_HDR_LEN + 8; + iph->ttl_ = IP_DEF_TTL; + + // Fill destination position + dmn = ldb_->nlookup(dst); + dmn->getLoc(&iph->dx(),&iph->dy(),&iph->dz()); + if(iph->dport_ != TBF_PORT) + tbfh->mode_ = TBFH_DATA_GREEDY; // Data packet, not control. + // calculate the trajectory to the destination based on the locdbase + // info. As of now using a straight line trajectory + // fill in values in tbfh->traj[] + } + else if(( src == mn_->address()) && (tbfh->mode_ == TBFH_DATA_GREEDY)) { + // Received a packet I sent, drop it theres a loop + drop(p,DROP_RTR_ROUTE_LOOP); + return; + } + else { + // Forwarding packet, check ttl + if(--iph->ttl_ == 0) { + drop(p,DROP_RTR_TTL); + return; + } + } + + //forward if not sent to the TBF port aka control packet + if( iph->dport_ == TBF_PORT ) { + char *as; + switch( tbfh->mode_) { + case TBFH_BEACON: + if(src != mn_->address()) + // if not my own beacon. + beaconIn(p,tbfh); + break; + // Space here for other error conditions. handle later. + default: + as = Address::instance().print_nodeaddr(mn_->address()); + fprintf(stderr," Wrong packet type %d @ %s:TBF_PORT !\n",tbfh->mode_,as); + fflush(stderr); + delete[] as; + break; + } + } + else + forwardPacket(p); + +}//recv + + + + +void TBF_Agent::forwardPacket(Packet *p) { + + hdr_ip *iph = HDR_IP(p); + hdr_cmn *cmh = HDR_CMN(p); + hdr_tbf *tbfh = hdr_tbf::access(p); + + NeighbEnt *ne; + + Scheduler &s = Scheduler::instance(); + double now = s.clock(); + + ne = ntab_->ent_findclosesttotraj(mn_,p); + + if(ne) { + cmh->next_hop_ = ne->dst; + } + else { + // no route to dest along this trajectory. Initiate recovery + // As of now dropping it. + drop(p,DROP_NO_ROUTE_TO_DEST); + return; + } + + send: + // Hook to branch to from recovery procedures. + + cmh->addr_type_ = NS_AF_INET; + cmh->xmit_failure_ = mac_callback; + cmh->xmit_failure_data_ = this; + + // point packet down the stack + cmh->direction() = hdr_cmn::DOWN; + + // data packet can serve as implicit beacon. put self in tbfh sx,sy,sz + + double myx,myy,myz; + mn_->getLoc(&myx,&myy,&myz); + + // Set last hop ip to current node for beacon processing + tbfh->lasthopip = mn_->address(); + //tbfh->hops_[0].ip = mn_address(); + tbfh->sx_ = myx; + tbfh->sy_ = myy; + tbfh->sz_ = myz; + + //send off packet + target_->recv(p,(Handler *)0); + // Data packets are implicit beacons so reschedule beacon timer. + BEACON_RESCHED; + return; +} + + + + + + +int TBF_Agent::command(int argc, const char *const *argv) +{ + if (argc == 2) { + if (strcmp(argv[1], "start-tbf") == 0) { + init(); + return TCL_OK; + } + } + else if (argc == 3) { + TclObject *obj; + + if (strcasecmp(argv[1], "tracetarget") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], argv[2]); + return TCL_ERROR; + } + tracetarget = (Trace *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "install-tap") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + Mac *m = (Mac *) obj; + m->installTap(this); + return TCL_OK; + } + if (strcmp(argv[1], "node") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + mn_ = (MobileNode *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "ldb") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + ldb_ = (LocDbase *) obj; + return TCL_OK; + } + if (strcmp(argv[1], "add-ifq") == 0) { + if ((obj = TclObject::lookup(argv[2])) == 0) { + fprintf(stderr, "%s: %s lookup of %s failed\n", __FILE__, argv[1], + argv[2]); + return TCL_ERROR; + } + ifq_ = (PriQueue *) obj; + return TCL_OK; + } + } + return (Agent::command (argc, argv)); +} + +void TBF_Agent::init(void) +{ + beacon_timer_ = new TBF_BeaconTimer(this); + beacon_timer_->sched(Random::uniform(bint_)); +} diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/tbf.h ns/tbf/tbf.h --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/tbf.h Wed Dec 31 19:00:00 1969 +++ ns/tbf/tbf.h Mon Jun 2 19:21:37 2003 @@ -0,0 +1,228 @@ +/* + + Copyright (C) 2003 + Department of Computer Science, Rutgers, The State University of New Jersey. + + All rights reserved. + + NOTICE: This software is provided "as is", without any warranty, + including any implied warranty for merchantability or fitness for a + particular purpose. Under no circumstances shall Harvard University + or its faculty, staff, students or agents be liable for any use of, + misuse of, or inability to use this software, including incidental + and consequential damages. + + License is hereby given to use, modify, and redistribute this + software, in whole or in part, for any commercial or non-commercial + purpose, provided that the user agrees to the terms of this + copyright notice, including disclaimer of warranty, and provided + that this copyright notice, including disclaimer of warranty, is + preserved in the source code and documentation of anything derived + from this software. Any redistributor of this software or anything + derived from this software assumes responsibility for ensuring that + any parties to whom such a redistribution is made are fully aware of + the terms of this license and disclaimer. + + Author: Prashant Mekaraj, Rutgers University, 2003 + mekaraj@paul.rutgers.edu + + This code is based on Brad Karp's GPSR extensions to NS2 + +*/ + +// Trajectory Based Forwarding for ns2 with the CMU wireless extensions + +#include "agent.h" +#include "ip.h" +#include "delay.h" +#include "scheduler.h" +#include "queue.h" +#include "trace.h" +#include "arp.h" +#include "ll.h" +#include "mac.h" +#include "priqueue.h" +#include "node.h" +#include "timer-handler.h" +#include "locdbase.cc" + +#define TBF_PORT 0xff // port number for TBF protocol messages +#define TBF_ALIVE_DESYNC 0.5 // desynchronizing term for alive beacons +#define TBF_ALIVE_INT 0.5 // interval between alive beacons +#define TBF_ALIVE_EXP (3*(TBF_ALIVE_INT+TBF_ALIVE_DESYNC*TBF_ALIVE_INT)) + // timeout for expiring rx'd beacons + + +#define TBFH_DATA_GREEDY 0 // greedy mode data packet +#define TBFH_BEACON 3 // liveness beacon packet +#define NUMTRAJPARAMETERS 8 + +int found = 0; // Global for each agent + // crude but effective. + + +class NeighbEnt; +class NeighbTable; +class TBF_BeaconTimer; + +class hdr_tbf; + + + +class TBF_Agent : public Tap, public Agent { +public: + TBF_Agent(void); + void beacon_callback(void); // generate a beacon (timer-triggered) + void deadneighb_callback(NeighbEnt *ne); // neighbor gone (timer/MAC-trig) + + virtual int command(int argc, const char * const * argv); + void lost_link(Packet *p); + void tap(const Packet *p); + +protected: + NeighbTable *ntab_; + TBF_BeaconTimer *beacon_timer_; // Alive beacon timer + + Trace *tracetarget; // Trace Target + virtual void recv(Packet *, Handler *); + Packet *makeAlive(void); + void beaconIn(Packet *, hdr_tbf *); + void trace(char *fmt, ...); + void tracepkt(Packet *, double, int, const char *); + void forwardPacket(Packet *); + void count_drop(); + + //int crosses(NeighbEnt *, hdr_tbf *); + void beacon_proc(int, double, double, double); + void init(); + int use_mac_; // whether or not to simulate full MAC level + int use_peri_; // whether or not to use perimeters + int verbose_; // verbosity (binary) + int drop_debug_; // whether or not to be verbose on NRTE events + + int use_implicit_beacon_; // whether or not all data packets are beacons + + double bint_; // beacon interval + double bdesync_; // beacon desync random component range + double bexp_; // beacon expiration interval + + LocDbase *ldb_; // location database + MobileNode *mn_; // my MobileNode + PriQueue *ifq_; // my ifq + int off_tbf_; // offset of the TBF packet header in pkt +}; + + + + + + +/* ns bogusly doesn't invoke constructors for headers; it allocates them as + raw byte fields. It also doesn't support changing the allocated size of + a header on an in-flight packet. For now, give in and use pre-allocated + headers with fixed maximum numbers of hosts. + It also carries all possible headers with each packet, simulations can be + made much more efficient if unneeded headers are explicitly removed */ + +class hdr_tbf { +public: + static int offset_; + + int lasthopip; // last hop node number + double sx_,sy_,sz_; // Last hop position stored in header + int nhops_; + int currhop_; + int mode_; + int traj[NUMTRAJPARAMETERS]; + int progress; + // header size is counted + int size() { return (3 * sizeof(double) + (5 + NUMTRAJPARAMETERS) * sizeof(int)); } + + inline static int& offset() { + return offset_; + } + inline static hdr_tbf *access(Packet* p) { + return (hdr_tbf *) p->access(offset_); + } + +}; // STATIC TBF Header + + + +class TBF_AgentTimer : public TimerHandler { +public: + TBF_AgentTimer(TBF_Agent *a_) { a = a_; } + virtual void expire(Event *e) = 0; + +protected: + TBF_Agent *a; +}; + +class TBF_NeighbTimer : public TBF_AgentTimer { +public: + TBF_NeighbTimer(TBF_Agent *a_, NeighbEnt *ne_) : + TBF_AgentTimer(a_) { ne = ne_; } + virtual void expire(Event *e) = 0; + +protected: + NeighbEnt *ne; +}; + +class TBF_BeaconTimer : public TBF_AgentTimer { +public: + TBF_BeaconTimer(TBF_Agent *a_) : TBF_AgentTimer(a_) { }; + virtual void expire(Event *) { a->beacon_callback(); } +}; + + + +class TBF_DeadNeighbTimer : public TBF_NeighbTimer { +public: + TBF_DeadNeighbTimer(TBF_Agent *a_, NeighbEnt *ne_) : + TBF_NeighbTimer(a_, ne_) { }; + virtual void expire(Event *) { a->deadneighb_callback(ne); } +}; + + +class NeighbEnt : public Connector { +public: + NeighbEnt(TBF_Agent *ina) : dnt(ina,this) {}; + + nsaddr_t dst; // IP of neighbor + double x, y, z; // location of neighbor last heard + int live; // whether negihbour is unique + TBF_DeadNeighbTimer dnt; // timer for expiration of neighbor +}; + + + +/* Beacon Timing code, largely unchanged from the GPSR code. */ + +// opaque type: returned by NeighbTable iterator, holds place in table +typedef unsigned int NeighbTableIter; + +// underlying data structure: an array, ordered by dst addr +class NeighbTable { +public: + NeighbTable(TBF_Agent *mya); + ~NeighbTable(); + void ent_delete(const NeighbEnt *ent); + NeighbEnt *ent_add(const NeighbEnt *ent); + NeighbEnt *ent_finddst(nsaddr_t dst); + NeighbEnt *ent_findshortest(MobileNode *mn, double x, double y, + double z); + NeighbEnt *ent_findclosesttotraj(MobileNode *mn, Packet *p, LocDbase *); + + NeighbEnt *ent_findcloser_edgept(MobileNode *, double, double, nsaddr_t, + nsaddr_t, double, double, double *, + double *); + + NeighbTableIter InitLoop(); // iterator initializer + NeighbEnt *NextLoop(NeighbTableIter *); // iterator + +private: + int nents; // current entries in use + int maxents; // allocated table size + TBF_Agent *a; // agent that owns this table + NeighbEnt **tab; +}; Binary files /home/ns/ns-allinone-2.26/ns-2.26/tbf/tbfout.jpg and ns/tbf/tbfout.jpg differ Binary files /home/ns/ns-allinone-2.26/ns-2.26/tbf/tbfout.pdf and ns/tbf/tbfout.pdf differ diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/tcp-50-20-cp ns/tbf/tcp-50-20-cp --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/tcp-50-20-cp Wed Dec 31 19:00:00 1969 +++ ns/tbf/tcp-50-20-cp Mon Jun 2 19:21:37 2003 @@ -0,0 +1,166 @@ +# +# nodes: 50, max conn: 20, send rate: 0.0, seed: 0 +# +# +# 0 connecting to 1 at time 166.50241285865306 +# +set tcp_(0) [$ns_ create-connection TCP $node_(0) TCPSink $node_(1) 0] +$tcp_(0) set window_ 32 +$tcp_(0) set packetSize_ 512 +set ftp_(0) [$tcp_(0) attach-source FTP] +$ns_ at 166.50241285865306 "$ftp_(0) start" +# +# 0 connecting to 2 at time 16.196722069846803 +# +set tcp_(1) [$ns_ create-connection TCP $node_(0) TCPSink $node_(2) 0] +$tcp_(1) set window_ 32 +$tcp_(1) set packetSize_ 512 +set ftp_(1) [$tcp_(1) attach-source FTP] +$ns_ at 16.196722069846803 "$ftp_(1) start" +# +# 1 connecting to 2 at time 106.04784283137315 +# +set tcp_(2) [$ns_ create-connection TCP $node_(1) TCPSink $node_(2) 0] +$tcp_(2) set window_ 32 +$tcp_(2) set packetSize_ 512 +set ftp_(2) [$tcp_(2) attach-source FTP] +$ns_ at 106.04784283137315 "$ftp_(2) start" +# +# 3 connecting to 4 at time 168.38269820827185 +# +set tcp_(3) [$ns_ create-connection TCP $node_(3) TCPSink $node_(4) 0] +$tcp_(3) set window_ 32 +$tcp_(3) set packetSize_ 512 +set ftp_(3) [$tcp_(3) attach-source FTP] +$ns_ at 168.38269820827185 "$ftp_(3) start" +# +# 3 connecting to 5 at time 12.831034060954597 +# +set tcp_(4) [$ns_ create-connection TCP $node_(3) TCPSink $node_(5) 0] +$tcp_(4) set window_ 32 +$tcp_(4) set packetSize_ 512 +set ftp_(4) [$tcp_(4) attach-source FTP] +$ns_ at 12.831034060954597 "$ftp_(4) start" +# +# 4 connecting to 5 at time 156.86691903363305 +# +set tcp_(5) [$ns_ create-connection TCP $node_(4) TCPSink $node_(5) 0] +$tcp_(5) set window_ 32 +$tcp_(5) set packetSize_ 512 +set ftp_(5) [$tcp_(5) attach-source FTP] +$ns_ at 156.86691903363305 "$ftp_(5) start" +# +# 5 connecting to 6 at time 167.06051886410475 +# +set tcp_(6) [$ns_ create-connection TCP $node_(5) TCPSink $node_(6) 0] +$tcp_(6) set window_ 32 +$tcp_(6) set packetSize_ 512 +set ftp_(6) [$tcp_(6) attach-source FTP] +$ns_ at 167.06051886410475 "$ftp_(6) start" +# +# 5 connecting to 7 at time 21.77570508875684 +# +set tcp_(7) [$ns_ create-connection TCP $node_(5) TCPSink $node_(7) 0] +$tcp_(7) set window_ 32 +$tcp_(7) set packetSize_ 512 +set ftp_(7) [$tcp_(7) attach-source FTP] +$ns_ at 21.77570508875684 "$ftp_(7) start" +# +# 6 connecting to 7 at time 64.256238790348291 +# +set tcp_(8) [$ns_ create-connection TCP $node_(6) TCPSink $node_(7) 0] +$tcp_(8) set window_ 32 +$tcp_(8) set packetSize_ 512 +set ftp_(8) [$tcp_(8) attach-source FTP] +$ns_ at 64.256238790348291 "$ftp_(8) start" +# +# 6 connecting to 8 at time 176.66472740316053 +# +set tcp_(9) [$ns_ create-connection TCP $node_(6) TCPSink $node_(8) 0] +$tcp_(9) set window_ 32 +$tcp_(9) set packetSize_ 512 +set ftp_(9) [$tcp_(9) attach-source FTP] +$ns_ at 176.66472740316053 "$ftp_(9) start" +# +# 7 connecting to 8 at time 154.49790628370732 +# +set tcp_(10) [$ns_ create-connection TCP $node_(7) TCPSink $node_(8) 0] +$tcp_(10) set window_ 32 +$tcp_(10) set packetSize_ 512 +set ftp_(10) [$tcp_(10) attach-source FTP] +$ns_ at 154.49790628370732 "$ftp_(10) start" +# +# 7 connecting to 9 at time 16.231731854487084 +# +set tcp_(11) [$ns_ create-connection TCP $node_(7) TCPSink $node_(9) 0] +$tcp_(11) set window_ 32 +$tcp_(11) set packetSize_ 512 +set ftp_(11) [$tcp_(11) attach-source FTP] +$ns_ at 16.231731854487084 "$ftp_(11) start" +# +# 8 connecting to 9 at time 101.88005941076206 +# +set tcp_(12) [$ns_ create-connection TCP $node_(8) TCPSink $node_(9) 0] +$tcp_(12) set window_ 32 +$tcp_(12) set packetSize_ 512 +set ftp_(12) [$tcp_(12) attach-source FTP] +$ns_ at 101.88005941076206 "$ftp_(12) start" +# +# 8 connecting to 10 at time 113.73301597951586 +# +set tcp_(13) [$ns_ create-connection TCP $node_(8) TCPSink $node_(10) 0] +$tcp_(13) set window_ 32 +$tcp_(13) set packetSize_ 512 +set ftp_(13) [$tcp_(13) attach-source FTP] +$ns_ at 113.73301597951586 "$ftp_(13) start" +# +# 9 connecting to 10 at time 105.65800688492973 +# +set tcp_(14) [$ns_ create-connection TCP $node_(9) TCPSink $node_(10) 0] +$tcp_(14) set window_ 32 +$tcp_(14) set packetSize_ 512 +set ftp_(14) [$tcp_(14) attach-source FTP] +$ns_ at 105.65800688492973 "$ftp_(14) start" +# +# 9 connecting to 11 at time 121.61424268112249 +# +set tcp_(15) [$ns_ create-connection TCP $node_(9) TCPSink $node_(11) 0] +$tcp_(15) set window_ 32 +$tcp_(15) set packetSize_ 512 +set ftp_(15) [$tcp_(15) attach-source FTP] +$ns_ at 121.61424268112249 "$ftp_(15) start" +# +# 10 connecting to 11 at time 120.17454913825475 +# +set tcp_(16) [$ns_ create-connection TCP $node_(10) TCPSink $node_(11) 0] +$tcp_(16) set window_ 32 +$tcp_(16) set packetSize_ 512 +set ftp_(16) [$tcp_(16) attach-source FTP] +$ns_ at 120.17454913825475 "$ftp_(16) start" +# +# 11 connecting to 12 at time 133.72919306798335 +# +set tcp_(17) [$ns_ create-connection TCP $node_(11) TCPSink $node_(12) 0] +$tcp_(17) set window_ 32 +$tcp_(17) set packetSize_ 512 +set ftp_(17) [$tcp_(17) attach-source FTP] +$ns_ at 133.72919306798335 "$ftp_(17) start" +# +# 12 connecting to 13 at time 30.941378907738898 +# +set tcp_(18) [$ns_ create-connection TCP $node_(12) TCPSink $node_(13) 0] +$tcp_(18) set window_ 32 +$tcp_(18) set packetSize_ 512 +set ftp_(18) [$tcp_(18) attach-source FTP] +$ns_ at 30.941378907738898 "$ftp_(18) start" +# +# 13 connecting to 14 at time 22.417358803757168 +# +set tcp_(19) [$ns_ create-connection TCP $node_(13) TCPSink $node_(14) 0] +$tcp_(19) set window_ 32 +$tcp_(19) set packetSize_ 512 +set ftp_(19) [$tcp_(19) attach-source FTP] +$ns_ at 22.417358803757168 "$ftp_(19) start" +# +#Total sources/connections: 13/20 +# diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/tcp-50-test ns/tbf/tcp-50-test --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/tcp-50-test Wed Dec 31 19:00:00 1969 +++ ns/tbf/tcp-50-test Mon Jun 2 19:21:37 2003 @@ -0,0 +1,70 @@ +# +# nodes: 50, max conn: 8, send rate: 0.0, seed: 0.0 +# +# +# 1 connecting to 2 at time 35.100526453508309 +# +set tcp_(0) [$ns_ create-connection TCP $node_(1) TCPSink $node_(2) 0] +$tcp_(0) set window_ 32 +$tcp_(0) set packetSize_ 512 +set ftp_(0) [$tcp_(0) attach-source FTP] +$ns_ at 35.100526453508309 "$ftp_(0) start" +# +# 1 connecting to 3 at time 159.75017168547501 +# +set tcp_(1) [$ns_ create-connection TCP $node_(1) TCPSink $node_(3) 0] +$tcp_(1) set window_ 32 +$tcp_(1) set packetSize_ 512 +set ftp_(1) [$tcp_(1) attach-source FTP] +$ns_ at 159.75017168547501 "$ftp_(1) start" +# +# 3 connecting to 4 at time 23.938281286479107 +# +set tcp_(2) [$ns_ create-connection TCP $node_(3) TCPSink $node_(4) 0] +$tcp_(2) set window_ 32 +$tcp_(2) set packetSize_ 512 +set ftp_(2) [$tcp_(2) attach-source FTP] +$ns_ at 23.938281286479107 "$ftp_(2) start" +# +# 3 connecting to 5 at time 57.779134427094434 +# +set tcp_(3) [$ns_ create-connection TCP $node_(3) TCPSink $node_(5) 0] +$tcp_(3) set window_ 32 +$tcp_(3) set packetSize_ 512 +set ftp_(3) [$tcp_(3) attach-source FTP] +$ns_ at 57.779134427094434 "$ftp_(3) start" +# +# 4 connecting to 5 at time 79.502338375664479 +# +set tcp_(4) [$ns_ create-connection TCP $node_(4) TCPSink $node_(5) 0] +$tcp_(4) set window_ 32 +$tcp_(4) set packetSize_ 512 +set ftp_(4) [$tcp_(4) attach-source FTP] +$ns_ at 79.502338375664479 "$ftp_(4) start" +# +# 6 connecting to 7 at time 93.165960792995037 +# +set tcp_(5) [$ns_ create-connection TCP $node_(6) TCPSink $node_(7) 0] +$tcp_(5) set window_ 32 +$tcp_(5) set packetSize_ 512 +set ftp_(5) [$tcp_(5) attach-source FTP] +$ns_ at 93.165960792995037 "$ftp_(5) start" +# +# 7 connecting to 8 at time 173.54306677055689 +# +set tcp_(6) [$ns_ create-connection TCP $node_(7) TCPSink $node_(8) 0] +$tcp_(6) set window_ 32 +$tcp_(6) set packetSize_ 512 +set ftp_(6) [$tcp_(6) attach-source FTP] +$ns_ at 173.54306677055689 "$ftp_(6) start" +# +# 8 connecting to 9 at time 164.51899598563043 +# +set tcp_(7) [$ns_ create-connection TCP $node_(8) TCPSink $node_(9) 0] +$tcp_(7) set window_ 32 +$tcp_(7) set packetSize_ 512 +set ftp_(7) [$tcp_(7) attach-source FTP] +$ns_ at 164.51899598563043 "$ftp_(7) start" +# +#Total sources/connections: 6/8 +# diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/tcp-50nn-20mc-64ps-cp ns/tbf/tcp-50nn-20mc-64ps-cp --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/tcp-50nn-20mc-64ps-cp Wed Dec 31 19:00:00 1969 +++ ns/tbf/tcp-50nn-20mc-64ps-cp Mon Jun 2 19:21:37 2003 @@ -0,0 +1,166 @@ +# +# nodes: 50, max conn: 20, send rate: 0.0, seed: 0 +# +# +# 1 connecting to 2 at time 107.94748761129915 +# +set tcp_(0) [$ns_ create-connection TCP $node_(1) TCPSink $node_(2) 0] +$tcp_(0) set window_ 32 +$tcp_(0) set packetSize_ 64 +set ftp_(0) [$tcp_(0) attach-source FTP] +$ns_ at 107.94748761129915 "$ftp_(0) start" +# +# 3 connecting to 4 at time 13.253072441207745 +# +set tcp_(1) [$ns_ create-connection TCP $node_(3) TCPSink $node_(4) 0] +$tcp_(1) set window_ 32 +$tcp_(1) set packetSize_ 64 +set ftp_(1) [$tcp_(1) attach-source FTP] +$ns_ at 13.253072441207745 "$ftp_(1) start" +# +# 3 connecting to 5 at time 178.19205307317529 +# +set tcp_(2) [$ns_ create-connection TCP $node_(3) TCPSink $node_(5) 0] +$tcp_(2) set window_ 32 +$tcp_(2) set packetSize_ 64 +set ftp_(2) [$tcp_(2) attach-source FTP] +$ns_ at 178.19205307317529 "$ftp_(2) start" +# +# 4 connecting to 5 at time 149.70361507949588 +# +set tcp_(3) [$ns_ create-connection TCP $node_(4) TCPSink $node_(5) 0] +$tcp_(3) set window_ 32 +$tcp_(3) set packetSize_ 64 +set ftp_(3) [$tcp_(3) attach-source FTP] +$ns_ at 149.70361507949588 "$ftp_(3) start" +# +# 4 connecting to 6 at time 40.329679260183909 +# +set tcp_(4) [$ns_ create-connection TCP $node_(4) TCPSink $node_(6) 0] +$tcp_(4) set window_ 32 +$tcp_(4) set packetSize_ 64 +set ftp_(4) [$tcp_(4) attach-source FTP] +$ns_ at 40.329679260183909 "$ftp_(4) start" +# +# 6 connecting to 7 at time 176.3447685336437 +# +set tcp_(5) [$ns_ create-connection TCP $node_(6) TCPSink $node_(7) 0] +$tcp_(5) set window_ 32 +$tcp_(5) set packetSize_ 64 +set ftp_(5) [$tcp_(5) attach-source FTP] +$ns_ at 176.3447685336437 "$ftp_(5) start" +# +# 7 connecting to 8 at time 122.75198947766424 +# +set tcp_(6) [$ns_ create-connection TCP $node_(7) TCPSink $node_(8) 0] +$tcp_(6) set window_ 32 +$tcp_(6) set packetSize_ 64 +set ftp_(6) [$tcp_(6) attach-source FTP] +$ns_ at 122.75198947766424 "$ftp_(6) start" +# +# 8 connecting to 9 at time 32.668209379850055 +# +set tcp_(7) [$ns_ create-connection TCP $node_(8) TCPSink $node_(9) 0] +$tcp_(7) set window_ 32 +$tcp_(7) set packetSize_ 64 +set ftp_(7) [$tcp_(7) attach-source FTP] +$ns_ at 32.668209379850055 "$ftp_(7) start" +# +# 10 connecting to 11 at time 36.751445716596884 +# +set tcp_(8) [$ns_ create-connection TCP $node_(10) TCPSink $node_(11) 0] +$tcp_(8) set window_ 32 +$tcp_(8) set packetSize_ 64 +set ftp_(8) [$tcp_(8) attach-source FTP] +$ns_ at 36.751445716596884 "$ftp_(8) start" +# +# 12 connecting to 13 at time 24.028315750895214 +# +set tcp_(9) [$ns_ create-connection TCP $node_(12) TCPSink $node_(13) 0] +$tcp_(9) set window_ 32 +$tcp_(9) set packetSize_ 64 +set ftp_(9) [$tcp_(9) attach-source FTP] +$ns_ at 24.028315750895214 "$ftp_(9) start" +# +# 12 connecting to 14 at time 154.31621034364971 +# +set tcp_(10) [$ns_ create-connection TCP $node_(12) TCPSink $node_(14) 0] +$tcp_(10) set window_ 32 +$tcp_(10) set packetSize_ 64 +set ftp_(10) [$tcp_(10) attach-source FTP] +$ns_ at 154.31621034364971 "$ftp_(10) start" +# +# 16 connecting to 17 at time 68.798254657908458 +# +set tcp_(11) [$ns_ create-connection TCP $node_(16) TCPSink $node_(17) 0] +$tcp_(11) set window_ 32 +$tcp_(11) set packetSize_ 64 +set ftp_(11) [$tcp_(11) attach-source FTP] +$ns_ at 68.798254657908458 "$ftp_(11) start" +# +# 16 connecting to 18 at time 155.36469506815294 +# +set tcp_(12) [$ns_ create-connection TCP $node_(16) TCPSink $node_(18) 0] +$tcp_(12) set window_ 32 +$tcp_(12) set packetSize_ 64 +set ftp_(12) [$tcp_(12) attach-source FTP] +$ns_ at 155.36469506815294 "$ftp_(12) start" +# +# 17 connecting to 18 at time 50.846300456135673 +# +set tcp_(13) [$ns_ create-connection TCP $node_(17) TCPSink $node_(18) 0] +$tcp_(13) set window_ 32 +$tcp_(13) set packetSize_ 64 +set ftp_(13) [$tcp_(13) attach-source FTP] +$ns_ at 50.846300456135673 "$ftp_(13) start" +# +# 17 connecting to 19 at time 26.91714731367172 +# +set tcp_(14) [$ns_ create-connection TCP $node_(17) TCPSink $node_(19) 0] +$tcp_(14) set window_ 32 +$tcp_(14) set packetSize_ 64 +set ftp_(14) [$tcp_(14) attach-source FTP] +$ns_ at 26.91714731367172 "$ftp_(14) start" +# +# 19 connecting to 20 at time 157.98358115273695 +# +set tcp_(15) [$ns_ create-connection TCP $node_(19) TCPSink $node_(20) 0] +$tcp_(15) set window_ 32 +$tcp_(15) set packetSize_ 64 +set ftp_(15) [$tcp_(15) attach-source FTP] +$ns_ at 157.98358115273695 "$ftp_(15) start" +# +# 19 connecting to 21 at time 154.72029971644295 +# +set tcp_(16) [$ns_ create-connection TCP $node_(19) TCPSink $node_(21) 0] +$tcp_(16) set window_ 32 +$tcp_(16) set packetSize_ 64 +set ftp_(16) [$tcp_(16) attach-source FTP] +$ns_ at 154.72029971644295 "$ftp_(16) start" +# +# 20 connecting to 21 at time 172.01468238235205 +# +set tcp_(17) [$ns_ create-connection TCP $node_(20) TCPSink $node_(21) 0] +$tcp_(17) set window_ 32 +$tcp_(17) set packetSize_ 64 +set ftp_(17) [$tcp_(17) attach-source FTP] +$ns_ at 172.01468238235205 "$ftp_(17) start" +# +# 20 connecting to 22 at time 163.8567723258663 +# +set tcp_(18) [$ns_ create-connection TCP $node_(20) TCPSink $node_(22) 0] +$tcp_(18) set window_ 32 +$tcp_(18) set packetSize_ 64 +set ftp_(18) [$tcp_(18) attach-source FTP] +$ns_ at 163.8567723258663 "$ftp_(18) start" +# +# 21 connecting to 22 at time 68.126114200859377 +# +set tcp_(19) [$ns_ create-connection TCP $node_(21) TCPSink $node_(22) 0] +$tcp_(19) set window_ 32 +$tcp_(19) set packetSize_ 64 +set ftp_(19) [$tcp_(19) attach-source FTP] +$ns_ at 68.126114200859377 "$ftp_(19) start" +# +#Total sources/connections: 13/20 +# diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/temp.rands ns/tbf/temp.rands --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/temp.rands Wed Dec 31 19:00:00 1969 +++ ns/tbf/temp.rands Mon Jun 2 19:21:37 2003 @@ -0,0 +1,3 @@ +M 0.0 nn:50 x:500 y:500 rp:tbf +M 0.0 sc:scenfiles/scen-1500x300-50-0-20-1 cp:tcp-50nn-20mc-64ps-cp seed:0.0 +M 0.0 prop:Propagation/TwoRayGround ant:Antenna/OmniAntenna diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/test.tcl ns/tbf/test.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/test.tcl Wed Dec 31 19:00:00 1969 +++ ns/tbf/test.tcl Mon Jun 2 19:21:37 2003 @@ -0,0 +1,437 @@ +# +# Copyright (c) 1998 University of Southern California. +# All rights reserved. +# +# Redistribution and use in source and binary forms are permitted +# provided that the above copyright notice and this paragraph are +# duplicated in all such forms and that any documentation, advertising +# materials, and other materials related to such distribution and use +# acknowledge that the software was developed by the University of +# Southern California, Information Sciences Institute. The name of the +# University may not be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# + + +# This test suite is for validating wireless lans +# To run all tests: test-all-wireless-lan +# to run individual test: +# ns test-suite-wireless-lan.tcl dsr +# ns test-suite-wireless-lan.tcl wired-cum-wireless +# ns test-suite-wireless-lan.tcl wireless-mip +# .... +# +# To view a list of available test to run with this script: +# ns test-suite-wireless-lan.tcl +# + +# +# + +Class TestSuite + +Class Test/tbf -superclass TestSuite +# wireless model using TBF + +Class Test/dsr -superclass TestSuite +# wireless model using dynamic source routing + +proc usage {} { + global argv0 + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts "Valid Tests: dsr tbf" + exit 1 +} + + +proc default_options {} { + global opt + set opt(chan) Channel/WirelessChannel + set opt(prop) Propagation/TwoRayGround + set opt(netif) Phy/WirelessPhy + set opt(mac) Mac/802_11 + set opt(ifq) Queue/DropTail/PriQueue + set opt(ll) LL + set opt(ant) Antenna/OmniAntenna + set opt(x) 500 ;# X dimension of the topography + set opt(y) 500 ;# Y dimension of the topography + set opt(radius) 250 ;# radius of communication (XXX -- compute it) + set opt(ifqlen) 50 ;# max packet in ifq + set opt(seed) 0.0 + set opt(tr) temp.rands ;# trace file + set opt(lm) "off" ;# log movement +# set opt(pint) 8.0 +# set opt(pdesync) 0.5 + set opt(bint) 3.0 + set opt(bdesync) 0.5 + set opt(bexp) 13.5 +} + + +# ===================================================================== +# Other default settings + +set AgentTrace ON +set RouterTrace ON +set MacTrace OFF + +LL set mindelay_ 50us +LL set delay_ 25us +LL set bandwidth_ 0 ;# not used +LL set off_prune_ 0 ;# not used +LL set off_CtrMcast_ 0 ;# not used + +Agent/Null set sport_ 0 +Agent/Null set dport_ 0 + +Agent/CBR set sport_ 0 +Agent/CBR set dport_ 0 + +Agent/TCPSink set sport_ 0 +Agent/TCPSink set dport_ 0 + +Agent/TCP set sport_ 0 +Agent/TCP set dport_ 0 +Agent/TCP set packetSize_ 1460 + +Queue/DropTail/PriQueue set Prefer_Routing_Protocols 0 + +# unity gain, omni-directional antennas +# set up the antennas to be centered in the node and 1.5 meters above it +Antenna/OmniAntenna set X_ 0 +Antenna/OmniAntenna set Y_ 0 +Antenna/OmniAntenna set Z_ 1.5 +Antenna/OmniAntenna set Gt_ 1.0 +Antenna/OmniAntenna set Gr_ 1.0 + +# Initialize the SharedMedia interface with parameters to make +# it work like the 914MHz Lucent WaveLAN DSSS radio interface +Phy/WirelessPhy set CPThresh_ 10.0 +Phy/WirelessPhy set CSThresh_ 1.559e-11 +Phy/WirelessPhy set RXThresh_ 3.652e-10 +Phy/WirelessPhy set Rb_ 2*1e6 +Phy/WirelessPhy set Pt_ 0.2818 +Phy/WirelessPhy set freq_ 914e+6 +Phy/WirelessPhy set L_ 1.0 + +#Agent/TBF set verbose_ 1 +Agent/TBF set use_mac_ 1 +#Agent/TBF set use_peri_ 1 +#Agent/TBF set drop_debug_ 1 +#Agent/TBF set peri_proact_ 0 +Agent/TBF set use_implicit_beacon_ 1 +#Agent/TBF set use_planar_ 1 +# ===================================================================== + +TestSuite instproc init {} { + global opt tracefd topo chan prop + global node_ god_ gkeeper + $self instvar ns_ testName_ + add-packet-header TBF + set ns_ [new Simulator] + if {[string compare $testName_ "dsr"] && \ + [string compare $testName_ "tbf"] } { + $ns_ set-address-format hierarchical + AddrParams set domain_num_ 3 + lappend cluster_num 2 1 1 + AddrParams set cluster_num_ $cluster_num + lappend eilastlevel 1 1 4 1 + AddrParams set nodes_num_ $eilastlevel + } + set chan [new $opt(chan)] + set prop [new $opt(prop)] + set topo [new Topography] + set tracefd [open $opt(tr) w] + + #set opt(rp) $testName_ + $topo load_flatgrid $opt(x) $opt(y) + $prop topography $topo + # + # Create God + # + $self create-god $opt(nn) + + # + # log the mobile nodes movements if desired + # + if { $opt(lm) == "on" } { + $self log-movement + } + + puts $tracefd "M 0.0 nn:$opt(nn) x:$opt(x) y:$opt(y) rp:$opt(rp)" + puts $tracefd "M 0.0 sc:$opt(sc) cp:$opt(cp) seed:$opt(seed)" + puts $tracefd "M 0.0 prop:$opt(prop) ant:$opt(ant)" +} + +TestSuite instproc create_gridkeeper { } { + + global gkeeper opt node_ + + set gkeeper [new GridKeeper] + + #initialize the gridkeeper + + $gkeeper dimension $opt(x) $opt(y) + + # + # add mobile node into the gridkeeper, must be added after + # scenario file + # + + + for {set i 0} {$i < $opt(nn) } {incr i} { + $gkeeper addnode $node_($i) + + $node_($i) radius $opt(radius) + } +} + +Test/tbf instproc init {} { + global opt node_ god_ ldb_ ragent_ MacTrace + $self instvar ns_ testName_ + set testName_ tbf + set opt(rp) tbf + set opt(ragent) Agent/TBF + #set opt(cp) "tcp-50nn-20mc-64ps-cp" + set opt(cp) "tcp-50-test" + #set opt(sc) "scen-50-test" ; + set opt(nn) 50 + set opt(stop) 200.0 + #set opt(cp) "../tcl/mobility/scene/cbr-50-20-4-512" + #set opt(sc) "../tcl/mobility/scene/scen-670x670-50-600-20-0" ; + + $self next + puts "Sourcing tbf.tcl : $opt(ragent)" + source ../tcl/mobility/tbf.tcl + $ns_ set-address-format expanded + set ldb_ [new LocDbase] + $ldb_ nnodes $opt(nn) + for {set i 0} {$i < $opt(nn) } {incr i} { + $testName_-create-mobile-node $i +# if { [Agent/TBF set use_mac_] && $MacTrace == "OFF" } { +# set macdropt [cmu-trace Drop "MAC" $node_($i)] +# [$node_($i) set mac_(0)] drop-target $macdropt +# } + $ragent_($i) install-tap [$node_($i) set mac_(0)] + $ldb_ register [$node_($i) address?] $node_($i) + $ragent_($i) ldb $ldb_ + } + puts "Loading connection pattern...$opt(cp)" + source $opt(cp) + + puts "Loading scenario file...$opt(sc)" + source $opt(sc) + puts "Load complete..." + + # + # Tell all the nodes when the simulation ends + # + for {set i 0} {$i < $opt(nn) } {incr i} { + $ns_ at $opt(stop).000000001 "$node_($i) reset"; + } + + $ns_ at $opt(stop).000000001 "puts \"NS EXITING...\" ;" + #$ns_ halt" + $ns_ at $opt(stop).1 "$self finish" +} + +Test/tbf instproc run {} { + $self instvar ns_ + puts "Starting Simulation..." + $ns_ run +} + + +Test/dsr instproc init {} { + global opt node_ god_ + $self instvar ns_ testName_ + set testName_ dsr + set opt(rp) dsr +# set opt(cp) "../mobility/scene/cbr-50-20-4-512" +# set opt(sc) "../mobility/scene/scen-670x670-50-600-20-0" ; + set opt(nn) 50 + set opt(stop) 10.0 + set opt(cp) "../tcl/mobility/scene/cbr-3-test" + + $self next + + for {set i 0} {$i < $opt(nn) } {incr i} { + $testName_-create-mobile-node $i + } + puts "Loading connection pattern...$opt(cp)" + source $opt(cp) + + puts "Loading scenario file...$opt(sc)" + source $opt(sc) + puts "Load complete..." + + # + # Tell all the nodes when the simulation ends + # + for {set i 0} {$i < $opt(nn) } {incr i} { + $ns_ at $opt(stop).000000001 "$node_($i) reset"; + } + + $ns_ at $opt(stop).000000001 "puts \"NS EXITING...\" ;" + #$ns_ halt" + $ns_ at $opt(stop).1 "$self finish" +} + + + +Test/dsr instproc run {} { + $self instvar ns_ + puts "Starting Simulation..." + $ns_ run +} + +proc cmu-trace { ttype atype node } { + global ns tracefd + + set ns [Simulator instance] + if { $tracefd == "" } { + return "" + } + set T [new CMUTrace/$ttype $atype] + $T target [$ns set nullAgent_] + $T attach $tracefd + $T set src_ [$node id] + + $T node $node + + return $T +} + +TestSuite instproc finish {} { + $self instvar ns_ + global quiet + + $ns_ flush-trace + #if { !$quiet } { + # puts "running nam..." + # exec nam temp.rands.nam & + #} + puts "finishing.." + exit 0 +} + +TestSuite instproc create-god { nodes } { + global tracefd god_ + $self instvar ns_ + + set god_ [new God] + $god_ num_nodes $nodes +} + +TestSuite instproc log-movement {} { + global ns + $self instvar logtimer_ ns_ + + set ns $ns_ + source ../mobility/timer.tcl + Class LogTimer -superclass Timer + LogTimer instproc timeout {} { + global opt node_; + for {set i 0} {$i < $opt(nn)} {incr i} { + $node_($i) log-movement + } + $self sched 0.1 + } + + set logtimer_ [new LogTimer] + $logtimer_ sched 0.1 +} + +TestSuite instproc create-tcp-traffic {id src dst start} { + $self instvar ns_ + set tcp_($id) [new Agent/TCP] + $tcp_($id) set class_ 2 + set sink_($id) [new Agent/TCPSink] + $ns_ attach-agent $src $tcp_($id) + $ns_ attach-agent $dst $sink_($id) + $ns_ connect $tcp_($id) $sink_($id) + set ftp_($id) [new Application/FTP] + $ftp_($id) attach-agent $tcp_($id) + $ns_ at $start "$ftp_($id) start" + +} + + +TestSuite instproc create-udp-traffic {id src dst start} { + $self instvar ns_ + set udp_($id) [new Agent/UDP] + $ns_ attach-agent $src $udp_($id) + set null_($id) [new Agent/Null] + $ns_ attach-agent $dst $null_($id) + set cbr_($id) [new Application/Traffic/CBR] + $cbr_($id) set packetSize_ 512 + $cbr_($id) set interval_ 4.0 + $cbr_($id) set random_ 1 + $cbr_($id) set maxpkts_ 10000 + $cbr_($id) attach-agent $udp_($id) + $ns_ connect $udp_($id) $null_($id) + $ns_ at $start "$cbr_($id) start" + +} + +proc runtest {arg} { + global quiet opt + set quiet 0 + + set b [llength $arg] + puts " Hullo there $b " + #set test [lindex $arg 3] + #puts $test + if {$b == 4} { + set test [lindex $arg 0] + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + } elseif {$b == 1} { + puts "Inhere" + set test [lindex $arg 0] + } elseif {$b == 5} { + set test [lindex $arg 0] + if {[string compare $test "tbf"]} { + usage + } else { + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + Agent/TBF set bint_ [lindex $arg 4] + Agent/TBF set bexp_ [expr 4.5 * [Agent/TBF set bint_]] + + } + } elseif {$b == 9} { + set test [lindex $arg 0] + if {[string compare $test "tbf"]} { + usage + } else { + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + #Agent/TBF set pint_ [lindex $arg 4] + #Agent/TBF set pdesync_ [lindex $arg 5] + Agent/TBF set bint_ [lindex $arg 6] + Agent/TBF set bdesync_ [lindex $arg 7] + Agent/TBF set bexp_ [lindex $arg 8] + } + } else { + usage + } + set t [new Test/$test] + $t run +} + +global argv arg0 +default_options +#source ../tcl/mobility/locdbase.tcl +puts " Before Start " +#set temp [new Agent/TBF] +#$temp start-tbf +runtest $argv diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/testnom.tcl ns/tbf/testnom.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/testnom.tcl Wed Dec 31 19:00:00 1969 +++ ns/tbf/testnom.tcl Mon Jun 2 19:21:37 2003 @@ -0,0 +1,437 @@ +# +# Copyright (c) 1998 University of Southern California. +# All rights reserved. +# +# Redistribution and use in source and binary forms are permitted +# provided that the above copyright notice and this paragraph are +# duplicated in all such forms and that any documentation, advertising +# materials, and other materials related to such distribution and use +# acknowledge that the software was developed by the University of +# Southern California, Information Sciences Institute. The name of the +# University may not be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# + + +# This test suite is for validating wireless lans +# To run all tests: test-all-wireless-lan +# to run individual test: +# ns test-suite-wireless-lan.tcl dsr +# ns test-suite-wireless-lan.tcl wired-cum-wireless +# ns test-suite-wireless-lan.tcl wireless-mip +# .... +# +# To view a list of available test to run with this script: +# ns test-suite-wireless-lan.tcl +# + +# +# + +Class TestSuite + +Class Test/tbf -superclass TestSuite +# wireless model using TBF + +Class Test/dsr -superclass TestSuite +# wireless model using dynamic source routing + +proc usage {} { + global argv0 + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts "Valid Tests: dsr tbf" + exit 1 +} + + +proc default_options {} { + global opt + set opt(chan) Channel/WirelessChannel + set opt(prop) Propagation/TwoRayGround + set opt(netif) Phy/WirelessPhy + set opt(mac) Mac/802_11 + set opt(ifq) Queue/DropTail/PriQueue + set opt(ll) LL + set opt(ant) Antenna/OmniAntenna + set opt(x) 500 ;# X dimension of the topography + set opt(y) 500 ;# Y dimension of the topography + set opt(radius) 250 ;# radius of communication (XXX -- compute it) + set opt(ifqlen) 50 ;# max packet in ifq + set opt(seed) 0.0 + set opt(tr) temp.rands ;# trace file + set opt(lm) "off" ;# log movement +# set opt(pint) 8.0 +# set opt(pdesync) 0.5 + set opt(bint) 3.0 + set opt(bdesync) 0.5 + set opt(bexp) 13.5 +} + + +# ===================================================================== +# Other default settings + +set AgentTrace ON +set RouterTrace ON +set MacTrace OFF + +LL set mindelay_ 50us +LL set delay_ 25us +LL set bandwidth_ 0 ;# not used +LL set off_prune_ 0 ;# not used +LL set off_CtrMcast_ 0 ;# not used + +Agent/Null set sport_ 0 +Agent/Null set dport_ 0 + +Agent/CBR set sport_ 0 +Agent/CBR set dport_ 0 + +Agent/TCPSink set sport_ 0 +Agent/TCPSink set dport_ 0 + +Agent/TCP set sport_ 0 +Agent/TCP set dport_ 0 +Agent/TCP set packetSize_ 1460 + +Queue/DropTail/PriQueue set Prefer_Routing_Protocols 0 + +# unity gain, omni-directional antennas +# set up the antennas to be centered in the node and 1.5 meters above it +Antenna/OmniAntenna set X_ 0 +Antenna/OmniAntenna set Y_ 0 +Antenna/OmniAntenna set Z_ 1.5 +Antenna/OmniAntenna set Gt_ 1.0 +Antenna/OmniAntenna set Gr_ 1.0 + +# Initialize the SharedMedia interface with parameters to make +# it work like the 914MHz Lucent WaveLAN DSSS radio interface +Phy/WirelessPhy set CPThresh_ 10.0 +Phy/WirelessPhy set CSThresh_ 1.559e-11 +Phy/WirelessPhy set RXThresh_ 3.652e-10 +Phy/WirelessPhy set Rb_ 2*1e6 +Phy/WirelessPhy set Pt_ 0.2818 +Phy/WirelessPhy set freq_ 914e+6 +Phy/WirelessPhy set L_ 1.0 + +#Agent/TBF set verbose_ 1 +Agent/TBF set use_mac_ 1 +#Agent/TBF set use_peri_ 1 +#Agent/TBF set drop_debug_ 1 +#Agent/TBF set peri_proact_ 0 +Agent/TBF set use_implicit_beacon_ 1 +#Agent/TBF set use_planar_ 1 +# ===================================================================== + +TestSuite instproc init {} { + global opt tracefd topo chan prop + global node_ god_ gkeeper + $self instvar ns_ testName_ + add-packet-header TBF + set ns_ [new Simulator] + if {[string compare $testName_ "dsr"] && \ + [string compare $testName_ "tbf"] } { + $ns_ set-address-format hierarchical + AddrParams set domain_num_ 3 + lappend cluster_num 2 1 1 + AddrParams set cluster_num_ $cluster_num + lappend eilastlevel 1 1 4 1 + AddrParams set nodes_num_ $eilastlevel + } + set chan [new $opt(chan)] + set prop [new $opt(prop)] + set topo [new Topography] + set tracefd [open $opt(tr) w] + + #set opt(rp) $testName_ + $topo load_flatgrid $opt(x) $opt(y) + $prop topography $topo + # + # Create God + # + $self create-god $opt(nn) + + # + # log the mobile nodes movements if desired + # + if { $opt(lm) == "on" } { + $self log-movement + } + + puts $tracefd "M 0.0 nn:$opt(nn) x:$opt(x) y:$opt(y) rp:$opt(rp)" + puts $tracefd "M 0.0 sc:$opt(sc) cp:$opt(cp) seed:$opt(seed)" + puts $tracefd "M 0.0 prop:$opt(prop) ant:$opt(ant)" +} + +TestSuite instproc create_gridkeeper { } { + + global gkeeper opt node_ + + set gkeeper [new GridKeeper] + + #initialize the gridkeeper + + $gkeeper dimension $opt(x) $opt(y) + + # + # add mobile node into the gridkeeper, must be added after + # scenario file + # + + + for {set i 0} {$i < $opt(nn) } {incr i} { + $gkeeper addnode $node_($i) + + $node_($i) radius $opt(radius) + } +} + +Test/tbf instproc init {} { + global opt node_ god_ ldb_ ragent_ MacTrace + $self instvar ns_ testName_ + set testName_ tbf + set opt(rp) tbf + set opt(ragent) Agent/TBF + set opt(cp) "tcp-50nn-20mc-64ps-cp" + # set opt(cp) "tcp-50-test" + #set opt(sc) "scen-50-test" ; + set opt(nn) 50 + set opt(stop) 200.0 + #set opt(cp) "../tcl/mobility/scene/cbr-50-20-4-512" + #set opt(sc) "../tcl/mobility/scene/scen-670x670-50-600-20-0" ; + + $self next + puts "Sourcing tbf.tcl : $opt(ragent)" + source ../tcl/mobility/tbf.tcl + $ns_ set-address-format expanded + set ldb_ [new LocDbase] + $ldb_ nnodes $opt(nn) + for {set i 0} {$i < $opt(nn) } {incr i} { + $testName_-create-mobile-node $i +# if { [Agent/TBF set use_mac_] && $MacTrace == "OFF" } { +# set macdropt [cmu-trace Drop "MAC" $node_($i)] +# [$node_($i) set mac_(0)] drop-target $macdropt +# } + $ragent_($i) install-tap [$node_($i) set mac_(0)] + $ldb_ register [$node_($i) address?] $node_($i) + $ragent_($i) ldb $ldb_ + } + puts "Loading connection pattern...$opt(cp)" + source $opt(cp) + + puts "Loading scenario file...$opt(sc)" + source $opt(sc) + puts "Load complete..." + + # + # Tell all the nodes when the simulation ends + # + for {set i 0} {$i < $opt(nn) } {incr i} { + $ns_ at $opt(stop).000000001 "$node_($i) reset"; + } + + $ns_ at $opt(stop).000000001 "puts \"NS EXITING...\" ;" + #$ns_ halt" + $ns_ at $opt(stop).1 "$self finish" +} + +Test/tbf instproc run {} { + $self instvar ns_ + puts "Starting Simulation..." + $ns_ run +} + + +Test/dsr instproc init {} { + global opt node_ god_ + $self instvar ns_ testName_ + set testName_ dsr + set opt(rp) dsr +# set opt(cp) "../mobility/scene/cbr-50-20-4-512" +# set opt(sc) "../mobility/scene/scen-670x670-50-600-20-0" ; + set opt(nn) 50 + set opt(stop) 10.0 + set opt(cp) "../tcl/mobility/scene/cbr-3-test" + + $self next + + for {set i 0} {$i < $opt(nn) } {incr i} { + $testName_-create-mobile-node $i + } + puts "Loading connection pattern...$opt(cp)" + source $opt(cp) + + puts "Loading scenario file...$opt(sc)" + source $opt(sc) + puts "Load complete..." + + # + # Tell all the nodes when the simulation ends + # + for {set i 0} {$i < $opt(nn) } {incr i} { + $ns_ at $opt(stop).000000001 "$node_($i) reset"; + } + + $ns_ at $opt(stop).000000001 "puts \"NS EXITING...\" ;" + #$ns_ halt" + $ns_ at $opt(stop).1 "$self finish" +} + + + +Test/dsr instproc run {} { + $self instvar ns_ + puts "Starting Simulation..." + $ns_ run +} + +proc cmu-trace { ttype atype node } { + global ns tracefd + + set ns [Simulator instance] + if { $tracefd == "" } { + return "" + } + set T [new CMUTrace/$ttype $atype] + $T target [$ns set nullAgent_] + $T attach $tracefd + $T set src_ [$node id] + + $T node $node + + return $T +} + +TestSuite instproc finish {} { + $self instvar ns_ + global quiet + + $ns_ flush-trace + #if { !$quiet } { + # puts "running nam..." + # exec nam temp.rands.nam & + #} + puts "finishing.." + exit 0 +} + +TestSuite instproc create-god { nodes } { + global tracefd god_ + $self instvar ns_ + + set god_ [new God] + $god_ num_nodes $nodes +} + +TestSuite instproc log-movement {} { + global ns + $self instvar logtimer_ ns_ + + set ns $ns_ + source ../mobility/timer.tcl + Class LogTimer -superclass Timer + LogTimer instproc timeout {} { + global opt node_; + for {set i 0} {$i < $opt(nn)} {incr i} { + $node_($i) log-movement + } + $self sched 0.1 + } + + set logtimer_ [new LogTimer] + $logtimer_ sched 0.1 +} + +TestSuite instproc create-tcp-traffic {id src dst start} { + $self instvar ns_ + set tcp_($id) [new Agent/TCP] + $tcp_($id) set class_ 2 + set sink_($id) [new Agent/TCPSink] + $ns_ attach-agent $src $tcp_($id) + $ns_ attach-agent $dst $sink_($id) + $ns_ connect $tcp_($id) $sink_($id) + set ftp_($id) [new Application/FTP] + $ftp_($id) attach-agent $tcp_($id) + $ns_ at $start "$ftp_($id) start" + +} + + +TestSuite instproc create-udp-traffic {id src dst start} { + $self instvar ns_ + set udp_($id) [new Agent/UDP] + $ns_ attach-agent $src $udp_($id) + set null_($id) [new Agent/Null] + $ns_ attach-agent $dst $null_($id) + set cbr_($id) [new Application/Traffic/CBR] + $cbr_($id) set packetSize_ 512 + $cbr_($id) set interval_ 4.0 + $cbr_($id) set random_ 1 + $cbr_($id) set maxpkts_ 10000 + $cbr_($id) attach-agent $udp_($id) + $ns_ connect $udp_($id) $null_($id) + $ns_ at $start "$cbr_($id) start" + +} + +proc runtest {arg} { + global quiet opt + set quiet 0 + + set b [llength $arg] + puts " Hullo there $b " + #set test [lindex $arg 3] + #puts $test + if {$b == 4} { + set test [lindex $arg 0] + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + } elseif {$b == 1} { + puts "Inhere" + set test [lindex $arg 0] + } elseif {$b == 5} { + set test [lindex $arg 0] + if {[string compare $test "tbf"]} { + usage + } else { + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + Agent/TBF set bint_ [lindex $arg 4] + Agent/TBF set bexp_ [expr 4.5 * [Agent/TBF set bint_]] + + } + } elseif {$b == 9} { + set test [lindex $arg 0] + if {[string compare $test "tbf"]} { + usage + } else { + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + #Agent/TBF set pint_ [lindex $arg 4] + #Agent/TBF set pdesync_ [lindex $arg 5] + Agent/TBF set bint_ [lindex $arg 6] + Agent/TBF set bdesync_ [lindex $arg 7] + Agent/TBF set bexp_ [lindex $arg 8] + } + } else { + usage + } + set t [new Test/$test] + $t run +} + +global argv arg0 +default_options +#source ../tcl/mobility/locdbase.tcl +puts " Before Start " +#set temp [new Agent/TBF] +#$temp start-tbf +runtest $argv diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/topo.scen ns/tbf/topo.scen --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/topo.scen Wed Dec 31 19:00:00 1969 +++ ns/tbf/topo.scen Mon Jun 2 19:21:37 2003 @@ -0,0 +1,50 @@ +$node_(0) set X_ 1069.076702084382 $node_(0) set Y_ 233.399303571101 $node_(0) set Z_ 0.000000000000 +$node_(1) set X_ 1268.224234061930 $node_(1) set Y_ 460.097144614022 $node_(1) set Z_ 0.000000000000 +$node_(2) set X_ 1478.975485457783 $node_(2) set Y_ 420.033853865937 $node_(2) set Z_ 0.000000000000 +$node_(3) set X_ 1131.926959832387 $node_(3) set Y_ 541.419465284620 $node_(3) set Z_ 0.000000000000 +$node_(4) set X_ 49.774587702266 $node_(4) set Y_ 279.269164448601 $node_(4) set Z_ 0.000000000000 +$node_(5) set X_ 497.386875552235 $node_(5) set Y_ 561.677860149414 $node_(5) set Z_ 0.000000000000 +$node_(6) set X_ 741.126277752748 $node_(6) set Y_ 332.168429272956 $node_(6) set Z_ 0.000000000000 +$node_(7) set X_ 968.109461215038 $node_(7) set Y_ 106.149003021185 $node_(7) set Z_ 0.000000000000 +$node_(8) set X_ 587.460193362022 $node_(8) set Y_ 342.355803961402 $node_(8) set Z_ 0.000000000000 +$node_(9) set X_ 1022.386386328463 $node_(9) set Y_ 567.972013433040 $node_(9) set Z_ 0.000000000000 +$node_(10) set X_ 997.668619271152 $node_(10) set Y_ 274.695346862225 $node_(10) set Z_ 0.000000000000 +$node_(11) set X_ 711.719658118135 $node_(11) set Y_ 303.449413021439 $node_(11) set Z_ 0.000000000000 +$node_(12) set X_ 1208.374310830109 $node_(12) set Y_ 54.146394986298 $node_(12) set Z_ 0.000000000000 +$node_(13) set X_ 460.251784588297 $node_(13) set Y_ 578.353185695005 $node_(13) set Z_ 0.000000000000 +$node_(14) set X_ 463.919412576416 $node_(14) set Y_ 366.656501606235 $node_(14) set Z_ 0.000000000000 +$node_(15) set X_ 1494.219109019631 $node_(15) set Y_ 137.148015370310 $node_(15) set Z_ 0.000000000000 +$node_(16) set X_ 78.503091779687 $node_(16) set Y_ 224.235092625231 $node_(16) set Z_ 0.000000000000 +$node_(17) set X_ 1008.152706361321 $node_(17) set Y_ 420.144454480625 $node_(17) set Z_ 0.000000000000 +$node_(18) set X_ 1130.862014884897 $node_(18) set Y_ 317.438844178636 $node_(18) set Z_ 0.000000000000 +$node_(19) set X_ 994.303316766184 $node_(19) set Y_ 506.484246055764 $node_(19) set Z_ 0.000000000000 +$node_(20) set X_ 422.138490901516 $node_(20) set Y_ 226.167652393429 $node_(20) set Z_ 0.000000000000 +$node_(21) set X_ 310.056386979234 $node_(21) set Y_ 484.783701653362 $node_(21) set Z_ 0.000000000000 +$node_(22) set X_ 224.853029886594 $node_(22) set Y_ 128.449392346077 $node_(22) set Z_ 0.000000000000 +$node_(23) set X_ 862.470044264050 $node_(23) set Y_ 4.926705645573 $node_(23) set Z_ 0.000000000000 +$node_(24) set X_ 989.728670069846 $node_(24) set Y_ 4.753343432372 $node_(24) set Z_ 0.000000000000 +$node_(25) set X_ 723.292264608851 $node_(25) set Y_ 587.164237566796 $node_(25) set Z_ 0.000000000000 +$node_(26) set X_ 797.126144008301 $node_(26) set Y_ 69.724236406070 $node_(26) set Z_ 0.000000000000 +$node_(27) set X_ 1326.707725053468 $node_(27) set Y_ 155.282150185361 $node_(27) set Z_ 0.000000000000 +$node_(28) set X_ 1187.544380083967 $node_(28) set Y_ 161.127169643168 $node_(28) set Z_ 0.000000000000 +$node_(29) set X_ 364.841572215559 $node_(29) set Y_ 14.787797274967 $node_(29) set Z_ 0.000000000000 +$node_(30) set X_ 325.777556575307 $node_(30) set Y_ 249.352286165877 $node_(30) set Z_ 0.000000000000 +$node_(31) set X_ 1035.927970421738 $node_(31) set Y_ 557.888452951051 $node_(31) set Z_ 0.000000000000 +$node_(32) set X_ 813.550841696229 $node_(32) set Y_ 85.629662594518 $node_(32) set Z_ 0.000000000000 +$node_(33) set X_ 342.954888784936 $node_(33) set Y_ 281.224992800224 $node_(33) set Z_ 0.000000000000 +$node_(34) set X_ 1237.632170884752 $node_(34) set Y_ 191.568390197639 $node_(34) set Z_ 0.000000000000 +$node_(35) set X_ 675.252609758764 $node_(35) set Y_ 365.093308160875 $node_(35) set Z_ 0.000000000000 +$node_(36) set X_ 22.831404290379 $node_(36) set Y_ 461.739077521890 $node_(36) set Z_ 0.000000000000 +$node_(37) set X_ 54.506458304204 $node_(37) set Y_ 530.673362542889 $node_(37) set Z_ 0.000000000000 +$node_(38) set X_ 170.768246292089 $node_(38) set Y_ 100.800359334442 $node_(38) set Z_ 0.000000000000 +$node_(39) set X_ 1455.060097424430 $node_(39) set Y_ 464.281129783596 $node_(39) set Z_ 0.000000000000 +$node_(40) set X_ 379.828995909642 $node_(40) set Y_ 349.730784852058 $node_(40) set Z_ 0.000000000000 +$node_(41) set X_ 1022.093017258530 $node_(41) set Y_ 226.363193821987 $node_(41) set Z_ 0.000000000000 +$node_(42) set X_ 867.069285560961 $node_(42) set Y_ 69.194744292765 $node_(42) set Z_ 0.000000000000 +$node_(43) set X_ 22.427289319429 $node_(43) set Y_ 401.297840957984 $node_(43) set Z_ 0.000000000000 +$node_(44) set X_ 832.485393191912 $node_(44) set Y_ 340.033590450647 $node_(44) set Z_ 0.000000000000 +$node_(45) set X_ 93.841233527981 $node_(45) set Y_ 364.417513832181 $node_(45) set Z_ 0.000000000000 +$node_(46) set X_ 126.723191900743 $node_(46) set Y_ 143.838928294950 $node_(46) set Z_ 0.000000000000 +$node_(47) set X_ 305.562709820700 $node_(47) set Y_ 176.974391474080 $node_(47) set Z_ 0.000000000000 +$node_(48) set X_ 518.914584055132 $node_(48) set Y_ 228.386540223006 $node_(48) set Z_ 0.000000000000 +$node_(49) set X_ 1163.672600300960 $node_(49) set Y_ 29.146460784242 $node_(49) set Z_ 0.000000000000 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/topo.tcl ns/tbf/topo.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/topo.tcl Wed Dec 31 19:00:00 1969 +++ ns/tbf/topo.tcl Mon Jun 2 19:21:37 2003 @@ -0,0 +1,500 @@ +$node_(1) set X_ 11.36 ; $node_(1) set Y_ 26.15 ; $node_(1) set Z_ 0.0 +$node_(2) set X_ 72.25 ; $node_(2) set Y_ 7.93 ; $node_(2) set Z_ 0.0 +$node_(3) set X_ 40.45 ; $node_(3) set Y_ 18.78 ; $node_(3) set Z_ 0.0 +$node_(4) set X_ 32.23 ; $node_(4) set Y_ 16.74 ; $node_(4) set Z_ 0.0 +$node_(5) set X_ 11.22 ; $node_(5) set Y_ 17.08 ; $node_(5) set Z_ 0.0 +$node_(6) set X_ 25.58 ; $node_(6) set Y_ 49.43 ; $node_(6) set Z_ 0.0 +$node_(7) set X_ 16.02 ; $node_(7) set Y_ 34.73 ; $node_(7) set Z_ 0.0 +$node_(8) set X_ 2.18 ; $node_(8) set Y_ 61.56 ; $node_(8) set Z_ 0.0 +$node_(9) set X_ 10.57 ; $node_(9) set Y_ 22.64 ; $node_(9) set Z_ 0.0 +$node_(10) set X_ 32.08 ; $node_(10) set Y_ 13.16 ; $node_(10) set Z_ 0.0 +$node_(11) set X_ 67.37 ; $node_(11) set Y_ 33.50 ; $node_(11) set Z_ 0.0 +$node_(12) set X_ 61.46 ; $node_(12) set Y_ 7.40 ; $node_(12) set Z_ 0.0 +$node_(13) set X_ 0.0 ; $node_(13) set Y_ 0.0 ; $node_(13) set Z_ 0.0 +$node_(14) set X_ 24.18 ; $node_(14) set Y_ 35.52 ; $node_(14) set Z_ 0.0 +$node_(15) set X_ 33.42 ; $node_(15) set Y_ 48.98 ; $node_(15) set Z_ 0.0 +$node_(16) set X_ 5.80 ; $node_(16) set Y_ 11.75 ; $node_(16) set Z_ 0.0 +$node_(17) set X_ 56.85 ; $node_(17) set Y_ 71.88 ; $node_(17) set Z_ 0.0 +$node_(18) set X_ 23.49 ; $node_(18) set Y_ 25.05 ; $node_(18) set Z_ 0.0 +$node_(19) set X_ 41.67 ; $node_(19) set Y_ 31.43 ; $node_(19) set Z_ 0.0 +$node_(20) set X_ 3.81 ; $node_(20) set Y_ 1.07 ; $node_(20) set Z_ 0.0 +$node_(21) set X_ 48.07 ; $node_(21) set Y_ 4.27 ; $node_(21) set Z_ 0.0 +$node_(22) set X_ 54.38 ; $node_(22) set Y_ 27.69 ; $node_(22) set Z_ 0.0 +$node_(23) set X_ 58.71 ; $node_(23) set Y_ 5.28 ; $node_(23) set Z_ 0.0 +$node_(24) set X_ 14.08 ; $node_(24) set Y_ 22.85 ; $node_(24) set Z_ 0.0 +$node_(25) set X_ 6.09 ; $node_(25) set Y_ 9.29 ; $node_(25) set Z_ 0.0 +$node_(26) set X_ 5.89 ; $node_(26) set Y_ 31.34 ; $node_(26) set Z_ 0.0 +$node_(27) set X_ 46.91 ; $node_(27) set Y_ 56.37 ; $node_(27) set Z_ 0.0 +$node_(28) set X_ 4.48 ; $node_(28) set Y_ 49.62 ; $node_(28) set Z_ 0.0 +$node_(29) set X_ 31.86 ; $node_(29) set Y_ 39.54 ; $node_(29) set Z_ 0.0 +$node_(30) set X_ 44.14 ; $node_(30) set Y_ 53.96 ; $node_(30) set Z_ 0.0 +$node_(31) set X_ 50.66 ; $node_(31) set Y_ 49.32 ; $node_(31) set Z_ 0.0 +$node_(32) set X_ 11.43 ; $node_(32) set Y_ 19.68 ; $node_(32) set Z_ 0.0 +$node_(33) set X_ 74.32 ; $node_(33) set Y_ 33.11 ; $node_(33) set Z_ 0.0 +$node_(34) set X_ 25.17 ; $node_(34) set Y_ 65.36 ; $node_(34) set Z_ 0.0 +$node_(35) set X_ 32.67 ; $node_(35) set Y_ 16.01 ; $node_(35) set Z_ 0.0 +$node_(36) set X_ 74.89 ; $node_(36) set Y_ 74.20 ; $node_(36) set Z_ 0.0 +$node_(37) set X_ 31.04 ; $node_(37) set Y_ 51.68 ; $node_(37) set Z_ 0.0 +$node_(38) set X_ 11.95 ; $node_(38) set Y_ 59.09 ; $node_(38) set Z_ 0.0 +$node_(39) set X_ 2.75 ; $node_(39) set Y_ 22.54 ; $node_(39) set Z_ 0.0 +$node_(40) set X_ 9.69 ; $node_(40) set Y_ 73.36 ; $node_(40) set Z_ 0.0 +$node_(41) set X_ 48.70 ; $node_(41) set Y_ 53.68 ; $node_(41) set Z_ 0.0 +$node_(42) set X_ 20.56 ; $node_(42) set Y_ 18.01 ; $node_(42) set Z_ 0.0 +$node_(43) set X_ 44.55 ; $node_(43) set Y_ 6.97 ; $node_(43) set Z_ 0.0 +$node_(44) set X_ 0.48 ; $node_(44) set Y_ 64.21 ; $node_(44) set Z_ 0.0 +$node_(45) set X_ 7.90 ; $node_(45) set Y_ 44.93 ; $node_(45) set Z_ 0.0 +$node_(46) set X_ 69.47 ; $node_(46) set Y_ 20.87 ; $node_(46) set Z_ 0.0 +$node_(47) set X_ 20.98 ; $node_(47) set Y_ 0.13 ; $node_(47) set Z_ 0.0 +$node_(48) set X_ 2.46 ; $node_(48) set Y_ 4.40 ; $node_(48) set Z_ 0.0 +$node_(49) set X_ 10.98 ; $node_(49) set Y_ 71.35 ; $node_(49) set Z_ 0.0 +$node_(50) set X_ 7.73 ; $node_(50) set Y_ 47.15 ; $node_(50) set Z_ 0.0 +$node_(51) set X_ 64.68 ; $node_(51) set Y_ 5.77 ; $node_(51) set Z_ 0.0 +$node_(52) set X_ 19.93 ; $node_(52) set Y_ 55.82 ; $node_(52) set Z_ 0.0 +$node_(53) set X_ 52.84 ; $node_(53) set Y_ 10.34 ; $node_(53) set Z_ 0.0 +$node_(54) set X_ 54.55 ; $node_(54) set Y_ 51.31 ; $node_(54) set Z_ 0.0 +$node_(55) set X_ 20.23 ; $node_(55) set Y_ 54.61 ; $node_(55) set Z_ 0.0 +$node_(56) set X_ 48.27 ; $node_(56) set Y_ 54.60 ; $node_(56) set Z_ 0.0 +$node_(57) set X_ 40.02 ; $node_(57) set Y_ 34.26 ; $node_(57) set Z_ 0.0 +$node_(58) set X_ 35.35 ; $node_(58) set Y_ 28.36 ; $node_(58) set Z_ 0.0 +$node_(59) set X_ 45.88 ; $node_(59) set Y_ 19.75 ; $node_(59) set Z_ 0.0 +$node_(60) set X_ 61.53 ; $node_(60) set Y_ 9.21 ; $node_(60) set Z_ 0.0 +$node_(61) set X_ 37.14 ; $node_(61) set Y_ 45.97 ; $node_(61) set Z_ 0.0 +$node_(62) set X_ 13.18 ; $node_(62) set Y_ 69.17 ; $node_(62) set Z_ 0.0 +$node_(63) set X_ 42.35 ; $node_(63) set Y_ 40.17 ; $node_(63) set Z_ 0.0 +$node_(64) set X_ 73.04 ; $node_(64) set Y_ 15.70 ; $node_(64) set Z_ 0.0 +$node_(65) set X_ 61.42 ; $node_(65) set Y_ 51.94 ; $node_(65) set Z_ 0.0 +$node_(66) set X_ 70.10 ; $node_(66) set Y_ 51.93 ; $node_(66) set Z_ 0.0 +$node_(67) set X_ 6.56 ; $node_(67) set Y_ 68.34 ; $node_(67) set Z_ 0.0 +$node_(68) set X_ 40.07 ; $node_(68) set Y_ 33.05 ; $node_(68) set Z_ 0.0 +$node_(69) set X_ 69.25 ; $node_(69) set Y_ 54.64 ; $node_(69) set Z_ 0.0 +$node_(70) set X_ 38.84 ; $node_(70) set Y_ 41.27 ; $node_(70) set Z_ 0.0 +$node_(71) set X_ 5.41 ; $node_(71) set Y_ 46.45 ; $node_(71) set Z_ 0.0 +$node_(72) set X_ 72.94 ; $node_(72) set Y_ 0.70 ; $node_(72) set Z_ 0.0 +$node_(73) set X_ 43.25 ; $node_(73) set Y_ 9.39 ; $node_(73) set Z_ 0.0 +$node_(74) set X_ 22.48 ; $node_(74) set Y_ 18.64 ; $node_(74) set Z_ 0.0 +$node_(75) set X_ 67.43 ; $node_(75) set Y_ 69.94 ; $node_(75) set Z_ 0.0 +$node_(76) set X_ 19.60 ; $node_(76) set Y_ 38.21 ; $node_(76) set Z_ 0.0 +$node_(77) set X_ 40.02 ; $node_(77) set Y_ 47.34 ; $node_(77) set Z_ 0.0 +$node_(78) set X_ 12.54 ; $node_(78) set Y_ 29.70 ; $node_(78) set Z_ 0.0 +$node_(79) set X_ 57.97 ; $node_(79) set Y_ 23.43 ; $node_(79) set Z_ 0.0 +$node_(80) set X_ 44.95 ; $node_(80) set Y_ 18.20 ; $node_(80) set Z_ 0.0 +$node_(81) set X_ 29.42 ; $node_(81) set Y_ 69.06 ; $node_(81) set Z_ 0.0 +$node_(82) set X_ 38.36 ; $node_(82) set Y_ 32.44 ; $node_(82) set Z_ 0.0 +$node_(83) set X_ 69.67 ; $node_(83) set Y_ 25.05 ; $node_(83) set Z_ 0.0 +$node_(84) set X_ 52.34 ; $node_(84) set Y_ 72.19 ; $node_(84) set Z_ 0.0 +$node_(85) set X_ 0.26 ; $node_(85) set Y_ 20.45 ; $node_(85) set Z_ 0.0 +$node_(86) set X_ 74.42 ; $node_(86) set Y_ 6.84 ; $node_(86) set Z_ 0.0 +$node_(87) set X_ 15.54 ; $node_(87) set Y_ 5.15 ; $node_(87) set Z_ 0.0 +$node_(88) set X_ 24.87 ; $node_(88) set Y_ 70.02 ; $node_(88) set Z_ 0.0 +$node_(89) set X_ 33.96 ; $node_(89) set Y_ 19.58 ; $node_(89) set Z_ 0.0 +$node_(90) set X_ 46.42 ; $node_(90) set Y_ 37.70 ; $node_(90) set Z_ 0.0 +$node_(91) set X_ 40.92 ; $node_(91) set Y_ 47.26 ; $node_(91) set Z_ 0.0 +$node_(92) set X_ 27.24 ; $node_(92) set Y_ 41.73 ; $node_(92) set Z_ 0.0 +$node_(93) set X_ 23.10 ; $node_(93) set Y_ 1.76 ; $node_(93) set Z_ 0.0 +$node_(94) set X_ 24.57 ; $node_(94) set Y_ 13.77 ; $node_(94) set Z_ 0.0 +$node_(95) set X_ 11.90 ; $node_(95) set Y_ 44.05 ; $node_(95) set Z_ 0.0 +$node_(96) set X_ 8.81 ; $node_(96) set Y_ 20.98 ; $node_(96) set Z_ 0.0 +$node_(97) set X_ 70.61 ; $node_(97) set Y_ 61.49 ; $node_(97) set Z_ 0.0 +$node_(98) set X_ 12.45 ; $node_(98) set Y_ 2.97 ; $node_(98) set Z_ 0.0 +$node_(99) set X_ 18.95 ; $node_(99) set Y_ 65.63 ; $node_(99) set Z_ 0.0 +$node_(100) set X_ 18.31 ; $node_(100) set Y_ 74.09 ; $node_(100) set Z_ 0.0 +$node_(101) set X_ 45.04 ; $node_(101) set Y_ 2.26 ; $node_(101) set Z_ 0.0 +$node_(102) set X_ 56.31 ; $node_(102) set Y_ 33.66 ; $node_(102) set Z_ 0.0 +$node_(103) set X_ 27.78 ; $node_(103) set Y_ 43.39 ; $node_(103) set Z_ 0.0 +$node_(104) set X_ 10.02 ; $node_(104) set Y_ 5.02 ; $node_(104) set Z_ 0.0 +$node_(105) set X_ 52.46 ; $node_(105) set Y_ 52.10 ; $node_(105) set Z_ 0.0 +$node_(106) set X_ 39.59 ; $node_(106) set Y_ 32.27 ; $node_(106) set Z_ 0.0 +$node_(107) set X_ 71.93 ; $node_(107) set Y_ 55.76 ; $node_(107) set Z_ 0.0 +$node_(108) set X_ 50.38 ; $node_(108) set Y_ 20.34 ; $node_(108) set Z_ 0.0 +$node_(109) set X_ 10.01 ; $node_(109) set Y_ 1.00 ; $node_(109) set Z_ 0.0 +$node_(110) set X_ 0.71 ; $node_(110) set Y_ 20.66 ; $node_(110) set Z_ 0.0 +$node_(111) set X_ 72.32 ; $node_(111) set Y_ 44.73 ; $node_(111) set Z_ 0.0 +$node_(112) set X_ 48.54 ; $node_(112) set Y_ 27.79 ; $node_(112) set Z_ 0.0 +$node_(113) set X_ 21.07 ; $node_(113) set Y_ 58.67 ; $node_(113) set Z_ 0.0 +$node_(114) set X_ 54.30 ; $node_(114) set Y_ 42.58 ; $node_(114) set Z_ 0.0 +$node_(115) set X_ 39.88 ; $node_(115) set Y_ 56.57 ; $node_(115) set Z_ 0.0 +$node_(116) set X_ 20.38 ; $node_(116) set Y_ 13.52 ; $node_(116) set Z_ 0.0 +$node_(117) set X_ 74.12 ; $node_(117) set Y_ 51.07 ; $node_(117) set Z_ 0.0 +$node_(118) set X_ 25.86 ; $node_(118) set Y_ 43.07 ; $node_(118) set Z_ 0.0 +$node_(119) set X_ 6.04 ; $node_(119) set Y_ 5.53 ; $node_(119) set Z_ 0.0 +$node_(120) set X_ 52.44 ; $node_(120) set Y_ 10.44 ; $node_(120) set Z_ 0.0 +$node_(121) set X_ 39.66 ; $node_(121) set Y_ 18.11 ; $node_(121) set Z_ 0.0 +$node_(122) set X_ 48.33 ; $node_(122) set Y_ 27.36 ; $node_(122) set Z_ 0.0 +$node_(123) set X_ 1.36 ; $node_(123) set Y_ 6.10 ; $node_(123) set Z_ 0.0 +$node_(124) set X_ 39.54 ; $node_(124) set Y_ 23.03 ; $node_(124) set Z_ 0.0 +$node_(125) set X_ 68.31 ; $node_(125) set Y_ 71.56 ; $node_(125) set Z_ 0.0 +$node_(126) set X_ 45.84 ; $node_(126) set Y_ 52.74 ; $node_(126) set Z_ 0.0 +$node_(127) set X_ 13.44 ; $node_(127) set Y_ 42.90 ; $node_(127) set Z_ 0.0 +$node_(128) set X_ 66.24 ; $node_(128) set Y_ 49.80 ; $node_(128) set Z_ 0.0 +$node_(129) set X_ 67.75 ; $node_(129) set Y_ 22.35 ; $node_(129) set Z_ 0.0 +$node_(130) set X_ 61.63 ; $node_(130) set Y_ 70.47 ; $node_(130) set Z_ 0.0 +$node_(131) set X_ 33.88 ; $node_(131) set Y_ 27.34 ; $node_(131) set Z_ 0.0 +$node_(132) set X_ 60.07 ; $node_(132) set Y_ 16.25 ; $node_(132) set Z_ 0.0 +$node_(133) set X_ 1.10 ; $node_(133) set Y_ 66.06 ; $node_(133) set Z_ 0.0 +$node_(134) set X_ 59.92 ; $node_(134) set Y_ 74.95 ; $node_(134) set Z_ 0.0 +$node_(135) set X_ 35.88 ; $node_(135) set Y_ 59.84 ; $node_(135) set Z_ 0.0 +$node_(136) set X_ 35.22 ; $node_(136) set Y_ 48.62 ; $node_(136) set Z_ 0.0 +$node_(137) set X_ 59.09 ; $node_(137) set Y_ 13.24 ; $node_(137) set Z_ 0.0 +$node_(138) set X_ 7.28 ; $node_(138) set Y_ 30.73 ; $node_(138) set Z_ 0.0 +$node_(139) set X_ 49.70 ; $node_(139) set Y_ 35.80 ; $node_(139) set Z_ 0.0 +$node_(140) set X_ 57.09 ; $node_(140) set Y_ 26.35 ; $node_(140) set Z_ 0.0 +$node_(141) set X_ 51.86 ; $node_(141) set Y_ 21.50 ; $node_(141) set Z_ 0.0 +$node_(142) set X_ 2.04 ; $node_(142) set Y_ 69.65 ; $node_(142) set Z_ 0.0 +$node_(143) set X_ 44.80 ; $node_(143) set Y_ 41.05 ; $node_(143) set Z_ 0.0 +$node_(144) set X_ 34.25 ; $node_(144) set Y_ 8.46 ; $node_(144) set Z_ 0.0 +$node_(145) set X_ 11.03 ; $node_(145) set Y_ 17.73 ; $node_(145) set Z_ 0.0 +$node_(146) set X_ 47.53 ; $node_(146) set Y_ 23.54 ; $node_(146) set Z_ 0.0 +$node_(147) set X_ 56.64 ; $node_(147) set Y_ 68.74 ; $node_(147) set Z_ 0.0 +$node_(148) set X_ 43.89 ; $node_(148) set Y_ 67.95 ; $node_(148) set Z_ 0.0 +$node_(149) set X_ 28.37 ; $node_(149) set Y_ 58.31 ; $node_(149) set Z_ 0.0 +$node_(150) set X_ 55.38 ; $node_(150) set Y_ 39.93 ; $node_(150) set Z_ 0.0 +$node_(151) set X_ 16.52 ; $node_(151) set Y_ 31.04 ; $node_(151) set Z_ 0.0 +$node_(152) set X_ 22.15 ; $node_(152) set Y_ 18.31 ; $node_(152) set Z_ 0.0 +$node_(153) set X_ 71.75 ; $node_(153) set Y_ 55.67 ; $node_(153) set Z_ 0.0 +$node_(154) set X_ 45.88 ; $node_(154) set Y_ 48.51 ; $node_(154) set Z_ 0.0 +$node_(155) set X_ 56.52 ; $node_(155) set Y_ 24.00 ; $node_(155) set Z_ 0.0 +$node_(156) set X_ 60.71 ; $node_(156) set Y_ 36.68 ; $node_(156) set Z_ 0.0 +$node_(157) set X_ 37.36 ; $node_(157) set Y_ 50.74 ; $node_(157) set Z_ 0.0 +$node_(158) set X_ 17.91 ; $node_(158) set Y_ 39.83 ; $node_(158) set Z_ 0.0 +$node_(159) set X_ 54.31 ; $node_(159) set Y_ 30.15 ; $node_(159) set Z_ 0.0 +$node_(160) set X_ 20.85 ; $node_(160) set Y_ 60.98 ; $node_(160) set Z_ 0.0 +$node_(161) set X_ 0.14 ; $node_(161) set Y_ 34.55 ; $node_(161) set Z_ 0.0 +$node_(162) set X_ 35.32 ; $node_(162) set Y_ 27.74 ; $node_(162) set Z_ 0.0 +$node_(163) set X_ 6.66 ; $node_(163) set Y_ 22.77 ; $node_(163) set Z_ 0.0 +$node_(164) set X_ 34.14 ; $node_(164) set Y_ 8.14 ; $node_(164) set Z_ 0.0 +$node_(165) set X_ 50.37 ; $node_(165) set Y_ 25.17 ; $node_(165) set Z_ 0.0 +$node_(166) set X_ 52.21 ; $node_(166) set Y_ 57.52 ; $node_(166) set Z_ 0.0 +$node_(167) set X_ 16.99 ; $node_(167) set Y_ 50.98 ; $node_(167) set Z_ 0.0 +$node_(168) set X_ 35.64 ; $node_(168) set Y_ 8.03 ; $node_(168) set Z_ 0.0 +$node_(169) set X_ 7.50 ; $node_(169) set Y_ 39.71 ; $node_(169) set Z_ 0.0 +$node_(170) set X_ 31.76 ; $node_(170) set Y_ 31.69 ; $node_(170) set Z_ 0.0 +$node_(171) set X_ 49.36 ; $node_(171) set Y_ 63.92 ; $node_(171) set Z_ 0.0 +$node_(172) set X_ 6.60 ; $node_(172) set Y_ 40.54 ; $node_(172) set Z_ 0.0 +$node_(173) set X_ 67.10 ; $node_(173) set Y_ 39.83 ; $node_(173) set Z_ 0.0 +$node_(174) set X_ 2.19 ; $node_(174) set Y_ 51.70 ; $node_(174) set Z_ 0.0 +$node_(175) set X_ 36.95 ; $node_(175) set Y_ 39.76 ; $node_(175) set Z_ 0.0 +$node_(176) set X_ 50.69 ; $node_(176) set Y_ 25.82 ; $node_(176) set Z_ 0.0 +$node_(177) set X_ 21.58 ; $node_(177) set Y_ 18.41 ; $node_(177) set Z_ 0.0 +$node_(178) set X_ 73.99 ; $node_(178) set Y_ 35.74 ; $node_(178) set Z_ 0.0 +$node_(179) set X_ 10.06 ; $node_(179) set Y_ 27.46 ; $node_(179) set Z_ 0.0 +$node_(180) set X_ 63.77 ; $node_(180) set Y_ 2.09 ; $node_(180) set Z_ 0.0 +$node_(181) set X_ 44.26 ; $node_(181) set Y_ 50.51 ; $node_(181) set Z_ 0.0 +$node_(182) set X_ 24.06 ; $node_(182) set Y_ 48.41 ; $node_(182) set Z_ 0.0 +$node_(183) set X_ 15.96 ; $node_(183) set Y_ 54.43 ; $node_(183) set Z_ 0.0 +$node_(184) set X_ 7.59 ; $node_(184) set Y_ 46.46 ; $node_(184) set Z_ 0.0 +$node_(185) set X_ 9.39 ; $node_(185) set Y_ 43.16 ; $node_(185) set Z_ 0.0 +$node_(186) set X_ 67.53 ; $node_(186) set Y_ 41.61 ; $node_(186) set Z_ 0.0 +$node_(187) set X_ 60.16 ; $node_(187) set Y_ 15.69 ; $node_(187) set Z_ 0.0 +$node_(188) set X_ 37.31 ; $node_(188) set Y_ 45.07 ; $node_(188) set Z_ 0.0 +$node_(189) set X_ 73.89 ; $node_(189) set Y_ 54.31 ; $node_(189) set Z_ 0.0 +$node_(190) set X_ 66.91 ; $node_(190) set Y_ 51.11 ; $node_(190) set Z_ 0.0 +$node_(191) set X_ 67.68 ; $node_(191) set Y_ 0.91 ; $node_(191) set Z_ 0.0 +$node_(192) set X_ 31.76 ; $node_(192) set Y_ 71.07 ; $node_(192) set Z_ 0.0 +$node_(193) set X_ 24.41 ; $node_(193) set Y_ 55.77 ; $node_(193) set Z_ 0.0 +$node_(194) set X_ 4.39 ; $node_(194) set Y_ 30.05 ; $node_(194) set Z_ 0.0 +$node_(195) set X_ 50.94 ; $node_(195) set Y_ 2.63 ; $node_(195) set Z_ 0.0 +$node_(196) set X_ 61.74 ; $node_(196) set Y_ 2.73 ; $node_(196) set Z_ 0.0 +$node_(197) set X_ 22.92 ; $node_(197) set Y_ 26.19 ; $node_(197) set Z_ 0.0 +$node_(198) set X_ 42.99 ; $node_(198) set Y_ 70.93 ; $node_(198) set Z_ 0.0 +$node_(199) set X_ 38.95 ; $node_(199) set Y_ 54.12 ; $node_(199) set Z_ 0.0 +$node_(200) set X_ 51.84 ; $node_(200) set Y_ 66.94 ; $node_(200) set Z_ 0.0 +$node_(201) set X_ 30.71 ; $node_(201) set Y_ 20.76 ; $node_(201) set Z_ 0.0 +$node_(202) set X_ 12.20 ; $node_(202) set Y_ 18.67 ; $node_(202) set Z_ 0.0 +$node_(203) set X_ 46.84 ; $node_(203) set Y_ 34.71 ; $node_(203) set Z_ 0.0 +$node_(204) set X_ 66.24 ; $node_(204) set Y_ 35.27 ; $node_(204) set Z_ 0.0 +$node_(205) set X_ 64.40 ; $node_(205) set Y_ 39.63 ; $node_(205) set Z_ 0.0 +$node_(206) set X_ 11.73 ; $node_(206) set Y_ 69.55 ; $node_(206) set Z_ 0.0 +$node_(207) set X_ 24.24 ; $node_(207) set Y_ 66.16 ; $node_(207) set Z_ 0.0 +$node_(208) set X_ 11.66 ; $node_(208) set Y_ 27.22 ; $node_(208) set Z_ 0.0 +$node_(209) set X_ 53.91 ; $node_(209) set Y_ 39.15 ; $node_(209) set Z_ 0.0 +$node_(210) set X_ 14.82 ; $node_(210) set Y_ 10.98 ; $node_(210) set Z_ 0.0 +$node_(211) set X_ 49.62 ; $node_(211) set Y_ 25.44 ; $node_(211) set Z_ 0.0 +$node_(212) set X_ 27.37 ; $node_(212) set Y_ 42.89 ; $node_(212) set Z_ 0.0 +$node_(213) set X_ 40.58 ; $node_(213) set Y_ 52.23 ; $node_(213) set Z_ 0.0 +$node_(214) set X_ 45.25 ; $node_(214) set Y_ 47.96 ; $node_(214) set Z_ 0.0 +$node_(215) set X_ 35.84 ; $node_(215) set Y_ 4.94 ; $node_(215) set Z_ 0.0 +$node_(216) set X_ 21.00 ; $node_(216) set Y_ 10.22 ; $node_(216) set Z_ 0.0 +$node_(217) set X_ 44.30 ; $node_(217) set Y_ 2.37 ; $node_(217) set Z_ 0.0 +$node_(218) set X_ 9.03 ; $node_(218) set Y_ 47.85 ; $node_(218) set Z_ 0.0 +$node_(219) set X_ 71.59 ; $node_(219) set Y_ 39.50 ; $node_(219) set Z_ 0.0 +$node_(220) set X_ 62.01 ; $node_(220) set Y_ 57.56 ; $node_(220) set Z_ 0.0 +$node_(221) set X_ 64.48 ; $node_(221) set Y_ 41.84 ; $node_(221) set Z_ 0.0 +$node_(222) set X_ 34.47 ; $node_(222) set Y_ 19.23 ; $node_(222) set Z_ 0.0 +$node_(223) set X_ 66.64 ; $node_(223) set Y_ 47.16 ; $node_(223) set Z_ 0.0 +$node_(224) set X_ 4.25 ; $node_(224) set Y_ 34.17 ; $node_(224) set Z_ 0.0 +$node_(225) set X_ 52.96 ; $node_(225) set Y_ 61.27 ; $node_(225) set Z_ 0.0 +$node_(226) set X_ 3.37 ; $node_(226) set Y_ 26.32 ; $node_(226) set Z_ 0.0 +$node_(227) set X_ 28.41 ; $node_(227) set Y_ 8.95 ; $node_(227) set Z_ 0.0 +$node_(228) set X_ 53.98 ; $node_(228) set Y_ 7.41 ; $node_(228) set Z_ 0.0 +$node_(229) set X_ 18.19 ; $node_(229) set Y_ 7.98 ; $node_(229) set Z_ 0.0 +$node_(230) set X_ 66.72 ; $node_(230) set Y_ 35.03 ; $node_(230) set Z_ 0.0 +$node_(231) set X_ 65.09 ; $node_(231) set Y_ 7.12 ; $node_(231) set Z_ 0.0 +$node_(232) set X_ 61.28 ; $node_(232) set Y_ 6.70 ; $node_(232) set Z_ 0.0 +$node_(233) set X_ 3.90 ; $node_(233) set Y_ 46.43 ; $node_(233) set Z_ 0.0 +$node_(234) set X_ 65.31 ; $node_(234) set Y_ 4.13 ; $node_(234) set Z_ 0.0 +$node_(235) set X_ 74.03 ; $node_(235) set Y_ 74.70 ; $node_(235) set Z_ 0.0 +$node_(236) set X_ 56.22 ; $node_(236) set Y_ 29.06 ; $node_(236) set Z_ 0.0 +$node_(237) set X_ 66.66 ; $node_(237) set Y_ 38.76 ; $node_(237) set Z_ 0.0 +$node_(238) set X_ 67.37 ; $node_(238) set Y_ 16.01 ; $node_(238) set Z_ 0.0 +$node_(239) set X_ 20.78 ; $node_(239) set Y_ 68.16 ; $node_(239) set Z_ 0.0 +$node_(240) set X_ 65.85 ; $node_(240) set Y_ 47.29 ; $node_(240) set Z_ 0.0 +$node_(241) set X_ 20.23 ; $node_(241) set Y_ 62.23 ; $node_(241) set Z_ 0.0 +$node_(242) set X_ 1.07 ; $node_(242) set Y_ 74.11 ; $node_(242) set Z_ 0.0 +$node_(243) set X_ 73.01 ; $node_(243) set Y_ 53.74 ; $node_(243) set Z_ 0.0 +$node_(244) set X_ 39.01 ; $node_(244) set Y_ 58.96 ; $node_(244) set Z_ 0.0 +$node_(245) set X_ 1.31 ; $node_(245) set Y_ 2.79 ; $node_(245) set Z_ 0.0 +$node_(246) set X_ 34.09 ; $node_(246) set Y_ 73.92 ; $node_(246) set Z_ 0.0 +$node_(247) set X_ 3.40 ; $node_(247) set Y_ 2.84 ; $node_(247) set Z_ 0.0 +$node_(248) set X_ 33.10 ; $node_(248) set Y_ 18.33 ; $node_(248) set Z_ 0.0 +$node_(249) set X_ 29.93 ; $node_(249) set Y_ 8.79 ; $node_(249) set Z_ 0.0 +$node_(250) set X_ 69.04 ; $node_(250) set Y_ 50.41 ; $node_(250) set Z_ 0.0 +$node_(251) set X_ 58.50 ; $node_(251) set Y_ 71.15 ; $node_(251) set Z_ 0.0 +$node_(252) set X_ 17.85 ; $node_(252) set Y_ 13.03 ; $node_(252) set Z_ 0.0 +$node_(253) set X_ 73.80 ; $node_(253) set Y_ 0.25 ; $node_(253) set Z_ 0.0 +$node_(254) set X_ 53.22 ; $node_(254) set Y_ 0.34 ; $node_(254) set Z_ 0.0 +$node_(255) set X_ 62.04 ; $node_(255) set Y_ 49.58 ; $node_(255) set Z_ 0.0 +$node_(256) set X_ 4.20 ; $node_(256) set Y_ 22.56 ; $node_(256) set Z_ 0.0 +$node_(257) set X_ 61.70 ; $node_(257) set Y_ 43.38 ; $node_(257) set Z_ 0.0 +$node_(258) set X_ 39.83 ; $node_(258) set Y_ 27.11 ; $node_(258) set Z_ 0.0 +$node_(259) set X_ 44.66 ; $node_(259) set Y_ 64.38 ; $node_(259) set Z_ 0.0 +$node_(260) set X_ 55.35 ; $node_(260) set Y_ 29.88 ; $node_(260) set Z_ 0.0 +$node_(261) set X_ 0.25 ; $node_(261) set Y_ 26.17 ; $node_(261) set Z_ 0.0 +$node_(262) set X_ 12.00 ; $node_(262) set Y_ 25.27 ; $node_(262) set Z_ 0.0 +$node_(263) set X_ 8.02 ; $node_(263) set Y_ 48.18 ; $node_(263) set Z_ 0.0 +$node_(264) set X_ 73.46 ; $node_(264) set Y_ 43.78 ; $node_(264) set Z_ 0.0 +$node_(265) set X_ 12.73 ; $node_(265) set Y_ 42.35 ; $node_(265) set Z_ 0.0 +$node_(266) set X_ 27.32 ; $node_(266) set Y_ 13.45 ; $node_(266) set Z_ 0.0 +$node_(267) set X_ 56.61 ; $node_(267) set Y_ 56.59 ; $node_(267) set Z_ 0.0 +$node_(268) set X_ 73.15 ; $node_(268) set Y_ 27.36 ; $node_(268) set Z_ 0.0 +$node_(269) set X_ 15.37 ; $node_(269) set Y_ 22.59 ; $node_(269) set Z_ 0.0 +$node_(270) set X_ 2.73 ; $node_(270) set Y_ 24.25 ; $node_(270) set Z_ 0.0 +$node_(271) set X_ 24.11 ; $node_(271) set Y_ 18.23 ; $node_(271) set Z_ 0.0 +$node_(272) set X_ 11.07 ; $node_(272) set Y_ 30.61 ; $node_(272) set Z_ 0.0 +$node_(273) set X_ 21.16 ; $node_(273) set Y_ 57.82 ; $node_(273) set Z_ 0.0 +$node_(274) set X_ 43.49 ; $node_(274) set Y_ 52.65 ; $node_(274) set Z_ 0.0 +$node_(275) set X_ 56.99 ; $node_(275) set Y_ 47.03 ; $node_(275) set Z_ 0.0 +$node_(276) set X_ 41.76 ; $node_(276) set Y_ 42.52 ; $node_(276) set Z_ 0.0 +$node_(277) set X_ 18.86 ; $node_(277) set Y_ 31.93 ; $node_(277) set Z_ 0.0 +$node_(278) set X_ 56.48 ; $node_(278) set Y_ 44.10 ; $node_(278) set Z_ 0.0 +$node_(279) set X_ 26.81 ; $node_(279) set Y_ 49.30 ; $node_(279) set Z_ 0.0 +$node_(280) set X_ 29.50 ; $node_(280) set Y_ 9.94 ; $node_(280) set Z_ 0.0 +$node_(281) set X_ 68.93 ; $node_(281) set Y_ 16.59 ; $node_(281) set Z_ 0.0 +$node_(282) set X_ 5.53 ; $node_(282) set Y_ 67.77 ; $node_(282) set Z_ 0.0 +$node_(283) set X_ 60.96 ; $node_(283) set Y_ 32.83 ; $node_(283) set Z_ 0.0 +$node_(284) set X_ 67.99 ; $node_(284) set Y_ 28.27 ; $node_(284) set Z_ 0.0 +$node_(285) set X_ 73.04 ; $node_(285) set Y_ 38.79 ; $node_(285) set Z_ 0.0 +$node_(286) set X_ 32.87 ; $node_(286) set Y_ 20.20 ; $node_(286) set Z_ 0.0 +$node_(287) set X_ 61.32 ; $node_(287) set Y_ 11.66 ; $node_(287) set Z_ 0.0 +$node_(288) set X_ 55.04 ; $node_(288) set Y_ 31.77 ; $node_(288) set Z_ 0.0 +$node_(289) set X_ 4.19 ; $node_(289) set Y_ 66.24 ; $node_(289) set Z_ 0.0 +$node_(290) set X_ 59.01 ; $node_(290) set Y_ 7.86 ; $node_(290) set Z_ 0.0 +$node_(291) set X_ 38.62 ; $node_(291) set Y_ 15.07 ; $node_(291) set Z_ 0.0 +$node_(292) set X_ 42.55 ; $node_(292) set Y_ 4.45 ; $node_(292) set Z_ 0.0 +$node_(293) set X_ 2.11 ; $node_(293) set Y_ 22.93 ; $node_(293) set Z_ 0.0 +$node_(294) set X_ 2.71 ; $node_(294) set Y_ 70.71 ; $node_(294) set Z_ 0.0 +$node_(295) set X_ 0.42 ; $node_(295) set Y_ 33.34 ; $node_(295) set Z_ 0.0 +$node_(296) set X_ 45.77 ; $node_(296) set Y_ 2.78 ; $node_(296) set Z_ 0.0 +$node_(297) set X_ 25.08 ; $node_(297) set Y_ 70.04 ; $node_(297) set Z_ 0.0 +$node_(298) set X_ 33.64 ; $node_(298) set Y_ 43.24 ; $node_(298) set Z_ 0.0 +$node_(299) set X_ 61.13 ; $node_(299) set Y_ 14.74 ; $node_(299) set Z_ 0.0 +$node_(300) set X_ 38.04 ; $node_(300) set Y_ 66.79 ; $node_(300) set Z_ 0.0 +$node_(301) set X_ 72.52 ; $node_(301) set Y_ 43.44 ; $node_(301) set Z_ 0.0 +$node_(302) set X_ 58.09 ; $node_(302) set Y_ 69.76 ; $node_(302) set Z_ 0.0 +$node_(303) set X_ 68.43 ; $node_(303) set Y_ 35.98 ; $node_(303) set Z_ 0.0 +$node_(304) set X_ 10.65 ; $node_(304) set Y_ 6.71 ; $node_(304) set Z_ 0.0 +$node_(305) set X_ 8.14 ; $node_(305) set Y_ 22.49 ; $node_(305) set Z_ 0.0 +$node_(306) set X_ 63.87 ; $node_(306) set Y_ 13.49 ; $node_(306) set Z_ 0.0 +$node_(307) set X_ 45.23 ; $node_(307) set Y_ 65.32 ; $node_(307) set Z_ 0.0 +$node_(308) set X_ 27.87 ; $node_(308) set Y_ 49.60 ; $node_(308) set Z_ 0.0 +$node_(309) set X_ 8.95 ; $node_(309) set Y_ 28.85 ; $node_(309) set Z_ 0.0 +$node_(310) set X_ 4.44 ; $node_(310) set Y_ 59.07 ; $node_(310) set Z_ 0.0 +$node_(311) set X_ 51.88 ; $node_(311) set Y_ 39.35 ; $node_(311) set Z_ 0.0 +$node_(312) set X_ 43.13 ; $node_(312) set Y_ 36.38 ; $node_(312) set Z_ 0.0 +$node_(313) set X_ 54.40 ; $node_(313) set Y_ 6.63 ; $node_(313) set Z_ 0.0 +$node_(314) set X_ 73.55 ; $node_(314) set Y_ 5.56 ; $node_(314) set Z_ 0.0 +$node_(315) set X_ 53.70 ; $node_(315) set Y_ 34.19 ; $node_(315) set Z_ 0.0 +$node_(316) set X_ 2.51 ; $node_(316) set Y_ 21.88 ; $node_(316) set Z_ 0.0 +$node_(317) set X_ 59.67 ; $node_(317) set Y_ 29.23 ; $node_(317) set Z_ 0.0 +$node_(318) set X_ 68.72 ; $node_(318) set Y_ 26.16 ; $node_(318) set Z_ 0.0 +$node_(319) set X_ 40.61 ; $node_(319) set Y_ 21.22 ; $node_(319) set Z_ 0.0 +$node_(320) set X_ 21.60 ; $node_(320) set Y_ 11.47 ; $node_(320) set Z_ 0.0 +$node_(321) set X_ 12.47 ; $node_(321) set Y_ 62.06 ; $node_(321) set Z_ 0.0 +$node_(322) set X_ 27.46 ; $node_(322) set Y_ 36.75 ; $node_(322) set Z_ 0.0 +$node_(323) set X_ 6.51 ; $node_(323) set Y_ 73.33 ; $node_(323) set Z_ 0.0 +$node_(324) set X_ 41.42 ; $node_(324) set Y_ 37.68 ; $node_(324) set Z_ 0.0 +$node_(325) set X_ 25.82 ; $node_(325) set Y_ 45.98 ; $node_(325) set Z_ 0.0 +$node_(326) set X_ 73.46 ; $node_(326) set Y_ 60.76 ; $node_(326) set Z_ 0.0 +$node_(327) set X_ 43.48 ; $node_(327) set Y_ 68.90 ; $node_(327) set Z_ 0.0 +$node_(328) set X_ 41.36 ; $node_(328) set Y_ 63.11 ; $node_(328) set Z_ 0.0 +$node_(329) set X_ 45.19 ; $node_(329) set Y_ 42.91 ; $node_(329) set Z_ 0.0 +$node_(330) set X_ 40.96 ; $node_(330) set Y_ 22.62 ; $node_(330) set Z_ 0.0 +$node_(331) set X_ 73.13 ; $node_(331) set Y_ 41.85 ; $node_(331) set Z_ 0.0 +$node_(332) set X_ 44.52 ; $node_(332) set Y_ 72.77 ; $node_(332) set Z_ 0.0 +$node_(333) set X_ 13.63 ; $node_(333) set Y_ 25.84 ; $node_(333) set Z_ 0.0 +$node_(334) set X_ 14.10 ; $node_(334) set Y_ 60.55 ; $node_(334) set Z_ 0.0 +$node_(335) set X_ 48.37 ; $node_(335) set Y_ 35.96 ; $node_(335) set Z_ 0.0 +$node_(336) set X_ 73.93 ; $node_(336) set Y_ 60.55 ; $node_(336) set Z_ 0.0 +$node_(337) set X_ 70.44 ; $node_(337) set Y_ 68.68 ; $node_(337) set Z_ 0.0 +$node_(338) set X_ 17.44 ; $node_(338) set Y_ 72.00 ; $node_(338) set Z_ 0.0 +$node_(339) set X_ 70.01 ; $node_(339) set Y_ 30.34 ; $node_(339) set Z_ 0.0 +$node_(340) set X_ 41.15 ; $node_(340) set Y_ 63.17 ; $node_(340) set Z_ 0.0 +$node_(341) set X_ 62.36 ; $node_(341) set Y_ 56.38 ; $node_(341) set Z_ 0.0 +$node_(342) set X_ 20.93 ; $node_(342) set Y_ 53.30 ; $node_(342) set Z_ 0.0 +$node_(343) set X_ 55.13 ; $node_(343) set Y_ 34.23 ; $node_(343) set Z_ 0.0 +$node_(344) set X_ 0.59 ; $node_(344) set Y_ 4.89 ; $node_(344) set Z_ 0.0 +$node_(345) set X_ 53.90 ; $node_(345) set Y_ 45.22 ; $node_(345) set Z_ 0.0 +$node_(346) set X_ 31.44 ; $node_(346) set Y_ 18.41 ; $node_(346) set Z_ 0.0 +$node_(347) set X_ 41.61 ; $node_(347) set Y_ 21.81 ; $node_(347) set Z_ 0.0 +$node_(348) set X_ 2.94 ; $node_(348) set Y_ 63.87 ; $node_(348) set Z_ 0.0 +$node_(349) set X_ 14.64 ; $node_(349) set Y_ 51.09 ; $node_(349) set Z_ 0.0 +$node_(350) set X_ 31.25 ; $node_(350) set Y_ 28.39 ; $node_(350) set Z_ 0.0 +$node_(351) set X_ 29.17 ; $node_(351) set Y_ 2.48 ; $node_(351) set Z_ 0.0 +$node_(352) set X_ 67.20 ; $node_(352) set Y_ 48.53 ; $node_(352) set Z_ 0.0 +$node_(353) set X_ 31.62 ; $node_(353) set Y_ 23.00 ; $node_(353) set Z_ 0.0 +$node_(354) set X_ 33.41 ; $node_(354) set Y_ 64.11 ; $node_(354) set Z_ 0.0 +$node_(355) set X_ 4.20 ; $node_(355) set Y_ 11.80 ; $node_(355) set Z_ 0.0 +$node_(356) set X_ 74.49 ; $node_(356) set Y_ 34.32 ; $node_(356) set Z_ 0.0 +$node_(357) set X_ 53.60 ; $node_(357) set Y_ 14.24 ; $node_(357) set Z_ 0.0 +$node_(358) set X_ 56.96 ; $node_(358) set Y_ 20.02 ; $node_(358) set Z_ 0.0 +$node_(359) set X_ 3.57 ; $node_(359) set Y_ 25.82 ; $node_(359) set Z_ 0.0 +$node_(360) set X_ 12.96 ; $node_(360) set Y_ 17.53 ; $node_(360) set Z_ 0.0 +$node_(361) set X_ 33.78 ; $node_(361) set Y_ 48.65 ; $node_(361) set Z_ 0.0 +$node_(362) set X_ 0.71 ; $node_(362) set Y_ 20.68 ; $node_(362) set Z_ 0.0 +$node_(363) set X_ 31.06 ; $node_(363) set Y_ 12.98 ; $node_(363) set Z_ 0.0 +$node_(364) set X_ 22.02 ; $node_(364) set Y_ 60.51 ; $node_(364) set Z_ 0.0 +$node_(365) set X_ 6.11 ; $node_(365) set Y_ 59.05 ; $node_(365) set Z_ 0.0 +$node_(366) set X_ 2.64 ; $node_(366) set Y_ 8.84 ; $node_(366) set Z_ 0.0 +$node_(367) set X_ 43.71 ; $node_(367) set Y_ 53.29 ; $node_(367) set Z_ 0.0 +$node_(368) set X_ 22.21 ; $node_(368) set Y_ 15.31 ; $node_(368) set Z_ 0.0 +$node_(369) set X_ 29.36 ; $node_(369) set Y_ 71.05 ; $node_(369) set Z_ 0.0 +$node_(370) set X_ 20.13 ; $node_(370) set Y_ 3.11 ; $node_(370) set Z_ 0.0 +$node_(371) set X_ 21.35 ; $node_(371) set Y_ 13.91 ; $node_(371) set Z_ 0.0 +$node_(372) set X_ 9.84 ; $node_(372) set Y_ 68.60 ; $node_(372) set Z_ 0.0 +$node_(373) set X_ 4.60 ; $node_(373) set Y_ 0.59 ; $node_(373) set Z_ 0.0 +$node_(374) set X_ 16.83 ; $node_(374) set Y_ 24.53 ; $node_(374) set Z_ 0.0 +$node_(375) set X_ 9.30 ; $node_(375) set Y_ 6.16 ; $node_(375) set Z_ 0.0 +$node_(376) set X_ 34.21 ; $node_(376) set Y_ 9.39 ; $node_(376) set Z_ 0.0 +$node_(377) set X_ 34.68 ; $node_(377) set Y_ 2.69 ; $node_(377) set Z_ 0.0 +$node_(378) set X_ 71.30 ; $node_(378) set Y_ 54.97 ; $node_(378) set Z_ 0.0 +$node_(379) set X_ 45.41 ; $node_(379) set Y_ 29.38 ; $node_(379) set Z_ 0.0 +$node_(380) set X_ 70.34 ; $node_(380) set Y_ 30.93 ; $node_(380) set Z_ 0.0 +$node_(381) set X_ 23.87 ; $node_(381) set Y_ 0.99 ; $node_(381) set Z_ 0.0 +$node_(382) set X_ 49.28 ; $node_(382) set Y_ 66.43 ; $node_(382) set Z_ 0.0 +$node_(383) set X_ 33.50 ; $node_(383) set Y_ 9.48 ; $node_(383) set Z_ 0.0 +$node_(384) set X_ 43.71 ; $node_(384) set Y_ 70.16 ; $node_(384) set Z_ 0.0 +$node_(385) set X_ 56.43 ; $node_(385) set Y_ 15.99 ; $node_(385) set Z_ 0.0 +$node_(386) set X_ 64.33 ; $node_(386) set Y_ 11.38 ; $node_(386) set Z_ 0.0 +$node_(387) set X_ 26.03 ; $node_(387) set Y_ 29.98 ; $node_(387) set Z_ 0.0 +$node_(388) set X_ 22.42 ; $node_(388) set Y_ 7.19 ; $node_(388) set Z_ 0.0 +$node_(389) set X_ 19.59 ; $node_(389) set Y_ 4.42 ; $node_(389) set Z_ 0.0 +$node_(390) set X_ 12.93 ; $node_(390) set Y_ 62.65 ; $node_(390) set Z_ 0.0 +$node_(391) set X_ 37.67 ; $node_(391) set Y_ 13.43 ; $node_(391) set Z_ 0.0 +$node_(392) set X_ 1.52 ; $node_(392) set Y_ 55.60 ; $node_(392) set Z_ 0.0 +$node_(393) set X_ 6.39 ; $node_(393) set Y_ 5.60 ; $node_(393) set Z_ 0.0 +$node_(394) set X_ 1.85 ; $node_(394) set Y_ 8.28 ; $node_(394) set Z_ 0.0 +$node_(395) set X_ 52.23 ; $node_(395) set Y_ 13.60 ; $node_(395) set Z_ 0.0 +$node_(396) set X_ 11.74 ; $node_(396) set Y_ 42.32 ; $node_(396) set Z_ 0.0 +$node_(397) set X_ 9.19 ; $node_(397) set Y_ 15.76 ; $node_(397) set Z_ 0.0 +$node_(398) set X_ 4.18 ; $node_(398) set Y_ 38.11 ; $node_(398) set Z_ 0.0 +$node_(399) set X_ 49.83 ; $node_(399) set Y_ 13.14 ; $node_(399) set Z_ 0.0 +$node_(400) set X_ 64.10 ; $node_(400) set Y_ 23.03 ; $node_(400) set Z_ 0.0 +$node_(401) set X_ 71.95 ; $node_(401) set Y_ 53.26 ; $node_(401) set Z_ 0.0 +$node_(402) set X_ 74.51 ; $node_(402) set Y_ 64.86 ; $node_(402) set Z_ 0.0 +$node_(403) set X_ 45.72 ; $node_(403) set Y_ 9.79 ; $node_(403) set Z_ 0.0 +$node_(404) set X_ 31.88 ; $node_(404) set Y_ 5.61 ; $node_(404) set Z_ 0.0 +$node_(405) set X_ 1.55 ; $node_(405) set Y_ 10.71 ; $node_(405) set Z_ 0.0 +$node_(406) set X_ 21.95 ; $node_(406) set Y_ 66.13 ; $node_(406) set Z_ 0.0 +$node_(407) set X_ 26.11 ; $node_(407) set Y_ 61.68 ; $node_(407) set Z_ 0.0 +$node_(408) set X_ 37.67 ; $node_(408) set Y_ 58.95 ; $node_(408) set Z_ 0.0 +$node_(409) set X_ 17.28 ; $node_(409) set Y_ 6.14 ; $node_(409) set Z_ 0.0 +$node_(410) set X_ 44.71 ; $node_(410) set Y_ 70.95 ; $node_(410) set Z_ 0.0 +$node_(411) set X_ 7.46 ; $node_(411) set Y_ 60.69 ; $node_(411) set Z_ 0.0 +$node_(412) set X_ 49.63 ; $node_(412) set Y_ 49.76 ; $node_(412) set Z_ 0.0 +$node_(413) set X_ 26.12 ; $node_(413) set Y_ 51.28 ; $node_(413) set Z_ 0.0 +$node_(414) set X_ 22.95 ; $node_(414) set Y_ 33.13 ; $node_(414) set Z_ 0.0 +$node_(415) set X_ 12.68 ; $node_(415) set Y_ 49.07 ; $node_(415) set Z_ 0.0 +$node_(416) set X_ 37.38 ; $node_(416) set Y_ 2.37 ; $node_(416) set Z_ 0.0 +$node_(417) set X_ 9.94 ; $node_(417) set Y_ 15.32 ; $node_(417) set Z_ 0.0 +$node_(418) set X_ 64.74 ; $node_(418) set Y_ 47.76 ; $node_(418) set Z_ 0.0 +$node_(419) set X_ 17.61 ; $node_(419) set Y_ 6.14 ; $node_(419) set Z_ 0.0 +$node_(420) set X_ 25.06 ; $node_(420) set Y_ 51.31 ; $node_(420) set Z_ 0.0 +$node_(421) set X_ 57.06 ; $node_(421) set Y_ 43.92 ; $node_(421) set Z_ 0.0 +$node_(422) set X_ 22.32 ; $node_(422) set Y_ 16.28 ; $node_(422) set Z_ 0.0 +$node_(423) set X_ 54.83 ; $node_(423) set Y_ 29.28 ; $node_(423) set Z_ 0.0 +$node_(424) set X_ 19.15 ; $node_(424) set Y_ 4.57 ; $node_(424) set Z_ 0.0 +$node_(425) set X_ 68.90 ; $node_(425) set Y_ 71.92 ; $node_(425) set Z_ 0.0 +$node_(426) set X_ 9.76 ; $node_(426) set Y_ 51.51 ; $node_(426) set Z_ 0.0 +$node_(427) set X_ 18.89 ; $node_(427) set Y_ 70.75 ; $node_(427) set Z_ 0.0 +$node_(428) set X_ 39.23 ; $node_(428) set Y_ 18.71 ; $node_(428) set Z_ 0.0 +$node_(429) set X_ 7.97 ; $node_(429) set Y_ 27.37 ; $node_(429) set Z_ 0.0 +$node_(430) set X_ 2.60 ; $node_(430) set Y_ 32.40 ; $node_(430) set Z_ 0.0 +$node_(431) set X_ 57.51 ; $node_(431) set Y_ 11.18 ; $node_(431) set Z_ 0.0 +$node_(432) set X_ 6.14 ; $node_(432) set Y_ 30.59 ; $node_(432) set Z_ 0.0 +$node_(433) set X_ 20.49 ; $node_(433) set Y_ 37.87 ; $node_(433) set Z_ 0.0 +$node_(434) set X_ 14.96 ; $node_(434) set Y_ 56.92 ; $node_(434) set Z_ 0.0 +$node_(435) set X_ 55.76 ; $node_(435) set Y_ 26.80 ; $node_(435) set Z_ 0.0 +$node_(436) set X_ 3.29 ; $node_(436) set Y_ 61.07 ; $node_(436) set Z_ 0.0 +$node_(437) set X_ 28.50 ; $node_(437) set Y_ 47.85 ; $node_(437) set Z_ 0.0 +$node_(438) set X_ 26.04 ; $node_(438) set Y_ 47.16 ; $node_(438) set Z_ 0.0 +$node_(439) set X_ 39.96 ; $node_(439) set Y_ 11.94 ; $node_(439) set Z_ 0.0 +$node_(440) set X_ 9.76 ; $node_(440) set Y_ 65.38 ; $node_(440) set Z_ 0.0 +$node_(441) set X_ 36.90 ; $node_(441) set Y_ 35.55 ; $node_(441) set Z_ 0.0 +$node_(442) set X_ 32.22 ; $node_(442) set Y_ 59.88 ; $node_(442) set Z_ 0.0 +$node_(443) set X_ 19.01 ; $node_(443) set Y_ 50.28 ; $node_(443) set Z_ 0.0 +$node_(444) set X_ 38.04 ; $node_(444) set Y_ 65.47 ; $node_(444) set Z_ 0.0 +$node_(445) set X_ 38.10 ; $node_(445) set Y_ 34.91 ; $node_(445) set Z_ 0.0 +$node_(446) set X_ 10.67 ; $node_(446) set Y_ 68.25 ; $node_(446) set Z_ 0.0 +$node_(447) set X_ 2.66 ; $node_(447) set Y_ 35.06 ; $node_(447) set Z_ 0.0 +$node_(448) set X_ 46.55 ; $node_(448) set Y_ 66.38 ; $node_(448) set Z_ 0.0 +$node_(449) set X_ 23.53 ; $node_(449) set Y_ 56.99 ; $node_(449) set Z_ 0.0 +$node_(450) set X_ 74.17 ; $node_(450) set Y_ 6.93 ; $node_(450) set Z_ 0.0 +$node_(451) set X_ 31.02 ; $node_(451) set Y_ 3.69 ; $node_(451) set Z_ 0.0 +$node_(452) set X_ 68.87 ; $node_(452) set Y_ 73.23 ; $node_(452) set Z_ 0.0 +$node_(453) set X_ 27.18 ; $node_(453) set Y_ 47.04 ; $node_(453) set Z_ 0.0 +$node_(454) set X_ 52.88 ; $node_(454) set Y_ 52.44 ; $node_(454) set Z_ 0.0 +$node_(455) set X_ 5.98 ; $node_(455) set Y_ 37.38 ; $node_(455) set Z_ 0.0 +$node_(456) set X_ 30.37 ; $node_(456) set Y_ 0.51 ; $node_(456) set Z_ 0.0 +$node_(457) set X_ 21.53 ; $node_(457) set Y_ 29.22 ; $node_(457) set Z_ 0.0 +$node_(458) set X_ 5.96 ; $node_(458) set Y_ 26.47 ; $node_(458) set Z_ 0.0 +$node_(459) set X_ 11.27 ; $node_(459) set Y_ 49.55 ; $node_(459) set Z_ 0.0 +$node_(460) set X_ 32.66 ; $node_(460) set Y_ 38.74 ; $node_(460) set Z_ 0.0 +$node_(461) set X_ 37.55 ; $node_(461) set Y_ 51.43 ; $node_(461) set Z_ 0.0 +$node_(462) set X_ 39.61 ; $node_(462) set Y_ 29.63 ; $node_(462) set Z_ 0.0 +$node_(463) set X_ 56.73 ; $node_(463) set Y_ 71.69 ; $node_(463) set Z_ 0.0 +$node_(464) set X_ 24.19 ; $node_(464) set Y_ 18.23 ; $node_(464) set Z_ 0.0 +$node_(465) set X_ 12.79 ; $node_(465) set Y_ 50.11 ; $node_(465) set Z_ 0.0 +$node_(466) set X_ 41.25 ; $node_(466) set Y_ 0.34 ; $node_(466) set Z_ 0.0 +$node_(467) set X_ 5.61 ; $node_(467) set Y_ 1.74 ; $node_(467) set Z_ 0.0 +$node_(468) set X_ 48.45 ; $node_(468) set Y_ 63.19 ; $node_(468) set Z_ 0.0 +$node_(469) set X_ 73.13 ; $node_(469) set Y_ 65.01 ; $node_(469) set Z_ 0.0 +$node_(470) set X_ 23.85 ; $node_(470) set Y_ 6.67 ; $node_(470) set Z_ 0.0 +$node_(471) set X_ 11.60 ; $node_(471) set Y_ 50.83 ; $node_(471) set Z_ 0.0 +$node_(472) set X_ 43.50 ; $node_(472) set Y_ 62.40 ; $node_(472) set Z_ 0.0 +$node_(473) set X_ 59.17 ; $node_(473) set Y_ 17.50 ; $node_(473) set Z_ 0.0 +$node_(474) set X_ 5.06 ; $node_(474) set Y_ 66.04 ; $node_(474) set Z_ 0.0 +$node_(475) set X_ 59.82 ; $node_(475) set Y_ 66.19 ; $node_(475) set Z_ 0.0 +$node_(476) set X_ 21.06 ; $node_(476) set Y_ 12.50 ; $node_(476) set Z_ 0.0 +$node_(477) set X_ 31.02 ; $node_(477) set Y_ 42.22 ; $node_(477) set Z_ 0.0 +$node_(478) set X_ 27.07 ; $node_(478) set Y_ 27.69 ; $node_(478) set Z_ 0.0 +$node_(479) set X_ 62.48 ; $node_(479) set Y_ 10.50 ; $node_(479) set Z_ 0.0 +$node_(480) set X_ 11.75 ; $node_(480) set Y_ 37.31 ; $node_(480) set Z_ 0.0 +$node_(481) set X_ 18.26 ; $node_(481) set Y_ 38.78 ; $node_(481) set Z_ 0.0 +$node_(482) set X_ 51.86 ; $node_(482) set Y_ 14.72 ; $node_(482) set Z_ 0.0 +$node_(483) set X_ 23.27 ; $node_(483) set Y_ 9.82 ; $node_(483) set Z_ 0.0 +$node_(484) set X_ 11.43 ; $node_(484) set Y_ 42.74 ; $node_(484) set Z_ 0.0 +$node_(485) set X_ 74.04 ; $node_(485) set Y_ 27.11 ; $node_(485) set Z_ 0.0 +$node_(486) set X_ 71.07 ; $node_(486) set Y_ 11.12 ; $node_(486) set Z_ 0.0 +$node_(487) set X_ 58.01 ; $node_(487) set Y_ 9.55 ; $node_(487) set Z_ 0.0 +$node_(488) set X_ 38.64 ; $node_(488) set Y_ 48.33 ; $node_(488) set Z_ 0.0 +$node_(489) set X_ 73.52 ; $node_(489) set Y_ 58.38 ; $node_(489) set Z_ 0.0 +$node_(490) set X_ 36.15 ; $node_(490) set Y_ 70.74 ; $node_(490) set Z_ 0.0 +$node_(491) set X_ 48.06 ; $node_(491) set Y_ 29.10 ; $node_(491) set Z_ 0.0 +$node_(492) set X_ 39.60 ; $node_(492) set Y_ 64.93 ; $node_(492) set Z_ 0.0 +$node_(493) set X_ 50.28 ; $node_(493) set Y_ 29.76 ; $node_(493) set Z_ 0.0 +$node_(494) set X_ 24.32 ; $node_(494) set Y_ 71.97 ; $node_(494) set Z_ 0.0 +$node_(495) set X_ 14.12 ; $node_(495) set Y_ 61.20 ; $node_(495) set Z_ 0.0 +$node_(496) set X_ 47.78 ; $node_(496) set Y_ 49.87 ; $node_(496) set Z_ 0.0 +$node_(497) set X_ 48.96 ; $node_(497) set Y_ 16.45 ; $node_(497) set Z_ 0.0 +$node_(498) set X_ 14.35 ; $node_(498) set Y_ 65.57 ; $node_(498) set Z_ 0.0 +$node_(499) set X_ 33.67 ; $node_(499) set Y_ 23.49 ; $node_(499) set Z_ 0.0 +$node_(500) set X_ 39.59 ; $node_(500) set Y_ 26.05 ; $node_(500) set Z_ 0.0 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.cp ns/tbf/validate/validate.cp --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.cp Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate/validate.cp Mon Jun 2 19:21:37 2003 @@ -0,0 +1,21 @@ +# +# nodes: 50, max conn: 1, send rate: 1, seed: 1.2323 +# +# +# 1 connecting to 2 at time 2.5568388786897245 +# +set udp_(0) [new Agent/UDP] +$ns_ attach-agent $node_(1) $udp_(0) +set null_(0) [new Agent/Null] +$ns_ attach-agent $node_(30) $null_(0) +set cbr_(0) [new Application/Traffic/CBR] +$cbr_(0) set packetSize_ 64 +$cbr_(0) set interval_ 1 +$cbr_(0) set random_ 1 +$cbr_(0) set maxpkts_ 1 +$cbr_(0) attach-agent $udp_(0) +$ns_ connect $udp_(0) $null_(0) +$ns_ at 2.5568388786897245 "$cbr_(0) start" +# +#Total sources/connections: 1/1 +# diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.cp.50.1500.600 ns/tbf/validate/validate.cp.50.1500.600 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.cp.50.1500.600 Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate/validate.cp.50.1500.600 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,21 @@ +# +# nodes: 50, max conn: 1, send rate: 1, seed: 1.2323 +# +# +# 1 connecting to 30 at time 2.5568388786897245 +# +set udp_(0) [new Agent/UDP] +$ns_ attach-agent $node_(1) $udp_(0) +set null_(0) [new Agent/Null] +$ns_ attach-agent $node_(30) $null_(0) +set cbr_(0) [new Application/Traffic/CBR] +$cbr_(0) set packetSize_ 64 +$cbr_(0) set interval_ 1 +$cbr_(0) set random_ 1 +$cbr_(0) set maxpkts_ 1 +$cbr_(0) attach-agent $udp_(0) +$ns_ connect $udp_(0) $null_(0) +$ns_ at 2.5568388786897245 "$cbr_(0) start" +# +#Total sources/connections: 1/1 +# diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.scen ns/tbf/validate/validate.scen --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.scen Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate/validate.scen Mon Jun 2 19:21:37 2003 @@ -0,0 +1,1487 @@ +# +# nodes: 50, pause: 900.00, max speed: 1.00 max x = 1500.00, max y: 600.00 +# +$node_(0) set X_ 1069.076702084382 +$node_(0) set Y_ 233.399303571101 +$node_(0) set Z_ 0.000000000000 +$node_(1) set X_ 1268.224234061930 +$node_(1) set Y_ 460.097144614022 +$node_(1) set Z_ 0.000000000000 +$node_(2) set X_ 1478.975485457783 +$node_(2) set Y_ 420.033853865937 +$node_(2) set Z_ 0.000000000000 +$node_(3) set X_ 1131.926959832387 +$node_(3) set Y_ 541.419465284620 +$node_(3) set Z_ 0.000000000000 +$node_(4) set X_ 49.774587702266 +$node_(4) set Y_ 279.269164448601 +$node_(4) set Z_ 0.000000000000 +$node_(5) set X_ 497.386875552235 +$node_(5) set Y_ 561.677860149414 +$node_(5) set Z_ 0.000000000000 +$node_(6) set X_ 741.126277752748 +$node_(6) set Y_ 332.168429272956 +$node_(6) set Z_ 0.000000000000 +$node_(7) set X_ 968.109461215038 +$node_(7) set Y_ 106.149003021185 +$node_(7) set Z_ 0.000000000000 +$node_(8) set X_ 587.460193362022 +$node_(8) set Y_ 342.355803961402 +$node_(8) set Z_ 0.000000000000 +$node_(9) set X_ 1022.386386328463 +$node_(9) set Y_ 567.972013433040 +$node_(9) set Z_ 0.000000000000 +$node_(10) set X_ 997.668619271152 +$node_(10) set Y_ 274.695346862225 +$node_(10) set Z_ 0.000000000000 +$node_(11) set X_ 711.719658118135 +$node_(11) set Y_ 303.449413021439 +$node_(11) set Z_ 0.000000000000 +$node_(12) set X_ 1208.374310830109 +$node_(12) set Y_ 54.146394986298 +$node_(12) set Z_ 0.000000000000 +$node_(13) set X_ 460.251784588297 +$node_(13) set Y_ 578.353185695005 +$node_(13) set Z_ 0.000000000000 +$node_(14) set X_ 463.919412576416 +$node_(14) set Y_ 366.656501606235 +$node_(14) set Z_ 0.000000000000 +$node_(15) set X_ 1494.219109019631 +$node_(15) set Y_ 137.148015370310 +$node_(15) set Z_ 0.000000000000 +$node_(16) set X_ 78.503091779687 +$node_(16) set Y_ 224.235092625231 +$node_(16) set Z_ 0.000000000000 +$node_(17) set X_ 1008.152706361321 +$node_(17) set Y_ 420.144454480625 +$node_(17) set Z_ 0.000000000000 +$node_(18) set X_ 1130.862014884897 +$node_(18) set Y_ 317.438844178636 +$node_(18) set Z_ 0.000000000000 +$node_(19) set X_ 994.303316766184 +$node_(19) set Y_ 506.484246055764 +$node_(19) set Z_ 0.000000000000 +$node_(20) set X_ 422.138490901516 +$node_(20) set Y_ 226.167652393429 +$node_(20) set Z_ 0.000000000000 +$node_(21) set X_ 310.056386979234 +$node_(21) set Y_ 484.783701653362 +$node_(21) set Z_ 0.000000000000 +$node_(22) set X_ 224.853029886594 +$node_(22) set Y_ 128.449392346077 +$node_(22) set Z_ 0.000000000000 +$node_(23) set X_ 862.470044264050 +$node_(23) set Y_ 4.926705645573 +$node_(23) set Z_ 0.000000000000 +$node_(24) set X_ 989.728670069846 +$node_(24) set Y_ 4.753343432372 +$node_(24) set Z_ 0.000000000000 +$node_(25) set X_ 723.292264608851 +$node_(25) set Y_ 587.164237566796 +$node_(25) set Z_ 0.000000000000 +$node_(26) set X_ 797.126144008301 +$node_(26) set Y_ 69.724236406070 +$node_(26) set Z_ 0.000000000000 +$node_(27) set X_ 1326.707725053468 +$node_(27) set Y_ 155.282150185361 +$node_(27) set Z_ 0.000000000000 +$node_(28) set X_ 1187.544380083967 +$node_(28) set Y_ 161.127169643168 +$node_(28) set Z_ 0.000000000000 +$node_(29) set X_ 364.841572215559 +$node_(29) set Y_ 14.787797274967 +$node_(29) set Z_ 0.000000000000 +$node_(30) set X_ 325.777556575307 +$node_(30) set Y_ 249.352286165877 +$node_(30) set Z_ 0.000000000000 +$node_(31) set X_ 1035.927970421738 +$node_(31) set Y_ 557.888452951051 +$node_(31) set Z_ 0.000000000000 +$node_(32) set X_ 813.550841696229 +$node_(32) set Y_ 85.629662594518 +$node_(32) set Z_ 0.000000000000 +$node_(33) set X_ 342.954888784936 +$node_(33) set Y_ 281.224992800224 +$node_(33) set Z_ 0.000000000000 +$node_(34) set X_ 1237.632170884752 +$node_(34) set Y_ 191.568390197639 +$node_(34) set Z_ 0.000000000000 +$node_(35) set X_ 675.252609758764 +$node_(35) set Y_ 365.093308160875 +$node_(35) set Z_ 0.000000000000 +$node_(36) set X_ 22.831404290379 +$node_(36) set Y_ 461.739077521890 +$node_(36) set Z_ 0.000000000000 +$node_(37) set X_ 54.506458304204 +$node_(37) set Y_ 530.673362542889 +$node_(37) set Z_ 0.000000000000 +$node_(38) set X_ 170.768246292089 +$node_(38) set Y_ 100.800359334442 +$node_(38) set Z_ 0.000000000000 +$node_(39) set X_ 1455.060097424430 +$node_(39) set Y_ 464.281129783596 +$node_(39) set Z_ 0.000000000000 +$node_(40) set X_ 379.828995909642 +$node_(40) set Y_ 349.730784852058 +$node_(40) set Z_ 0.000000000000 +$node_(41) set X_ 1022.093017258530 +$node_(41) set Y_ 226.363193821987 +$node_(41) set Z_ 0.000000000000 +$node_(42) set X_ 867.069285560961 +$node_(42) set Y_ 69.194744292765 +$node_(42) set Z_ 0.000000000000 +$node_(43) set X_ 22.427289319429 +$node_(43) set Y_ 401.297840957984 +$node_(43) set Z_ 0.000000000000 +$node_(44) set X_ 832.485393191912 +$node_(44) set Y_ 340.033590450647 +$node_(44) set Z_ 0.000000000000 +$node_(45) set X_ 93.841233527981 +$node_(45) set Y_ 364.417513832181 +$node_(45) set Z_ 0.000000000000 +$node_(46) set X_ 126.723191900743 +$node_(46) set Y_ 143.838928294950 +$node_(46) set Z_ 0.000000000000 +$node_(47) set X_ 305.562709820700 +$node_(47) set Y_ 176.974391474080 +$node_(47) set Z_ 0.000000000000 +$node_(48) set X_ 518.914584055132 +$node_(48) set Y_ 228.386540223006 +$node_(48) set Z_ 0.000000000000 +$node_(49) set X_ 1163.672600300960 +$node_(49) set Y_ 29.146460784242 +$node_(49) set Z_ 0.000000000000 +$god_ set-dist 0 1 2 +$god_ set-dist 0 2 3 +$god_ set-dist 0 3 2 +$god_ set-dist 0 4 6 +$god_ set-dist 0 5 4 +$god_ set-dist 0 6 3 +$god_ set-dist 0 7 1 +$god_ set-dist 0 8 3 +$god_ set-dist 0 9 2 +$god_ set-dist 0 10 1 +$god_ set-dist 0 11 3 +$god_ set-dist 0 12 1 +$god_ set-dist 0 13 5 +$god_ set-dist 0 14 4 +$god_ set-dist 0 15 3 +$god_ set-dist 0 16 6 +$god_ set-dist 0 17 1 +$god_ set-dist 0 18 1 +$god_ set-dist 0 19 2 +$god_ set-dist 0 20 4 +$god_ set-dist 0 21 5 +$god_ set-dist 0 22 5 +$god_ set-dist 0 23 2 +$god_ set-dist 0 24 1 +$god_ set-dist 0 25 4 +$god_ set-dist 0 26 2 +$god_ set-dist 0 27 2 +$god_ set-dist 0 28 1 +$god_ set-dist 0 29 5 +$god_ set-dist 0 30 5 +$god_ set-dist 0 31 2 +$god_ set-dist 0 32 2 +$god_ set-dist 0 33 5 +$god_ set-dist 0 34 1 +$god_ set-dist 0 35 3 +$god_ set-dist 0 36 7 +$god_ set-dist 0 37 7 +$god_ set-dist 0 38 6 +$god_ set-dist 0 39 3 +$god_ set-dist 0 40 4 +$god_ set-dist 0 41 1 +$god_ set-dist 0 42 2 +$god_ set-dist 0 43 7 +$god_ set-dist 0 44 2 +$god_ set-dist 0 45 6 +$god_ set-dist 0 46 6 +$god_ set-dist 0 47 5 +$god_ set-dist 0 48 4 +$god_ set-dist 0 49 1 +$god_ set-dist 1 2 1 +$god_ set-dist 1 3 1 +$god_ set-dist 1 4 7 +$god_ set-dist 1 5 5 +$god_ set-dist 1 6 4 +$god_ set-dist 1 7 3 +$god_ set-dist 1 8 4 +$god_ set-dist 1 9 2 +$god_ set-dist 1 10 2 +$god_ set-dist 1 11 4 +$god_ set-dist 1 12 3 +$god_ set-dist 1 13 6 +$god_ set-dist 1 14 5 +$god_ set-dist 1 15 4 +$god_ set-dist 1 16 7 +$god_ set-dist 1 17 2 +$god_ set-dist 1 18 1 +$god_ set-dist 1 19 2 +$god_ set-dist 1 20 5 +$god_ set-dist 1 21 6 +$god_ set-dist 1 22 6 +$god_ set-dist 1 23 4 +$god_ set-dist 1 24 3 +$god_ set-dist 1 25 5 +$god_ set-dist 1 26 4 +$god_ set-dist 1 27 3 +$god_ set-dist 1 28 2 +$god_ set-dist 1 29 6 +$god_ set-dist 1 30 6 +$god_ set-dist 1 31 2 +$god_ set-dist 1 32 4 +$god_ set-dist 1 33 6 +$god_ set-dist 1 34 2 +$god_ set-dist 1 35 4 +$god_ set-dist 1 36 8 +$god_ set-dist 1 37 8 +$god_ set-dist 1 38 7 +$god_ set-dist 1 39 1 +$god_ set-dist 1 40 5 +$god_ set-dist 1 41 2 +$god_ set-dist 1 42 3 +$god_ set-dist 1 43 8 +$god_ set-dist 1 44 3 +$god_ set-dist 1 45 7 +$god_ set-dist 1 46 7 +$god_ set-dist 1 47 6 +$god_ set-dist 1 48 5 +$god_ set-dist 1 49 3 +$god_ set-dist 2 3 2 +$god_ set-dist 2 4 8 +$god_ set-dist 2 5 6 +$god_ set-dist 2 6 5 +$god_ set-dist 2 7 4 +$god_ set-dist 2 8 5 +$god_ set-dist 2 9 3 +$god_ set-dist 2 10 3 +$god_ set-dist 2 11 5 +$god_ set-dist 2 12 4 +$god_ set-dist 2 13 7 +$god_ set-dist 2 14 6 +$god_ set-dist 2 15 5 +$god_ set-dist 2 16 8 +$god_ set-dist 2 17 3 +$god_ set-dist 2 18 2 +$god_ set-dist 2 19 3 +$god_ set-dist 2 20 6 +$god_ set-dist 2 21 7 +$god_ set-dist 2 22 7 +$god_ set-dist 2 23 5 +$god_ set-dist 2 24 4 +$god_ set-dist 2 25 6 +$god_ set-dist 2 26 5 +$god_ set-dist 2 27 4 +$god_ set-dist 2 28 3 +$god_ set-dist 2 29 7 +$god_ set-dist 2 30 7 +$god_ set-dist 2 31 3 +$god_ set-dist 2 32 5 +$god_ set-dist 2 33 7 +$god_ set-dist 2 34 3 +$god_ set-dist 2 35 5 +$god_ set-dist 2 36 9 +$god_ set-dist 2 37 9 +$god_ set-dist 2 38 8 +$god_ set-dist 2 39 1 +$god_ set-dist 2 40 6 +$god_ set-dist 2 41 3 +$god_ set-dist 2 42 4 +$god_ set-dist 2 43 9 +$god_ set-dist 2 44 4 +$god_ set-dist 2 45 8 +$god_ set-dist 2 46 8 +$god_ set-dist 2 47 7 +$god_ set-dist 2 48 6 +$god_ set-dist 2 49 4 +$god_ set-dist 3 4 6 +$god_ set-dist 3 5 4 +$god_ set-dist 3 6 3 +$god_ set-dist 3 7 3 +$god_ set-dist 3 8 3 +$god_ set-dist 3 9 1 +$god_ set-dist 3 10 2 +$god_ set-dist 3 11 3 +$god_ set-dist 3 12 3 +$god_ set-dist 3 13 5 +$god_ set-dist 3 14 4 +$god_ set-dist 3 15 4 +$god_ set-dist 3 16 6 +$god_ set-dist 3 17 1 +$god_ set-dist 3 18 1 +$god_ set-dist 3 19 1 +$god_ set-dist 3 20 4 +$god_ set-dist 3 21 5 +$god_ set-dist 3 22 5 +$god_ set-dist 3 23 4 +$god_ set-dist 3 24 3 +$god_ set-dist 3 25 4 +$god_ set-dist 3 26 4 +$god_ set-dist 3 27 3 +$god_ set-dist 3 28 2 +$god_ set-dist 3 29 5 +$god_ set-dist 3 30 5 +$god_ set-dist 3 31 1 +$god_ set-dist 3 32 4 +$god_ set-dist 3 33 5 +$god_ set-dist 3 34 2 +$god_ set-dist 3 35 3 +$god_ set-dist 3 36 7 +$god_ set-dist 3 37 7 +$god_ set-dist 3 38 6 +$god_ set-dist 3 39 2 +$god_ set-dist 3 40 4 +$god_ set-dist 3 41 2 +$god_ set-dist 3 42 3 +$god_ set-dist 3 43 7 +$god_ set-dist 3 44 2 +$god_ set-dist 3 45 6 +$god_ set-dist 3 46 6 +$god_ set-dist 3 47 5 +$god_ set-dist 3 48 4 +$god_ set-dist 3 49 3 +$god_ set-dist 4 5 3 +$god_ set-dist 4 6 4 +$god_ set-dist 4 7 6 +$god_ set-dist 4 8 3 +$god_ set-dist 4 9 6 +$god_ set-dist 4 10 5 +$god_ set-dist 4 11 4 +$god_ set-dist 4 12 7 +$god_ set-dist 4 13 3 +$god_ set-dist 4 14 3 +$god_ set-dist 4 15 8 +$god_ set-dist 4 16 1 +$god_ set-dist 4 17 5 +$god_ set-dist 4 18 6 +$god_ set-dist 4 19 5 +$god_ set-dist 4 20 2 +$god_ set-dist 4 21 2 +$god_ set-dist 4 22 1 +$god_ set-dist 4 23 6 +$god_ set-dist 4 24 6 +$god_ set-dist 4 25 4 +$god_ set-dist 4 26 5 +$god_ set-dist 4 27 7 +$god_ set-dist 4 28 6 +$god_ set-dist 4 29 2 +$god_ set-dist 4 30 2 +$god_ set-dist 4 31 6 +$god_ set-dist 4 32 5 +$god_ set-dist 4 33 2 +$god_ set-dist 4 34 6 +$god_ set-dist 4 35 4 +$god_ set-dist 4 36 1 +$god_ set-dist 4 37 2 +$god_ set-dist 4 38 1 +$god_ set-dist 4 39 8 +$god_ set-dist 4 40 3 +$god_ set-dist 4 41 5 +$god_ set-dist 4 42 6 +$god_ set-dist 4 43 1 +$god_ set-dist 4 44 4 +$god_ set-dist 4 45 1 +$god_ set-dist 4 46 1 +$god_ set-dist 4 47 2 +$god_ set-dist 4 48 3 +$god_ set-dist 4 49 6 +$god_ set-dist 5 6 2 +$god_ set-dist 5 7 4 +$god_ set-dist 5 8 1 +$god_ set-dist 5 9 4 +$god_ set-dist 5 10 3 +$god_ set-dist 5 11 2 +$god_ set-dist 5 12 5 +$god_ set-dist 5 13 1 +$god_ set-dist 5 14 1 +$god_ set-dist 5 15 6 +$god_ set-dist 5 16 3 +$god_ set-dist 5 17 3 +$god_ set-dist 5 18 4 +$god_ set-dist 5 19 3 +$god_ set-dist 5 20 2 +$god_ set-dist 5 21 1 +$god_ set-dist 5 22 3 +$god_ set-dist 5 23 4 +$god_ set-dist 5 24 4 +$god_ set-dist 5 25 1 +$god_ set-dist 5 26 3 +$god_ set-dist 5 27 5 +$god_ set-dist 5 28 4 +$god_ set-dist 5 29 3 +$god_ set-dist 5 30 2 +$god_ set-dist 5 31 4 +$god_ set-dist 5 32 3 +$god_ set-dist 5 33 2 +$god_ set-dist 5 34 4 +$god_ set-dist 5 35 2 +$god_ set-dist 5 36 3 +$god_ set-dist 5 37 3 +$god_ set-dist 5 38 3 +$god_ set-dist 5 39 6 +$god_ set-dist 5 40 1 +$god_ set-dist 5 41 3 +$god_ set-dist 5 42 4 +$god_ set-dist 5 43 3 +$god_ set-dist 5 44 2 +$god_ set-dist 5 45 2 +$god_ set-dist 5 46 3 +$god_ set-dist 5 47 2 +$god_ set-dist 5 48 2 +$god_ set-dist 5 49 4 +$god_ set-dist 6 7 3 +$god_ set-dist 6 8 1 +$god_ set-dist 6 9 3 +$god_ set-dist 6 10 2 +$god_ set-dist 6 11 1 +$god_ set-dist 6 12 4 +$god_ set-dist 6 13 3 +$god_ set-dist 6 14 2 +$god_ set-dist 6 15 5 +$god_ set-dist 6 16 3 +$god_ set-dist 6 17 2 +$god_ set-dist 6 18 3 +$god_ set-dist 6 19 2 +$god_ set-dist 6 20 2 +$god_ set-dist 6 21 3 +$god_ set-dist 6 22 3 +$god_ set-dist 6 23 3 +$god_ set-dist 6 24 3 +$god_ set-dist 6 25 2 +$god_ set-dist 6 26 2 +$god_ set-dist 6 27 4 +$god_ set-dist 6 28 3 +$god_ set-dist 6 29 3 +$god_ set-dist 6 30 2 +$god_ set-dist 6 31 3 +$god_ set-dist 6 32 2 +$god_ set-dist 6 33 2 +$god_ set-dist 6 34 3 +$god_ set-dist 6 35 1 +$god_ set-dist 6 36 4 +$god_ set-dist 6 37 5 +$god_ set-dist 6 38 3 +$god_ set-dist 6 39 5 +$god_ set-dist 6 40 2 +$god_ set-dist 6 41 2 +$god_ set-dist 6 42 3 +$god_ set-dist 6 43 4 +$god_ set-dist 6 44 1 +$god_ set-dist 6 45 4 +$god_ set-dist 6 46 3 +$god_ set-dist 6 47 2 +$god_ set-dist 6 48 1 +$god_ set-dist 6 49 3 +$god_ set-dist 7 8 3 +$god_ set-dist 7 9 3 +$god_ set-dist 7 10 1 +$god_ set-dist 7 11 2 +$god_ set-dist 7 12 1 +$god_ set-dist 7 13 5 +$god_ set-dist 7 14 4 +$god_ set-dist 7 15 3 +$god_ set-dist 7 16 5 +$god_ set-dist 7 17 2 +$god_ set-dist 7 18 2 +$god_ set-dist 7 19 2 +$god_ set-dist 7 20 4 +$god_ set-dist 7 21 5 +$god_ set-dist 7 22 5 +$god_ set-dist 7 23 1 +$god_ set-dist 7 24 1 +$god_ set-dist 7 25 4 +$god_ set-dist 7 26 1 +$god_ set-dist 7 27 2 +$god_ set-dist 7 28 1 +$god_ set-dist 7 29 5 +$god_ set-dist 7 30 4 +$god_ set-dist 7 31 3 +$god_ set-dist 7 32 1 +$god_ set-dist 7 33 4 +$god_ set-dist 7 34 2 +$god_ set-dist 7 35 3 +$god_ set-dist 7 36 6 +$god_ set-dist 7 37 7 +$god_ set-dist 7 38 5 +$god_ set-dist 7 39 4 +$god_ set-dist 7 40 4 +$god_ set-dist 7 41 1 +$god_ set-dist 7 42 1 +$god_ set-dist 7 43 6 +$god_ set-dist 7 44 2 +$god_ set-dist 7 45 6 +$god_ set-dist 7 46 5 +$god_ set-dist 7 47 4 +$god_ set-dist 7 48 3 +$god_ set-dist 7 49 1 +$god_ set-dist 8 9 3 +$god_ set-dist 8 10 2 +$god_ set-dist 8 11 1 +$god_ set-dist 8 12 4 +$god_ set-dist 8 13 2 +$god_ set-dist 8 14 1 +$god_ set-dist 8 15 5 +$god_ set-dist 8 16 3 +$god_ set-dist 8 17 2 +$god_ set-dist 8 18 3 +$god_ set-dist 8 19 2 +$god_ set-dist 8 20 1 +$god_ set-dist 8 21 2 +$god_ set-dist 8 22 2 +$god_ set-dist 8 23 3 +$god_ set-dist 8 24 3 +$god_ set-dist 8 25 2 +$god_ set-dist 8 26 2 +$god_ set-dist 8 27 4 +$god_ set-dist 8 28 3 +$god_ set-dist 8 29 2 +$god_ set-dist 8 30 2 +$god_ set-dist 8 31 3 +$god_ set-dist 8 32 2 +$god_ set-dist 8 33 2 +$god_ set-dist 8 34 3 +$god_ set-dist 8 35 1 +$god_ set-dist 8 36 4 +$god_ set-dist 8 37 4 +$god_ set-dist 8 38 3 +$god_ set-dist 8 39 5 +$god_ set-dist 8 40 1 +$god_ set-dist 8 41 2 +$god_ set-dist 8 42 3 +$god_ set-dist 8 43 4 +$god_ set-dist 8 44 1 +$god_ set-dist 8 45 3 +$god_ set-dist 8 46 3 +$god_ set-dist 8 47 2 +$god_ set-dist 8 48 1 +$god_ set-dist 8 49 3 +$god_ set-dist 9 10 2 +$god_ set-dist 9 11 3 +$god_ set-dist 9 12 3 +$god_ set-dist 9 13 5 +$god_ set-dist 9 14 4 +$god_ set-dist 9 15 5 +$god_ set-dist 9 16 6 +$god_ set-dist 9 17 1 +$god_ set-dist 9 18 2 +$god_ set-dist 9 19 1 +$god_ set-dist 9 20 4 +$god_ set-dist 9 21 5 +$god_ set-dist 9 22 5 +$god_ set-dist 9 23 4 +$god_ set-dist 9 24 3 +$god_ set-dist 9 25 4 +$god_ set-dist 9 26 4 +$god_ set-dist 9 27 4 +$god_ set-dist 9 28 3 +$god_ set-dist 9 29 5 +$god_ set-dist 9 30 5 +$god_ set-dist 9 31 1 +$god_ set-dist 9 32 4 +$god_ set-dist 9 33 5 +$god_ set-dist 9 34 3 +$god_ set-dist 9 35 3 +$god_ set-dist 9 36 7 +$god_ set-dist 9 37 7 +$god_ set-dist 9 38 6 +$god_ set-dist 9 39 3 +$god_ set-dist 9 40 4 +$god_ set-dist 9 41 2 +$god_ set-dist 9 42 3 +$god_ set-dist 9 43 7 +$god_ set-dist 9 44 2 +$god_ set-dist 9 45 6 +$god_ set-dist 9 46 6 +$god_ set-dist 9 47 5 +$god_ set-dist 9 48 4 +$god_ set-dist 9 49 3 +$god_ set-dist 10 11 2 +$god_ set-dist 10 12 2 +$god_ set-dist 10 13 4 +$god_ set-dist 10 14 3 +$god_ set-dist 10 15 3 +$god_ set-dist 10 16 5 +$god_ set-dist 10 17 1 +$god_ set-dist 10 18 1 +$god_ set-dist 10 19 1 +$god_ set-dist 10 20 3 +$god_ set-dist 10 21 4 +$god_ set-dist 10 22 4 +$god_ set-dist 10 23 2 +$god_ set-dist 10 24 2 +$god_ set-dist 10 25 3 +$god_ set-dist 10 26 2 +$god_ set-dist 10 27 2 +$god_ set-dist 10 28 1 +$god_ set-dist 10 29 4 +$god_ set-dist 10 30 4 +$god_ set-dist 10 31 2 +$god_ set-dist 10 32 2 +$god_ set-dist 10 33 4 +$god_ set-dist 10 34 2 +$god_ set-dist 10 35 2 +$god_ set-dist 10 36 6 +$god_ set-dist 10 37 6 +$god_ set-dist 10 38 5 +$god_ set-dist 10 39 3 +$god_ set-dist 10 40 3 +$god_ set-dist 10 41 1 +$god_ set-dist 10 42 1 +$god_ set-dist 10 43 6 +$god_ set-dist 10 44 1 +$god_ set-dist 10 45 5 +$god_ set-dist 10 46 5 +$god_ set-dist 10 47 4 +$god_ set-dist 10 48 3 +$god_ set-dist 10 49 2 +$god_ set-dist 11 12 3 +$god_ set-dist 11 13 3 +$god_ set-dist 11 14 2 +$god_ set-dist 11 15 5 +$god_ set-dist 11 16 3 +$god_ set-dist 11 17 2 +$god_ set-dist 11 18 3 +$god_ set-dist 11 19 2 +$god_ set-dist 11 20 2 +$god_ set-dist 11 21 3 +$god_ set-dist 11 22 3 +$god_ set-dist 11 23 2 +$god_ set-dist 11 24 2 +$god_ set-dist 11 25 2 +$god_ set-dist 11 26 1 +$god_ set-dist 11 27 4 +$god_ set-dist 11 28 3 +$god_ set-dist 11 29 3 +$god_ set-dist 11 30 2 +$god_ set-dist 11 31 3 +$god_ set-dist 11 32 1 +$god_ set-dist 11 33 2 +$god_ set-dist 11 34 3 +$god_ set-dist 11 35 1 +$god_ set-dist 11 36 4 +$god_ set-dist 11 37 5 +$god_ set-dist 11 38 3 +$god_ set-dist 11 39 5 +$god_ set-dist 11 40 2 +$god_ set-dist 11 41 2 +$god_ set-dist 11 42 2 +$god_ set-dist 11 43 4 +$god_ set-dist 11 44 1 +$god_ set-dist 11 45 4 +$god_ set-dist 11 46 3 +$god_ set-dist 11 47 2 +$god_ set-dist 11 48 1 +$god_ set-dist 11 49 3 +$god_ set-dist 12 13 6 +$god_ set-dist 12 14 5 +$god_ set-dist 12 15 2 +$god_ set-dist 12 16 6 +$god_ set-dist 12 17 2 +$god_ set-dist 12 18 2 +$god_ set-dist 12 19 3 +$god_ set-dist 12 20 5 +$god_ set-dist 12 21 6 +$god_ set-dist 12 22 6 +$god_ set-dist 12 23 2 +$god_ set-dist 12 24 1 +$god_ set-dist 12 25 5 +$god_ set-dist 12 26 2 +$god_ set-dist 12 27 1 +$god_ set-dist 12 28 1 +$god_ set-dist 12 29 6 +$god_ set-dist 12 30 5 +$god_ set-dist 12 31 3 +$god_ set-dist 12 32 2 +$god_ set-dist 12 33 5 +$god_ set-dist 12 34 1 +$god_ set-dist 12 35 4 +$god_ set-dist 12 36 7 +$god_ set-dist 12 37 8 +$god_ set-dist 12 38 6 +$god_ set-dist 12 39 4 +$god_ set-dist 12 40 5 +$god_ set-dist 12 41 2 +$god_ set-dist 12 42 2 +$god_ set-dist 12 43 7 +$god_ set-dist 12 44 3 +$god_ set-dist 12 45 7 +$god_ set-dist 12 46 6 +$god_ set-dist 12 47 5 +$god_ set-dist 12 48 4 +$god_ set-dist 12 49 1 +$god_ set-dist 13 14 1 +$god_ set-dist 13 15 7 +$god_ set-dist 13 16 3 +$god_ set-dist 13 17 4 +$god_ set-dist 13 18 5 +$god_ set-dist 13 19 4 +$god_ set-dist 13 20 2 +$god_ set-dist 13 21 1 +$god_ set-dist 13 22 3 +$god_ set-dist 13 23 5 +$god_ set-dist 13 24 5 +$god_ set-dist 13 25 2 +$god_ set-dist 13 26 4 +$god_ set-dist 13 27 6 +$god_ set-dist 13 28 5 +$god_ set-dist 13 29 3 +$god_ set-dist 13 30 2 +$god_ set-dist 13 31 5 +$god_ set-dist 13 32 4 +$god_ set-dist 13 33 2 +$god_ set-dist 13 34 5 +$god_ set-dist 13 35 2 +$god_ set-dist 13 36 3 +$god_ set-dist 13 37 3 +$god_ set-dist 13 38 3 +$god_ set-dist 13 39 7 +$god_ set-dist 13 40 1 +$god_ set-dist 13 41 4 +$god_ set-dist 13 42 5 +$god_ set-dist 13 43 3 +$god_ set-dist 13 44 3 +$god_ set-dist 13 45 2 +$god_ set-dist 13 46 3 +$god_ set-dist 13 47 2 +$god_ set-dist 13 48 2 +$god_ set-dist 13 49 5 +$god_ set-dist 14 15 6 +$god_ set-dist 14 16 2 +$god_ set-dist 14 17 3 +$god_ set-dist 14 18 4 +$god_ set-dist 14 19 3 +$god_ set-dist 14 20 1 +$god_ set-dist 14 21 1 +$god_ set-dist 14 22 2 +$god_ set-dist 14 23 4 +$god_ set-dist 14 24 4 +$god_ set-dist 14 25 2 +$god_ set-dist 14 26 3 +$god_ set-dist 14 27 5 +$god_ set-dist 14 28 4 +$god_ set-dist 14 29 2 +$god_ set-dist 14 30 1 +$god_ set-dist 14 31 4 +$god_ set-dist 14 32 3 +$god_ set-dist 14 33 1 +$god_ set-dist 14 34 4 +$god_ set-dist 14 35 1 +$god_ set-dist 14 36 3 +$god_ set-dist 14 37 3 +$god_ set-dist 14 38 2 +$god_ set-dist 14 39 6 +$god_ set-dist 14 40 1 +$god_ set-dist 14 41 3 +$god_ set-dist 14 42 4 +$god_ set-dist 14 43 3 +$god_ set-dist 14 44 2 +$god_ set-dist 14 45 2 +$god_ set-dist 14 46 2 +$god_ set-dist 14 47 1 +$god_ set-dist 14 48 1 +$god_ set-dist 14 49 4 +$god_ set-dist 15 16 8 +$god_ set-dist 15 17 4 +$god_ set-dist 15 18 3 +$god_ set-dist 15 19 4 +$god_ set-dist 15 20 6 +$god_ set-dist 15 21 7 +$god_ set-dist 15 22 7 +$god_ set-dist 15 23 4 +$god_ set-dist 15 24 3 +$god_ set-dist 15 25 6 +$god_ set-dist 15 26 4 +$god_ set-dist 15 27 1 +$god_ set-dist 15 28 2 +$god_ set-dist 15 29 7 +$god_ set-dist 15 30 7 +$god_ set-dist 15 31 5 +$god_ set-dist 15 32 4 +$god_ set-dist 15 33 7 +$god_ set-dist 15 34 2 +$god_ set-dist 15 35 5 +$god_ set-dist 15 36 9 +$god_ set-dist 15 37 9 +$god_ set-dist 15 38 8 +$god_ set-dist 15 39 5 +$god_ set-dist 15 40 6 +$god_ set-dist 15 41 3 +$god_ set-dist 15 42 4 +$god_ set-dist 15 43 9 +$god_ set-dist 15 44 4 +$god_ set-dist 15 45 8 +$god_ set-dist 15 46 8 +$god_ set-dist 15 47 7 +$god_ set-dist 15 48 6 +$god_ set-dist 15 49 2 +$god_ set-dist 16 17 5 +$god_ set-dist 16 18 6 +$god_ set-dist 16 19 5 +$god_ set-dist 16 20 2 +$god_ set-dist 16 21 2 +$god_ set-dist 16 22 1 +$god_ set-dist 16 23 5 +$god_ set-dist 16 24 5 +$god_ set-dist 16 25 4 +$god_ set-dist 16 26 4 +$god_ set-dist 16 27 7 +$god_ set-dist 16 28 6 +$god_ set-dist 16 29 2 +$god_ set-dist 16 30 1 +$god_ set-dist 16 31 6 +$god_ set-dist 16 32 4 +$god_ set-dist 16 33 2 +$god_ set-dist 16 34 6 +$god_ set-dist 16 35 3 +$god_ set-dist 16 36 1 +$god_ set-dist 16 37 2 +$god_ set-dist 16 38 1 +$god_ set-dist 16 39 8 +$god_ set-dist 16 40 2 +$god_ set-dist 16 41 5 +$god_ set-dist 16 42 5 +$god_ set-dist 16 43 1 +$god_ set-dist 16 44 4 +$god_ set-dist 16 45 1 +$god_ set-dist 16 46 1 +$god_ set-dist 16 47 1 +$god_ set-dist 16 48 2 +$god_ set-dist 16 49 6 +$god_ set-dist 17 18 1 +$god_ set-dist 17 19 1 +$god_ set-dist 17 20 3 +$god_ set-dist 17 21 4 +$god_ set-dist 17 22 4 +$god_ set-dist 17 23 3 +$god_ set-dist 17 24 2 +$god_ set-dist 17 25 3 +$god_ set-dist 17 26 3 +$god_ set-dist 17 27 3 +$god_ set-dist 17 28 2 +$god_ set-dist 17 29 4 +$god_ set-dist 17 30 4 +$god_ set-dist 17 31 1 +$god_ set-dist 17 32 3 +$god_ set-dist 17 33 4 +$god_ set-dist 17 34 2 +$god_ set-dist 17 35 2 +$god_ set-dist 17 36 6 +$god_ set-dist 17 37 6 +$god_ set-dist 17 38 5 +$god_ set-dist 17 39 3 +$god_ set-dist 17 40 3 +$god_ set-dist 17 41 1 +$god_ set-dist 17 42 2 +$god_ set-dist 17 43 6 +$god_ set-dist 17 44 1 +$god_ set-dist 17 45 5 +$god_ set-dist 17 46 5 +$god_ set-dist 17 47 4 +$god_ set-dist 17 48 3 +$god_ set-dist 17 49 2 +$god_ set-dist 18 19 1 +$god_ set-dist 18 20 4 +$god_ set-dist 18 21 5 +$god_ set-dist 18 22 5 +$god_ set-dist 18 23 3 +$god_ set-dist 18 24 2 +$god_ set-dist 18 25 4 +$god_ set-dist 18 26 3 +$god_ set-dist 18 27 2 +$god_ set-dist 18 28 1 +$god_ set-dist 18 29 5 +$god_ set-dist 18 30 5 +$god_ set-dist 18 31 2 +$god_ set-dist 18 32 3 +$god_ set-dist 18 33 5 +$god_ set-dist 18 34 1 +$god_ set-dist 18 35 3 +$god_ set-dist 18 36 7 +$god_ set-dist 18 37 7 +$god_ set-dist 18 38 6 +$god_ set-dist 18 39 2 +$god_ set-dist 18 40 4 +$god_ set-dist 18 41 1 +$god_ set-dist 18 42 2 +$god_ set-dist 18 43 7 +$god_ set-dist 18 44 2 +$god_ set-dist 18 45 6 +$god_ set-dist 18 46 6 +$god_ set-dist 18 47 5 +$god_ set-dist 18 48 4 +$god_ set-dist 18 49 2 +$god_ set-dist 19 20 3 +$god_ set-dist 19 21 4 +$god_ set-dist 19 22 4 +$god_ set-dist 19 23 3 +$god_ set-dist 19 24 3 +$god_ set-dist 19 25 3 +$god_ set-dist 19 26 3 +$god_ set-dist 19 27 3 +$god_ set-dist 19 28 2 +$god_ set-dist 19 29 4 +$god_ set-dist 19 30 4 +$god_ set-dist 19 31 1 +$god_ set-dist 19 32 3 +$god_ set-dist 19 33 4 +$god_ set-dist 19 34 2 +$god_ set-dist 19 35 2 +$god_ set-dist 19 36 6 +$god_ set-dist 19 37 6 +$god_ set-dist 19 38 5 +$god_ set-dist 19 39 3 +$god_ set-dist 19 40 3 +$god_ set-dist 19 41 2 +$god_ set-dist 19 42 2 +$god_ set-dist 19 43 6 +$god_ set-dist 19 44 1 +$god_ set-dist 19 45 5 +$god_ set-dist 19 46 5 +$god_ set-dist 19 47 4 +$god_ set-dist 19 48 3 +$god_ set-dist 19 49 3 +$god_ set-dist 20 21 2 +$god_ set-dist 20 22 1 +$god_ set-dist 20 23 4 +$god_ set-dist 20 24 4 +$god_ set-dist 20 25 3 +$god_ set-dist 20 26 3 +$god_ set-dist 20 27 5 +$god_ set-dist 20 28 4 +$god_ set-dist 20 29 1 +$god_ set-dist 20 30 1 +$god_ set-dist 20 31 4 +$god_ set-dist 20 32 3 +$god_ set-dist 20 33 1 +$god_ set-dist 20 34 4 +$god_ set-dist 20 35 2 +$god_ set-dist 20 36 3 +$god_ set-dist 20 37 4 +$god_ set-dist 20 38 2 +$god_ set-dist 20 39 6 +$god_ set-dist 20 40 1 +$god_ set-dist 20 41 3 +$god_ set-dist 20 42 4 +$god_ set-dist 20 43 3 +$god_ set-dist 20 44 2 +$god_ set-dist 20 45 3 +$god_ set-dist 20 46 2 +$god_ set-dist 20 47 1 +$god_ set-dist 20 48 1 +$god_ set-dist 20 49 4 +$god_ set-dist 21 22 2 +$god_ set-dist 21 23 5 +$god_ set-dist 21 24 5 +$god_ set-dist 21 25 2 +$god_ set-dist 21 26 4 +$god_ set-dist 21 27 6 +$god_ set-dist 21 28 5 +$god_ set-dist 21 29 2 +$god_ set-dist 21 30 1 +$god_ set-dist 21 31 5 +$god_ set-dist 21 32 4 +$god_ set-dist 21 33 1 +$god_ set-dist 21 34 5 +$god_ set-dist 21 35 2 +$god_ set-dist 21 36 2 +$god_ set-dist 21 37 2 +$god_ set-dist 21 38 2 +$god_ set-dist 21 39 7 +$god_ set-dist 21 40 1 +$god_ set-dist 21 41 4 +$god_ set-dist 21 42 5 +$god_ set-dist 21 43 2 +$god_ set-dist 21 44 3 +$god_ set-dist 21 45 1 +$god_ set-dist 21 46 2 +$god_ set-dist 21 47 2 +$god_ set-dist 21 48 2 +$god_ set-dist 21 49 5 +$god_ set-dist 22 23 5 +$god_ set-dist 22 24 5 +$god_ set-dist 22 25 4 +$god_ set-dist 22 26 4 +$god_ set-dist 22 27 6 +$god_ set-dist 22 28 5 +$god_ set-dist 22 29 1 +$god_ set-dist 22 30 1 +$god_ set-dist 22 31 5 +$god_ set-dist 22 32 4 +$god_ set-dist 22 33 1 +$god_ set-dist 22 34 5 +$god_ set-dist 22 35 3 +$god_ set-dist 22 36 2 +$god_ set-dist 22 37 3 +$god_ set-dist 22 38 1 +$god_ set-dist 22 39 7 +$god_ set-dist 22 40 2 +$god_ set-dist 22 41 4 +$god_ set-dist 22 42 5 +$god_ set-dist 22 43 2 +$god_ set-dist 22 44 3 +$god_ set-dist 22 45 2 +$god_ set-dist 22 46 1 +$god_ set-dist 22 47 1 +$god_ set-dist 22 48 2 +$god_ set-dist 22 49 5 +$god_ set-dist 23 24 1 +$god_ set-dist 23 25 4 +$god_ set-dist 23 26 1 +$god_ set-dist 23 27 3 +$god_ set-dist 23 28 2 +$god_ set-dist 23 29 5 +$god_ set-dist 23 30 4 +$god_ set-dist 23 31 4 +$god_ set-dist 23 32 1 +$god_ set-dist 23 33 4 +$god_ set-dist 23 34 3 +$god_ set-dist 23 35 3 +$god_ set-dist 23 36 6 +$god_ set-dist 23 37 7 +$god_ set-dist 23 38 5 +$god_ set-dist 23 39 5 +$god_ set-dist 23 40 4 +$god_ set-dist 23 41 2 +$god_ set-dist 23 42 1 +$god_ set-dist 23 43 6 +$god_ set-dist 23 44 3 +$god_ set-dist 23 45 6 +$god_ set-dist 23 46 5 +$god_ set-dist 23 47 4 +$god_ set-dist 23 48 3 +$god_ set-dist 23 49 2 +$god_ set-dist 24 25 4 +$god_ set-dist 24 26 1 +$god_ set-dist 24 27 2 +$god_ set-dist 24 28 2 +$god_ set-dist 24 29 5 +$god_ set-dist 24 30 4 +$god_ set-dist 24 31 3 +$god_ set-dist 24 32 1 +$god_ set-dist 24 33 4 +$god_ set-dist 24 34 2 +$god_ set-dist 24 35 3 +$god_ set-dist 24 36 6 +$god_ set-dist 24 37 7 +$god_ set-dist 24 38 5 +$god_ set-dist 24 39 4 +$god_ set-dist 24 40 4 +$god_ set-dist 24 41 1 +$god_ set-dist 24 42 1 +$god_ set-dist 24 43 6 +$god_ set-dist 24 44 2 +$god_ set-dist 24 45 6 +$god_ set-dist 24 46 5 +$god_ set-dist 24 47 4 +$god_ set-dist 24 48 3 +$god_ set-dist 24 49 1 +$god_ set-dist 25 26 3 +$god_ set-dist 25 27 5 +$god_ set-dist 25 28 4 +$god_ set-dist 25 29 4 +$god_ set-dist 25 30 3 +$god_ set-dist 25 31 4 +$god_ set-dist 25 32 3 +$god_ set-dist 25 33 3 +$god_ set-dist 25 34 4 +$god_ set-dist 25 35 1 +$god_ set-dist 25 36 4 +$god_ set-dist 25 37 4 +$god_ set-dist 25 38 4 +$god_ set-dist 25 39 6 +$god_ set-dist 25 40 2 +$god_ set-dist 25 41 3 +$god_ set-dist 25 42 4 +$god_ set-dist 25 43 4 +$god_ set-dist 25 44 2 +$god_ set-dist 25 45 3 +$god_ set-dist 25 46 4 +$god_ set-dist 25 47 3 +$god_ set-dist 25 48 2 +$god_ set-dist 25 49 4 +$god_ set-dist 26 27 3 +$god_ set-dist 26 28 2 +$god_ set-dist 26 29 4 +$god_ set-dist 26 30 3 +$god_ set-dist 26 31 4 +$god_ set-dist 26 32 1 +$god_ set-dist 26 33 3 +$god_ set-dist 26 34 3 +$god_ set-dist 26 35 2 +$god_ set-dist 26 36 5 +$god_ set-dist 26 37 6 +$god_ set-dist 26 38 4 +$god_ set-dist 26 39 5 +$god_ set-dist 26 40 3 +$god_ set-dist 26 41 2 +$god_ set-dist 26 42 1 +$god_ set-dist 26 43 5 +$god_ set-dist 26 44 2 +$god_ set-dist 26 45 5 +$god_ set-dist 26 46 4 +$god_ set-dist 26 47 3 +$god_ set-dist 26 48 2 +$god_ set-dist 26 49 2 +$god_ set-dist 27 28 1 +$god_ set-dist 27 29 6 +$god_ set-dist 27 30 6 +$god_ set-dist 27 31 4 +$god_ set-dist 27 32 3 +$god_ set-dist 27 33 6 +$god_ set-dist 27 34 1 +$god_ set-dist 27 35 4 +$god_ set-dist 27 36 8 +$god_ set-dist 27 37 8 +$god_ set-dist 27 38 7 +$god_ set-dist 27 39 4 +$god_ set-dist 27 40 5 +$god_ set-dist 27 41 2 +$god_ set-dist 27 42 3 +$god_ set-dist 27 43 8 +$god_ set-dist 27 44 3 +$god_ set-dist 27 45 7 +$god_ set-dist 27 46 7 +$god_ set-dist 27 47 6 +$god_ set-dist 27 48 5 +$god_ set-dist 27 49 1 +$god_ set-dist 28 29 5 +$god_ set-dist 28 30 5 +$god_ set-dist 28 31 3 +$god_ set-dist 28 32 2 +$god_ set-dist 28 33 5 +$god_ set-dist 28 34 1 +$god_ set-dist 28 35 3 +$god_ set-dist 28 36 7 +$god_ set-dist 28 37 7 +$god_ set-dist 28 38 6 +$god_ set-dist 28 39 3 +$god_ set-dist 28 40 4 +$god_ set-dist 28 41 1 +$god_ set-dist 28 42 2 +$god_ set-dist 28 43 7 +$god_ set-dist 28 44 2 +$god_ set-dist 28 45 6 +$god_ set-dist 28 46 6 +$god_ set-dist 28 47 5 +$god_ set-dist 28 48 4 +$god_ set-dist 28 49 1 +$god_ set-dist 29 30 1 +$god_ set-dist 29 31 5 +$god_ set-dist 29 32 4 +$god_ set-dist 29 33 2 +$god_ set-dist 29 34 5 +$god_ set-dist 29 35 3 +$god_ set-dist 29 36 3 +$god_ set-dist 29 37 4 +$god_ set-dist 29 38 1 +$god_ set-dist 29 39 7 +$god_ set-dist 29 40 2 +$god_ set-dist 29 41 4 +$god_ set-dist 29 42 5 +$god_ set-dist 29 43 3 +$god_ set-dist 29 44 3 +$god_ set-dist 29 45 3 +$god_ set-dist 29 46 2 +$god_ set-dist 29 47 1 +$god_ set-dist 29 48 2 +$god_ set-dist 29 49 5 +$god_ set-dist 30 31 5 +$god_ set-dist 30 32 3 +$god_ set-dist 30 33 1 +$god_ set-dist 30 34 5 +$god_ set-dist 30 35 2 +$god_ set-dist 30 36 2 +$god_ set-dist 30 37 3 +$god_ set-dist 30 38 1 +$god_ set-dist 30 39 7 +$god_ set-dist 30 40 1 +$god_ set-dist 30 41 4 +$god_ set-dist 30 42 4 +$god_ set-dist 30 43 2 +$god_ set-dist 30 44 3 +$god_ set-dist 30 45 2 +$god_ set-dist 30 46 1 +$god_ set-dist 30 47 1 +$god_ set-dist 30 48 1 +$god_ set-dist 30 49 5 +$god_ set-dist 31 32 4 +$god_ set-dist 31 33 5 +$god_ set-dist 31 34 3 +$god_ set-dist 31 35 3 +$god_ set-dist 31 36 7 +$god_ set-dist 31 37 7 +$god_ set-dist 31 38 6 +$god_ set-dist 31 39 3 +$god_ set-dist 31 40 4 +$god_ set-dist 31 41 2 +$god_ set-dist 31 42 3 +$god_ set-dist 31 43 7 +$god_ set-dist 31 44 2 +$god_ set-dist 31 45 6 +$god_ set-dist 31 46 6 +$god_ set-dist 31 47 5 +$god_ set-dist 31 48 4 +$god_ set-dist 31 49 3 +$god_ set-dist 32 33 3 +$god_ set-dist 32 34 3 +$god_ set-dist 32 35 2 +$god_ set-dist 32 36 5 +$god_ set-dist 32 37 6 +$god_ set-dist 32 38 4 +$god_ set-dist 32 39 5 +$god_ set-dist 32 40 3 +$god_ set-dist 32 41 2 +$god_ set-dist 32 42 1 +$god_ set-dist 32 43 5 +$god_ set-dist 32 44 2 +$god_ set-dist 32 45 5 +$god_ set-dist 32 46 4 +$god_ set-dist 32 47 3 +$god_ set-dist 32 48 2 +$god_ set-dist 32 49 2 +$god_ set-dist 33 34 5 +$god_ set-dist 33 35 2 +$god_ set-dist 33 36 3 +$god_ set-dist 33 37 3 +$god_ set-dist 33 38 1 +$god_ set-dist 33 39 7 +$god_ set-dist 33 40 1 +$god_ set-dist 33 41 4 +$god_ set-dist 33 42 4 +$god_ set-dist 33 43 3 +$god_ set-dist 33 44 3 +$god_ set-dist 33 45 2 +$god_ set-dist 33 46 2 +$god_ set-dist 33 47 1 +$god_ set-dist 33 48 1 +$god_ set-dist 33 49 5 +$god_ set-dist 34 35 3 +$god_ set-dist 34 36 7 +$god_ set-dist 34 37 7 +$god_ set-dist 34 38 6 +$god_ set-dist 34 39 3 +$god_ set-dist 34 40 4 +$god_ set-dist 34 41 1 +$god_ set-dist 34 42 2 +$god_ set-dist 34 43 7 +$god_ set-dist 34 44 2 +$god_ set-dist 34 45 6 +$god_ set-dist 34 46 6 +$god_ set-dist 34 47 5 +$god_ set-dist 34 48 4 +$god_ set-dist 34 49 1 +$god_ set-dist 35 36 4 +$god_ set-dist 35 37 4 +$god_ set-dist 35 38 3 +$god_ set-dist 35 39 5 +$god_ set-dist 35 40 2 +$god_ set-dist 35 41 2 +$god_ set-dist 35 42 3 +$god_ set-dist 35 43 4 +$god_ set-dist 35 44 1 +$god_ set-dist 35 45 3 +$god_ set-dist 35 46 3 +$god_ set-dist 35 47 2 +$god_ set-dist 35 48 1 +$god_ set-dist 35 49 3 +$god_ set-dist 36 37 1 +$god_ set-dist 36 38 2 +$god_ set-dist 36 39 9 +$god_ set-dist 36 40 3 +$god_ set-dist 36 41 6 +$god_ set-dist 36 42 6 +$god_ set-dist 36 43 1 +$god_ set-dist 36 44 5 +$god_ set-dist 36 45 1 +$god_ set-dist 36 46 2 +$god_ set-dist 36 47 2 +$god_ set-dist 36 48 3 +$god_ set-dist 36 49 7 +$god_ set-dist 37 38 3 +$god_ set-dist 37 39 9 +$god_ set-dist 37 40 3 +$god_ set-dist 37 41 6 +$god_ set-dist 37 42 7 +$god_ set-dist 37 43 1 +$god_ set-dist 37 44 5 +$god_ set-dist 37 45 1 +$god_ set-dist 37 46 2 +$god_ set-dist 37 47 3 +$god_ set-dist 37 48 4 +$god_ set-dist 37 49 7 +$god_ set-dist 38 39 8 +$god_ set-dist 38 40 2 +$god_ set-dist 38 41 5 +$god_ set-dist 38 42 5 +$god_ set-dist 38 43 2 +$god_ set-dist 38 44 4 +$god_ set-dist 38 45 2 +$god_ set-dist 38 46 1 +$god_ set-dist 38 47 1 +$god_ set-dist 38 48 2 +$god_ set-dist 38 49 6 +$god_ set-dist 39 40 6 +$god_ set-dist 39 41 3 +$god_ set-dist 39 42 4 +$god_ set-dist 39 43 9 +$god_ set-dist 39 44 4 +$god_ set-dist 39 45 8 +$god_ set-dist 39 46 8 +$god_ set-dist 39 47 7 +$god_ set-dist 39 48 6 +$god_ set-dist 39 49 4 +$god_ set-dist 40 41 3 +$god_ set-dist 40 42 4 +$god_ set-dist 40 43 3 +$god_ set-dist 40 44 2 +$god_ set-dist 40 45 2 +$god_ set-dist 40 46 2 +$god_ set-dist 40 47 1 +$god_ set-dist 40 48 1 +$god_ set-dist 40 49 4 +$god_ set-dist 41 42 1 +$god_ set-dist 41 43 6 +$god_ set-dist 41 44 1 +$god_ set-dist 41 45 5 +$god_ set-dist 41 46 5 +$god_ set-dist 41 47 4 +$god_ set-dist 41 48 3 +$god_ set-dist 41 49 1 +$god_ set-dist 42 43 6 +$god_ set-dist 42 44 2 +$god_ set-dist 42 45 6 +$god_ set-dist 42 46 5 +$god_ set-dist 42 47 4 +$god_ set-dist 42 48 3 +$god_ set-dist 42 49 2 +$god_ set-dist 43 44 5 +$god_ set-dist 43 45 1 +$god_ set-dist 43 46 2 +$god_ set-dist 43 47 2 +$god_ set-dist 43 48 3 +$god_ set-dist 43 49 7 +$god_ set-dist 44 45 4 +$god_ set-dist 44 46 4 +$god_ set-dist 44 47 3 +$god_ set-dist 44 48 2 +$god_ set-dist 44 49 2 +$god_ set-dist 45 46 1 +$god_ set-dist 45 47 2 +$god_ set-dist 45 48 3 +$god_ set-dist 45 49 6 +$god_ set-dist 46 47 1 +$god_ set-dist 46 48 2 +$god_ set-dist 46 49 6 +$god_ set-dist 47 48 1 +$god_ set-dist 47 49 5 +$god_ set-dist 48 49 4 +$ns_ at 900.000000000000 "$node_(0) setdest 936.285437025915 79.374930101909 0.874816818387" +$ns_ at 900.000000000000 "$node_(1) setdest 1425.326488206142 282.694131368860 0.699136310588" +$ns_ at 900.000000000000 "$node_(2) setdest 47.565049117787 0.704935273767 0.705060730840" +$ns_ at 900.000000000000 "$node_(3) setdest 918.906338078091 530.966780856506 0.133497714709" +$ns_ at 900.000000000000 "$node_(4) setdest 1031.735459598940 127.734143279656 0.023415128437" +$ns_ at 900.000000000000 "$node_(5) setdest 1194.262120268895 72.259415506841 0.394941510667" +$ns_ at 900.000000000000 "$node_(6) setdest 248.802133079349 528.635757266599 0.629968330505" +$ns_ at 900.000000000000 "$node_(7) setdest 1190.404037270704 143.108710825120 0.510823377932" +$ns_ at 900.000000000000 "$node_(8) setdest 34.324635900446 509.214952196160 0.276156681692" +$ns_ at 900.000000000000 "$node_(9) setdest 441.389243073986 82.040809063355 0.904220929853" +$ns_ at 900.000000000000 "$node_(10) setdest 1299.596255020243 420.986406357301 0.615438344425" +$ns_ at 900.000000000000 "$node_(11) setdest 1425.084889614409 304.145721081251 0.349371544474" +$ns_ at 900.000000000000 "$node_(12) setdest 554.694672552052 483.266748096674 0.950399176609" +$ns_ at 900.000000000000 "$node_(13) setdest 999.094983169752 116.183826366029 0.529246249256" +$ns_ at 900.000000000000 "$node_(14) setdest 838.142968559111 180.890213564309 0.713531838594" +$ns_ at 900.000000000000 "$node_(15) setdest 1472.157461035240 441.639375002354 0.516637891405" +$ns_ at 900.000000000000 "$node_(16) setdest 1333.408388506841 492.084108049398 0.794483493374" +$ns_ at 900.000000000000 "$node_(17) setdest 945.075057697392 434.148004116208 0.355383910919" +$ns_ at 900.000000000000 "$node_(18) setdest 1458.452657879832 367.724764320709 0.450735312596" +$ns_ at 900.000000000000 "$node_(19) setdest 104.637974701985 285.149523408874 0.656365091103" +$ns_ at 900.000000000000 "$node_(20) setdest 149.561868540214 421.777947510083 0.278454963099" +$ns_ at 900.000000000000 "$node_(21) setdest 672.727823939032 596.422728303803 0.905150907177" +$ns_ at 900.000000000000 "$node_(22) setdest 295.611942649652 526.631975066720 0.420882990012" +$ns_ at 900.000000000000 "$node_(23) setdest 1039.255291727628 177.635177305927 0.794441845790" +$ns_ at 900.000000000000 "$node_(24) setdest 6.323384543709 77.477565807135 0.775517443732" +$ns_ at 900.000000000000 "$node_(25) setdest 1354.309133416112 538.050241515611 0.409719539392" +$ns_ at 900.000000000000 "$node_(26) setdest 1172.382744810453 556.710026458764 0.828105026215" +$ns_ at 900.000000000000 "$node_(27) setdest 183.292010246017 432.964149084069 0.074930386288" +$ns_ at 900.000000000000 "$node_(28) setdest 509.839967136903 347.838263760870 0.773514746430" +$ns_ at 900.000000000000 "$node_(29) setdest 924.691388228864 299.503076052442 0.680063919968" +$ns_ at 900.000000000000 "$node_(30) setdest 229.773922193091 198.565760883893 0.439986174348" +$ns_ at 900.000000000000 "$node_(31) setdest 911.259205439574 505.282804951729 0.769403272782" +$ns_ at 900.000000000000 "$node_(32) setdest 198.472518073927 551.787299144025 0.249080981083" +$ns_ at 900.000000000000 "$node_(33) setdest 372.192353921945 245.397504429026 0.203779270962" +$ns_ at 900.000000000000 "$node_(34) setdest 1346.403949906123 238.663093895168 0.799166868726" +$ns_ at 900.000000000000 "$node_(35) setdest 707.186168663838 166.303940720675 0.194858164184" +$ns_ at 900.000000000000 "$node_(36) setdest 128.408851383496 285.705799895061 0.846929108063" +$ns_ at 900.000000000000 "$node_(37) setdest 335.410231553327 143.686193667056 0.870526957342" +$ns_ at 900.000000000000 "$node_(38) setdest 490.875069657810 456.767316490319 0.795574130835" +$ns_ at 900.000000000000 "$node_(39) setdest 649.339733776326 571.187179350977 0.222564126200" +$ns_ at 900.000000000000 "$node_(40) setdest 1179.907484543686 192.371735585230 0.345388120935" +$ns_ at 900.000000000000 "$node_(41) setdest 1010.976898317038 116.641076528780 0.741615260545" +$ns_ at 900.000000000000 "$node_(42) setdest 285.091329319169 301.353003802110 0.660296983398" +$ns_ at 900.000000000000 "$node_(43) setdest 987.037952594435 189.549157495197 0.904741765975" +$ns_ at 900.000000000000 "$node_(44) setdest 993.386976682695 56.026399241176 0.849244261543" +$ns_ at 900.000000000000 "$node_(45) setdest 33.815358773245 432.366447973117 0.394272682725" +$ns_ at 900.000000000000 "$node_(46) setdest 1439.739543703810 345.830125625400 0.608643843466" +$ns_ at 900.000000000000 "$node_(47) setdest 1121.381693228006 81.024576316847 0.425400229516" +$ns_ at 900.000000000000 "$node_(48) setdest 416.929361345551 376.890969181741 0.663735384368" +$ns_ at 900.000000000000 "$node_(49) setdest 623.386179717333 334.033357836059 0.371980181283" +# +# Destination Unreachables: 0 +# +# Route Changes: 0 +# +# Link Changes: 0 +# +# Node | Route Changes | Link Changes +# 0 | 0 | 0 +# 1 | 0 | 0 +# 2 | 0 | 0 +# 3 | 0 | 0 +# 4 | 0 | 0 +# 5 | 0 | 0 +# 6 | 0 | 0 +# 7 | 0 | 0 +# 8 | 0 | 0 +# 9 | 0 | 0 +# 10 | 0 | 0 +# 11 | 0 | 0 +# 12 | 0 | 0 +# 13 | 0 | 0 +# 14 | 0 | 0 +# 15 | 0 | 0 +# 16 | 0 | 0 +# 17 | 0 | 0 +# 18 | 0 | 0 +# 19 | 0 | 0 +# 20 | 0 | 0 +# 21 | 0 | 0 +# 22 | 0 | 0 +# 23 | 0 | 0 +# 24 | 0 | 0 +# 25 | 0 | 0 +# 26 | 0 | 0 +# 27 | 0 | 0 +# 28 | 0 | 0 +# 29 | 0 | 0 +# 30 | 0 | 0 +# 31 | 0 | 0 +# 32 | 0 | 0 +# 33 | 0 | 0 +# 34 | 0 | 0 +# 35 | 0 | 0 +# 36 | 0 | 0 +# 37 | 0 | 0 +# 38 | 0 | 0 +# 39 | 0 | 0 +# 40 | 0 | 0 +# 41 | 0 | 0 +# 42 | 0 | 0 +# 43 | 0 | 0 +# 44 | 0 | 0 +# 45 | 0 | 0 +# 46 | 0 | 0 +# 47 | 0 | 0 +# 48 | 0 | 0 +# 49 | 0 | 0 +# diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.scen.50.1500.600 ns/tbf/validate/validate.scen.50.1500.600 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.scen.50.1500.600 Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate/validate.scen.50.1500.600 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,1487 @@ +# +# nodes: 50, pause: 900.00, max speed: 1.00 max x = 1500.00, max y: 600.00 +# +$node_(0) set X_ 1069.076702084382 +$node_(0) set Y_ 233.399303571101 +$node_(0) set Z_ 0.000000000000 +$node_(1) set X_ 50.224234061930 +$node_(1) set Y_ 50.097144614022 +$node_(1) set Z_ 0.000000000000 +$node_(2) set X_ 1478.975485457783 +$node_(2) set Y_ 420.033853865937 +$node_(2) set Z_ 0.000000000000 +$node_(3) set X_ 1131.926959832387 +$node_(3) set Y_ 541.419465284620 +$node_(3) set Z_ 0.000000000000 +$node_(4) set X_ 49.774587702266 +$node_(4) set Y_ 279.269164448601 +$node_(4) set Z_ 0.000000000000 +$node_(5) set X_ 497.386875552235 +$node_(5) set Y_ 561.677860149414 +$node_(5) set Z_ 0.000000000000 +$node_(6) set X_ 741.126277752748 +$node_(6) set Y_ 332.168429272956 +$node_(6) set Z_ 0.000000000000 +$node_(7) set X_ 968.109461215038 +$node_(7) set Y_ 106.149003021185 +$node_(7) set Z_ 0.000000000000 +$node_(8) set X_ 587.460193362022 +$node_(8) set Y_ 342.355803961402 +$node_(8) set Z_ 0.000000000000 +$node_(9) set X_ 1022.386386328463 +$node_(9) set Y_ 567.972013433040 +$node_(9) set Z_ 0.000000000000 +$node_(10) set X_ 997.668619271152 +$node_(10) set Y_ 274.695346862225 +$node_(10) set Z_ 0.000000000000 +$node_(11) set X_ 711.719658118135 +$node_(11) set Y_ 303.449413021439 +$node_(11) set Z_ 0.000000000000 +$node_(12) set X_ 1208.374310830109 +$node_(12) set Y_ 54.146394986298 +$node_(12) set Z_ 0.000000000000 +$node_(13) set X_ 460.251784588297 +$node_(13) set Y_ 578.353185695005 +$node_(13) set Z_ 0.000000000000 +$node_(14) set X_ 463.919412576416 +$node_(14) set Y_ 366.656501606235 +$node_(14) set Z_ 0.000000000000 +$node_(15) set X_ 1494.219109019631 +$node_(15) set Y_ 137.148015370310 +$node_(15) set Z_ 0.000000000000 +$node_(16) set X_ 78.503091779687 +$node_(16) set Y_ 224.235092625231 +$node_(16) set Z_ 0.000000000000 +$node_(17) set X_ 1008.152706361321 +$node_(17) set Y_ 420.144454480625 +$node_(17) set Z_ 0.000000000000 +$node_(18) set X_ 1130.862014884897 +$node_(18) set Y_ 317.438844178636 +$node_(18) set Z_ 0.000000000000 +$node_(19) set X_ 994.303316766184 +$node_(19) set Y_ 506.484246055764 +$node_(19) set Z_ 0.000000000000 +$node_(20) set X_ 422.138490901516 +$node_(20) set Y_ 226.167652393429 +$node_(20) set Z_ 0.000000000000 +$node_(21) set X_ 310.056386979234 +$node_(21) set Y_ 484.783701653362 +$node_(21) set Z_ 0.000000000000 +$node_(22) set X_ 224.853029886594 +$node_(22) set Y_ 128.449392346077 +$node_(22) set Z_ 0.000000000000 +$node_(23) set X_ 862.470044264050 +$node_(23) set Y_ 4.926705645573 +$node_(23) set Z_ 0.000000000000 +$node_(24) set X_ 989.728670069846 +$node_(24) set Y_ 4.753343432372 +$node_(24) set Z_ 0.000000000000 +$node_(25) set X_ 723.292264608851 +$node_(25) set Y_ 587.164237566796 +$node_(25) set Z_ 0.000000000000 +$node_(26) set X_ 797.126144008301 +$node_(26) set Y_ 69.724236406070 +$node_(26) set Z_ 0.000000000000 +$node_(27) set X_ 1326.707725053468 +$node_(27) set Y_ 155.282150185361 +$node_(27) set Z_ 0.000000000000 +$node_(28) set X_ 1187.544380083967 +$node_(28) set Y_ 161.127169643168 +$node_(28) set Z_ 0.000000000000 +$node_(29) set X_ 364.841572215559 +$node_(29) set Y_ 14.787797274967 +$node_(29) set Z_ 0.000000000000 +$node_(30) set X_ 1450.777556575307 +$node_(30) set Y_ 580.352286165877 +$node_(30) set Z_ 0.000000000000 +$node_(31) set X_ 1035.927970421738 +$node_(31) set Y_ 557.888452951051 +$node_(31) set Z_ 0.000000000000 +$node_(32) set X_ 813.550841696229 +$node_(32) set Y_ 85.629662594518 +$node_(32) set Z_ 0.000000000000 +$node_(33) set X_ 342.954888784936 +$node_(33) set Y_ 281.224992800224 +$node_(33) set Z_ 0.000000000000 +$node_(34) set X_ 1237.632170884752 +$node_(34) set Y_ 191.568390197639 +$node_(34) set Z_ 0.000000000000 +$node_(35) set X_ 675.252609758764 +$node_(35) set Y_ 365.093308160875 +$node_(35) set Z_ 0.000000000000 +$node_(36) set X_ 22.831404290379 +$node_(36) set Y_ 461.739077521890 +$node_(36) set Z_ 0.000000000000 +$node_(37) set X_ 54.506458304204 +$node_(37) set Y_ 530.673362542889 +$node_(37) set Z_ 0.000000000000 +$node_(38) set X_ 170.768246292089 +$node_(38) set Y_ 100.800359334442 +$node_(38) set Z_ 0.000000000000 +$node_(39) set X_ 1455.060097424430 +$node_(39) set Y_ 464.281129783596 +$node_(39) set Z_ 0.000000000000 +$node_(40) set X_ 379.828995909642 +$node_(40) set Y_ 349.730784852058 +$node_(40) set Z_ 0.000000000000 +$node_(41) set X_ 1022.093017258530 +$node_(41) set Y_ 226.363193821987 +$node_(41) set Z_ 0.000000000000 +$node_(42) set X_ 867.069285560961 +$node_(42) set Y_ 69.194744292765 +$node_(42) set Z_ 0.000000000000 +$node_(43) set X_ 22.427289319429 +$node_(43) set Y_ 401.297840957984 +$node_(43) set Z_ 0.000000000000 +$node_(44) set X_ 832.485393191912 +$node_(44) set Y_ 340.033590450647 +$node_(44) set Z_ 0.000000000000 +$node_(45) set X_ 93.841233527981 +$node_(45) set Y_ 364.417513832181 +$node_(45) set Z_ 0.000000000000 +$node_(46) set X_ 126.723191900743 +$node_(46) set Y_ 143.838928294950 +$node_(46) set Z_ 0.000000000000 +$node_(47) set X_ 305.562709820700 +$node_(47) set Y_ 176.974391474080 +$node_(47) set Z_ 0.000000000000 +$node_(48) set X_ 518.914584055132 +$node_(48) set Y_ 228.386540223006 +$node_(48) set Z_ 0.000000000000 +$node_(49) set X_ 1163.672600300960 +$node_(49) set Y_ 29.146460784242 +$node_(49) set Z_ 0.000000000000 +$god_ set-dist 0 1 2 +$god_ set-dist 0 2 3 +$god_ set-dist 0 3 2 +$god_ set-dist 0 4 6 +$god_ set-dist 0 5 4 +$god_ set-dist 0 6 3 +$god_ set-dist 0 7 1 +$god_ set-dist 0 8 3 +$god_ set-dist 0 9 2 +$god_ set-dist 0 10 1 +$god_ set-dist 0 11 3 +$god_ set-dist 0 12 1 +$god_ set-dist 0 13 5 +$god_ set-dist 0 14 4 +$god_ set-dist 0 15 3 +$god_ set-dist 0 16 6 +$god_ set-dist 0 17 1 +$god_ set-dist 0 18 1 +$god_ set-dist 0 19 2 +$god_ set-dist 0 20 4 +$god_ set-dist 0 21 5 +$god_ set-dist 0 22 5 +$god_ set-dist 0 23 2 +$god_ set-dist 0 24 1 +$god_ set-dist 0 25 4 +$god_ set-dist 0 26 2 +$god_ set-dist 0 27 2 +$god_ set-dist 0 28 1 +$god_ set-dist 0 29 5 +$god_ set-dist 0 30 5 +$god_ set-dist 0 31 2 +$god_ set-dist 0 32 2 +$god_ set-dist 0 33 5 +$god_ set-dist 0 34 1 +$god_ set-dist 0 35 3 +$god_ set-dist 0 36 7 +$god_ set-dist 0 37 7 +$god_ set-dist 0 38 6 +$god_ set-dist 0 39 3 +$god_ set-dist 0 40 4 +$god_ set-dist 0 41 1 +$god_ set-dist 0 42 2 +$god_ set-dist 0 43 7 +$god_ set-dist 0 44 2 +$god_ set-dist 0 45 6 +$god_ set-dist 0 46 6 +$god_ set-dist 0 47 5 +$god_ set-dist 0 48 4 +$god_ set-dist 0 49 1 +$god_ set-dist 1 2 1 +$god_ set-dist 1 3 1 +$god_ set-dist 1 4 7 +$god_ set-dist 1 5 5 +$god_ set-dist 1 6 4 +$god_ set-dist 1 7 3 +$god_ set-dist 1 8 4 +$god_ set-dist 1 9 2 +$god_ set-dist 1 10 2 +$god_ set-dist 1 11 4 +$god_ set-dist 1 12 3 +$god_ set-dist 1 13 6 +$god_ set-dist 1 14 5 +$god_ set-dist 1 15 4 +$god_ set-dist 1 16 7 +$god_ set-dist 1 17 2 +$god_ set-dist 1 18 1 +$god_ set-dist 1 19 2 +$god_ set-dist 1 20 5 +$god_ set-dist 1 21 6 +$god_ set-dist 1 22 6 +$god_ set-dist 1 23 4 +$god_ set-dist 1 24 3 +$god_ set-dist 1 25 5 +$god_ set-dist 1 26 4 +$god_ set-dist 1 27 3 +$god_ set-dist 1 28 2 +$god_ set-dist 1 29 6 +$god_ set-dist 1 30 6 +$god_ set-dist 1 31 2 +$god_ set-dist 1 32 4 +$god_ set-dist 1 33 6 +$god_ set-dist 1 34 2 +$god_ set-dist 1 35 4 +$god_ set-dist 1 36 8 +$god_ set-dist 1 37 8 +$god_ set-dist 1 38 7 +$god_ set-dist 1 39 1 +$god_ set-dist 1 40 5 +$god_ set-dist 1 41 2 +$god_ set-dist 1 42 3 +$god_ set-dist 1 43 8 +$god_ set-dist 1 44 3 +$god_ set-dist 1 45 7 +$god_ set-dist 1 46 7 +$god_ set-dist 1 47 6 +$god_ set-dist 1 48 5 +$god_ set-dist 1 49 3 +$god_ set-dist 2 3 2 +$god_ set-dist 2 4 8 +$god_ set-dist 2 5 6 +$god_ set-dist 2 6 5 +$god_ set-dist 2 7 4 +$god_ set-dist 2 8 5 +$god_ set-dist 2 9 3 +$god_ set-dist 2 10 3 +$god_ set-dist 2 11 5 +$god_ set-dist 2 12 4 +$god_ set-dist 2 13 7 +$god_ set-dist 2 14 6 +$god_ set-dist 2 15 5 +$god_ set-dist 2 16 8 +$god_ set-dist 2 17 3 +$god_ set-dist 2 18 2 +$god_ set-dist 2 19 3 +$god_ set-dist 2 20 6 +$god_ set-dist 2 21 7 +$god_ set-dist 2 22 7 +$god_ set-dist 2 23 5 +$god_ set-dist 2 24 4 +$god_ set-dist 2 25 6 +$god_ set-dist 2 26 5 +$god_ set-dist 2 27 4 +$god_ set-dist 2 28 3 +$god_ set-dist 2 29 7 +$god_ set-dist 2 30 7 +$god_ set-dist 2 31 3 +$god_ set-dist 2 32 5 +$god_ set-dist 2 33 7 +$god_ set-dist 2 34 3 +$god_ set-dist 2 35 5 +$god_ set-dist 2 36 9 +$god_ set-dist 2 37 9 +$god_ set-dist 2 38 8 +$god_ set-dist 2 39 1 +$god_ set-dist 2 40 6 +$god_ set-dist 2 41 3 +$god_ set-dist 2 42 4 +$god_ set-dist 2 43 9 +$god_ set-dist 2 44 4 +$god_ set-dist 2 45 8 +$god_ set-dist 2 46 8 +$god_ set-dist 2 47 7 +$god_ set-dist 2 48 6 +$god_ set-dist 2 49 4 +$god_ set-dist 3 4 6 +$god_ set-dist 3 5 4 +$god_ set-dist 3 6 3 +$god_ set-dist 3 7 3 +$god_ set-dist 3 8 3 +$god_ set-dist 3 9 1 +$god_ set-dist 3 10 2 +$god_ set-dist 3 11 3 +$god_ set-dist 3 12 3 +$god_ set-dist 3 13 5 +$god_ set-dist 3 14 4 +$god_ set-dist 3 15 4 +$god_ set-dist 3 16 6 +$god_ set-dist 3 17 1 +$god_ set-dist 3 18 1 +$god_ set-dist 3 19 1 +$god_ set-dist 3 20 4 +$god_ set-dist 3 21 5 +$god_ set-dist 3 22 5 +$god_ set-dist 3 23 4 +$god_ set-dist 3 24 3 +$god_ set-dist 3 25 4 +$god_ set-dist 3 26 4 +$god_ set-dist 3 27 3 +$god_ set-dist 3 28 2 +$god_ set-dist 3 29 5 +$god_ set-dist 3 30 5 +$god_ set-dist 3 31 1 +$god_ set-dist 3 32 4 +$god_ set-dist 3 33 5 +$god_ set-dist 3 34 2 +$god_ set-dist 3 35 3 +$god_ set-dist 3 36 7 +$god_ set-dist 3 37 7 +$god_ set-dist 3 38 6 +$god_ set-dist 3 39 2 +$god_ set-dist 3 40 4 +$god_ set-dist 3 41 2 +$god_ set-dist 3 42 3 +$god_ set-dist 3 43 7 +$god_ set-dist 3 44 2 +$god_ set-dist 3 45 6 +$god_ set-dist 3 46 6 +$god_ set-dist 3 47 5 +$god_ set-dist 3 48 4 +$god_ set-dist 3 49 3 +$god_ set-dist 4 5 3 +$god_ set-dist 4 6 4 +$god_ set-dist 4 7 6 +$god_ set-dist 4 8 3 +$god_ set-dist 4 9 6 +$god_ set-dist 4 10 5 +$god_ set-dist 4 11 4 +$god_ set-dist 4 12 7 +$god_ set-dist 4 13 3 +$god_ set-dist 4 14 3 +$god_ set-dist 4 15 8 +$god_ set-dist 4 16 1 +$god_ set-dist 4 17 5 +$god_ set-dist 4 18 6 +$god_ set-dist 4 19 5 +$god_ set-dist 4 20 2 +$god_ set-dist 4 21 2 +$god_ set-dist 4 22 1 +$god_ set-dist 4 23 6 +$god_ set-dist 4 24 6 +$god_ set-dist 4 25 4 +$god_ set-dist 4 26 5 +$god_ set-dist 4 27 7 +$god_ set-dist 4 28 6 +$god_ set-dist 4 29 2 +$god_ set-dist 4 30 2 +$god_ set-dist 4 31 6 +$god_ set-dist 4 32 5 +$god_ set-dist 4 33 2 +$god_ set-dist 4 34 6 +$god_ set-dist 4 35 4 +$god_ set-dist 4 36 1 +$god_ set-dist 4 37 2 +$god_ set-dist 4 38 1 +$god_ set-dist 4 39 8 +$god_ set-dist 4 40 3 +$god_ set-dist 4 41 5 +$god_ set-dist 4 42 6 +$god_ set-dist 4 43 1 +$god_ set-dist 4 44 4 +$god_ set-dist 4 45 1 +$god_ set-dist 4 46 1 +$god_ set-dist 4 47 2 +$god_ set-dist 4 48 3 +$god_ set-dist 4 49 6 +$god_ set-dist 5 6 2 +$god_ set-dist 5 7 4 +$god_ set-dist 5 8 1 +$god_ set-dist 5 9 4 +$god_ set-dist 5 10 3 +$god_ set-dist 5 11 2 +$god_ set-dist 5 12 5 +$god_ set-dist 5 13 1 +$god_ set-dist 5 14 1 +$god_ set-dist 5 15 6 +$god_ set-dist 5 16 3 +$god_ set-dist 5 17 3 +$god_ set-dist 5 18 4 +$god_ set-dist 5 19 3 +$god_ set-dist 5 20 2 +$god_ set-dist 5 21 1 +$god_ set-dist 5 22 3 +$god_ set-dist 5 23 4 +$god_ set-dist 5 24 4 +$god_ set-dist 5 25 1 +$god_ set-dist 5 26 3 +$god_ set-dist 5 27 5 +$god_ set-dist 5 28 4 +$god_ set-dist 5 29 3 +$god_ set-dist 5 30 2 +$god_ set-dist 5 31 4 +$god_ set-dist 5 32 3 +$god_ set-dist 5 33 2 +$god_ set-dist 5 34 4 +$god_ set-dist 5 35 2 +$god_ set-dist 5 36 3 +$god_ set-dist 5 37 3 +$god_ set-dist 5 38 3 +$god_ set-dist 5 39 6 +$god_ set-dist 5 40 1 +$god_ set-dist 5 41 3 +$god_ set-dist 5 42 4 +$god_ set-dist 5 43 3 +$god_ set-dist 5 44 2 +$god_ set-dist 5 45 2 +$god_ set-dist 5 46 3 +$god_ set-dist 5 47 2 +$god_ set-dist 5 48 2 +$god_ set-dist 5 49 4 +$god_ set-dist 6 7 3 +$god_ set-dist 6 8 1 +$god_ set-dist 6 9 3 +$god_ set-dist 6 10 2 +$god_ set-dist 6 11 1 +$god_ set-dist 6 12 4 +$god_ set-dist 6 13 3 +$god_ set-dist 6 14 2 +$god_ set-dist 6 15 5 +$god_ set-dist 6 16 3 +$god_ set-dist 6 17 2 +$god_ set-dist 6 18 3 +$god_ set-dist 6 19 2 +$god_ set-dist 6 20 2 +$god_ set-dist 6 21 3 +$god_ set-dist 6 22 3 +$god_ set-dist 6 23 3 +$god_ set-dist 6 24 3 +$god_ set-dist 6 25 2 +$god_ set-dist 6 26 2 +$god_ set-dist 6 27 4 +$god_ set-dist 6 28 3 +$god_ set-dist 6 29 3 +$god_ set-dist 6 30 2 +$god_ set-dist 6 31 3 +$god_ set-dist 6 32 2 +$god_ set-dist 6 33 2 +$god_ set-dist 6 34 3 +$god_ set-dist 6 35 1 +$god_ set-dist 6 36 4 +$god_ set-dist 6 37 5 +$god_ set-dist 6 38 3 +$god_ set-dist 6 39 5 +$god_ set-dist 6 40 2 +$god_ set-dist 6 41 2 +$god_ set-dist 6 42 3 +$god_ set-dist 6 43 4 +$god_ set-dist 6 44 1 +$god_ set-dist 6 45 4 +$god_ set-dist 6 46 3 +$god_ set-dist 6 47 2 +$god_ set-dist 6 48 1 +$god_ set-dist 6 49 3 +$god_ set-dist 7 8 3 +$god_ set-dist 7 9 3 +$god_ set-dist 7 10 1 +$god_ set-dist 7 11 2 +$god_ set-dist 7 12 1 +$god_ set-dist 7 13 5 +$god_ set-dist 7 14 4 +$god_ set-dist 7 15 3 +$god_ set-dist 7 16 5 +$god_ set-dist 7 17 2 +$god_ set-dist 7 18 2 +$god_ set-dist 7 19 2 +$god_ set-dist 7 20 4 +$god_ set-dist 7 21 5 +$god_ set-dist 7 22 5 +$god_ set-dist 7 23 1 +$god_ set-dist 7 24 1 +$god_ set-dist 7 25 4 +$god_ set-dist 7 26 1 +$god_ set-dist 7 27 2 +$god_ set-dist 7 28 1 +$god_ set-dist 7 29 5 +$god_ set-dist 7 30 4 +$god_ set-dist 7 31 3 +$god_ set-dist 7 32 1 +$god_ set-dist 7 33 4 +$god_ set-dist 7 34 2 +$god_ set-dist 7 35 3 +$god_ set-dist 7 36 6 +$god_ set-dist 7 37 7 +$god_ set-dist 7 38 5 +$god_ set-dist 7 39 4 +$god_ set-dist 7 40 4 +$god_ set-dist 7 41 1 +$god_ set-dist 7 42 1 +$god_ set-dist 7 43 6 +$god_ set-dist 7 44 2 +$god_ set-dist 7 45 6 +$god_ set-dist 7 46 5 +$god_ set-dist 7 47 4 +$god_ set-dist 7 48 3 +$god_ set-dist 7 49 1 +$god_ set-dist 8 9 3 +$god_ set-dist 8 10 2 +$god_ set-dist 8 11 1 +$god_ set-dist 8 12 4 +$god_ set-dist 8 13 2 +$god_ set-dist 8 14 1 +$god_ set-dist 8 15 5 +$god_ set-dist 8 16 3 +$god_ set-dist 8 17 2 +$god_ set-dist 8 18 3 +$god_ set-dist 8 19 2 +$god_ set-dist 8 20 1 +$god_ set-dist 8 21 2 +$god_ set-dist 8 22 2 +$god_ set-dist 8 23 3 +$god_ set-dist 8 24 3 +$god_ set-dist 8 25 2 +$god_ set-dist 8 26 2 +$god_ set-dist 8 27 4 +$god_ set-dist 8 28 3 +$god_ set-dist 8 29 2 +$god_ set-dist 8 30 2 +$god_ set-dist 8 31 3 +$god_ set-dist 8 32 2 +$god_ set-dist 8 33 2 +$god_ set-dist 8 34 3 +$god_ set-dist 8 35 1 +$god_ set-dist 8 36 4 +$god_ set-dist 8 37 4 +$god_ set-dist 8 38 3 +$god_ set-dist 8 39 5 +$god_ set-dist 8 40 1 +$god_ set-dist 8 41 2 +$god_ set-dist 8 42 3 +$god_ set-dist 8 43 4 +$god_ set-dist 8 44 1 +$god_ set-dist 8 45 3 +$god_ set-dist 8 46 3 +$god_ set-dist 8 47 2 +$god_ set-dist 8 48 1 +$god_ set-dist 8 49 3 +$god_ set-dist 9 10 2 +$god_ set-dist 9 11 3 +$god_ set-dist 9 12 3 +$god_ set-dist 9 13 5 +$god_ set-dist 9 14 4 +$god_ set-dist 9 15 5 +$god_ set-dist 9 16 6 +$god_ set-dist 9 17 1 +$god_ set-dist 9 18 2 +$god_ set-dist 9 19 1 +$god_ set-dist 9 20 4 +$god_ set-dist 9 21 5 +$god_ set-dist 9 22 5 +$god_ set-dist 9 23 4 +$god_ set-dist 9 24 3 +$god_ set-dist 9 25 4 +$god_ set-dist 9 26 4 +$god_ set-dist 9 27 4 +$god_ set-dist 9 28 3 +$god_ set-dist 9 29 5 +$god_ set-dist 9 30 5 +$god_ set-dist 9 31 1 +$god_ set-dist 9 32 4 +$god_ set-dist 9 33 5 +$god_ set-dist 9 34 3 +$god_ set-dist 9 35 3 +$god_ set-dist 9 36 7 +$god_ set-dist 9 37 7 +$god_ set-dist 9 38 6 +$god_ set-dist 9 39 3 +$god_ set-dist 9 40 4 +$god_ set-dist 9 41 2 +$god_ set-dist 9 42 3 +$god_ set-dist 9 43 7 +$god_ set-dist 9 44 2 +$god_ set-dist 9 45 6 +$god_ set-dist 9 46 6 +$god_ set-dist 9 47 5 +$god_ set-dist 9 48 4 +$god_ set-dist 9 49 3 +$god_ set-dist 10 11 2 +$god_ set-dist 10 12 2 +$god_ set-dist 10 13 4 +$god_ set-dist 10 14 3 +$god_ set-dist 10 15 3 +$god_ set-dist 10 16 5 +$god_ set-dist 10 17 1 +$god_ set-dist 10 18 1 +$god_ set-dist 10 19 1 +$god_ set-dist 10 20 3 +$god_ set-dist 10 21 4 +$god_ set-dist 10 22 4 +$god_ set-dist 10 23 2 +$god_ set-dist 10 24 2 +$god_ set-dist 10 25 3 +$god_ set-dist 10 26 2 +$god_ set-dist 10 27 2 +$god_ set-dist 10 28 1 +$god_ set-dist 10 29 4 +$god_ set-dist 10 30 4 +$god_ set-dist 10 31 2 +$god_ set-dist 10 32 2 +$god_ set-dist 10 33 4 +$god_ set-dist 10 34 2 +$god_ set-dist 10 35 2 +$god_ set-dist 10 36 6 +$god_ set-dist 10 37 6 +$god_ set-dist 10 38 5 +$god_ set-dist 10 39 3 +$god_ set-dist 10 40 3 +$god_ set-dist 10 41 1 +$god_ set-dist 10 42 1 +$god_ set-dist 10 43 6 +$god_ set-dist 10 44 1 +$god_ set-dist 10 45 5 +$god_ set-dist 10 46 5 +$god_ set-dist 10 47 4 +$god_ set-dist 10 48 3 +$god_ set-dist 10 49 2 +$god_ set-dist 11 12 3 +$god_ set-dist 11 13 3 +$god_ set-dist 11 14 2 +$god_ set-dist 11 15 5 +$god_ set-dist 11 16 3 +$god_ set-dist 11 17 2 +$god_ set-dist 11 18 3 +$god_ set-dist 11 19 2 +$god_ set-dist 11 20 2 +$god_ set-dist 11 21 3 +$god_ set-dist 11 22 3 +$god_ set-dist 11 23 2 +$god_ set-dist 11 24 2 +$god_ set-dist 11 25 2 +$god_ set-dist 11 26 1 +$god_ set-dist 11 27 4 +$god_ set-dist 11 28 3 +$god_ set-dist 11 29 3 +$god_ set-dist 11 30 2 +$god_ set-dist 11 31 3 +$god_ set-dist 11 32 1 +$god_ set-dist 11 33 2 +$god_ set-dist 11 34 3 +$god_ set-dist 11 35 1 +$god_ set-dist 11 36 4 +$god_ set-dist 11 37 5 +$god_ set-dist 11 38 3 +$god_ set-dist 11 39 5 +$god_ set-dist 11 40 2 +$god_ set-dist 11 41 2 +$god_ set-dist 11 42 2 +$god_ set-dist 11 43 4 +$god_ set-dist 11 44 1 +$god_ set-dist 11 45 4 +$god_ set-dist 11 46 3 +$god_ set-dist 11 47 2 +$god_ set-dist 11 48 1 +$god_ set-dist 11 49 3 +$god_ set-dist 12 13 6 +$god_ set-dist 12 14 5 +$god_ set-dist 12 15 2 +$god_ set-dist 12 16 6 +$god_ set-dist 12 17 2 +$god_ set-dist 12 18 2 +$god_ set-dist 12 19 3 +$god_ set-dist 12 20 5 +$god_ set-dist 12 21 6 +$god_ set-dist 12 22 6 +$god_ set-dist 12 23 2 +$god_ set-dist 12 24 1 +$god_ set-dist 12 25 5 +$god_ set-dist 12 26 2 +$god_ set-dist 12 27 1 +$god_ set-dist 12 28 1 +$god_ set-dist 12 29 6 +$god_ set-dist 12 30 5 +$god_ set-dist 12 31 3 +$god_ set-dist 12 32 2 +$god_ set-dist 12 33 5 +$god_ set-dist 12 34 1 +$god_ set-dist 12 35 4 +$god_ set-dist 12 36 7 +$god_ set-dist 12 37 8 +$god_ set-dist 12 38 6 +$god_ set-dist 12 39 4 +$god_ set-dist 12 40 5 +$god_ set-dist 12 41 2 +$god_ set-dist 12 42 2 +$god_ set-dist 12 43 7 +$god_ set-dist 12 44 3 +$god_ set-dist 12 45 7 +$god_ set-dist 12 46 6 +$god_ set-dist 12 47 5 +$god_ set-dist 12 48 4 +$god_ set-dist 12 49 1 +$god_ set-dist 13 14 1 +$god_ set-dist 13 15 7 +$god_ set-dist 13 16 3 +$god_ set-dist 13 17 4 +$god_ set-dist 13 18 5 +$god_ set-dist 13 19 4 +$god_ set-dist 13 20 2 +$god_ set-dist 13 21 1 +$god_ set-dist 13 22 3 +$god_ set-dist 13 23 5 +$god_ set-dist 13 24 5 +$god_ set-dist 13 25 2 +$god_ set-dist 13 26 4 +$god_ set-dist 13 27 6 +$god_ set-dist 13 28 5 +$god_ set-dist 13 29 3 +$god_ set-dist 13 30 2 +$god_ set-dist 13 31 5 +$god_ set-dist 13 32 4 +$god_ set-dist 13 33 2 +$god_ set-dist 13 34 5 +$god_ set-dist 13 35 2 +$god_ set-dist 13 36 3 +$god_ set-dist 13 37 3 +$god_ set-dist 13 38 3 +$god_ set-dist 13 39 7 +$god_ set-dist 13 40 1 +$god_ set-dist 13 41 4 +$god_ set-dist 13 42 5 +$god_ set-dist 13 43 3 +$god_ set-dist 13 44 3 +$god_ set-dist 13 45 2 +$god_ set-dist 13 46 3 +$god_ set-dist 13 47 2 +$god_ set-dist 13 48 2 +$god_ set-dist 13 49 5 +$god_ set-dist 14 15 6 +$god_ set-dist 14 16 2 +$god_ set-dist 14 17 3 +$god_ set-dist 14 18 4 +$god_ set-dist 14 19 3 +$god_ set-dist 14 20 1 +$god_ set-dist 14 21 1 +$god_ set-dist 14 22 2 +$god_ set-dist 14 23 4 +$god_ set-dist 14 24 4 +$god_ set-dist 14 25 2 +$god_ set-dist 14 26 3 +$god_ set-dist 14 27 5 +$god_ set-dist 14 28 4 +$god_ set-dist 14 29 2 +$god_ set-dist 14 30 1 +$god_ set-dist 14 31 4 +$god_ set-dist 14 32 3 +$god_ set-dist 14 33 1 +$god_ set-dist 14 34 4 +$god_ set-dist 14 35 1 +$god_ set-dist 14 36 3 +$god_ set-dist 14 37 3 +$god_ set-dist 14 38 2 +$god_ set-dist 14 39 6 +$god_ set-dist 14 40 1 +$god_ set-dist 14 41 3 +$god_ set-dist 14 42 4 +$god_ set-dist 14 43 3 +$god_ set-dist 14 44 2 +$god_ set-dist 14 45 2 +$god_ set-dist 14 46 2 +$god_ set-dist 14 47 1 +$god_ set-dist 14 48 1 +$god_ set-dist 14 49 4 +$god_ set-dist 15 16 8 +$god_ set-dist 15 17 4 +$god_ set-dist 15 18 3 +$god_ set-dist 15 19 4 +$god_ set-dist 15 20 6 +$god_ set-dist 15 21 7 +$god_ set-dist 15 22 7 +$god_ set-dist 15 23 4 +$god_ set-dist 15 24 3 +$god_ set-dist 15 25 6 +$god_ set-dist 15 26 4 +$god_ set-dist 15 27 1 +$god_ set-dist 15 28 2 +$god_ set-dist 15 29 7 +$god_ set-dist 15 30 7 +$god_ set-dist 15 31 5 +$god_ set-dist 15 32 4 +$god_ set-dist 15 33 7 +$god_ set-dist 15 34 2 +$god_ set-dist 15 35 5 +$god_ set-dist 15 36 9 +$god_ set-dist 15 37 9 +$god_ set-dist 15 38 8 +$god_ set-dist 15 39 5 +$god_ set-dist 15 40 6 +$god_ set-dist 15 41 3 +$god_ set-dist 15 42 4 +$god_ set-dist 15 43 9 +$god_ set-dist 15 44 4 +$god_ set-dist 15 45 8 +$god_ set-dist 15 46 8 +$god_ set-dist 15 47 7 +$god_ set-dist 15 48 6 +$god_ set-dist 15 49 2 +$god_ set-dist 16 17 5 +$god_ set-dist 16 18 6 +$god_ set-dist 16 19 5 +$god_ set-dist 16 20 2 +$god_ set-dist 16 21 2 +$god_ set-dist 16 22 1 +$god_ set-dist 16 23 5 +$god_ set-dist 16 24 5 +$god_ set-dist 16 25 4 +$god_ set-dist 16 26 4 +$god_ set-dist 16 27 7 +$god_ set-dist 16 28 6 +$god_ set-dist 16 29 2 +$god_ set-dist 16 30 1 +$god_ set-dist 16 31 6 +$god_ set-dist 16 32 4 +$god_ set-dist 16 33 2 +$god_ set-dist 16 34 6 +$god_ set-dist 16 35 3 +$god_ set-dist 16 36 1 +$god_ set-dist 16 37 2 +$god_ set-dist 16 38 1 +$god_ set-dist 16 39 8 +$god_ set-dist 16 40 2 +$god_ set-dist 16 41 5 +$god_ set-dist 16 42 5 +$god_ set-dist 16 43 1 +$god_ set-dist 16 44 4 +$god_ set-dist 16 45 1 +$god_ set-dist 16 46 1 +$god_ set-dist 16 47 1 +$god_ set-dist 16 48 2 +$god_ set-dist 16 49 6 +$god_ set-dist 17 18 1 +$god_ set-dist 17 19 1 +$god_ set-dist 17 20 3 +$god_ set-dist 17 21 4 +$god_ set-dist 17 22 4 +$god_ set-dist 17 23 3 +$god_ set-dist 17 24 2 +$god_ set-dist 17 25 3 +$god_ set-dist 17 26 3 +$god_ set-dist 17 27 3 +$god_ set-dist 17 28 2 +$god_ set-dist 17 29 4 +$god_ set-dist 17 30 4 +$god_ set-dist 17 31 1 +$god_ set-dist 17 32 3 +$god_ set-dist 17 33 4 +$god_ set-dist 17 34 2 +$god_ set-dist 17 35 2 +$god_ set-dist 17 36 6 +$god_ set-dist 17 37 6 +$god_ set-dist 17 38 5 +$god_ set-dist 17 39 3 +$god_ set-dist 17 40 3 +$god_ set-dist 17 41 1 +$god_ set-dist 17 42 2 +$god_ set-dist 17 43 6 +$god_ set-dist 17 44 1 +$god_ set-dist 17 45 5 +$god_ set-dist 17 46 5 +$god_ set-dist 17 47 4 +$god_ set-dist 17 48 3 +$god_ set-dist 17 49 2 +$god_ set-dist 18 19 1 +$god_ set-dist 18 20 4 +$god_ set-dist 18 21 5 +$god_ set-dist 18 22 5 +$god_ set-dist 18 23 3 +$god_ set-dist 18 24 2 +$god_ set-dist 18 25 4 +$god_ set-dist 18 26 3 +$god_ set-dist 18 27 2 +$god_ set-dist 18 28 1 +$god_ set-dist 18 29 5 +$god_ set-dist 18 30 5 +$god_ set-dist 18 31 2 +$god_ set-dist 18 32 3 +$god_ set-dist 18 33 5 +$god_ set-dist 18 34 1 +$god_ set-dist 18 35 3 +$god_ set-dist 18 36 7 +$god_ set-dist 18 37 7 +$god_ set-dist 18 38 6 +$god_ set-dist 18 39 2 +$god_ set-dist 18 40 4 +$god_ set-dist 18 41 1 +$god_ set-dist 18 42 2 +$god_ set-dist 18 43 7 +$god_ set-dist 18 44 2 +$god_ set-dist 18 45 6 +$god_ set-dist 18 46 6 +$god_ set-dist 18 47 5 +$god_ set-dist 18 48 4 +$god_ set-dist 18 49 2 +$god_ set-dist 19 20 3 +$god_ set-dist 19 21 4 +$god_ set-dist 19 22 4 +$god_ set-dist 19 23 3 +$god_ set-dist 19 24 3 +$god_ set-dist 19 25 3 +$god_ set-dist 19 26 3 +$god_ set-dist 19 27 3 +$god_ set-dist 19 28 2 +$god_ set-dist 19 29 4 +$god_ set-dist 19 30 4 +$god_ set-dist 19 31 1 +$god_ set-dist 19 32 3 +$god_ set-dist 19 33 4 +$god_ set-dist 19 34 2 +$god_ set-dist 19 35 2 +$god_ set-dist 19 36 6 +$god_ set-dist 19 37 6 +$god_ set-dist 19 38 5 +$god_ set-dist 19 39 3 +$god_ set-dist 19 40 3 +$god_ set-dist 19 41 2 +$god_ set-dist 19 42 2 +$god_ set-dist 19 43 6 +$god_ set-dist 19 44 1 +$god_ set-dist 19 45 5 +$god_ set-dist 19 46 5 +$god_ set-dist 19 47 4 +$god_ set-dist 19 48 3 +$god_ set-dist 19 49 3 +$god_ set-dist 20 21 2 +$god_ set-dist 20 22 1 +$god_ set-dist 20 23 4 +$god_ set-dist 20 24 4 +$god_ set-dist 20 25 3 +$god_ set-dist 20 26 3 +$god_ set-dist 20 27 5 +$god_ set-dist 20 28 4 +$god_ set-dist 20 29 1 +$god_ set-dist 20 30 1 +$god_ set-dist 20 31 4 +$god_ set-dist 20 32 3 +$god_ set-dist 20 33 1 +$god_ set-dist 20 34 4 +$god_ set-dist 20 35 2 +$god_ set-dist 20 36 3 +$god_ set-dist 20 37 4 +$god_ set-dist 20 38 2 +$god_ set-dist 20 39 6 +$god_ set-dist 20 40 1 +$god_ set-dist 20 41 3 +$god_ set-dist 20 42 4 +$god_ set-dist 20 43 3 +$god_ set-dist 20 44 2 +$god_ set-dist 20 45 3 +$god_ set-dist 20 46 2 +$god_ set-dist 20 47 1 +$god_ set-dist 20 48 1 +$god_ set-dist 20 49 4 +$god_ set-dist 21 22 2 +$god_ set-dist 21 23 5 +$god_ set-dist 21 24 5 +$god_ set-dist 21 25 2 +$god_ set-dist 21 26 4 +$god_ set-dist 21 27 6 +$god_ set-dist 21 28 5 +$god_ set-dist 21 29 2 +$god_ set-dist 21 30 1 +$god_ set-dist 21 31 5 +$god_ set-dist 21 32 4 +$god_ set-dist 21 33 1 +$god_ set-dist 21 34 5 +$god_ set-dist 21 35 2 +$god_ set-dist 21 36 2 +$god_ set-dist 21 37 2 +$god_ set-dist 21 38 2 +$god_ set-dist 21 39 7 +$god_ set-dist 21 40 1 +$god_ set-dist 21 41 4 +$god_ set-dist 21 42 5 +$god_ set-dist 21 43 2 +$god_ set-dist 21 44 3 +$god_ set-dist 21 45 1 +$god_ set-dist 21 46 2 +$god_ set-dist 21 47 2 +$god_ set-dist 21 48 2 +$god_ set-dist 21 49 5 +$god_ set-dist 22 23 5 +$god_ set-dist 22 24 5 +$god_ set-dist 22 25 4 +$god_ set-dist 22 26 4 +$god_ set-dist 22 27 6 +$god_ set-dist 22 28 5 +$god_ set-dist 22 29 1 +$god_ set-dist 22 30 1 +$god_ set-dist 22 31 5 +$god_ set-dist 22 32 4 +$god_ set-dist 22 33 1 +$god_ set-dist 22 34 5 +$god_ set-dist 22 35 3 +$god_ set-dist 22 36 2 +$god_ set-dist 22 37 3 +$god_ set-dist 22 38 1 +$god_ set-dist 22 39 7 +$god_ set-dist 22 40 2 +$god_ set-dist 22 41 4 +$god_ set-dist 22 42 5 +$god_ set-dist 22 43 2 +$god_ set-dist 22 44 3 +$god_ set-dist 22 45 2 +$god_ set-dist 22 46 1 +$god_ set-dist 22 47 1 +$god_ set-dist 22 48 2 +$god_ set-dist 22 49 5 +$god_ set-dist 23 24 1 +$god_ set-dist 23 25 4 +$god_ set-dist 23 26 1 +$god_ set-dist 23 27 3 +$god_ set-dist 23 28 2 +$god_ set-dist 23 29 5 +$god_ set-dist 23 30 4 +$god_ set-dist 23 31 4 +$god_ set-dist 23 32 1 +$god_ set-dist 23 33 4 +$god_ set-dist 23 34 3 +$god_ set-dist 23 35 3 +$god_ set-dist 23 36 6 +$god_ set-dist 23 37 7 +$god_ set-dist 23 38 5 +$god_ set-dist 23 39 5 +$god_ set-dist 23 40 4 +$god_ set-dist 23 41 2 +$god_ set-dist 23 42 1 +$god_ set-dist 23 43 6 +$god_ set-dist 23 44 3 +$god_ set-dist 23 45 6 +$god_ set-dist 23 46 5 +$god_ set-dist 23 47 4 +$god_ set-dist 23 48 3 +$god_ set-dist 23 49 2 +$god_ set-dist 24 25 4 +$god_ set-dist 24 26 1 +$god_ set-dist 24 27 2 +$god_ set-dist 24 28 2 +$god_ set-dist 24 29 5 +$god_ set-dist 24 30 4 +$god_ set-dist 24 31 3 +$god_ set-dist 24 32 1 +$god_ set-dist 24 33 4 +$god_ set-dist 24 34 2 +$god_ set-dist 24 35 3 +$god_ set-dist 24 36 6 +$god_ set-dist 24 37 7 +$god_ set-dist 24 38 5 +$god_ set-dist 24 39 4 +$god_ set-dist 24 40 4 +$god_ set-dist 24 41 1 +$god_ set-dist 24 42 1 +$god_ set-dist 24 43 6 +$god_ set-dist 24 44 2 +$god_ set-dist 24 45 6 +$god_ set-dist 24 46 5 +$god_ set-dist 24 47 4 +$god_ set-dist 24 48 3 +$god_ set-dist 24 49 1 +$god_ set-dist 25 26 3 +$god_ set-dist 25 27 5 +$god_ set-dist 25 28 4 +$god_ set-dist 25 29 4 +$god_ set-dist 25 30 3 +$god_ set-dist 25 31 4 +$god_ set-dist 25 32 3 +$god_ set-dist 25 33 3 +$god_ set-dist 25 34 4 +$god_ set-dist 25 35 1 +$god_ set-dist 25 36 4 +$god_ set-dist 25 37 4 +$god_ set-dist 25 38 4 +$god_ set-dist 25 39 6 +$god_ set-dist 25 40 2 +$god_ set-dist 25 41 3 +$god_ set-dist 25 42 4 +$god_ set-dist 25 43 4 +$god_ set-dist 25 44 2 +$god_ set-dist 25 45 3 +$god_ set-dist 25 46 4 +$god_ set-dist 25 47 3 +$god_ set-dist 25 48 2 +$god_ set-dist 25 49 4 +$god_ set-dist 26 27 3 +$god_ set-dist 26 28 2 +$god_ set-dist 26 29 4 +$god_ set-dist 26 30 3 +$god_ set-dist 26 31 4 +$god_ set-dist 26 32 1 +$god_ set-dist 26 33 3 +$god_ set-dist 26 34 3 +$god_ set-dist 26 35 2 +$god_ set-dist 26 36 5 +$god_ set-dist 26 37 6 +$god_ set-dist 26 38 4 +$god_ set-dist 26 39 5 +$god_ set-dist 26 40 3 +$god_ set-dist 26 41 2 +$god_ set-dist 26 42 1 +$god_ set-dist 26 43 5 +$god_ set-dist 26 44 2 +$god_ set-dist 26 45 5 +$god_ set-dist 26 46 4 +$god_ set-dist 26 47 3 +$god_ set-dist 26 48 2 +$god_ set-dist 26 49 2 +$god_ set-dist 27 28 1 +$god_ set-dist 27 29 6 +$god_ set-dist 27 30 6 +$god_ set-dist 27 31 4 +$god_ set-dist 27 32 3 +$god_ set-dist 27 33 6 +$god_ set-dist 27 34 1 +$god_ set-dist 27 35 4 +$god_ set-dist 27 36 8 +$god_ set-dist 27 37 8 +$god_ set-dist 27 38 7 +$god_ set-dist 27 39 4 +$god_ set-dist 27 40 5 +$god_ set-dist 27 41 2 +$god_ set-dist 27 42 3 +$god_ set-dist 27 43 8 +$god_ set-dist 27 44 3 +$god_ set-dist 27 45 7 +$god_ set-dist 27 46 7 +$god_ set-dist 27 47 6 +$god_ set-dist 27 48 5 +$god_ set-dist 27 49 1 +$god_ set-dist 28 29 5 +$god_ set-dist 28 30 5 +$god_ set-dist 28 31 3 +$god_ set-dist 28 32 2 +$god_ set-dist 28 33 5 +$god_ set-dist 28 34 1 +$god_ set-dist 28 35 3 +$god_ set-dist 28 36 7 +$god_ set-dist 28 37 7 +$god_ set-dist 28 38 6 +$god_ set-dist 28 39 3 +$god_ set-dist 28 40 4 +$god_ set-dist 28 41 1 +$god_ set-dist 28 42 2 +$god_ set-dist 28 43 7 +$god_ set-dist 28 44 2 +$god_ set-dist 28 45 6 +$god_ set-dist 28 46 6 +$god_ set-dist 28 47 5 +$god_ set-dist 28 48 4 +$god_ set-dist 28 49 1 +$god_ set-dist 29 30 1 +$god_ set-dist 29 31 5 +$god_ set-dist 29 32 4 +$god_ set-dist 29 33 2 +$god_ set-dist 29 34 5 +$god_ set-dist 29 35 3 +$god_ set-dist 29 36 3 +$god_ set-dist 29 37 4 +$god_ set-dist 29 38 1 +$god_ set-dist 29 39 7 +$god_ set-dist 29 40 2 +$god_ set-dist 29 41 4 +$god_ set-dist 29 42 5 +$god_ set-dist 29 43 3 +$god_ set-dist 29 44 3 +$god_ set-dist 29 45 3 +$god_ set-dist 29 46 2 +$god_ set-dist 29 47 1 +$god_ set-dist 29 48 2 +$god_ set-dist 29 49 5 +$god_ set-dist 30 31 5 +$god_ set-dist 30 32 3 +$god_ set-dist 30 33 1 +$god_ set-dist 30 34 5 +$god_ set-dist 30 35 2 +$god_ set-dist 30 36 2 +$god_ set-dist 30 37 3 +$god_ set-dist 30 38 1 +$god_ set-dist 30 39 7 +$god_ set-dist 30 40 1 +$god_ set-dist 30 41 4 +$god_ set-dist 30 42 4 +$god_ set-dist 30 43 2 +$god_ set-dist 30 44 3 +$god_ set-dist 30 45 2 +$god_ set-dist 30 46 1 +$god_ set-dist 30 47 1 +$god_ set-dist 30 48 1 +$god_ set-dist 30 49 5 +$god_ set-dist 31 32 4 +$god_ set-dist 31 33 5 +$god_ set-dist 31 34 3 +$god_ set-dist 31 35 3 +$god_ set-dist 31 36 7 +$god_ set-dist 31 37 7 +$god_ set-dist 31 38 6 +$god_ set-dist 31 39 3 +$god_ set-dist 31 40 4 +$god_ set-dist 31 41 2 +$god_ set-dist 31 42 3 +$god_ set-dist 31 43 7 +$god_ set-dist 31 44 2 +$god_ set-dist 31 45 6 +$god_ set-dist 31 46 6 +$god_ set-dist 31 47 5 +$god_ set-dist 31 48 4 +$god_ set-dist 31 49 3 +$god_ set-dist 32 33 3 +$god_ set-dist 32 34 3 +$god_ set-dist 32 35 2 +$god_ set-dist 32 36 5 +$god_ set-dist 32 37 6 +$god_ set-dist 32 38 4 +$god_ set-dist 32 39 5 +$god_ set-dist 32 40 3 +$god_ set-dist 32 41 2 +$god_ set-dist 32 42 1 +$god_ set-dist 32 43 5 +$god_ set-dist 32 44 2 +$god_ set-dist 32 45 5 +$god_ set-dist 32 46 4 +$god_ set-dist 32 47 3 +$god_ set-dist 32 48 2 +$god_ set-dist 32 49 2 +$god_ set-dist 33 34 5 +$god_ set-dist 33 35 2 +$god_ set-dist 33 36 3 +$god_ set-dist 33 37 3 +$god_ set-dist 33 38 1 +$god_ set-dist 33 39 7 +$god_ set-dist 33 40 1 +$god_ set-dist 33 41 4 +$god_ set-dist 33 42 4 +$god_ set-dist 33 43 3 +$god_ set-dist 33 44 3 +$god_ set-dist 33 45 2 +$god_ set-dist 33 46 2 +$god_ set-dist 33 47 1 +$god_ set-dist 33 48 1 +$god_ set-dist 33 49 5 +$god_ set-dist 34 35 3 +$god_ set-dist 34 36 7 +$god_ set-dist 34 37 7 +$god_ set-dist 34 38 6 +$god_ set-dist 34 39 3 +$god_ set-dist 34 40 4 +$god_ set-dist 34 41 1 +$god_ set-dist 34 42 2 +$god_ set-dist 34 43 7 +$god_ set-dist 34 44 2 +$god_ set-dist 34 45 6 +$god_ set-dist 34 46 6 +$god_ set-dist 34 47 5 +$god_ set-dist 34 48 4 +$god_ set-dist 34 49 1 +$god_ set-dist 35 36 4 +$god_ set-dist 35 37 4 +$god_ set-dist 35 38 3 +$god_ set-dist 35 39 5 +$god_ set-dist 35 40 2 +$god_ set-dist 35 41 2 +$god_ set-dist 35 42 3 +$god_ set-dist 35 43 4 +$god_ set-dist 35 44 1 +$god_ set-dist 35 45 3 +$god_ set-dist 35 46 3 +$god_ set-dist 35 47 2 +$god_ set-dist 35 48 1 +$god_ set-dist 35 49 3 +$god_ set-dist 36 37 1 +$god_ set-dist 36 38 2 +$god_ set-dist 36 39 9 +$god_ set-dist 36 40 3 +$god_ set-dist 36 41 6 +$god_ set-dist 36 42 6 +$god_ set-dist 36 43 1 +$god_ set-dist 36 44 5 +$god_ set-dist 36 45 1 +$god_ set-dist 36 46 2 +$god_ set-dist 36 47 2 +$god_ set-dist 36 48 3 +$god_ set-dist 36 49 7 +$god_ set-dist 37 38 3 +$god_ set-dist 37 39 9 +$god_ set-dist 37 40 3 +$god_ set-dist 37 41 6 +$god_ set-dist 37 42 7 +$god_ set-dist 37 43 1 +$god_ set-dist 37 44 5 +$god_ set-dist 37 45 1 +$god_ set-dist 37 46 2 +$god_ set-dist 37 47 3 +$god_ set-dist 37 48 4 +$god_ set-dist 37 49 7 +$god_ set-dist 38 39 8 +$god_ set-dist 38 40 2 +$god_ set-dist 38 41 5 +$god_ set-dist 38 42 5 +$god_ set-dist 38 43 2 +$god_ set-dist 38 44 4 +$god_ set-dist 38 45 2 +$god_ set-dist 38 46 1 +$god_ set-dist 38 47 1 +$god_ set-dist 38 48 2 +$god_ set-dist 38 49 6 +$god_ set-dist 39 40 6 +$god_ set-dist 39 41 3 +$god_ set-dist 39 42 4 +$god_ set-dist 39 43 9 +$god_ set-dist 39 44 4 +$god_ set-dist 39 45 8 +$god_ set-dist 39 46 8 +$god_ set-dist 39 47 7 +$god_ set-dist 39 48 6 +$god_ set-dist 39 49 4 +$god_ set-dist 40 41 3 +$god_ set-dist 40 42 4 +$god_ set-dist 40 43 3 +$god_ set-dist 40 44 2 +$god_ set-dist 40 45 2 +$god_ set-dist 40 46 2 +$god_ set-dist 40 47 1 +$god_ set-dist 40 48 1 +$god_ set-dist 40 49 4 +$god_ set-dist 41 42 1 +$god_ set-dist 41 43 6 +$god_ set-dist 41 44 1 +$god_ set-dist 41 45 5 +$god_ set-dist 41 46 5 +$god_ set-dist 41 47 4 +$god_ set-dist 41 48 3 +$god_ set-dist 41 49 1 +$god_ set-dist 42 43 6 +$god_ set-dist 42 44 2 +$god_ set-dist 42 45 6 +$god_ set-dist 42 46 5 +$god_ set-dist 42 47 4 +$god_ set-dist 42 48 3 +$god_ set-dist 42 49 2 +$god_ set-dist 43 44 5 +$god_ set-dist 43 45 1 +$god_ set-dist 43 46 2 +$god_ set-dist 43 47 2 +$god_ set-dist 43 48 3 +$god_ set-dist 43 49 7 +$god_ set-dist 44 45 4 +$god_ set-dist 44 46 4 +$god_ set-dist 44 47 3 +$god_ set-dist 44 48 2 +$god_ set-dist 44 49 2 +$god_ set-dist 45 46 1 +$god_ set-dist 45 47 2 +$god_ set-dist 45 48 3 +$god_ set-dist 45 49 6 +$god_ set-dist 46 47 1 +$god_ set-dist 46 48 2 +$god_ set-dist 46 49 6 +$god_ set-dist 47 48 1 +$god_ set-dist 47 49 5 +$god_ set-dist 48 49 4 +$ns_ at 900.000000000000 "$node_(0) setdest 936.285437025915 79.374930101909 0.874816818387" +$ns_ at 900.000000000000 "$node_(1) setdest 1425.326488206142 282.694131368860 0.699136310588" +$ns_ at 900.000000000000 "$node_(2) setdest 47.565049117787 0.704935273767 0.705060730840" +$ns_ at 900.000000000000 "$node_(3) setdest 918.906338078091 530.966780856506 0.133497714709" +$ns_ at 900.000000000000 "$node_(4) setdest 1031.735459598940 127.734143279656 0.023415128437" +$ns_ at 900.000000000000 "$node_(5) setdest 1194.262120268895 72.259415506841 0.394941510667" +$ns_ at 900.000000000000 "$node_(6) setdest 248.802133079349 528.635757266599 0.629968330505" +$ns_ at 900.000000000000 "$node_(7) setdest 1190.404037270704 143.108710825120 0.510823377932" +$ns_ at 900.000000000000 "$node_(8) setdest 34.324635900446 509.214952196160 0.276156681692" +$ns_ at 900.000000000000 "$node_(9) setdest 441.389243073986 82.040809063355 0.904220929853" +$ns_ at 900.000000000000 "$node_(10) setdest 1299.596255020243 420.986406357301 0.615438344425" +$ns_ at 900.000000000000 "$node_(11) setdest 1425.084889614409 304.145721081251 0.349371544474" +$ns_ at 900.000000000000 "$node_(12) setdest 554.694672552052 483.266748096674 0.950399176609" +$ns_ at 900.000000000000 "$node_(13) setdest 999.094983169752 116.183826366029 0.529246249256" +$ns_ at 900.000000000000 "$node_(14) setdest 838.142968559111 180.890213564309 0.713531838594" +$ns_ at 900.000000000000 "$node_(15) setdest 1472.157461035240 441.639375002354 0.516637891405" +$ns_ at 900.000000000000 "$node_(16) setdest 1333.408388506841 492.084108049398 0.794483493374" +$ns_ at 900.000000000000 "$node_(17) setdest 945.075057697392 434.148004116208 0.355383910919" +$ns_ at 900.000000000000 "$node_(18) setdest 1458.452657879832 367.724764320709 0.450735312596" +$ns_ at 900.000000000000 "$node_(19) setdest 104.637974701985 285.149523408874 0.656365091103" +$ns_ at 900.000000000000 "$node_(20) setdest 149.561868540214 421.777947510083 0.278454963099" +$ns_ at 900.000000000000 "$node_(21) setdest 672.727823939032 596.422728303803 0.905150907177" +$ns_ at 900.000000000000 "$node_(22) setdest 295.611942649652 526.631975066720 0.420882990012" +$ns_ at 900.000000000000 "$node_(23) setdest 1039.255291727628 177.635177305927 0.794441845790" +$ns_ at 900.000000000000 "$node_(24) setdest 6.323384543709 77.477565807135 0.775517443732" +$ns_ at 900.000000000000 "$node_(25) setdest 1354.309133416112 538.050241515611 0.409719539392" +$ns_ at 900.000000000000 "$node_(26) setdest 1172.382744810453 556.710026458764 0.828105026215" +$ns_ at 900.000000000000 "$node_(27) setdest 183.292010246017 432.964149084069 0.074930386288" +$ns_ at 900.000000000000 "$node_(28) setdest 509.839967136903 347.838263760870 0.773514746430" +$ns_ at 900.000000000000 "$node_(29) setdest 924.691388228864 299.503076052442 0.680063919968" +$ns_ at 900.000000000000 "$node_(30) setdest 229.773922193091 198.565760883893 0.439986174348" +$ns_ at 900.000000000000 "$node_(31) setdest 911.259205439574 505.282804951729 0.769403272782" +$ns_ at 900.000000000000 "$node_(32) setdest 198.472518073927 551.787299144025 0.249080981083" +$ns_ at 900.000000000000 "$node_(33) setdest 372.192353921945 245.397504429026 0.203779270962" +$ns_ at 900.000000000000 "$node_(34) setdest 1346.403949906123 238.663093895168 0.799166868726" +$ns_ at 900.000000000000 "$node_(35) setdest 707.186168663838 166.303940720675 0.194858164184" +$ns_ at 900.000000000000 "$node_(36) setdest 128.408851383496 285.705799895061 0.846929108063" +$ns_ at 900.000000000000 "$node_(37) setdest 335.410231553327 143.686193667056 0.870526957342" +$ns_ at 900.000000000000 "$node_(38) setdest 490.875069657810 456.767316490319 0.795574130835" +$ns_ at 900.000000000000 "$node_(39) setdest 649.339733776326 571.187179350977 0.222564126200" +$ns_ at 900.000000000000 "$node_(40) setdest 1179.907484543686 192.371735585230 0.345388120935" +$ns_ at 900.000000000000 "$node_(41) setdest 1010.976898317038 116.641076528780 0.741615260545" +$ns_ at 900.000000000000 "$node_(42) setdest 285.091329319169 301.353003802110 0.660296983398" +$ns_ at 900.000000000000 "$node_(43) setdest 987.037952594435 189.549157495197 0.904741765975" +$ns_ at 900.000000000000 "$node_(44) setdest 993.386976682695 56.026399241176 0.849244261543" +$ns_ at 900.000000000000 "$node_(45) setdest 33.815358773245 432.366447973117 0.394272682725" +$ns_ at 900.000000000000 "$node_(46) setdest 1439.739543703810 345.830125625400 0.608643843466" +$ns_ at 900.000000000000 "$node_(47) setdest 1121.381693228006 81.024576316847 0.425400229516" +$ns_ at 900.000000000000 "$node_(48) setdest 416.929361345551 376.890969181741 0.663735384368" +$ns_ at 900.000000000000 "$node_(49) setdest 623.386179717333 334.033357836059 0.371980181283" +# +# Destination Unreachables: 0 +# +# Route Changes: 0 +# +# Link Changes: 0 +# +# Node | Route Changes | Link Changes +# 0 | 0 | 0 +# 1 | 0 | 0 +# 2 | 0 | 0 +# 3 | 0 | 0 +# 4 | 0 | 0 +# 5 | 0 | 0 +# 6 | 0 | 0 +# 7 | 0 | 0 +# 8 | 0 | 0 +# 9 | 0 | 0 +# 10 | 0 | 0 +# 11 | 0 | 0 +# 12 | 0 | 0 +# 13 | 0 | 0 +# 14 | 0 | 0 +# 15 | 0 | 0 +# 16 | 0 | 0 +# 17 | 0 | 0 +# 18 | 0 | 0 +# 19 | 0 | 0 +# 20 | 0 | 0 +# 21 | 0 | 0 +# 22 | 0 | 0 +# 23 | 0 | 0 +# 24 | 0 | 0 +# 25 | 0 | 0 +# 26 | 0 | 0 +# 27 | 0 | 0 +# 28 | 0 | 0 +# 29 | 0 | 0 +# 30 | 0 | 0 +# 31 | 0 | 0 +# 32 | 0 | 0 +# 33 | 0 | 0 +# 34 | 0 | 0 +# 35 | 0 | 0 +# 36 | 0 | 0 +# 37 | 0 | 0 +# 38 | 0 | 0 +# 39 | 0 | 0 +# 40 | 0 | 0 +# 41 | 0 | 0 +# 42 | 0 | 0 +# 43 | 0 | 0 +# 44 | 0 | 0 +# 45 | 0 | 0 +# 46 | 0 | 0 +# 47 | 0 | 0 +# 48 | 0 | 0 +# 49 | 0 | 0 +# diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.tcl.50.1500.600 ns/tbf/validate/validate.tcl.50.1500.600 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.tcl.50.1500.600 Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate/validate.tcl.50.1500.600 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,374 @@ +# +# Copyright (c) 1998 University of Southern California. +# All rights reserved. +# +# Redistribution and use in source and binary forms are permitted +# provided that the above copyright notice and this paragraph are +# duplicated in all such forms and that any documentation, advertising +# materials, and other materials related to such distribution and use +# acknowledge that the software was developed by the University of +# Southern California, Information Sciences Institute. The name of the +# University may not be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# + + + +Class TestSuite + +Class Test/tbf -superclass TestSuite +# wireless model using TBF + + +proc usage {} { + global argv0 + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts "Valid Test: tbf" + puts "" + puts stderr "Example : ns result.tcl" + puts stderr "Example : ns result.tcl tbf" + puts stderr "Example : ns result.tcl tbf temp.trace ../tcl/mobility/scene/scen-3-test Mac/802_11" + puts stderr "Example : ns result.tcl tbf temp.trace ../tcl/mobility/scene/scen-3-test Mac/802_11 3.0" + + exit 1 +} + + +proc default_options {} { + global opt + set opt(chan) Channel/WirelessChannel + set opt(prop) Propagation/TwoRayGround + set opt(netif) Phy/WirelessPhy + set opt(mac) Mac/802_11 + set opt(ifq) Queue/DropTail/PriQueue + set opt(ll) LL + set opt(ant) Antenna/OmniAntenna + set opt(x) 1500 ;# X dimension of the topography + set opt(y) 600 ;# Y dimension of the topography + set opt(sc) "scenfiles/scen-1500x300-50-0-20-1"; # Can be changed from command line + # set opt(cp) "tcp-50nn-20mc-64ps-cp" ; # Not part of options + # Change here if needed + set opt(cp) "validate/validate.cp.50.1500.600" ; + set opt(nn) 50 + set opt(stop) 20.0 + set opt(radius) 250 ;# radius of communication (XXX -- compute it) + set opt(ifqlen) 50 ;# max packet in ifq + set opt(seed) 0.0 + set opt(tr) temp.rands ;# trace file + set opt(lm) "off" ;# log movement + set opt(bint) 1.5 + set opt(bdesync 0.5 + set opt(bexp) 13.5 +} + + +# ===================================================================== +# Other default settings + +set AgentTrace ON +set RouterTrace ON +set MacTrace OFF + +LL set mindelay_ 50us +LL set delay_ 25us +LL set bandwidth_ 0 ;# not used +LL set off_prune_ 0 ;# not used +LL set off_CtrMcast_ 0 ;# not used + +Agent/Null set sport_ 0 +Agent/Null set dport_ 0 + +Agent/CBR set sport_ 0 +Agent/CBR set dport_ 0 + +Agent/TCPSink set sport_ 0 +Agent/TCPSink set dport_ 0 + +Agent/TCP set sport_ 0 +Agent/TCP set dport_ 0 +Agent/TCP set packetSize_ 1460 + +Queue/DropTail/PriQueue set Prefer_Routing_Protocols 0 + +# unity gain, omni-directional antennas +# set up the antennas to be centered in the node and 1.5 meters above it +Antenna/OmniAntenna set X_ 0 +Antenna/OmniAntenna set Y_ 0 +Antenna/OmniAntenna set Z_ 1.5 +Antenna/OmniAntenna set Gt_ 1.0 +Antenna/OmniAntenna set Gr_ 1.0 + +# Initialize the SharedMedia interface with parameters to make +# it work like the 914MHz Lucent WaveLAN DSSS radio interface +Phy/WirelessPhy set CPThresh_ 10.0 +Phy/WirelessPhy set CSThresh_ 1.559e-11 +Phy/WirelessPhy set RXThresh_ 3.652e-10 +Phy/WirelessPhy set Rb_ 2*1e6 +Phy/WirelessPhy set Pt_ 0.2818 +Phy/WirelessPhy set freq_ 914e+6 +Phy/WirelessPhy set L_ 1.0 + +# TBF Specific options +#Agent/TBF set verbose_ 1 +Agent/TBF set use_mac_ 1 +Agent/TBF set use_implicit_beacon_ 1 +# ===================================================================== + +TestSuite instproc init {} { + global opt tracefd topo chan prop + global node_ god_ gkeeper + $self instvar ns_ testName_ + add-packet-header TBF + set ns_ [new Simulator] + if {[string compare $testName_ "dsr"] && \ + [string compare $testName_ "tbf"] } { + $ns_ set-address-format hierarchical + AddrParams set domain_num_ 3 + lappend cluster_num 2 1 1 + AddrParams set cluster_num_ $cluster_num + lappend eilastlevel 1 1 4 1 + AddrParams set nodes_num_ $eilastlevel + } + set chan [new $opt(chan)] + set prop [new $opt(prop)] + set topo [new Topography] + set tracefd [open $opt(tr) w] + + #set opt(rp) $testName_ + $topo load_flatgrid $opt(x) $opt(y) + $prop topography $topo + # + # Create God + # + $self create-god $opt(nn) + + # + # log the mobile nodes movements if desired + # + if { $opt(lm) == "on" } { + $self log-movement + } + + puts $tracefd "M 0.0 nn:$opt(nn) x:$opt(x) y:$opt(y) rp:$opt(rp)" + puts $tracefd "M 0.0 sc:$opt(sc) cp:$opt(cp) seed:$opt(seed)" + puts $tracefd "M 0.0 prop:$opt(prop) ant:$opt(ant)" +} + +TestSuite instproc create_gridkeeper { } { + + global gkeeper opt node_ + + set gkeeper [new GridKeeper] + + #initialize the gridkeeper + + $gkeeper dimension $opt(x) $opt(y) + + # + # add mobile node into the gridkeeper, must be added after + # scenario file + # + + + for {set i 0} {$i < $opt(nn) } {incr i} { + $gkeeper addnode $node_($i) + + $node_($i) radius $opt(radius) + } +} + +Test/tbf instproc init {} { + global opt node_ god_ ldb_ ragent_ MacTrace + $self instvar ns_ testName_ + set testName_ tbf + set opt(rp) tbf + set opt(ragent) Agent/TBF + #set opt(cp) "tcp-50nn-20mc-64ps-cp" + #set opt(cp) "tcp-50-test" + #set opt(sc) "scen-50-test" ; + #set opt(cp) "../tcl/mobility/scene/cbr-50-20-4-512" + #set opt(sc) "../tcl/mobility/scene/scen-670x670-50-600-20-0" ; + + $self next + source ../tcl/mobility/tbf.tcl + $ns_ set-address-format expanded + set ldb_ [new LocDbase] + $ldb_ nnodes $opt(nn) + for {set i 0} {$i < $opt(nn) } {incr i} { + $testName_-create-mobile-node $i +# if { [Agent/TBF set use_mac_] && $MacTrace == "OFF" } { +# set macdropt [cmu-trace Drop "MAC" $node_($i)] +# [$node_($i) set mac_(0)] drop-target $macdropt +# } + $ragent_($i) install-tap [$node_($i) set mac_(0)] + $ldb_ register [$node_($i) address?] $node_($i) + $ragent_($i) ldb $ldb_ + } + puts "Loading connection pattern...$opt(cp)" + source $opt(cp) + + puts "Loading scenario file...$opt(sc)" + source $opt(sc) + puts "Load complete..." + + # + # Tell all the nodes when the simulation ends + # + for {set i 0} {$i < $opt(nn) } {incr i} { + $ns_ at $opt(stop).000000001 "$node_($i) reset"; + } + + $ns_ at $opt(stop).000000001 "puts \"NS EXITING...\" ;" + #$ns_ halt" + $ns_ at $opt(stop).1 "$self finish" +} + +Test/tbf instproc run {} { + $self instvar ns_ + puts "Starting Simulation..." + $ns_ run +} + + + + + + +proc cmu-trace { ttype atype node } { + global ns tracefd + + set ns [Simulator instance] + if { $tracefd == "" } { + return "" + } + set T [new CMUTrace/$ttype $atype] + $T target [$ns set nullAgent_] + $T attach $tracefd + $T set src_ [$node id] + + $T node $node + + return $T +} + +TestSuite instproc finish {} { + $self instvar ns_ + global quiet + + $ns_ flush-trace + #if { !$quiet } { + # puts "running nam..." + # exec nam temp.rands.nam & + #} + puts "finishing.." + exit 0 +} + +TestSuite instproc create-god { nodes } { + global tracefd god_ + $self instvar ns_ + + set god_ [new God] + $god_ num_nodes $nodes +} + +TestSuite instproc log-movement {} { + global ns + $self instvar logtimer_ ns_ + + set ns $ns_ + source ../mobility/timer.tcl + Class LogTimer -superclass Timer + LogTimer instproc timeout {} { + global opt node_; + for {set i 0} {$i < $opt(nn)} {incr i} { + $node_($i) log-movement + } + $self sched 0.1 + } + + set logtimer_ [new LogTimer] + $logtimer_ sched 0.1 +} + +TestSuite instproc create-tcp-traffic {id src dst start} { + $self instvar ns_ + set tcp_($id) [new Agent/TCP] + $tcp_($id) set class_ 2 + set sink_($id) [new Agent/TCPSink] + $ns_ attach-agent $src $tcp_($id) + $ns_ attach-agent $dst $sink_($id) + $ns_ connect $tcp_($id) $sink_($id) + set ftp_($id) [new Application/FTP] + $ftp_($id) attach-agent $tcp_($id) + $ns_ at $start "$ftp_($id) start" + +} + + +TestSuite instproc create-udp-traffic {id src dst start} { + $self instvar ns_ + set udp_($id) [new Agent/UDP] + $ns_ attach-agent $src $udp_($id) + set null_($id) [new Agent/Null] + $ns_ attach-agent $dst $null_($id) + set cbr_($id) [new Application/Traffic/CBR] + $cbr_($id) set packetSize_ 512 + $cbr_($id) set interval_ 4.0 + $cbr_($id) set random_ 1 + $cbr_($id) set maxpkts_ 10000 + $cbr_($id) attach-agent $udp_($id) + $ns_ connect $udp_($id) $null_($id) + $ns_ at $start "$cbr_($id) start" + +} + +proc runtest {arg} { + global quiet opt + set quiet 0 + + set b [llength $arg] + #set test [lindex $arg 3] + #puts $test + if {$b == 0} { + set test "tbf" + } elseif {$b == 4} { + set test [lindex $arg 0] + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + } elseif {$b == 1} { + set test [lindex $arg 0] + } elseif {$b == 4} { + set test [lindex $arg 0] + #if {[string compare $test "tbf"]} { + #usage + #} else + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + } elseif {$b == 5} { + set test [lindex $arg 0] + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + Agent/TBF set bint_ [lindex $arg 4] + Agent/TBF set bexp_ [expr 4.5 * [Agent/TBF set bint_]] + } else { + usage + } + set t [new Test/$test] + $t run +} + +global argv arg0 +default_options +runtest $argv diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.trace ns/tbf/validate/validate.trace --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.trace Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate/validate.trace Mon Jun 2 19:21:37 2003 @@ -0,0 +1,5 @@ +M 0.0 nn:50 x:1500 y:600 rp:tbf +M 0.0 sc:validate.scen cp:validate.cp seed:0.0 +M 0.0 prop:Propagation/TwoRayGround ant:Antenna/OmniAntenna +s 2.556838879 _1_ AGT --- 264 cbr 64 [0 0 0 0] ------- [1:0 30:0 32 0] [0] 0 6 +r 2.593354903 _30_ AGT --- 264 cbr 92 [13a 1e 14 800] ------- [1:0 30:0 27 30] [0] 6 6 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.trace.50.1500.300 ns/tbf/validate/validate.trace.50.1500.300 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.trace.50.1500.300 Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate/validate.trace.50.1500.300 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,5 @@ +M 0.0 nn:50 x:1500 y:300 rp:tbf +M 0.0 sc:validate/validate.scen.50.1500.300 cp:validate/validate.cp.50.1500.300 seed:0.0 +M 0.0 prop:Propagation/TwoRayGround ant:Antenna/OmniAntenna +s 2.556838879 _1_ AGT --- 264 cbr 64 [0 0 0 0] ------- [1:0 30:0 32 0] [0] 0 6 +r 2.584875257 _30_ AGT --- 264 cbr 92 [13a 1e 21 800] ------- [1:0 30:0 28 30] [0] 5 6 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.trace.50.1500.600 ns/tbf/validate/validate.trace.50.1500.600 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate/validate.trace.50.1500.600 Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate/validate.trace.50.1500.600 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,5 @@ +M 0.0 nn:50 x:1500 y:600 rp:tbf +M 0.0 sc:validate/validate.scen.50.1500.600 cp:validate/validate.cp.50.1500.600 seed:0.0 +M 0.0 prop:Propagation/TwoRayGround ant:Antenna/OmniAntenna +s 2.556838879 _1_ AGT --- 264 cbr 64 [0 0 0 0] ------- [1:0 30:0 32 0] [0] 0 6 +D 2.593189052 _3_ RTR NOROUTE 264 cbr 92 [13a 3 13 800] ------- [1:0 30:0 26 3] [0] 6 6 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate.cp ns/tbf/validate.cp --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate.cp Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate.cp Mon Jun 2 19:21:37 2003 @@ -0,0 +1,21 @@ +# +# nodes: 500, max conn: 1, send rate: 1, seed: 1.123 +# +# +# 1 connecting to 2 at time 2.5568388786897245 +# +set udp_(0) [new Agent/UDP] +$ns_ attach-agent $node_(1) $udp_(0) +set null_(0) [new Agent/Null] +$ns_ attach-agent $node_(478) $null_(0) +set cbr_(0) [new Application/Traffic/CBR] +$cbr_(0) set packetSize_ 64 +$cbr_(0) set interval_ 1 +$cbr_(0) set random_ 1 +$cbr_(0) set maxpkts_ 1 +$cbr_(0) attach-agent $udp_(0) +$ns_ connect $udp_(0) $null_(0) +$ns_ at 2.5568388786897245 "$cbr_(0) start" +# +#Total sources/connections: 1/1 +# diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate.dest ns/tbf/validate.dest --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate.dest Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate.dest Mon Jun 2 19:21:37 2003 @@ -0,0 +1 @@ +1450.777556575307 580.352286165877 \ No newline at end of file diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate.inter1 ns/tbf/validate.inter1 --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate.inter1 Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate.inter1 Mon Jun 2 19:21:37 2003 @@ -0,0 +1,50 @@ +1069.076702084382 233.399303571101 +50.224234061930 50.097144614022 +1478.975485457783 420.033853865937 +1131.926959832387 541.419465284620 +49.774587702266 279.269164448601 +497.386875552235 561.677860149414 +741.126277752748 332.168429272956 +968.109461215038 106.149003021185 +587.460193362022 342.355803961402 +1022.386386328463 567.972013433040 +997.668619271152 274.695346862225 +711.719658118135 303.449413021439 +1208.374310830109 54.146394986298 +460.251784588297 578.353185695005 +463.919412576416 366.656501606235 +1494.219109019631 137.148015370310 +78.503091779687 224.235092625231 +1008.152706361321 420.144454480625 +1130.862014884897 317.438844178636 +994.303316766184 506.484246055764 +422.138490901516 226.167652393429 +310.056386979234 484.783701653362 +224.853029886594 128.449392346077 +862.470044264050 4.926705645573 +989.728670069846 4.753343432372 +723.292264608851 587.164237566796 +797.126144008301 69.724236406070 +1326.707725053468 155.282150185361 +1187.544380083967 161.127169643168 +364.841572215559 14.787797274967 +1450.777556575307 580.352286165877 +1035.927970421738 557.888452951051 +813.550841696229 85.629662594518 +342.954888784936 281.224992800224 +1237.632170884752 191.568390197639 +675.252609758764 365.093308160875 +22.831404290379 461.739077521890 +54.506458304204 530.673362542889 +170.768246292089 100.800359334442 +1455.060097424430 464.281129783596 +379.828995909642 349.730784852058 +1022.093017258530 226.363193821987 +867.069285560961 69.194744292765 +22.427289319429 401.297840957984 +832.485393191912 340.033590450647 +93.841233527981 364.417513832181 +126.723191900743 143.838928294950 +305.562709820700 176.974391474080 +518.914584055132 228.386540223006 +1163.672600300960 29.146460784242 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate.source ns/tbf/validate.source --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate.source Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate.source Mon Jun 2 19:21:37 2003 @@ -0,0 +1 @@ +50.224234061930 50.097144614022 \ No newline at end of file diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate.tcl ns/tbf/validate.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tbf/validate.tcl Wed Dec 31 19:00:00 1969 +++ ns/tbf/validate.tcl Mon Jun 2 19:21:37 2003 @@ -0,0 +1,374 @@ +# +# Copyright (c) 1998 University of Southern California. +# All rights reserved. +# +# Redistribution and use in source and binary forms are permitted +# provided that the above copyright notice and this paragraph are +# duplicated in all such forms and that any documentation, advertising +# materials, and other materials related to such distribution and use +# acknowledge that the software was developed by the University of +# Southern California, Information Sciences Institute. The name of the +# University may not be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# + + + +Class TestSuite + +Class Test/tbf -superclass TestSuite +# wireless model using TBF + + +proc usage {} { + global argv0 + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts stderr "usage: ns $argv0 " + puts "Valid Test: tbf" + puts "" + puts stderr "Example : ns result.tcl" + puts stderr "Example : ns result.tcl tbf" + puts stderr "Example : ns result.tcl tbf temp.trace ../tcl/mobility/scene/scen-3-test Mac/802_11" + puts stderr "Example : ns result.tcl tbf temp.trace ../tcl/mobility/scene/scen-3-test Mac/802_11 3.0" + + exit 1 +} + + +proc default_options {} { + global opt + set opt(chan) Channel/WirelessChannel + set opt(prop) Propagation/TwoRayGround + set opt(netif) Phy/WirelessPhy + set opt(mac) Mac/802_11 + set opt(ifq) Queue/DropTail/PriQueue + set opt(ll) LL + set opt(ant) Antenna/OmniAntenna + set opt(x) 2000 ;# X dimension of the topography + set opt(y) 2000 ;# Y dimension of the topography + set opt(sc) "scenfiles/scen-1500x300-50-0-20-1"; # Can be changed from command line + # set opt(cp) "tcp-50nn-20mc-64ps-cp" ; # Not part of options + # Change here if needed + set opt(cp) "validate.cp" ; + set opt(nn) 500 + set opt(stop) 100.0 + set opt(radius) 250 ;# radius of communication (XXX -- compute it) + set opt(ifqlen) 50 ;# max packet in ifq + set opt(seed) 0.0 + set opt(tr) temp.rands ;# trace file + set opt(lm) "off" ;# log movement + set opt(bint) 1.5 + set opt(bdesync 0.5 + set opt(bexp) 13.5 +} + + +# ===================================================================== +# Other default settings + +set AgentTrace ON +set RouterTrace ON +set MacTrace OFF + +LL set mindelay_ 50us +LL set delay_ 25us +LL set bandwidth_ 0 ;# not used +LL set off_prune_ 0 ;# not used +LL set off_CtrMcast_ 0 ;# not used + +Agent/Null set sport_ 0 +Agent/Null set dport_ 0 + +Agent/CBR set sport_ 0 +Agent/CBR set dport_ 0 + +Agent/TCPSink set sport_ 0 +Agent/TCPSink set dport_ 0 + +Agent/TCP set sport_ 0 +Agent/TCP set dport_ 0 +Agent/TCP set packetSize_ 1460 + +Queue/DropTail/PriQueue set Prefer_Routing_Protocols 0 + +# unity gain, omni-directional antennas +# set up the antennas to be centered in the node and 1.5 meters above it +Antenna/OmniAntenna set X_ 0 +Antenna/OmniAntenna set Y_ 0 +Antenna/OmniAntenna set Z_ 1.5 +Antenna/OmniAntenna set Gt_ 1.0 +Antenna/OmniAntenna set Gr_ 1.0 + +# Initialize the SharedMedia interface with parameters to make +# it work like the 914MHz Lucent WaveLAN DSSS radio interface +Phy/WirelessPhy set CPThresh_ 10.0 +Phy/WirelessPhy set CSThresh_ 1.559e-11 +Phy/WirelessPhy set RXThresh_ 3.652e-10 +Phy/WirelessPhy set Rb_ 2*1e6 +Phy/WirelessPhy set Pt_ 0.2818 +Phy/WirelessPhy set freq_ 914e+6 +Phy/WirelessPhy set L_ 1.0 + +# TBF Specific options +#Agent/TBF set verbose_ 1 +Agent/TBF set use_mac_ 1 +Agent/TBF set use_implicit_beacon_ 1 +# ===================================================================== + +TestSuite instproc init {} { + global opt tracefd topo chan prop + global node_ god_ gkeeper + $self instvar ns_ testName_ + add-packet-header TBF + set ns_ [new Simulator] + if {[string compare $testName_ "dsr"] && \ + [string compare $testName_ "tbf"] } { + $ns_ set-address-format hierarchical + AddrParams set domain_num_ 3 + lappend cluster_num 2 1 1 + AddrParams set cluster_num_ $cluster_num + lappend eilastlevel 1 1 4 1 + AddrParams set nodes_num_ $eilastlevel + } + set chan [new $opt(chan)] + set prop [new $opt(prop)] + set topo [new Topography] + set tracefd [open $opt(tr) w] + + #set opt(rp) $testName_ + $topo load_flatgrid $opt(x) $opt(y) + $prop topography $topo + # + # Create God + # + $self create-god $opt(nn) + + # + # log the mobile nodes movements if desired + # + if { $opt(lm) == "on" } { + $self log-movement + } + + puts $tracefd "M 0.0 nn:$opt(nn) x:$opt(x) y:$opt(y) rp:$opt(rp)" + puts $tracefd "M 0.0 sc:$opt(sc) cp:$opt(cp) seed:$opt(seed)" + puts $tracefd "M 0.0 prop:$opt(prop) ant:$opt(ant)" +} + +TestSuite instproc create_gridkeeper { } { + + global gkeeper opt node_ + + set gkeeper [new GridKeeper] + + #initialize the gridkeeper + + $gkeeper dimension $opt(x) $opt(y) + + # + # add mobile node into the gridkeeper, must be added after + # scenario file + # + + + for {set i 0} {$i < $opt(nn) } {incr i} { + $gkeeper addnode $node_($i) + + $node_($i) radius $opt(radius) + } +} + +Test/tbf instproc init {} { + global opt node_ god_ ldb_ ragent_ MacTrace + $self instvar ns_ testName_ + set testName_ tbf + set opt(rp) tbf + set opt(ragent) Agent/TBF + #set opt(cp) "tcp-50nn-20mc-64ps-cp" + #set opt(cp) "tcp-50-test" + #set opt(sc) "scen-50-test" ; + #set opt(cp) "../tcl/mobility/scene/cbr-50-20-4-512" + #set opt(sc) "../tcl/mobility/scene/scen-670x670-50-600-20-0" ; + + $self next + source ../tcl/mobility/tbf.tcl + $ns_ set-address-format expanded + set ldb_ [new LocDbase] + $ldb_ nnodes $opt(nn) + for {set i 0} {$i < $opt(nn) } {incr i} { + $testName_-create-mobile-node $i +# if { [Agent/TBF set use_mac_] && $MacTrace == "OFF" } { +# set macdropt [cmu-trace Drop "MAC" $node_($i)] +# [$node_($i) set mac_(0)] drop-target $macdropt +# } + $ragent_($i) install-tap [$node_($i) set mac_(0)] + $ldb_ register [$node_($i) address?] $node_($i) + $ragent_($i) ldb $ldb_ + } + puts "Loading connection pattern...$opt(cp)" + source $opt(cp) + + puts "Loading scenario file...$opt(sc)" + source $opt(sc) + puts "Load complete..." + + # + # Tell all the nodes when the simulation ends + # + for {set i 0} {$i < $opt(nn) } {incr i} { + $ns_ at $opt(stop).000000001 "$node_($i) reset"; + } + + $ns_ at $opt(stop).000000001 "puts \"NS EXITING...\" ;" + #$ns_ halt" + $ns_ at $opt(stop).1 "$self finish" +} + +Test/tbf instproc run {} { + $self instvar ns_ + puts "Starting Simulation..." + $ns_ run +} + + + + + + +proc cmu-trace { ttype atype node } { + global ns tracefd + + set ns [Simulator instance] + if { $tracefd == "" } { + return "" + } + set T [new CMUTrace/$ttype $atype] + $T target [$ns set nullAgent_] + $T attach $tracefd + $T set src_ [$node id] + + $T node $node + + return $T +} + +TestSuite instproc finish {} { + $self instvar ns_ + global quiet + + $ns_ flush-trace + #if { !$quiet } { + # puts "running nam..." + # exec nam temp.rands.nam & + #} + puts "finishing.." + exit 0 +} + +TestSuite instproc create-god { nodes } { + global tracefd god_ + $self instvar ns_ + + set god_ [new God] + $god_ num_nodes $nodes +} + +TestSuite instproc log-movement {} { + global ns + $self instvar logtimer_ ns_ + + set ns $ns_ + source ../mobility/timer.tcl + Class LogTimer -superclass Timer + LogTimer instproc timeout {} { + global opt node_; + for {set i 0} {$i < $opt(nn)} {incr i} { + $node_($i) log-movement + } + $self sched 0.1 + } + + set logtimer_ [new LogTimer] + $logtimer_ sched 0.1 +} + +TestSuite instproc create-tcp-traffic {id src dst start} { + $self instvar ns_ + set tcp_($id) [new Agent/TCP] + $tcp_($id) set class_ 2 + set sink_($id) [new Agent/TCPSink] + $ns_ attach-agent $src $tcp_($id) + $ns_ attach-agent $dst $sink_($id) + $ns_ connect $tcp_($id) $sink_($id) + set ftp_($id) [new Application/FTP] + $ftp_($id) attach-agent $tcp_($id) + $ns_ at $start "$ftp_($id) start" + +} + + +TestSuite instproc create-udp-traffic {id src dst start} { + $self instvar ns_ + set udp_($id) [new Agent/UDP] + $ns_ attach-agent $src $udp_($id) + set null_($id) [new Agent/Null] + $ns_ attach-agent $dst $null_($id) + set cbr_($id) [new Application/Traffic/CBR] + $cbr_($id) set packetSize_ 512 + $cbr_($id) set interval_ 4.0 + $cbr_($id) set random_ 1 + $cbr_($id) set maxpkts_ 10000 + $cbr_($id) attach-agent $udp_($id) + $ns_ connect $udp_($id) $null_($id) + $ns_ at $start "$cbr_($id) start" + +} + +proc runtest {arg} { + global quiet opt + set quiet 0 + + set b [llength $arg] + #set test [lindex $arg 3] + #puts $test + if {$b == 0} { + set test "tbf" + } elseif {$b == 4} { + set test [lindex $arg 0] + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + } elseif {$b == 1} { + set test [lindex $arg 0] + } elseif {$b == 4} { + set test [lindex $arg 0] + #if {[string compare $test "tbf"]} { + #usage + #} else + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + } elseif {$b == 5} { + set test [lindex $arg 0] + set opt(tr) [lindex $arg 1] + set opt(sc) [lindex $arg 2] + set opt(mac) [lindex $arg 3] + Agent/TBF set bint_ [lindex $arg 4] + Agent/TBF set bexp_ [expr 4.5 * [Agent/TBF set bint_]] + } else { + usage + } + set t [new Test/$test] + $t run +} + +global argv arg0 +default_options +runtest $argv diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tcl/lib/ns-agent.tcl ns/tcl/lib/ns-agent.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tcl/lib/ns-agent.tcl Wed Feb 26 17:09:37 2003 +++ ns/tcl/lib/ns-agent.tcl Mon Jun 2 19:21:34 2003 @@ -109,11 +109,11 @@ } # -# Attach tbf to an agent +# Attach tbfr to an agent # -Agent instproc attach-tbf { tbf } { - $tbf target [$self target] - $self target $tbf +Agent instproc attach-tbfr { tbfr } { + $tbfr target [$self target] + $self target $tbfr } @@ -129,12 +129,12 @@ Agent/LossMonitor instproc log-loss {} { } -#Signalling agent attaches tbf differently as none of its signalling mesages -#go via the tbf -Agent/CBR/UDP/SA instproc attach-tbf { tbf } { - $tbf target [$self target] - $self target $tbf - $self ctrl-target [$tbf target] +#Signalling agent attaches tbfr differently as none of its signalling mesages +#go via the tbfr +Agent/CBR/UDP/SA instproc attach-tbfr { tbfr } { + $tbfr target [$self target] + $self target $tbfr + $self ctrl-target [$tbfr target] } # diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tcl/lib/ns-autoconf.tcl ns/tcl/lib/ns-autoconf.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tcl/lib/ns-autoconf.tcl Mon Jun 2 15:21:04 2003 +++ ns/tcl/lib/ns-autoconf.tcl Mon Jun 2 19:22:06 2003 @@ -32,17 +32,17 @@ # # Keep track of where the good perl is. # -checkout_executable PERL "/usr/bin/perl" perl "\ +checkout_executable PERL "/usr/bin//perl" perl "\ When configured, ns found the right version of perl in\ - /usr/bin/perl + /usr/bin//perl but it doesn't seem to be there anymore, so\ ns will fall back on running the first perl in your path.\ The wrong version of perl may break the test suites.\ Reconfigure and rebuild ns if this is a problem.\ " -checkout_executable TCLSH "/home/ns/ns-allinone-2.26/bin/tclsh8.3" tclsh "\ +checkout_executable TCLSH "/home/dnicules/work/ns/tclsh8.3" tclsh "\ When configured, ns found the right version of tclsh in\ - /home/ns/ns-allinone-2.26/bin/tclsh8.3 + /home/dnicules/work/ns/tclsh8.3 but it doesn't seem to be there anymore, so\ ns will fall back on running the first tclsh in your path.\ The wrong version of tclsh may break the test suites.\ diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tcl/lib/ns-default.tcl ns/tcl/lib/ns-default.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tcl/lib/ns-default.tcl Wed Feb 26 17:09:37 2003 +++ ns/tcl/lib/ns-default.tcl Mon Jun 2 19:21:34 2003 @@ -574,9 +574,9 @@ # IntServ Object specific defaults are in ../tcl/lib/ns-intserv.tcl # defaults for tbf -TBF set rate_ 64k -TBF set bucket_ 1024 -TBF set qlen_ 0 +TBFR set rate_ 64k +TBFR set bucket_ 1024 +TBFR set qlen_ 0 # # mobile Ip @@ -1066,6 +1066,7 @@ Agent/DSRAgent set sport_ 255 Agent/DSRAgent set dport_ 255 + Agent/MIPBS set adSize_ 48 Agent/MIPBS set shift_ 0 diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tcl/lib/ns-lib.tcl ns/tcl/lib/ns-lib.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tcl/lib/ns-lib.tcl Wed Feb 26 17:09:37 2003 +++ ns/tcl/lib/ns-lib.tcl Mon Jun 2 19:21:34 2003 @@ -1377,9 +1377,9 @@ # $agent set nodeid_ [$node id] } -Simulator instproc attach-tbf-agent { node agent tbf } { +Simulator instproc attach-tbfr-agent { node agent tbfr } { $node attach $agent - $agent attach-tbf $tbf + $agent attach-tbfr $tbfr } diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tcl/mobility/tbf.tcl ns/tcl/mobility/tbf.tcl --- /home/ns/ns-allinone-2.26/ns-2.26/tcl/mobility/tbf.tcl Wed Dec 31 19:00:00 1969 +++ ns/tcl/mobility/tbf.tcl Mon Jun 2 19:21:34 2003 @@ -0,0 +1,191 @@ +# tbf.tcl -- TCL-world configuration of TBF routing for ns-2 + +# +# +# Copyright (C) 2000 President and Fellows of Harvard College +# Rutgers, DCS, 2003. +# +# All rights reserved. +# +# NOTICE: This software is provided "as is", without any warranty, +# including any implied warranty for merchantability or fitness for a +# particular purpose. Under no circumstances shall Harvard University +# or its faculty, staff, students or agents be liable for any use of, +# misuse of, or inability to use this software, including incidental +# and consequential damages. +# +# License is hereby given to use, modify, and redistribute this +# software, in whole or in part, for any commercial or non-commercial +# purpose, provided that the user agrees to the terms of this +# copyright notice, including disclaimer of warranty, and provided +# that this copyright notice, including disclaimer of warranty, is +# preserved in the source code and documentation of anything derived +# from this software. Any redistributor of this software or anything +# derived from this software assumes responsibility for ensuring that +# any parties to whom such a redistribution is made are fully aware of +# the terms of this license and disclaimer. +# +# Author: Prashant Mekaraj, Rutgers, DCS, 2003. +# This code is heavily based on Brad Karp's TBF extensions to ns-2 +# +# +# ====================================================================== +# Default Script Options +# ====================================================================== +Agent/TBF set sport_ 0 +Agent/TBF set dport_ 0 +Agent/TBF set bint_ 0.5 ;# beacon interval +Agent/TBF set bdesync_ 0.5 ;# beacon desync random component +Agent/TBF set bexp_ [expr 3*([Agent/TBF set bint_]+[Agent/TBF set bdesync_]*[Agent/TBF set bint_])] ;# beacon timeout interval +#Agent/TBF set pint_ 1.5 ;# peri probe interval +#Agent/TBF set pdesync_ 0.5 ;# peri probe desync random component +#Agent/TBF set lpexp_ 8.0 ;# peris unused timeout interval +Agent/TBF set use_mac_ 0 ;# use link breakage feedback from MAC +#Agent/TBF set use_peri_ 0 ;# probe and use perimeters +Agent/TBF set verbose_ 0 ;# +Agent/TBF set drop_debug_ 0 ;# +#Agent/TBF set peri_proact_ 1 ;# proactively generate peri probes +Agent/TBF set use_implicit_beacon_ 0 ;# all packets act as beacons; promisc. +#Agent/TBF set use_planar_ 0 ;# planarize graph +#Agent/TBF set use_loop_detect_ 0 ;# look for unexpected loops in peris +#Agent/TBF set use_timed_plnrz_ 0 ;# replanarize periodically +Agent/TBF set off_tbf_ 0 +set opt(pos) NONE ;# Box or NONE + +if { $opt(pos) == "Box" } { + puts "*** TBF using Box configuration..." +} + +# ====================================================================== +Agent instproc init args { + eval $self next $args +} + +Agent/TBF instproc init args { + eval $self next $args +} + +# ===== Get rid of the warnings in bind ================================ + +# ====================================================================== + +proc create-tbf-routing-agent { node id } { + global ns_ ragent_ tracefd opt + + # + # Create the Routing Agent and attach it to port 255. + # + #set ragent_($id) [new $opt(ragent) $id] + set ragent_($id) [new $opt(ragent)] + set ragent $ragent_($id) + + ## setup address (supports hier-addr) for tbf agent + ## and mobilenode + set addr [$node node-addr] + $ragent node $node + if [Simulator set mobile_ip_] { + $ragent port-dmux [$node set dmux_] + } + $node addr $addr + $node set ragent_ $ragent + + $node attach $ragent 255 + + ##$ragent set target_ [$node set ifq_(0)] ;# ifq between LL and MAC + + # XXX FIX ME XXX + # Where's the DSR stuff? + #$ragent ll-queue [$node get-queue 0] ;# ugly filter-queue hack + $ns_ at 0.0 "$ragent_($id) start-tbf" ;# start updates + + # + # Drop Target (always on regardless of other tracing) + # + set drpT [cmu-trace Drop "RTR" $node] + $ragent drop-target $drpT + # + # Log Target + # + set T [new Trace/Generic] + $T target [$ns_ set nullAgent_] + $T attach $tracefd + $T set src_ $id + $ragent tracetarget $T + + # ifq + $ragent add-ifq [$node set ifq_(0)] +} + + +proc tbf-create-mobile-node { id args } { + global ns ns_ chan prop topo tracefd opt node_ + + set ns_ [Simulator instance] + #if {[Simulator set EnableHierRt_]} { + # if [Simulator set mobile_ip_] { + # set node_($id) [new MobileNode/MIPMH $args] + # } else { + # set node_($id) [new Node/MobileNode/BaseStationNode $args] + # } + #} else { + set node_($id) [new Node/MobileNode] + #} + set node $node_($id) + $node random-motion 0 ;# disable random motion + $node topography $topo + + # + # This Trace Target is used to log changes in direction + # and velocity for the mobile node. + # + set T [new Trace/Generic] + $T target [$ns_ set nullAgent_] + $T attach $tracefd + $T set src_ $id + $node log-target $T + + if ![info exist inerrProc_] { + set inerrProc_ "" + } + if ![info exist outerrProc_] { + set outerrProc_ "" + } + if ![info exist FECProc_] { + set FECProc_ "" + } + + $node add-interface $chan $prop $opt(ll) $opt(mac) \ + $opt(ifq) $opt(ifqlen) $opt(netif) $opt(ant) $inerrProc_ $outerrProc_ $FECProc_ + + # + # Create a Routing Agent for the Node + # + create-$opt(rp)-routing-agent $node $id + + # ============================================================ + + if { $opt(pos) == "Box" } { + # + # Box Configuration + # + set spacing 200 + set maxrow 7 + set col [expr ($id - 1) % $maxrow] + set row [expr ($id - 1) / $maxrow] + $node set X_ [expr $col * $spacing] + $node set Y_ [expr $row * $spacing] + $node set Z_ 0.0 + $node set speed_ 0.0 + + $ns_ at 0.0 "$node_($id) start" + } + return $node +} + + + + + + + + diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tcl/test/test-output-tcpHighspeed/CVS/Entries ns/tcl/test/test-output-tcpHighspeed/CVS/Entries --- /home/ns/ns-allinone-2.26/ns-2.26/tcl/test/test-output-tcpHighspeed/CVS/Entries Wed Feb 26 17:10:31 2003 +++ ns/tcl/test/test-output-tcpHighspeed/CVS/Entries Wed Dec 31 19:00:00 1969 @@ -1,11 +0,0 @@ -/tcp.Z/1.1/Fri Mar 8 00:53:26 2002// -/tcpHighspeed.Z/1.4/Thu Nov 7 00:28:46 2002// -/tcp1.Z/1.2/Thu Feb 20 19:42:46 2003// -/tcp1A.Z/1.3/Thu Feb 20 19:42:46 2003// -/tcpHighspeed1.Z/1.6/Thu Feb 20 19:42:46 2003// -/tcpHighspeed2.Z/1.3/Thu Feb 20 19:42:46 2003// -/tcpHighspeed3.Z/1.4/Thu Feb 20 19:42:46 2003// -/tcpHighspeed4.Z/1.3/Thu Feb 20 19:42:47 2003// -/tcpHighspeed5.Z/1.2/Thu Feb 20 19:42:47 2003// -/tcpHighspeed6.Z/1.1/Fri Dec 6 00:25:46 2002// -D diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tcl/test/test-output-tcpHighspeed/CVS/Repository ns/tcl/test/test-output-tcpHighspeed/CVS/Repository --- /home/ns/ns-allinone-2.26/ns-2.26/tcl/test/test-output-tcpHighspeed/CVS/Repository Wed Feb 26 17:10:31 2003 +++ ns/tcl/test/test-output-tcpHighspeed/CVS/Repository Wed Dec 31 19:00:00 1969 @@ -1 +0,0 @@ -ns-2/tcl/test/test-output-tcpHighspeed diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/tcl/test/test-output-tcpHighspeed/CVS/Root ns/tcl/test/test-output-tcpHighspeed/CVS/Root --- /home/ns/ns-allinone-2.26/ns-2.26/tcl/test/test-output-tcpHighspeed/CVS/Root Wed Feb 26 17:10:31 2003 +++ ns/tcl/test/test-output-tcpHighspeed/CVS/Root Wed Dec 31 19:00:00 1969 @@ -1 +0,0 @@ -haldar@nsnam.isi.edu:/nfs/jade/vint/CVSROOT diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/trace/cmu-trace.cc ns/trace/cmu-trace.cc --- /home/ns/ns-allinone-2.26/ns-2.26/trace/cmu-trace.cc Wed Feb 26 17:11:29 2003 +++ ns/trace/cmu-trace.cc Mon Jun 2 19:21:37 2003 @@ -925,6 +925,10 @@ case PT_DSR: format_dsr(p, offset); break; + case PT_TBF: + format_msg(p, offset); + break; + case PT_MESSAGE: case PT_UDP: format_msg(p, offset); @@ -942,8 +946,8 @@ case PT_PING: break; default: - fprintf(stderr, "%s - invalid packet type (%s).\n", - __PRETTY_FUNCTION__, packet_info.name(ch->ptype())); + fprintf(stderr, "%s - invalid packet type (%s). %x \n", + __PRETTY_FUNCTION__, packet_info.name(ch->ptype()), p); exit(1); } } diff -Nur /home/ns/ns-allinone-2.26/ns-2.26/trace/cmu-trace.h ns/trace/cmu-trace.h --- /home/ns/ns-allinone-2.26/ns-2.26/trace/cmu-trace.h Wed Feb 26 17:11:30 2003 +++ ns/trace/cmu-trace.h Mon Jun 2 19:21:37 2003 @@ -76,6 +76,7 @@ #define DROP_RTR_QTIMEOUT "TOUT" // packet expired #define DROP_RTR_MAC_CALLBACK "CBK" // MAC callback #define DROP_RTR_SALVAGE "SAL" +#define DROP_NO_ROUTE_TO_DEST "NOROUTE" // TBF #define DROP_IFQ_QFULL "IFQ" // no buffer space in IFQ #define DROP_IFQ_ARP_FULL "ARP" // dropped by ARP @@ -122,6 +123,7 @@ void format_tora(Packet *p, int offset); void format_imep(Packet *p, int offset); void format_aodv(Packet *p, int offset); + void format_tbf(Packet *p, int offset); }; #endif /* __cmu_trace__ */